[SCM] kodi/master: Imported Upstream version 14.2+dfsg1

rbalint at users.alioth.debian.org rbalint at users.alioth.debian.org
Sat Mar 28 11:24:43 UTC 2015


The following commit has been merged in the master branch:
commit 1c5ffdf60a87f210f4be565ee96e9eda4920f41a
Author: Balint Reczey <balint at balintreczey.hu>
Date:   Sat Mar 28 11:36:53 2015 +0100

    Imported Upstream version 14.2+dfsg1

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..912434e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,988 @@
+# global patterns
+testMain
+
+# commonly used editors
+# vim
+*.swp
+# Eclipse
+*.project
+*.cproject
+.classpath
+*.sublime-*
+# KDevelop 4
+*.kdev4
+# gedit
+*~
+
+# generated files etc
+config.cache
+config.status
+config.log
+*.d
+*.depend
+*.pc
+*.P
+*.[oa]
+*.l[oa]
+*.so
+*.so.*
+*.dylib
+*.lineno
+*.py[co]
+*.ver
+*.rej
+*.orig
+*.bak
+*.apk
+*.class
+
+# Windows specific generated files
+*.exp
+*.ilk
+*.ncb
+*.pdb
+*.suo
+*.sdf
+*.opensdf
+*.vcproj.*.user
+*.vcxproj.*.user
+*.vcxproj.user
+*.obj
+*.idb
+*ReSharper*
+*.idb
+
+# osx specifics
+/build/
+.DS_Store
+*.dSYM
+._*
+*.mode1v3
+*.pbxuser
+*project.xcworkspace
+*xcuserdata
+
+.libs/
+.deps/
+
+# Eclipse project files. Not needed as they are generated in two clicks if needed.
+.settings
+.project
+.cproject
+
+/nbproject
+
+# /
+/.dummy
+/.dummy.in
+/Makefile
+/Makefile.include
+/aclocal.m4
+/autom4te.cache/
+/build-aux/compile
+/build-aux/config.guess
+/build-aux/config.sub
+/build-aux/install-sh
+/build-aux/ltmain.sh
+/build-aux/missing
+/build-aux/ltmain.sh
+/autotools
+/BUILD
+/xbmc.log
+/xbmc.old.log
+/Makefile.depend
+/config.status
+/configure
+/kodi.bin
+/kodi-test
+/kodi-xrandr
+/git_revision.h
+/libtool
+/*.patch
+
+# /addons/
+/addons/com.nullsoft.milkdrop.xbmc/*.vis
+/addons/org.xbmc.addons.dxspectrum/*.vis
+/addons/packages
+/addons/screensaver.rsxs.euphoria/Euphoria.xbs
+/addons/screensaver.rsxs.plasma/Plasma.xbs
+/addons/screensaver.rsxs.solarwinds/Solarwinds.xbs
+/addons/skin.confluence/media/Makefile
+/addons/skin.confluence/media/Textures.xbt
+/addons/skin.pm3-hd/media/Textures.xbt
+/addons/visualization.dxspectrum/Spectrum_win32dx.vis
+/addons/visualization.glspectrum/opengl_spectrum.vis
+/addons/visualization.milkdrop/MilkDrop_win32dx.vis
+/addons/visualization.projectm/projectM.vis
+/addons/visualization.projectm/resources/presets.zip
+/addons/visualization.vortex/Vortex_win32dx.vis
+/addons/visualization.waveform/Waveform.vis
+/addons/visualization.waveform/Waveform_win32.vis
+/addons/visualization.itunes/iTunes.mvis
+/addons/visualization.fishbmc/fishbmc.vis
+/addons/script.module.pil/
+/addons/audioencoder.*
+/addons/pvr.*
+/addons/xbmc.addon/addon.xml
+/addons/xbmc.json/addon.xml
+
+# /lib/
+/lib/Makefile
+/lib/*/1
+/lib/*/win32/1
+
+# /lib/asap/
+/lib/asap/Makefile
+/lib/asap/players.h
+/lib/asap/players/*.obx
+/lib/asap/win32/xbmc_asap.dll
+/lib/asap/win32/xbmc_asap.lib
+/lib/asap/xbmc/xbmc_asap.res
+
+
+# /lib/addons/
+/lib/addons/library.xbmc.addon/Makefile
+/lib/addons/library.xbmc.gui/Makefile
+/lib/addons/library.xbmc.pvr/Makefile
+/lib/addons/library.xbmc.codec/Makefile
+/lib/addons/library.xbmc.addon/project/VS2010Express/Release
+/lib/addons/library.xbmc.addon/project/VS2010Express/Debug
+/lib/addons/library.xbmc.codec/project/VS2010Express/Release
+/lib/addons/library.xbmc.codec/project/VS2010Express/Debug
+/lib/addons/library.xbmc.gui/project/VS2010Express/Release
+/lib/addons/library.xbmc.gui/project/VS2010Express/Debug
+/lib/addons/library.xbmc.pvr/project/VS2010Express/Release
+/lib/addons/library.xbmc.pvr/project/VS2010Express/Debug
+
+# /lib/cmyth/
+lib/cmyth/Makefile
+
+# /lib/cpluff/
+/lib/cpluff/ABOUT-NLS
+/lib/cpluff/aclocal.m4
+/lib/cpluff/autom4te.cache
+/lib/cpluff/auxliary
+/lib/cpluff/m4
+/lib/cpluff/config.h
+/lib/cpluff/config.h.in
+/lib/cpluff/config.h.in~
+/lib/cpluff/configure
+/lib/cpluff/Makefile.in
+/lib/cpluff/*/Makefile.in
+/lib/cpluff/*/*/Makefile.in
+/lib/cpluff/*/*/*/Makefile.in
+/lib/cpluff/*/*/*/*/Makefile.in
+/lib/cpluff/Makefile
+/lib/cpluff/*/Makefile
+/lib/cpluff/*/*/Makefile
+/lib/cpluff/*/*/*/Makefile
+/lib/cpluff/*/*/*/*/Makefile
+/lib/cpluff/po/*template
+/lib/cpluff/po/*header
+lib/cpluff/examples/cpfile/cpfile
+lib/cpluff/libcpluff/cpluffdef.h
+lib/cpluff/libcpluff/docsrc/Doxyfile-impl
+lib/cpluff/libcpluff/docsrc/Doxyfile-ref
+lib/cpluff/libtool
+lib/cpluff/po/POTFILES
+lib/cpluff/stamp-h1
+
+# /lib/ffmpeg/
+/lib/ffmpeg/
+
+# /lib/libcec
+/lib/libcec/libcec
+
+# /lib/enca
+/lib/enca/libenca_win32/Debug
+/lib/enca/libenca_win32/Release
+
+# /lib/fribidi
+/lib/fribidi/libfridibidi/Debug
+/lib/fribidi/libfridibidi/Release
+
+# /lib/gtest
+/lib/gtest/Makefile.in
+/lib/gtest/aclocal.m4
+/lib/gtest/build-aux/compile
+/lib/gtest/build-aux/config.guess
+/lib/gtest/build-aux/config.h.in
+/lib/gtest/build-aux/config.sub
+/lib/gtest/build-aux/depcomp
+/lib/gtest/build-aux/install-sh
+/lib/gtest/build-aux/ltmain.sh
+/lib/gtest/build-aux/missing
+/lib/gtest/configure
+/lib/gtest/m4/libtool.m4
+/lib/gtest/m4/ltoptions.m4
+/lib/gtest/m4/ltsugar.m4
+/lib/gtest/m4/ltversion.m4
+/lib/gtest/m4/lt~obsolete.m4
+/lib/gtest/Makefile
+/lib/gtest/build-aux/config.h
+/lib/gtest/build-aux/config.h.in~
+/lib/gtest/build-aux/stamp-h1
+/lib/gtest/build-aux/test-driver
+/lib/gtest/fused-src/
+/lib/gtest/lib/
+/lib/gtest/libtool
+/lib/gtest/samples/.dirstamp
+/lib/gtest/scripts/gtest-config
+/lib/gtest/src/.dirstamp
+
+# /lib/jsoncpp
+/lib/jsoncpp/src/lib_json/Makefile
+
+# /lib/libass
+/lib/libass/config.guess
+/lib/libass/config.h
+/lib/libass/config.sub
+/lib/libass/depcomp
+/lib/libass/Makefile
+/lib/libass/Makefile.in
+/lib/libass/aclocal.m4
+/lib/libass/autom4te.cache/
+/lib/libass/compile
+/lib/libass/config.h.in
+/lib/libass/config.h.in~
+/lib/libass/configure
+/lib/libass/install-sh
+/lib/libass/libass/Makefile
+/lib/libass/libass/Makefile.in
+/lib/libass/libtool
+/lib/libass/ltmain.sh
+/lib/libass/m4/libtool.m4
+/lib/libass/m4/ltoptions.m4
+/lib/libass/m4/ltsugar.m4
+/lib/libass/m4/ltversion.m4
+/lib/libass/m4/lt~obsolete.m4
+/lib/libass/missing
+/lib/libass/shave/libtool.m4
+/lib/libass/shave/ltoptions.m4
+/lib/libass/shave/ltsugar.m4
+/lib/libass/shave/ltversion.m4
+/lib/libass/shave/lt~obsolete.m4
+/lib/libass/shave/shave
+/lib/libass/shave/shave-libtool
+/lib/libass/stamp-h1
+/lib/libass/test/Makefile
+/lib/libass/test/Makefile.in
+/lib/libass/test/test
+/lib/libass/xbmc/Makefile
+/lib/libass/xbmc/libass_win32/Debug
+/lib/libass/xbmc/libass_win32/Release
+/lib/libass/m4/libtool.m4
+/lib/libass/m4/ltoptions.m4
+/lib/libass/m4/ltsugar.m4
+/lib/libass/m4/ltversion.m4
+/lib/libass/m4/lt~obsolete.m4
+
+# /lib/libiconv
+/lib/libiconv/libiconv_win32/Debug
+/lib/libiconv/libiconv_win32/Release
+
+# /lib/liblame
+/lib/liblame/config.h
+/lib/liblame/obj
+
+
+# /lib/libmicrohttpd
+/lib/libmicrohttpd/MHD_config.h
+/lib/libmicrohttpd/Makefile
+/lib/libmicrohttpd/contrib/Makefile
+/lib/libmicrohttpd/doc/Makefile
+/lib/libmicrohttpd/doc/microhttpd.info
+/lib/libmicrohttpd/doc/stamp-vti
+/lib/libmicrohttpd/doc/version.texi
+/lib/libmicrohttpd/libtool
+/lib/libmicrohttpd/m4/Makefile
+/lib/libmicrohttpd/src/Makefile
+/lib/libmicrohttpd/src/daemon/Makefile
+/lib/libmicrohttpd/src/daemon/https/Makefile
+/lib/libmicrohttpd/src/daemon/https/lgl/Makefile
+/lib/libmicrohttpd/src/daemon/https/minitasn1/Makefile
+/lib/libmicrohttpd/src/daemon/https/tls/Makefile
+/lib/libmicrohttpd/src/daemon/https/x509/Makefile
+/lib/libmicrohttpd/src/examples/Makefile
+/lib/libmicrohttpd/src/examples/authorization_example
+/lib/libmicrohttpd/src/examples/fileserver_example
+/lib/libmicrohttpd/src/examples/fileserver_example_dirs
+/lib/libmicrohttpd/src/examples/fileserver_example_external_select
+/lib/libmicrohttpd/src/examples/https_fileserver_example
+/lib/libmicrohttpd/src/examples/minimal_example
+/lib/libmicrohttpd/src/examples/minimal_example_comet
+/lib/libmicrohttpd/src/examples/querystring_example
+/lib/libmicrohttpd/src/examples/refuse_post_example
+/lib/libmicrohttpd/src/testcurl/daemon_options_test
+/lib/libmicrohttpd/src/testcurl/Makefile
+/lib/libmicrohttpd/src/testcurl/https/Makefile
+/lib/libmicrohttpd/src/include/Makefile
+/lib/libmicrohttpd/src/testzzuf/Makefile
+/lib/libmicrohttpd/stamp-h1
+/lib/libmicrohttpd/autom4te.cache/
+
+# /lib/libmodplug/
+/lib/libmodplug/libtool
+/lib/libmodplug/src/stamp-h1
+/lib/libmodplug/Makefile
+/lib/libmodplug/src/Makefile
+/lib/libmodplug/src/config.h
+/lib/libmodplug/Debug
+/lib/libmodplug/Release
+
+# /lib/pcre
+/lib/pcre/libpcre/Debug
+/lib/pcre/libpcre/Release
+
+# /project
+/project/obj
+/project/output
+
+# /project/cmake
+/project/cmake/kodi-config.cmake
+/project/cmake/xbmc-config.cmake
+/project/cmake/*.error
+/project/cmake/addons/build
+/project/cmake/addons/depends/build
+/project/cmake/addons/output
+
+# /project/Win32BuildSetup/
+/project/Win32BuildSetup/*.log
+/project/Win32BuildSetup/*.exe
+/project/Win32BuildSetup/*.pdb
+/project/Win32BuildSetup/*-addons.nsi
+/project/Win32BuildSetup/bgprocess
+/project/Win32BuildSetup/exclude.txt
+/project/Win32BuildSetup/makeclean
+/project/Win32BuildSetup/noprompt
+/project/Win32BuildSetup/BUILD_WIN32/
+/project/Win32BuildSetup/dependencies
+
+# /project/BuildDependencies
+/project/BuildDependencies/downloads
+/project/BuildDependencies/downloads2
+/project/BuildDependencies/include
+/project/BuildDependencies/lib
+/project/BuildDependencies/msys
+/project/BuildDependencies/scripts/tmp
+/project/BuildDependencies/bin/swig
+/project/BuildDependencies/bin/doxygen
+/project/BuildDependencies/bin/json-rpc
+
+# /project/VS2010Express
+/project/VS2010Express/Debug
+/project/VS2010Express/Release
+/project/VS2010Express/XBMC
+/project/VS2010Express/glib
+/project/VS2010Express/guilib
+/project/VS2010Express/libPlatinum
+/project/VS2010Express/UnrarXLib
+/project/VS2010Express/test-XbmcThreads
+/project/VS2010Express/libs
+/project/VS2010Express/objs
+/project/VS2010Express/ipch
+/project/VS2010Express/*.vsp
+/project/VS2010Express/*.metaproj
+/project/VS2010Express/*.metaproj.tmp
+
+# /skin/
+/skin/Confluence/media/Textures.xbt
+
+# /system
+/system/cpluff.dll
+/system/ImageLib.dll
+/system/libcmyth.dll
+/system/libcurl.dll
+/system/libeay32.dll
+/system/librtmp.dll
+/system/libexif.dll
+/system/libexpat.dll
+/system/libidn-11.dll
+/system/libssh2.dll
+/system/libssl32.dll
+/system/hdhomerun.dll
+/system/ssh.dll
+/system/sqlite3.dll
+/system/libnfs.dll
+/system/dnssd.dll
+/system/libcec.dll
+/system/pthreadVC2.dll
+/system/libxslt.dll
+
+# /system/cdrip
+/system/cdrip/lame_enc.dll
+/system/cdrip/ogg.dll
+/system/cdrip/vorbis.dll
+/system/cdrip/vorbisenc.dll
+
+# /system/players/dvdplayer
+/system/players/dvdplayer/*
+
+# /system/players/paplayer
+/system/players/paplayer/libmodplug.dll
+/system/players/paplayer/StSoundLibrary.dll
+/system/players/paplayer/vorbisfile.dll
+/system/players/paplayer/vgmstream.dll
+/system/players/paplayer/NoseFart.dll
+/system/players/paplayer/libsidplay2.dll
+/system/players/paplayer/adpcm.dll
+/system/players/paplayer/timidity.dll
+/system/players/paplayer/libFLAC.dll
+/system/players/paplayer/xbmc_asap.dll
+
+# /system
+/system/profiles.xml
+
+# /system/python
+/system/python/
+
+# /system/webserver
+/system/webserver
+
+/system/airplay
+
+# /system
+/system/zlib1.dll
+
+
+# /screensavers/
+/screensavers/Solarwinds.xbs
+/screensavers/Euphoria.xbs
+/screensavers/Plasma.xbs
+
+# /skin/Confluence/
+/skin/Confluence/BUILD
+
+#/tools/android
+/tools/android/packaging/xbmc/AndroidManifest.xml
+/tools/android/packaging/Makefile
+/tools/android/packaging/xbmc/src/org/xbmc/kodi/Main.java
+/tools/android/packaging/xbmc/src/org/xbmc/kodi/Splash.java
+/tools/android/packaging/xbmc/src/org/xbmc/kodi/XBMCBroadcastReceiver.java
+/tools/android/packaging/xbmc/src/org/xbmc/kodi/XBMCOnFrameAvailableListener.java
+/tools/android/packaging/xbmc/strings.xml
+
+#/tools/depends
+/tools/depends/native/JsonSchemaBuilder/bin/
+/tools/depends/native/JsonSchemaBuilder/native/
+/tools/depends/target/ffmpeg/.ffmpeg-installed
+/tools/depends/target/ffmpeg/ffmpeg-2.4-Helix-alpha4.tar.gz
+/tools/depends/target/ffmpeg/ffmpeg-2.4-Helix-alpha4/
+/tools/depends/target/ffmpeg/ffmpeg-install/
+
+# /tools/EventClients/
+/tools/EventClients/*.pyc
+/tools/EventClients/Makefile
+/tools/EventClients/Clients/OSXRemote/Makefile
+/tools/EventClients/Clients/OSXRemote/build/
+/tools/EventClients/Clients/WiiRemote/WiiRemote
+
+# /tools/darwin/
+/tools/darwin/Configurations/App.xcconfig
+/tools/darwin/Configurations/Common.xcconfig
+/tools/darwin/packaging/ios/mkdeb-ios.sh
+/tools/darwin/packaging/atv2/mkdeb-atv2.sh
+/tools/darwin/packaging/osx/mkdmg-osx.sh
+/tools/darwin/packaging/osx/VolumeIcon.icns
+/tools/darwin/packaging/migrate_to_kodi_ios.sh
+/tools/darwin/packaging/seatbeltunlock/mkdeb-seatbeltunlock.sh
+
+# /tools/Linux/
+/tools/Linux/kodi.sh
+/tools/Linux/kodi-standalone.sh
+/tools/Linux/kodi-xsession.desktop
+/tools/Linux/FEH-ARM.py
+/tools/Linux/FEH.py
+
+# /tools/osx
+/tools/osx/XBMCHelper
+
+# /tools/TexturePacker
+/tools/TexturePacker/TexturePacker
+/tools/TexturePacker/Makefile
+/tools/TexturePacker/*.dll
+
+# /userdata/
+/userdata/Database
+/userdata/playlists
+/userdata/Thumbnails
+/userdata/cache
+/userdata/guisettings.xml
+
+# /xbmc/
+/xbmc/.GitRevision
+/xbmc/config.h
+/xbmc/config.h.in
+/xbmc/config.h.in~
+/xbmc/CompileInfo.cpp
+/xbmc/DllPaths_generated.h
+/xbmc/DllPaths_generated_android.h
+/xbmc/Makefile
+/xbmc/stamp-h1
+
+# /xbmc/addons/
+/xbmc/addons/Makefile
+/xbmc/addons/visualization.waveform
+
+# /xbmc/android
+/xbmc/android/Makefile
+/xbmc/android/activity/Makefile
+/xbmc/android/loader/Makefile
+/xbmc/android/jni/Makefile
+
+# /xbmc/cdrip/
+/xbmc/cdrip/Makefile
+
+# /xbmc/cores/
+/xbmc/cores/AudioEngine/Makefile
+/xbmc/cores/DllLoader/exports/build_wrapper.sh
+/xbmc/cores/DllLoader/exports/wrapper.def
+/xbmc/cores/DllLoader/Makefile
+/xbmc/cores/DllLoader/exports/Makefile
+/xbmc/cores/dvdplayer/Makefile
+/xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile
+/xbmc/cores/dvdplayer/DVDCodecs/Makefile
+/xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile
+/xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile
+/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile
+/xbmc/cores/dvdplayer/DVDDemuxers/Makefile
+/xbmc/cores/dvdplayer/DVDSubtitles/Makefile
+/xbmc/cores/omxplayer/Makefile
+/xbmc/cores/paplayer/Makefile
+/xbmc/cores/playercorefactory/Makefile
+/xbmc/cores/Makefile
+/xbmc/cores/VideoRenderers/Makefile
+
+# /xbmc/filesystem/
+/xbmc/filesystem/Makefile
+
+# /xbmc/freebsd/
+/xbmc/freebsd/Makefile
+
+# /xbmc/guilib/
+/xbmc/guilib/Makefile
+/xbmc/guilib/*.obj
+/xbmc/guilib/*.idb
+/xbmc/guilib/*.pdb
+/xbmc/guilib/*.bak
+/xbmc/guilib/Debug (Win32)
+/xbmc/guilib/Release (Win32)
+/xbmc/guilib/Release
+/xbmc/guilib/Release_LTCG
+/xbmc/guilib/Debug
+/xbmc/guilib/Profile
+/xbmc/guilib/Profile_FastCap
+
+# /xbmc/input
+/xbmc/input/linux/Makefile
+
+# /xbmc/interfaces/
+/xbmc/interfaces/Makefile
+/xbmc/interfaces/json-rpc/ServiceDescription.h
+/xbmc/interfaces/python/Makefile
+/xbmc/interfaces/python/generated/
+/xbmc/interfaces/python/test/Makefile
+
+# /xbmc/linux/
+/xbmc/linux/Makefile
+/xbmc/linux/sse4/Makefile
+
+# /xbmc/main/
+/xbmc/main/Makefile
+
+# /xbmc/music/
+/xbmc/music/karaoke/Makefile
+
+# /xbmc/network/
+/xbmc/network/Makefile
+/xbmc/network/upnp/Makefile
+
+# /xbmc/osx/
+/xbmc/osx/Makefile
+/xbmc/osx/Info.plist
+/xbmc/osx/ios/XBMCIOS-Info.plist
+/xbmc/osx/atv2/XBMCATV2-Info.plist
+
+# /xbmc/peripherals/
+/xbmc/peripherals/bus/Makefile
+/xbmc/peripherals/devices/Makefile
+
+#/xbmc/screensavers/
+/xbmc/screensavers/Makefile
+/xbmc/screensavers/rsxs-0.9/Makefile
+/xbmc/screensavers/rsxs-0.9/configure
+/xbmc/screensavers/rsxs-0.9/config.h
+/xbmc/screensavers/rsxs-0.9/config.log
+/xbmc/screensavers/rsxs-0.9/config/Makefile
+/xbmc/screensavers/rsxs-0.9/lib/Makefile
+/xbmc/screensavers/rsxs-0.9/libltdl/Makefile
+/xbmc/screensavers/rsxs-0.9/src/Makefile
+/xbmc/screensavers/rsxs-0.9/src/cyclone/Makefile
+/xbmc/screensavers/rsxs-0.9/src/euphoria/Makefile
+/xbmc/screensavers/rsxs-0.9/src/fieldlines/Makefile
+/xbmc/screensavers/rsxs-0.9/src/flocks/Makefile
+/xbmc/screensavers/rsxs-0.9/src/flux/Makefile
+/xbmc/screensavers/rsxs-0.9/src/helios/Makefile
+/xbmc/screensavers/rsxs-0.9/src/hyperspace/Makefile
+/xbmc/screensavers/rsxs-0.9/src/lattice/Makefile
+/xbmc/screensavers/rsxs-0.9/src/plasma/Makefile
+/xbmc/screensavers/rsxs-0.9/src/skyrocket/Makefile
+/xbmc/screensavers/rsxs-0.9/src/solarwinds/Makefile
+/xbmc/screensavers/rsxs-0.9/xbmc/Makefile
+/xbmc/screensavers/rsxs-0.9/autom4te.cache/
+/xbmc/screensavers/rsxs-0.9/lib/alloca.h
+/xbmc/screensavers/rsxs-0.9/lib/argz.h
+/xbmc/screensavers/rsxs-0.9/lib/getopt.h
+/xbmc/screensavers/rsxs-0.9/rsxs.spec
+/xbmc/screensavers/rsxs-0.9/src/.dirstamp
+/xbmc/screensavers/rsxs-0.9/src/euphoria/rs-euphoria
+/xbmc/screensavers/rsxs-0.9/src/plasma/rs-plasma
+/xbmc/screensavers/rsxs-0.9/src/solarwinds/rs-solarwinds
+/xbmc/screensavers/rsxs-0.9/stamp-h1
+/xbmc/screensavers/rsxs-0.9/aclocal.m4
+/xbmc/screensavers/rsxs-0.9/compile
+/xbmc/screensavers/rsxs-0.9/config.guess
+/xbmc/screensavers/rsxs-0.9/config.h.in
+/xbmc/screensavers/rsxs-0.9/config.h.in~
+/xbmc/screensavers/rsxs-0.9/config.sub
+/xbmc/screensavers/rsxs-0.9/config/Makefile.in
+/xbmc/screensavers/rsxs-0.9/depcomp
+/xbmc/screensavers/rsxs-0.9/INSTALL
+/xbmc/screensavers/rsxs-0.9/install-sh
+/xbmc/screensavers/rsxs-0.9/lib/Makefile.in
+/xbmc/screensavers/rsxs-0.9/libltdl/Makefile.in
+/xbmc/screensavers/rsxs-0.9/Makefile.in
+/xbmc/screensavers/rsxs-0.9/missing
+/xbmc/screensavers/rsxs-0.9/src/cyclone/Makefile.in
+/xbmc/screensavers/rsxs-0.9/src/euphoria/Makefile.in
+/xbmc/screensavers/rsxs-0.9/src/fieldlines/Makefile.in
+/xbmc/screensavers/rsxs-0.9/src/flocks/Makefile.in
+/xbmc/screensavers/rsxs-0.9/src/flux/Makefile.in
+/xbmc/screensavers/rsxs-0.9/src/helios/Makefile.in
+/xbmc/screensavers/rsxs-0.9/src/hyperspace/Makefile.in
+/xbmc/screensavers/rsxs-0.9/src/lattice/Makefile.in
+/xbmc/screensavers/rsxs-0.9/src/Makefile.in
+/xbmc/screensavers/rsxs-0.9/src/plasma/Makefile.in
+/xbmc/screensavers/rsxs-0.9/src/skyrocket/Makefile.in
+/xbmc/screensavers/rsxs-0.9/src/solarwinds/Makefile.in
+
+#/xbmc/utils
+/xbmc/utils/Makefile
+
+#/xbmc/visualizations/
+/xbmc/visualizations/DirectXSpectrum/Debug (DirectX)
+/xbmc/visualizations/DirectXSpectrum/Release (DirectX)
+/xbmc/visualizations/EGLHelpers/Makefile
+/xbmc/visualizations/fishBMC/Makefile
+/xbmc/visualizations/Goom/Makefile
+/xbmc/visualizations/Goom/goom2k4-0/aclocal.m4
+/xbmc/visualizations/Goom/goom2k4-0/compile
+/xbmc/visualizations/Goom/goom2k4-0/configure
+/xbmc/visualizations/Goom/goom2k4-0/INSTALL
+/xbmc/visualizations/Goom/goom2k4-0/mkinstalldirs
+/xbmc/visualizations/Goom/goom2k4-0/Makefile.in
+/xbmc/visualizations/Goom/goom2k4-0/config.guess
+/xbmc/visualizations/Goom/goom2k4-0/config.sub
+/xbmc/visualizations/Goom/goom2k4-0/depcomp
+/xbmc/visualizations/Goom/goom2k4-0/install-sh
+/xbmc/visualizations/Goom/goom2k4-0/ltmain.sh
+/xbmc/visualizations/Goom/goom2k4-0/missing
+/xbmc/visualizations/Goom/goom2k4-0/sdl-goom/Makefile.in
+/xbmc/visualizations/Goom/goom2k4-0/src/Makefile.in
+/xbmc/visualizations/Goom/goom2k4-0/xmms-goom/Makefile.in
+/xbmc/visualizations/Goom/goom2k4-0/ylwrap
+/xbmc/visualizations/Goom/goom2k4-0/gtk-gui-devel/confdefs.h
+/xbmc/visualizations/Milkdrop/Debug
+/xbmc/visualizations/Milkdrop/Release
+/xbmc/visualizations/OpenGLSpectrum/Makefile
+/xbmc/visualizations/Vortex/Vortex/Vortex.vcxproj.metaproj
+/xbmc/visualizations/WaveForm/Makefile
+/xbmc/visualizations/WaveForm/Debug (DirectX)
+/xbmc/visualizations/WaveForm/Release (DirectX)
+/xbmc/visualizations/XBMCProjectM/Makefile
+/xbmc/visualizations/XBMCProjectM/libprojectM/Makefile
+/xbmc/visualizations/XBMCProjectM/libprojectM/CMakeCache.txt
+/xbmc/visualizations/XBMCProjectM/libprojectM/CMakeFiles/
+/xbmc/visualizations/XBMCProjectM/libprojectM/cmake_install.cmake
+/xbmc/visualizations/XBMCProjectM/libprojectM/config.inp
+
+#/xbmc/win32/
+/xbmc/win32/XBMC_PC.rc
+# no longer used
+/xbmc/win32/git_rev.h
+
+# /xbmc/windowing/
+/xbmc/windowing/Makefile
+/xbmc/windowing/egl/Makefile
+/xbmc/windowing/tests/wayland/xbmc_wayland_test_client_protocol.h
+/xbmc/windowing/tests/wayland/xbmc_wayland_test_protocol.c
+/xbmc/windowing/tests/wayland/xbmc_wayland_test_server_protocol.h
+/xbmc/windowing/tests/wayland/Makefile
+
+# /lib/libdvd/
+/lib/libdvd/Makefile
+
+# /lib/libdvd/includes/
+/lib/libdvd/includes/dv
+/lib/libdvd/includes/dvdcss/dvdcss.h
+
+# /lib/libdvd/includes/dvdread/
+/lib/libdvd/includes/dvdread/ifo_print.h
+/lib/libdvd/includes/dvdread/dvd_udf.h
+/lib/libdvd/includes/dvdread/dvd_input.h
+/lib/libdvd/includes/dvdread/bswap.h
+/lib/libdvd/includes/dvdread/nav_read.h
+/lib/libdvd/includes/dvdread/dvd_reader.h
+/lib/libdvd/includes/dvdread/nav_print.h
+/lib/libdvd/includes/dvdread/ifo_types.h
+/lib/libdvd/includes/dvdread/bitreader.h
+/lib/libdvd/includes/dvdread/md5.h
+/lib/libdvd/includes/dvdread/dvdread
+/lib/libdvd/includes/dvdread/dvdread_internal.h
+/lib/libdvd/includes/dvdread/ifo_read.h
+/lib/libdvd/includes/dvdread/nav_types.h
+
+# /lib/libdvd/includes/dvdnav
+/lib/libdvd/includes/dvdnav/dvd_types.h
+/lib/libdvd/includes/dvdnav/dvdnav.h
+/lib/libdvd/includes/dvdnav/dvdnav_events.h
+
+# /lib/libdvd/libdvdcss/
+/lib/libdvd/libdvdcss/.auto/
+/lib/libdvd/libdvdcss/Makefile
+/lib/libdvd/libdvdcss/Makefile.in
+/lib/libdvd/libdvdcss/aclocal.m4
+/lib/libdvd/libdvdcss/autom4te.cache/
+/lib/libdvd/libdvdcss/compile
+/lib/libdvd/libdvdcss/config.guess
+/lib/libdvd/libdvdcss/config.h
+/lib/libdvd/libdvdcss/config.h.in
+/lib/libdvd/libdvdcss/config.h.in~
+/lib/libdvd/libdvdcss/config.status
+/lib/libdvd/libdvdcss/config.sub
+/lib/libdvd/libdvdcss/config.log
+/lib/libdvd/libdvdcss/config.st
+/lib/libdvd/libdvdcss/configure
+/lib/libdvd/libdvdcss/configure.lineno
+/lib/libdvd/libdvdcss/depcomp
+/lib/libdvd/libdvdcss/install-sh
+/lib/libdvd/libdvdcss/libtool
+/lib/libdvd/libdvdcss/ltmain.sh
+/lib/libdvd/libdvdcss/missing
+/lib/libdvd/libdvdcss/stamp-h1
+/lib/libdvd/libdvdcss/m4/libtool.m4
+/lib/libdvd/libdvdcss/m4/ltoptions.m4
+/lib/libdvd/libdvdcss/m4/ltsugar.m4
+/lib/libdvd/libdvdcss/m4/ltversion.m4
+/lib/libdvd/libdvdcss/m4/lt~obsolete.m4
+/lib/libdvd/libdvdcss/src/d
+/lib/libdvd/libdvdcss/src/Makefile
+/lib/libdvd/libdvdcss/src/dvdcss/Makefile
+/lib/libdvd/libdvdcss/src/.dirstamp
+/lib/libdvd/libdvdcss/src/Makefile.in
+/lib/libdvd/libdvdcss/src/dvdcss/Makefile.in
+/lib/libdvd/libdvdcss/stamp-doxygen
+/lib/libdvd/libdvdcss/test/Makefile
+/lib/libdvd/libdvdcss/doc/doxygen.cfg
+/lib/libdvd/libdvdcss/doc/Makefile
+/lib/libdvd/libdvdcss/doc/Makefile.in
+/lib/libdvd/libdvdcss/doc/html/
+/lib/libdvd/libdvdcss/test/Makefile.in
+/lib/libdvd/libdvdcss/test/csstest
+/lib/libdvd/libdvdcss/test/csstest.exe
+
+# /lib/libdvd/libdvdnav/
+/lib/libdvd/libdvdnav/conf
+/lib/libdvd/libdvdnav/obj
+/lib/libdvd/libdvdnav/compile
+/lib/libdvd/libdvdnav/config.mak
+/lib/libdvd/libdvdnav/config.h
+/lib/libdvd/libdvdnav/config.status
+/lib/libdvd/libdvdnav/Makefile.in
+/lib/libdvd/libdvdnav/aclocal.m4
+/lib/libdvd/libdvdnav/config.guess
+/lib/libdvd/libdvdnav/config.h.in
+/lib/libdvd/libdvdnav/config.sub
+/lib/libdvd/libdvdnav/configure
+/lib/libdvd/libdvdnav/depcomp
+/lib/libdvd/libdvdnav/doc/Makefile.in
+/lib/libdvd/libdvdnav/examples/Makefile.in
+/lib/libdvd/libdvdnav/install-sh
+/lib/libdvd/libdvdnav/ltmain.sh
+/lib/libdvd/libdvdnav/m4/Makefile.in
+/lib/libdvd/libdvdnav/misc/Makefile.in
+/lib/libdvd/libdvdnav/missing
+/lib/libdvd/libdvdnav/src/Makefile.in
+/lib/libdvd/libdvdnav/src/vm/Makefile.in
+/lib/libdvd/libdvdnav/INSTALL
+/lib/libdvd/libdvdnav/autom4te.cache
+/lib/libdvd/libdvdnav/config.h.in~
+
+# /lib/libdvd/libdvdread/
+/lib/libdvd/libdvdread/compile
+/lib/libdvd/libdvdread/config.h
+/lib/libdvd/libdvdread/obj
+/lib/libdvd/libdvdread/config.mak
+/lib/libdvd/libdvdread/Makefile.in
+/lib/libdvd/libdvdread/aclocal.m4
+/lib/libdvd/libdvdread/config.guess
+/lib/libdvd/libdvdread/config.h.in
+/lib/libdvd/libdvdread/config.sub
+/lib/libdvd/libdvdread/configure
+/lib/libdvd/libdvdread/depcomp
+/lib/libdvd/libdvdread/install-sh
+/lib/libdvd/libdvdread/ltmain.sh
+/lib/libdvd/libdvdread/m4/Makefile.in
+/lib/libdvd/libdvdread/misc/Makefile.in
+/lib/libdvd/libdvdread/missing
+/lib/libdvd/libdvdread/src/Makefile.in
+/lib/libdvd/libdvdread/INSTALL
+/lib/libdvd/libdvdread/autom4te.cache
+/lib/libdvd/libdvdread/config.h.in~
+
+# /lib/libmpeg2/
+/lib/libmpeg2/config.log
+/lib/libmpeg2/config.status
+/lib/libmpeg2/libtool
+/lib/libmpeg2/configure.lineno
+/lib/libmpeg2/Makefile
+/lib/libmpeg2/src/*.exe
+
+# /lib/libmpeg2/doc/
+/lib/libmpeg2/doc/Makefile
+
+# /lib/libmpeg2/include/
+/lib/libmpeg2/include/stamp-h1
+/lib/libmpeg2/include/config.h
+/lib/libmpeg2/include/Makefile
+
+# /lib/libmpeg2/libmpeg2/
+/lib/libmpeg2/libmpeg2/Makefile
+
+# /lib/libmpeg2/libmpeg2/convert/
+/lib/libmpeg2/libmpeg2/convert/Makefile
+
+# /lib/libmpeg2/libvo/
+/lib/libmpeg2/libvo/Makefile
+
+# /lib/libmpeg2/src/
+/lib/libmpeg2/src/Makefile
+/lib/libmpeg2/src/corrupt_mpeg2
+/lib/libmpeg2/src/extract_mpeg2
+/lib/libmpeg2/src/mpeg2dec
+
+# /lib/libmpeg2/test/
+/lib/libmpeg2/test/Makefile
+
+# /lib/libmpeg2/vc++/
+/lib/libmpeg2/vc++/Makefile
+
+# /lib/xbadpcm/
+/lib/xbadpcm/Makefile
+/lib/xbadpcm/adpcm.lib
+
+# /lib/nosefart/
+/lib/nosefart/Makefile
+/lib/nosefart/NoseFart.lib
+/lib/nosefart/Debug
+/lib/nosefart/Release
+
+# /lib/libsidplay2/
+/lib/libsidplay2/Makefile
+
+# /lib/libsidplay2/libsidplay/win/VC
+/lib/libsidplay2/libsidplay/win/VC/Debug
+/lib/libsidplay2/libsidplay/win/VC/Release
+
+# /lib/snesapu/SNES/SNESAPU/
+/lib/snesapu/SNES/SNESAPU/Makefile
+
+# /lib/stsound/StSoundLibrary/
+/lib/stsound/StSoundLibrary/Makefile
+/lib/stsound/StSoundLibrary/StSoundLibrary.lib
+/lib/stsound/StSoundLibrary/Debug
+/lib/stsound/StSoundLibrary/Release
+
+# /lib/timidity/
+/lib/timidity/Makefile
+
+# /lib/vgmstream/
+/lib/vgmstream/Makefile
+
+# /lib/vgmstream/win32/
+/lib/vgmstream/win32/Debug
+/lib/vgmstream/win32/Release
+/lib/vgmstream/win32/win32.ncb
+/lib/vgmstream/win32/win32.suo
+/lib/vgmstream/win32/win32.lib
+
+#/lib/win32
+/lib/win32/*.tar*
+/lib/win32/pax_global_header
+
+#/lib/win32/ffmpeg
+/lib/win32/ffmpeg/
+
+# /lib/cmyth/
+/lib/cmyth/Makefile.depend
+/lib/cmyth/Win32/libcmyth.lib
+
+# /lib/cmyth/Win32
+/lib/cmyth/Win32/Debug
+/lib/cmyth/Win32/Release
+
+# lib/cximage-6.0/
+/lib/cximage-6.0/Makefile
+/lib/cximage-6.0/Debug
+/lib/cximage-6.0/Release
+/lib/cximage-6.0/*/Debug
+/lib/cximage-6.0/*/Release
+
+# /lib/cximage-6.0/zlib/
+/lib/cximage-6.0/zlib/zconf.h
+/lib/cximage-6.0/zlib/Makefile
+
+# /lib/libexif
+/lib/libexif/Makefile
+/lib/libexif/Debug (DLL)
+/lib/libexif/Release (DLL)
+/lib/libexif/libexif.lib
+
+/lib/libhdhomerun/Makefile
+
+# /lib/libhts/Win32
+/lib/libhts/Win32/Debug
+/lib/libhts/Win32/Release
+
+
+# /lib/libRTV/
+/lib/libRTV/Makefile
+/lib/libRTV/Debug
+/lib/libRTV/Release
+
+/lib/libsquish/Makefile
+/lib/libsquish/lib/squishd.lib
+/lib/libsquish/lib/squish.lib
+/lib/libsquish/vs7/squish/Debug
+/lib/libsquish/vs7/squish/Release
+
+/lib/libUPnP/Makefile
+
+# /lib/libXDAAP
+/lib/libXDAAP/Makefile
+/lib/libXDAAP/libXDAAP_win32/Debug
+/lib/libXDAAP/libXDAAP_win32/Release
+
+# /portable_data
+/portable_data
+
+/addons/library.xbmc.addon/libXBMC_addon.dll
+/addons/library.xbmc.addon/libXBMC_addon.lib
+/addons/library.xbmc.codec/libXBMC_codec.dll
+/addons/library.xbmc.codec/libXBMC_codec.lib
+/addons/library.xbmc.gui/libXBMC_gui.dll
+/addons/library.xbmc.gui/libXBMC_gui.lib
+/addons/library.xbmc.pvr/libXBMC_pvr.dll
+/addons/library.xbmc.pvr/libXBMC_pvr.lib
+
+/pvr-addons
diff --git a/Kodi.xcodeproj/project.pbxproj b/Kodi.xcodeproj/project.pbxproj
index 6dd3cf2..a9ecd08 100644
--- a/Kodi.xcodeproj/project.pbxproj
+++ b/Kodi.xcodeproj/project.pbxproj
@@ -179,6 +179,9 @@
 		3802709A13D5A653009493DD /* SystemClock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3802709813D5A653009493DD /* SystemClock.cpp */; };
 		384718D81325BA04000486D6 /* XBDateTime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 384718D61325BA04000486D6 /* XBDateTime.cpp */; };
 		38F4E57013CCCB3B00664821 /* Implementation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 38F4E56C13CCCB3B00664821 /* Implementation.cpp */; };
+		395F6DDD1A8133360088CC74 /* GUIDialogSimpleMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 395F6DDB1A8133360088CC74 /* GUIDialogSimpleMenu.cpp */; };
+		395F6DDE1A8133360088CC74 /* GUIDialogSimpleMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 395F6DDB1A8133360088CC74 /* GUIDialogSimpleMenu.cpp */; };
+		395F6DDF1A8133360088CC74 /* GUIDialogSimpleMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 395F6DDB1A8133360088CC74 /* GUIDialogSimpleMenu.cpp */; };
 		431AE5DA109C1A63007428C3 /* OverlayRendererUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 431AE5D7109C1A63007428C3 /* OverlayRendererUtil.cpp */; };
 		432D7CE412D86DA500CE4C49 /* NetworkLinux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 432D7CE312D86DA500CE4C49 /* NetworkLinux.cpp */; };
 		432D7CF712D870E800CE4C49 /* TCPServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 432D7CF612D870E800CE4C49 /* TCPServer.cpp */; };
@@ -4050,6 +4053,8 @@
 		38F4E56C13CCCB3B00664821 /* Implementation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Implementation.cpp; sourceTree = "<group>"; };
 		38F4E56D13CCCB3B00664821 /* README.platform */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.platform; sourceTree = "<group>"; };
 		38F4E56E13CCCB3B00664821 /* ThreadLocal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThreadLocal.h; sourceTree = "<group>"; };
+		395F6DDB1A8133360088CC74 /* GUIDialogSimpleMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GUIDialogSimpleMenu.cpp; sourceTree = "<group>"; };
+		395F6DDC1A8133360088CC74 /* GUIDialogSimpleMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GUIDialogSimpleMenu.h; sourceTree = "<group>"; };
 		430C881312D64A730098821A /* IPowerSyscall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IPowerSyscall.h; sourceTree = "<group>"; };
 		431376FF12D6455C00680C15 /* GUIDialogCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GUIDialogCache.h; sourceTree = "<group>"; };
 		431AE5D7109C1A63007428C3 /* OverlayRendererUtil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OverlayRendererUtil.cpp; sourceTree = "<group>"; };
@@ -7014,6 +7019,8 @@
 				E38E17D10D25F9FA00618676 /* GUIDialogSeekBar.h */,
 				F5AACA670FB3DE2D00DBB77C /* GUIDialogSelect.cpp */,
 				F5AACA660FB3DE2D00DBB77C /* GUIDialogSelect.h */,
+				395F6DDB1A8133360088CC74 /* GUIDialogSimpleMenu.cpp */,
+				395F6DDC1A8133360088CC74 /* GUIDialogSimpleMenu.h */,
 				F5AACA950FB3E2B800DBB77C /* GUIDialogSlider.cpp */,
 				F5AACA960FB3E2B800DBB77C /* GUIDialogSlider.h */,
 				E38E17D60D25F9FA00618676 /* GUIDialogSmartPlaylistEditor.cpp */,
@@ -11549,6 +11556,7 @@
 				DFECFB09172D9CAB00A43CF7 /* SettingAddon.cpp in Sources */,
 				DFECFB0C172D9CAB00A43CF7 /* SettingControl.cpp in Sources */,
 				DFECFB0E172D9CAB00A43CF7 /* SettingPath.cpp in Sources */,
+				395F6DDD1A8133360088CC74 /* GUIDialogSimpleMenu.cpp in Sources */,
 				DFECFB1C172D9D0100A43CF7 /* BooleanLogic.cpp in Sources */,
 				DFECFB4C172D9D6D00A43CF7 /* NetworkServices.cpp in Sources */,
 				F5DB700217322DBB00D4DF21 /* FavouritesOperations.cpp in Sources */,
@@ -12695,6 +12703,7 @@
 				DFF0F44B17528350002DA3A4 /* TextureDatabase.cpp in Sources */,
 				DFF0F44C17528350002DA3A4 /* ThumbLoader.cpp in Sources */,
 				DFF0F44D17528350002DA3A4 /* ThumbnailCache.cpp in Sources */,
+				395F6DDF1A8133360088CC74 /* GUIDialogSimpleMenu.cpp in Sources */,
 				DFF0F44E17528350002DA3A4 /* URL.cpp in Sources */,
 				DFF0F44F17528350002DA3A4 /* Util.cpp in Sources */,
 				DFF0F45017528350002DA3A4 /* XBApplicationEx.cpp in Sources */,
@@ -13348,6 +13357,7 @@
 				E499127E174E5D9900741B6D /* DirectoryNodeAlbumCompilations.cpp in Sources */,
 				E499127F174E5D9900741B6D /* DirectoryNodeAlbumCompilationsSongs.cpp in Sources */,
 				E4991280174E5D9900741B6D /* DirectoryNodeAlbumRecentlyAdded.cpp in Sources */,
+				395F6DDE1A8133360088CC74 /* GUIDialogSimpleMenu.cpp in Sources */,
 				E4991281174E5D9900741B6D /* DirectoryNodeAlbumRecentlyAddedSong.cpp in Sources */,
 				E4991282174E5D9900741B6D /* DirectoryNodeAlbumRecentlyPlayed.cpp in Sources */,
 				E4991283174E5D9900741B6D /* DirectoryNodeAlbumRecentlyPlayedSong.cpp in Sources */,
diff --git a/addons/repository.pvr-android.xbmc.org/addon.xml b/addons/repository.pvr-android.xbmc.org/addon.xml
deleted file mode 100644
index a0545af..0000000
--- a/addons/repository.pvr-android.xbmc.org/addon.xml
+++ /dev/null
@@ -1,166 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="repository.pvr-android.xbmc.org"
-		name="Kodi PVR Add-on repository"
-		version="1.1.16"
-		provider-name="XBMC Foundation">
-  <requires>
-    <import addon="xbmc.addon" version="12.0.0"/>
-    <import addon="xbmc.pvr" version="1.9.0"/>
-  </requires>
-	<extension point="xbmc.addon.repository"
-		name="Official XBMC.org PVR Add-on Repository">
-		<info compressed="true">http://mirrors.kodi.tv/addons/gotham/pvr/android/addons.xml</info>
-		<checksum>http://mirrors.kodi.tv/addons/gotham/pvr/android/addons.xml.md5</checksum>
-		<datadir zip="true">http://mirrors.kodi.tv/addons/gotham/pvr/android</datadir>
-		<hashes>true</hashes>
-	</extension>
-	<extension point="xbmc.addon.metadata">
-		<summary lang="am">ከ Kodi.tv የ PVR ተጨማ-ሪዎች መግጠሚያ </summary>
-		<summary lang="ar">ثبت اضافة البي في ار PVR من موقع kodi.tv</summary>
-		<summary lang="bg">Инсталира PVR добавки от Kodi.tv</summary>
-		<summary lang="ca">Instal·la complements PVR des de Kodi.tv</summary>
-		<summary lang="cs">Nainstalovat rozšíření PVR z Kodi.tv</summary>
-		<summary lang="cy">Gosod Ychwanegon PVR o Kodi.tv</summary>
-		<summary lang="da">Installer PVR Add-ons fra Kodi.tv</summary>
-		<summary lang="de">Installiere PVR Addons von Kodi.tv</summary>
-		<summary lang="el">Εγκατάσταση Πρόσθετων PVR από το Kodi.tv</summary>
-		<summary lang="en">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_AU">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_NZ">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_US">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="es">Instalar Complementos de PVR de Kodi.tv</summary>
-		<summary lang="es_AR">Instalar complemento PVR desde Kodi.tv</summary>
-		<summary lang="es_MX">Instalar Complementos PVR de Kodi.tv</summary>
-		<summary lang="et">Paigalda videosalvesti lisasid lehelt Kodi.tv</summary>
-		<summary lang="eu">Instalatu PVR gehigarriak Kodi.tv-etik</summary>
-		<summary lang="fi">Asenna PVR-lisäosia Kodi.tvista</summary>
-		<summary lang="fr">Installer des extensions Magnétoscope numérique depuis Kodi.tv</summary>
-		<summary lang="fr_CA">Installer des addiciels de numériscopes depuis Kodi.tv</summary>
-		<summary lang="gl">Instalar Engadidos de PVR dende Kodi.tv</summary>
-		<summary lang="he">התקנת הרחבות מ־Kodi.tv</summary>
-		<summary lang="hr">Instaliraj PVR dodatke s Kodi.tv</summary>
-		<summary lang="hu">PVR kiegészítők telepítése az Kodi.tv-ról</summary>
-		<summary lang="id">Pasang Pengaya PVR dari Kodi.tv</summary>
-		<summary lang="is">Settu inn viðbætur fyrir persónulega myndupptöku (PVR) frá Kodi.tv</summary>
-		<summary lang="it">Installa l'addon PVR da Kodi.tv</summary>
-		<summary lang="ja">Kodi.tv から PVR アドオンをインストール</summary>
-		<summary lang="ko">Kodi.tv에서 PVR 애드온 설치</summary>
-		<summary lang="lt">Įdiekite PVR priedą iš Kodi.tv</summary>
-		<summary lang="lv">Instalēt PVR pielikumus no Kodi.tv</summary>
-		<summary lang="mk">Инсталирај PVR addon-и од Kodi.tv</summary>
-		<summary lang="mn_MN">Kodi.tv-с PVR нэмэлт суулгах</summary>
-		<summary lang="mr">Kodi.ORG  वरून PVR अद्डोंस इंस्टाल करा </summary>
-		<summary lang="nl">Installeer PVR Add-ons van Kodi.tv</summary>
-		<summary lang="no">Installere PVR tillegg fra Kodi.tv</summary>
-		<summary lang="pl">Instaluj klienty TV z Kodi.tv</summary>
-		<summary lang="pt">Instalar Add-ons PVR de Kodi.tv</summary>
-		<summary lang="pt_BR">Instalar Add-ons de PVR do repositório Kodi.tv</summary>
-		<summary lang="ru">Установить дополнения с сайта Kodi.tv</summary>
-		<summary lang="sk">Inštalovať PVR doplnky z Kodi.tv</summary>
-		<summary lang="sl">Namestite dodatke PVR z Kodi.tv</summary>
-		<summary lang="sv">Installera PVR-tillägg från Kodi.tv</summary>
-		<summary lang="tg">Насб кардани барномаи иловагии PVR аз Kodi.tv</summary>
-		<summary lang="th">ติดตั้งส่วนเสริม PVR จาก Kodi.tv</summary>
-		<summary lang="tr">Kodi.tv sitesinden PVR Eklentilerini Yükle</summary>
-		<summary lang="uk">Встановити додатки PVR з Kodi.tv</summary>
-		<summary lang="zh">从 Kodi.tv 安装 PVR 插件</summary>
-		<summary lang="zh_TW">從Kodi.tv安裝PVR附加元件</summary>
-		<description lang="ar">نزل ونصب اضاقة البي في ار من موقع اكس بي ام سي الرسمي مستودع الاضافات "repository". باستخدامك للمستودع الرسمي ستستفيد من تعدد سيرفراتنا التي ستعطيك سرعة اكبر في تنزيل بجعلك تنزل من منطقة قريبة منك. كل الاضافات في هذا المستودع مرت على اختبارات مبدئية ولكن اذا وجدت اي خلل او خطأ في في الاضافات فالرجاء الابلاغ عنها الى فريق اكس بي ام سي لنستطيع اخذ اي اجراء لازم.</description>
-		<description lang="bg">Сваля и инсталира PVR добавки от официалното хранилище за добавки на Kodi.tv. Ползвайки добавката ще се възползвате от системата ни от огледални сървъри - за да сваляте с висока скорост, от сървър близък до Вас. Добавките от хранилището са минали няколко теста, но ако се натъкнете на неработеща или проблемна добавка, моля уведомете екипа на Kodi, за да бъдат предприети необходимите действия.</description>
-		<description lang="cs">Stáhnout a nainstalovat rozšíření z oficiálního repozitáře Kodi.tv. [CR]  Použitím oficiálního repozitáře získáte rozsáhlý systém zrcadel, který vám umožní rychlé stažení z blízkého regionu.[CR]  Všechna rozšíření v repozitáři prošla základním testováním. Pokud najdete rozbitý, nebo nefunkční rozšíření, nahlaste jej prosím týmu Kodi, abychom mohli dle potřeby zakročit.</description>
-		<description lang="cy">Llwythwch i law a gosod ategion amserydd o storfa swyddogol Kodi.tv.[CR] Drwy ddefnyddio'r gronfa swyddogol mae modd i chi gymryd mantais o'n gwasanaeth ffeiliau helaeth i allu llwytho ffeiliau i lawr o'ch ardal chi.[CR]Bydd pob ategyn ar y storfa wedi ei phrofi, ond os ddowch ar draws rhai sydd wedi torri neu ddim yn gweithio gadewch i Team-Kodi wybod er mwyn i ni gael gweithredi ar y mater.</description>
-		<description lang="da">Hent og installer add-ons fra det officielle Kodi.tv add-on repository.[CR] Ved at bruge det officielle repository får du fordel af vores omfattende distributionstjeneste, som gør at du kan downloade hurtigere fra et sted nær dig.[CR] Alle add-ons i dette fjernlager har gennemgået grundlæggende tests. Hvis du finder en defekt eller fejlbehæftet add-on, så rapporter venligst dette til Team-Kodi, så vi kan tage hånd om eventuelle problemer.</description>
-		<description lang="de">Dies ist das offizielle Kodi.tv PVR-Addon-Verzeichnis.[CR]Dieses Addon-Verzeichnis ermöglicht aufgrund umfangreicher Spiegelserver in der Nähe schnelle Downloads.[CR]Alle Addons in diesem Verzeichnis wurden einfachen Tests unterzogen. Sollte dennoch ein Addon nicht richtig funktionieren benachrichtige bitte Team-Kodi damit wir reagieren können.</description>
-		<description lang="el">Λήψη και εγκατάσταση πρόσθετων από το επίσημο αποθετήριο του Kodi.tv.[CR]  Χρησιμοποιώντας το Επίσημο Αποθετήριο μπορείτε να εκμεταλλευτείτε τους εκτεταμένους διακομιστές αρχείων μας για ταχύτερες λήψεις από μία κοντινή σας περιοχή.[CR]  Όλα τα πρόσθετα σε αυτό το αποθετήριο έχουν περάσει τις στοιχειώδεις δοκιμές, αν βρείτε ένα κατεστραμμένο ή ανενεργό πρόσθετο παρακαλούμε να το αναφέρετε στην Ομάδα Kodi ούτως ώστε να ληφθούν οι απαραίτητες ενέργειες.</description>
-		<description lang="en">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_AU">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have undergone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_NZ">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_US">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="es">Descarga e instala Complementos de PVR desde el repositorio oficial de Kodi.[CR] Usando el repositorio oficial tendrás las ventajas de nuestro servicio de mirrors para ayudarte a conseguir unas descargas más rápidas de un sitio cercano a ti.[CR] Todos los Complementos en este repositorio han pasado por un periodo de pruebas básico, pero si encuentras algún Complemento que no funciona, por favor informa de ello al equipo de Kodi para solucionar el problema.</description>
-		<description lang="es_AR">Descarga e instala el complemento desde el repositorio oficial de Kodi.tv.[CR] Usando el repositorio oficial tendrá las ventajas de nuestro servicio de réplicas para ayudarle a conseguir unas descargas más rápidas de un sitio cercano a su región.[CR] Todos los complementos en este repositorio han pasado por un periodo de pruebas básico, pero si encuentra algún complemento que no funciona, por favor infórmelo al equipo de Kodi para que podamos tomar las acciones necesarias.</description>
-		<description lang="es_MX">Descarga e instala complementos del repositorio oficial Kodi.tv.[CR] Al usar el repositorio oficial, tendrá la ventaja de nuestro servicio extenso de espejos para ayudarle a tener descargas mas rapidas desde una region mas cerca de usted.[CR] Todos los complementos en este repositorio se han probado de manera básica, si encuentra alguno que no funciona o roto, favor de reportarlo al Equipo de Kodi para poder tomar las medidas necesarias.</description>
-		<description lang="et">Lae alla ja installi videosalvesti lisasid ametlikust Kodi.tv hoidlast.[CR]  Ametliku hoidla kasutamise eeliseks on võimalus kasutada meie ulatuslikku failide peegelteenust laadides faile sulle kõige lähemast serverist.[CR]  Kõik lisad selles hoidlas on läbinud elementaarse testimise. Siiski, kui sa leiad vigase või mittetöötava lisa, siis palun teavita sellest Kodi meeskonda, et me saaksime vajaliku abi osutada.</description>
-		<description lang="fr">Télécharger et installer des extensions à partir du dépôt officiel Kodi.tv.[CR]  En utilisant le dépôt officiel, vous bénéficierez de notre service de serveurs miroirs vous permettant de télécharger rapidement depuis une région proche de vous.[CR]  Toutes les extensions de ce dépôt ont été testées de manière basique, si vous trouvez une extension corrompue ou inutilisable, merci d'en informer la Team-Kodi afin que nous puissions prendre les mesures nécessaires.</description>
-		<description lang="fr_CA">Télécharger et installer des addiciels de numériscopes depuis le dépôt officiel de Kodi.tv.[CR] En utilisant le dépôt officiel vous pourrez bénéficier de notre service étendu de miroirs de fichiers favorisant des téléchargements plus rapides depuis une région proche de vous.[CR] Tous les addiciels de ce dépôt ont subi des tests de base. Si vous trouvez un addiciel non fonctionnel ou brisé, veuillez le rapporter à l'équipe-Kodi afin que nous puissions agir.</description>
-		<description lang="gl">Descargar e instalar Engadidos de PVR dende o repositorio oficial de Kodi.tv.[CR] Empregando o repositorio oficial, vostede poderá gozar das vantaxes do seu extenso servizo de replicación de ficheiros que lle permite unhas descargas máis rápidas dende unha rexión preto a vostede.[CR] Tódolos Engadidos deste repositorio pasaron por comprobacións básicas. Se atopa algún Engadido roto ou non funcional, por favor reporteo ó equipo de Kodi para que poidan actuar en consecuencia.</description>
-		<description lang="he">הורדה והתקנת הרחבות ממאגר הרחבות Kodi.tv הרשמי.[CR] שימוש במאגר הרשמי מאפשר לנצל את שירות שיקוף הקבצים של Kodi.tv העוזר להוריד מהר יותר מהשרת הקרוב ביותר.[CR] כל ההרחבות במאגר זה עברו בדיקה בסיסית. יש לדווח לצוות הפיתוח של Kodi על כל הרחבה שנמצאה כלא תקינה או שלא עובדת ע"מ שתתבצע הפעולה המתאימה.</description>
-		<description lang="hr">Preuzmite i instalirajte PVR dodatke sa službenog Kodi.tv repozitorija dodataka.[CR]  Korištenjm službenog repozitorija biti ćete u mogućnosti iskoristiti prednost našeg zrcalnog poslužitelja u svrhu bržeg preuzimanja iz regije bliže vama.[CR]  Svi dodaci na ovom repozitoriju prošli su osnovno testiranje. Ako pronađete slomljeni ili dodatak koji ne radi, prijavite ga Kodi timu da ga možemo popraviti.</description>
-		<description lang="hu">PVR Kiegészítők letöltése és telepítése a hivatalos Kodi.tv tárolóhelyről.[CR] A hivatalos tárolóhely használatával kihasználhatod szerteágazó tükör-kiszolgáló hálózatunkat, ami segít a gyorsabb letöltésben egy hozzád közelebb eső körzet használatával.[CR]  Minden kiegészítő ezen a tárolóhelyen átment egy alaptesztelésen. Ha mégis hibás vagy nem működő kiegészítőt találsz, kérünk jelezd az Kodi csapatnak, hogy megtegyük a szükséges lépéseket.</description>
-		<description lang="id">Unduh dan pasang pengaya dari repositori pengaya resmi Kodi.tv. [CR] Dengan menggunakan repositori resmi anda akan mendapat keuntungan dari miror berkas kami yang luas dimana dapat membantu anda untuk lebih cepat mengunduh dari daerah yang dekat dengan anda. [CR] Semua pengaya pada repository telah melalui uji coba standar, jika anda menemukan pengaya yang rusak atau tidak bekerja tolong laporkan kepada tim Kodi agar kami bisa menindak lanjutinya.</description>
-		<description lang="is">Náðu í og settu inn PVR viðbætur frá viðurkenndu Kodi.tv viðbóta safninu.[CR]  með því að nota viðurkennt geymslusafn þá nýturðu kosta skráaspeglunarþjónustu okkar sem veitir þér hraðvirkara niðurhal frá miðlara sem næst þér.[CR]  Allar viðbætur í þessu geymslusafni hafa undirgengist undirstöðuprófanir, ef þú finnur bilaða viðbót eða einhverja sem virkar ekki, þá vinsamlegast tilkynntu það til Team-Kodi svo við getum gripið til viðeigandi ráðstafanna.</description>
-		<description lang="it">Scarica ed installa gli add-on dalla libreria ufficiale di Kodi.tv[CR] Usando la libreria ufficiale avrai il vantaggio di ottenere download più veloci con mirror più vicini alla tua località.[CR] Tutti gli add-on in questa libreria sono stati sottoposti a test di base, se ne trovi uno non funzionante o corrotto, per favore riporta il problema al team di Kodi così potremmo prendere provvedimenti.</description>
-		<description lang="ja">公式の Kodi.tv アドオンリポジトリからPVRアドオンをダウンロードしインストールします。[CR]公式のリポジトリを利用することで、私達の大規模なファイル・ミラーサービスから、よりあなたに近い地域からの高速なダウンロードが可能になります。[CR]このリポジトリのすべてのアドオンは、基本的なテストは行っています。もしも壊れている、もしくは、動かないアドオンを見つけた場合は、Kodi チームに報告してください。</description>
-		<description lang="ko">공식 Kodi.tv 애드온 저장소에서 PVR 애드온을 다운로드하여 설치합니다.[CR] 공식 저장소를 사용하면 파일 미러링 서비스를 통해 사용자와 가까운 곳에서 빠르게 다운로드할 수 있습니다.[CR] 저장소의 모든 애드온은 기본 테스트를 거치지만 작동이 되지 않거나 손상된 추가기능을 발견하면 필요한 조치를 취할 수 있게 Team-Kodi로 알려주시기 바랍니다.</description>
-		<description lang="lt">Atsisiųskite ir įdiekite PVR priedą iš oficialios Kodi.tv priedų saugyklos. [Cr] Naudojant oficialią saugyklą galėsite pasinaudoti mūsų  failų Veidrodine saugyklos paslauga katra padės jums greičiau parsisiųsti iš artimiausios vietos šalia jūsų. [CR] Visi priedai šioje saugykloje yra perėję pagrindinį testavimą, jei atsisiuntėte neveikiantį ar/arba sugadintą priedą praneškite 'Team-Kodi', kad galėtume imtis visų būtinų priemonių klaidai ištaisyti.</description>
-		<description lang="lv">Lejupielādējiet un instalējiet PVR pielikumus no oficiālā Kodi.tv pielikumu repozitorija.[CR]  Izmantojot oficiālo repozitoriju, varēsiet izmantot mūsu plašo spoguļu pakalpojumu, lai iegūtu ātrākas lejupielādes no reģiona, kas vistuvāk.[CR]  Visi pielikumi šajā repozitorijā ir izgājuši pamata testēšanu, bet, ja atrodat saplīsušu vai nestrādājošu pielikumu, lūdzu, ziņojiet par to Team-Kodi, lai varam izpildīt nepieciešamās labošanas darbības.</description>
-		<description lang="mk">Превземи и инсталирај PVR addon-и од официјалното складиште на Kodi.tv.[CR] Кога го користиш официјалното складиште, можеш да ги искористиш нашите бројни мирори за фајлови за побрзо симнување преку сервер близу до тебе.[CR] Сите addon-и на ова складиште имаат поминато основни тестови, но ако најдеш расипан add-on, те молиме пријави го на Team-Kodi за да можеме да превземеме иницијатива.</description>
-		<description lang="nl">Download en installeer PVR add-ons van het officiële Kodi.tv addon-repository.[CR] Wanneer u het officiële repository gebruikt beschikt u over onze uitgebreide mirrorservice, waardoor u snel kan downloaden van locaties in uw buurt.[CR] Alle add-ons in dit repository ondergingen standaardtests; indien u een defecte of niet-werkende add-on vindt, meld dit dan aan Team-Kodi zodat zij actie kunnen ondernemen.</description>
-		<description lang="no">Last ned og installer tillegg fra den offisielle Kodi.tv pakkebrønnen.[CR] Når du benytter den offisielle brønnen drar du fordel av vår utvidede filspeilingstjeneste slik at du får raskere nedlastinger fra en server nær deg.[CR] Alle tillegg i denne brønnen har gått gjennom en grunnleggende testing, men hvis du finner et tillegg som ikke fungerer, vennligst rapporter det til Team-Kodi så vi får sett på det.</description>
-		<description lang="pl">Pobieraj i instaluj wtyczki PVR z oficjalnego repozytorium Kodi.tv.[CR] Używając oficjalnego repozytorium korzystasz z serwerów lustrzanych, rozsianych po całym świecie. Wybierany jest ten, który znajduje się najbliżej ciebie, zapewniając dużą prędkość połączenia.[CR]Wszystkie dodatki znajdujące się w tym repozytorium są testowane, ale mogą okazać się niesprawne. Zgłoś wówczas błąd, aby zespół Kodi mógł podjąć odpowiednie działanie.</description>
-		<description lang="pt">Transferir e instalar add-ons PVR do repositório oficial Kodi.tv.[CR] Ao usar o repositório oficial, os nossos servidores garantem-lhe sempre transferências rápidas a partir da localização mais próxima.[CR] Todos os Add-ons neste repositório foram alvo de testes preliminares. Na improvável hipótese de encontrar um Add-on que não funcione, por favor contacte a equipa do Kodi, para que a situação se resolva.</description>
-		<description lang="pt_BR">Transfira e instale add-ons de Tv ao Vivo, a partir do repositório oficial do Kodi.tv.[CR]|Ao utilizar o repositório oficial, você será capaz de tirar proveito do nosso serviço de espelhamento de arquivos, auxiliando em downloads mais rápidos a partir de uma região perto de você.[CR]|Todos os add-ons neste repositório passam por testes básicos, se você encontrar algum quebrado ou que não esteja funcionando, por favor reporte para a equipe do Kodi, para que possamos tomar as ações necessárias.</description>
-		<description lang="ru">Загружайте и устанавливайте обновления из официального репозитория Kodi.tv[CR]Используя официальный репозиторий, вы сможете воспользоваться преимуществами распределенного хранилища для быстрой загрузки файлов с ближайшего к вам сервера.[CR]Все дополнения в данном репозитории прошли тестирование. Если вы обнаружили нерабочее дополнение, сообщите об этом разработчикам Kodi.</description>
-		<description lang="sk">Stiahnuť a nainštalovať PVR rozšírenia z oficiálneho zdroja rozšírení Kodi.tv.[CR] Použitím oficiálneho zdroja získavate možnosť využiť rozsiahly systém zrkadiel, ktorý Vám umožní rýchlejšie sťahovanie z Vám blízkeho regiónu.[CR] Všetky rozšírenia v tomto zdroji boli podrobené základnému testovaniu. Ak nájdete poškodené alebo nefunkčné rozšírenie, oznámte to prosím týmu Kodi aby mohol podľa potreby zakročiť.</description>
-		<description lang="sl">Prenos in namestitev dodatkov PVR iz uradnega skladišča Kodi.tv.[CR] Z uporabo uradnega skladišča, boste lahko izkoristili hitrejšo povezavo, ki bo izbrana glede na vašo lokacijo.[CR] Vsi dodatki tega skladišča so bili osnovno stestirani, če pa boste našli pokvarjen ali nedelujoč dodatek, to sporočite ekipi Kodi, da bomo lahko odpravili napake.</description>
-		<description lang="sv">Ladda ner och installera PVR-tillägg från det officiella tilläggsförrådet på Kodi.tv.[CR] Genom att använda det officiella förrådet kommer du att få fördelen att kunna använda vår omfattande speglingstjänst som hjälper dig till snabbare nedladdningar från en plats nära dig.[CR] Alla tillägg i detta förråd har genomgått grundläggande tester. Hittar du ett trasigt eller icke fungerande tillägg, vänligen meddela detta till Team-Kodi så att vi kan vidta nödvändiga åtgärder.</description>
-		<description lang="tg">Барномаҳои иловагии PVR-ро аз анбори нармафзори расмии Kodi.tv боргирӣ кунед ва насб кунед.[CR]  Агар анбори нармафзори расмиро истифода баред, метавонед нармафзори иловагиро аз серверҳои наздиктарин ба шумо боргирӣ намоед.[CR]  Ҳамаи нармафзори анбори зикршуда аз санҷиши асосӣ мегузаранд, ва агар шумо ягон барномаи иловагии вайроншуда ё ғайрифаъолро пайдо кунед, метавонед дар бораи он гузоришро ба Гурӯҳи кории Kodi фиристонед, то ки барномасозон тавонанд камбудиҳои пайдошударо ҳал кунанд.</description>
-		<description lang="tr">PVR Eklentilerini Resmi Kodi.tv eklenti deposundan indir ve yükle.[CR]Resmi yazılım depomuzu kullanarak size en yakın bölgeden en hızlı biçimde indirme yapmanızı sağlayacak gelişkin dosya aynalama servisini kullanma avantajını elde edeceksiniz.[CR]Bu yazılım deposundaki tüm eklentiler temel testlerden geçerler, şayet hatalı ya da çalışmayan bir eklenti bulur iseniz lütfen düzeltilmesi için bu durumu Kodi Takımına bildiriniz.</description>
-		<description lang="zh">从官方 Kodi.tv 插件库下载和安装 PVR 插件。[CR] 通过官方程序库你将能利用我们广泛的镜像服务优势,使你能够就近下载资源。[CR] 官方库中的所有插件都经过了基本的测试,如果你发现有失效或不能正常工作的插件,请向 Kodi 开发团队报告,以便及时处理。</description>
-		<description lang="zh_TW">從Kodi.tv安裝PVR附加元件。[CR]使用官方資料庫,你可以直接從你地區內的伺服器下載,享受更快速的體驗。[CR]所有的附加原件都已經經過基本測試。但如果你發現有損壞或不正常運作的附加原件,請回報於Kodi開發團隊。</description>
-		<disclaimer lang="af">Die Kodi span het nie al die byvoegsels in die kodebank gemaak nie en is nie verantwoordelik vir hulle inhoud nie</disclaimer>
-		<disclaimer lang="am">የ Kodi ቡድን እዚህ ማጠራቀሚያ ውስጥ ያሉትን የ ተጨማ-ሪዎች ይዞታ አልፈጠሩም ስለዚህም ምንም አይነት ሀላፊነት አይወስዱም</disclaimer>
-		<disclaimer lang="ar">بعض اﻹضافات فى هذا المستوع غير مصنوعة من قِبل فريق إكس بي إم سي ولذا يُرجى العلم أن فريق إكس بي إم سي غير مسؤول عن ماقد تسببه لك تلك اﻹضافات</disclaimer>
-		<disclaimer lang="be">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="bg">Team-Kodi (Екипът зад Kodi) не е автор на всички добавки в хранилището и не носи отговорност за съдържанието им</disclaimer>
-		<disclaimer lang="ca">L'equip del Kodi no ha fet tots els complements d'aquest dipòsit i per tant no són responsables del seu contingut.</disclaimer>
-		<disclaimer lang="cs">Tým Kodi nevytvořil všechna rozšíření v tomto repozitáři a není zodpovědný za jejich obsah</disclaimer>
-		<disclaimer lang="cy">Nid Team-Kodi wnaeth yr holl ychwanegion yn y storfa hon ac nid ydynt yn gyfrifol am eu cynnwys.</disclaimer>
-		<disclaimer lang="da">Team-Kodi har ikke lavet alle add-ons i dette repository og er ikke ansvarlig for deres indhold</disclaimer>
-		<disclaimer lang="de">Die Addons in diesem Verzeichnis wurden nicht alle vom Team-Kodi erstellt. Verantwortlich für den Inhalt sind die jeweiligen Autoren.</disclaimer>
-		<disclaimer lang="el">Η Ομάδα Kodi δεν δημιούργησε όλα τα πρόσθετα σε αυτό το αποθετήριο συνεπώς δεν είναι υπεύθυνοι για το περιεχόμενό τους</disclaimer>
-		<disclaimer lang="en">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_AU">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_NZ">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_US">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="es">El equipo de Kodi no ha hecho todos los Complementos en este repositorio y no son responsables de su contenido</disclaimer>
-		<disclaimer lang="es_AR">No todos los add-ons en este repositorio han sido creados por el equipo de Kodi y este no es responsable de su contenido</disclaimer>
-		<disclaimer lang="es_MX">El equipo de Kodi no hizo todos los complementos en este repositorio y no es responsable de su contenido</disclaimer>
-		<disclaimer lang="et">Kodi meeskond ei teinud kõiki lisasid selles hoidlas ja ei vastuta ka nende sisu eest.</disclaimer>
-		<disclaimer lang="eu">Kodi taldeak ez ditu biltegi honetako gehigarri guztiak sortu eta ez da beren edukien erantzule.</disclaimer>
-		<disclaimer lang="fi">Team-Kodi ei ole tehnyt kaikkia tässä säilössä olevia lisäosia, eikä siten ole vastuullinen kyseisten lisäosien sisällöstä</disclaimer>
-		<disclaimer lang="fr">La Team-Kodi n'est pas l'auteur de toutes les extensions de ce dépôt et n'est pas responsable de leur contenu</disclaimer>
-		<disclaimer lang="fr_CA">L'équipe-Kodi n'a pas créé tous les addiciels de ce dépôt et n'est pas responsable de leur contenu</disclaimer>
-		<disclaimer lang="gl">O equipo de Kodi non creou todos os Engadidos deste repositorio e non é responsábel do seu contido</disclaimer>
-		<disclaimer lang="he">צוות הפיתוח של Kodi לא יצר את כל ההרחבות שבמאגר זה ואיננו אחראי על תוכנן</disclaimer>
-		<disclaimer lang="hr">Kodi tim nije autor svih dodataka u ovom repozitoriju te kao takvi ne odgovaraju za njihov sadržaj</disclaimer>
-		<disclaimer lang="hu">Nem minden itt található kiegészítőt az Kodi csapat készített és nem vállal felelősséget azok tartalmáért</disclaimer>
-		<disclaimer lang="id">Tim Kodi tidak membuat semua pengaya pada repository ini dan tidak bertanggung jawab atas isinya.</disclaimer>
-		<disclaimer lang="is">Kodi teymið gerir ekki allar þessar viðbætur og er ekki ábyrgt fyrir innihaldi þeirra.</disclaimer>
-		<disclaimer lang="it">Il team di Kodi non ha creato tutti gli add-on di questa libreria e non è responsabile per il loro contenuto</disclaimer>
-		<disclaimer lang="ja">Kodi チームが、このリポジトリ上の全アドオンを作ったわけではありません。また、その内容についても責任は負いかねます。</disclaimer>
-		<disclaimer lang="ko">Team-Kodi가 이 저장소의 모든 애드온을 제작한 것은 아니며, 애드온 컨텐츠에 대한 책임이 없습니다.</disclaimer>
-		<disclaimer lang="ku">تیمی Kodi هەموو پێوەکراوەکانی دروست نەکردووە بۆیە بەرپرسیار نیە لە پێکهاتە و ناوەڕۆکەکانی</disclaimer>
-		<disclaimer lang="lt">Kodi komanda netestavo priedų šioje saugykloje ir neatsako arba nėra atsakinga už jų turinį</disclaimer>
-		<disclaimer lang="lv">Kodi komanda nav izveidojusi visus šīs krātuves paplašinājumus un nav atbildīga par to saturu</disclaimer>
-		<disclaimer lang="mk">Kodi тимот ги нема направено сите овие додатоци и не е одговорен за нивната содржина</disclaimer>
-		<disclaimer lang="nl">Team-Kodi heeft niet alle add-ons in dit repository geschreven en is niet verantwoordelijk voor hun inhoud.</disclaimer>
-		<disclaimer lang="no">Team-Kodi har ikke produsert alle tilleggene i denne pakkebrønnen og er ikke ansvarlig for deres innhold</disclaimer>
-		<disclaimer lang="pl">Zespół Kodi nie tworzy wszystkich dodatków i nie bierze odpowiedzialności za ich zawartość</disclaimer>
-		<disclaimer lang="pt">A equipa Kodi não desenvolveu todos os Add-ons neste repositório e não é responsável pelo seu conteúdo.</disclaimer>
-		<disclaimer lang="pt_BR">O Time do Kodi não produziu todos os add-ons deste repositório, e portanto não é responsável ​​por seu conteúdo</disclaimer>
-		<disclaimer lang="ro">Echipa Kodi nu a creat toate aceste suplimente din acest depozit și nu este responsabilă pentru conținutul lor.</disclaimer>
-		<disclaimer lang="ru">Разработчики Kodi не являются авторами всех дополнений в данном репозитории и не несут ответственность за их содержимое.</disclaimer>
-		<disclaimer lang="se">Team-Kodi har inte skapat alla tillägg på detta förråd och är inte ansvariga för deras innehåll</disclaimer>
-		<disclaimer lang="sk">Team-Kodi nevytvoril všetky rozšírenia v tomto zdroji nie je zodpovedný za ich obsah</disclaimer>
-		<disclaimer lang="sl">Ekipa Kodi ni naredila vseh dodatkov v tem skladišču in ne odgovarja za njihovo vsebino</disclaimer>
-		<disclaimer lang="sv">Team-Kodi har inte gjort alla tillägg och är inte ansvariga för innehållet i dessa.</disclaimer>
-		<disclaimer lang="tg">Гурӯҳи кории Kodi дар ин анбори нармафзор соҳиби ҳамаи барномаҳои иловагӣ намебошад ва барои мӯҳтавояшон ҷавобгар намебшад</disclaimer>
-		<disclaimer lang="th">ทีม Kodi ไม่ได้จัดทำ ส่วนเสริม ทั้งหมดในแหล่งข้อมูลโปรแกรมนี้ และจะไม่รับผิดชอบต่อเนื้อหาเหล่านั้น</disclaimer>
-		<disclaimer lang="tr">Kodi takımı bu depodaki tüm eklentileri geliştirmemiştir ve bunların içeriklerinden sorumlu değildir.</disclaimer>
-		<disclaimer lang="uk">Зауважте, що не всі додатки в цьому Репозиторії створені Командою Kodi, і тому Команда не несе відповідальності за їх вміст.</disclaimer>
-		<disclaimer lang="vi">Đội ngũ Kodi không làm ra tất cả các add-on có trên kho chứa này và sẽ không chịu trách nhiệm về nội dung của các add-on đấy</disclaimer>
-		<disclaimer lang="zh">本库中插件不完全由 Kodi 团队开发,Kodi 团队对他人提交的内容不承担责任</disclaimer>
-		<disclaimer lang="zh_TW">這個附加元件庫的附加元件並非全部由 Kodi 團隊製作的,所以我們不對這些內容負責。</disclaimer>
-		<platform>android</platform>
-	</extension>
-</addon>
diff --git a/addons/repository.pvr-android.xbmc.org/icon.png b/addons/repository.pvr-android.xbmc.org/icon.png
deleted file mode 100644
index 01149a5..0000000
Binary files a/addons/repository.pvr-android.xbmc.org/icon.png and /dev/null differ
diff --git a/addons/repository.pvr-ios.xbmc.org/addon.xml b/addons/repository.pvr-ios.xbmc.org/addon.xml
deleted file mode 100644
index 757a764..0000000
--- a/addons/repository.pvr-ios.xbmc.org/addon.xml
+++ /dev/null
@@ -1,166 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="repository.pvr-ios.xbmc.org"
-		name="Kodi PVR Add-on repository"
-		version="1.1.16"
-		provider-name="XBMC Foundation">
-  <requires>
-    <import addon="xbmc.addon" version="12.0.0"/>
-    <import addon="xbmc.pvr" version="1.9.0"/>
-  </requires>
-	<extension point="xbmc.addon.repository"
-		name="Official XBMC.org PVR Add-on Repository">
-		<info compressed="true">http://mirrors.kodi.tv/addons/gotham/pvr/ios/addons.xml</info>
-		<checksum>http://mirrors.kodi.tv/addons/gotham/pvr/ios/addons.xml.md5</checksum>
-		<datadir zip="true">http://mirrors.kodi.tv/addons/gotham/pvr/ios</datadir>
-		<hashes>true</hashes>
-	</extension>
-	<extension point="xbmc.addon.metadata">
-		<summary lang="am">ከ Kodi.tv የ PVR ተጨማ-ሪዎች መግጠሚያ </summary>
-		<summary lang="ar">ثبت اضافة البي في ار PVR من موقع kodi.tv</summary>
-		<summary lang="bg">Инсталира PVR добавки от Kodi.tv</summary>
-		<summary lang="ca">Instal·la complements PVR des de Kodi.tv</summary>
-		<summary lang="cs">Nainstalovat rozšíření PVR z Kodi.tv</summary>
-		<summary lang="cy">Gosod Ychwanegon PVR o Kodi.tv</summary>
-		<summary lang="da">Installer PVR add-ons fra Kodi.tv</summary>
-		<summary lang="de">Installiere PVR Addons von Kodi.tv</summary>
-		<summary lang="el">Εγκατάσταση Πρόσθετων PVR από το Kodi.tv</summary>
-		<summary lang="en">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_AU">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_NZ">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_US">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="es">Instalar Complementos de PVR de Kodi.tv</summary>
-		<summary lang="es_AR">Instalar complemento PVR desde Kodi.tv</summary>
-		<summary lang="es_MX">Instalar Complementos PVR de Kodi.tv</summary>
-		<summary lang="et">Paigalda videosalvesti lisasid lehelt Kodi.tv</summary>
-		<summary lang="eu">Instalatu PVR gehigarriak Kodi.tv-etik</summary>
-		<summary lang="fi">Asenna PVR-lisäosia Kodi.tvista</summary>
-		<summary lang="fr">Installer des extensions Magnétoscope numérique depuis Kodi.tv</summary>
-		<summary lang="fr_CA">Installer des addiciels de numériscopes depuis Kodi.tv</summary>
-		<summary lang="gl">Instalar Engadidos de PVR dende Kodi.tv</summary>
-		<summary lang="he">התקנת הרחבות מ־Kodi.tv</summary>
-		<summary lang="hr">Instaliraj PVR dodatke s Kodi.tv</summary>
-		<summary lang="hu">PVR kiegészítők telepítése az Kodi.tv-ról</summary>
-		<summary lang="id">Pasang Pengaya PVR dari Kodi.tv</summary>
-		<summary lang="is">Settu inn viðbætur fyrir persónulegan mynd upptökubúnað (PVR) frá Kodi.tv</summary>
-		<summary lang="it">Installa addon da Kodi.tv</summary>
-		<summary lang="ja">Kodi.tv から PVR アドオンをインストール</summary>
-		<summary lang="ko">Kodi.tv에서 PVR 애드온 설치</summary>
-		<summary lang="lt">Įdiekite PVR priedą iš Kodi.tv</summary>
-		<summary lang="lv">Instalēt PVR pielikumus no Kodi.tv</summary>
-		<summary lang="mk">Инсталирај PVR addon-и од Kodi.tv</summary>
-		<summary lang="mn_MN">Kodi.tv-с PVR нэмэлт суулгах</summary>
-		<summary lang="mr">Kodi.ORG  वरून PVR अद्डोंस इंस्टाल करा </summary>
-		<summary lang="nl">Installeer PVR Add-ons van Kodi.tv</summary>
-		<summary lang="no">Installer tillegg fra Kodi.tv</summary>
-		<summary lang="pl">Instaluj klienty TV z Kodi.tv</summary>
-		<summary lang="pt">Instalar Add-ons PVR de Kodi.tv</summary>
-		<summary lang="pt_BR">Instalar Add-ons de PVR do repositório Kodi.tv</summary>
-		<summary lang="ru">Установить дополнения с сайта Kodi.tv</summary>
-		<summary lang="sk">Inštalovať PVR doplnky z Kodi.tv</summary>
-		<summary lang="sl">Namestite dodatke PVR z Kodi.tv</summary>
-		<summary lang="sv">Installera PVR-tillägg från Kodi.tv</summary>
-		<summary lang="tg">Насб кардани барномаи иловагии PVR аз Kodi.tv</summary>
-		<summary lang="th">ติดตั้งส่วนเสริม PVR จาก Kodi.tv</summary>
-		<summary lang="tr">Kodi.tv sitesinden PVR Eklentilerini Yükle</summary>
-		<summary lang="uk">Встановити додатки PVR з Kodi.tv</summary>
-		<summary lang="zh">从 Kodi.tv 安装 PVR 插件</summary>
-		<summary lang="zh_TW">從Kodi.tv安裝PVR附加元件</summary>
-		<description lang="ar">نزل ونصب اضاقة البي في ار من موقع اكس بي ام سي الرسمي مستودع الاضافات "repository". باستخدامك للمستودع الرسمي ستستفيد من تعدد سيرفراتنا التي ستعطيك سرعة اكبر في تنزيل بجعلك تنزل من منطقة قريبة منك. كل الملفات في هذا المستودع مر على اختبارات مبدئية ولكن اذا وجدت اي خلل او خطأ في </description>
-		<description lang="bg">Сваля и инсталира PVR добавки от официалното хранилище за добавки на Kodi.tv. Ползвайки добавката ще се възползвате от системата ни от огледални сървъри - за да сваляте с висока скорост, от сървър близък до Вас. Добавките от хранилището са минали няколко теста, но ако се натъкнете на неработеща или проблемна добавка, моля уведомете екипа на Kodi, за да бъдат предприети необходимите действия.</description>
-		<description lang="cs">Stáhnout a nainstalovat rozšíření z oficiálního repozitáře Kodi.tv. [CR]  Použitím oficiálního repozitáře získáte rozsáhlý systém zrcadel, který vám umožní rychlé stažení z blízkého regionu.[CR]  Všechna rozšíření v repozitáři prošla základním testováním. Pokud najdete rozbitý, nebo nefunkční rozšíření, nahlaste jej prosím týmu Kodi, abychom mohli dle potřeby zakročit.</description>
-		<description lang="cy">Llwythwch i law a gosod ategion amserydd o storfa swyddogol Kodi.tv.[CR] Drwy ddefnyddio'r gronfa swyddogol mae modd i chi gymryd mantais o'n gwasanaeth ffeiliau helaeth i allu llwytho ffeiliau i lawr o'ch ardal chi.[CR]Bydd pob ategyn ar y storfa wedi ei phrofi, ond os ddowch ar draws rhai sydd wedi torri neu ddim yn gweithio gadewch i Team-Kodi wybod er mwyn i ni gael gweithredi ar mater.</description>
-		<description lang="da">Download og installer PVR add-ons fra det officielle Kodi.tv add-on repository.[CR] Ved at benytte det officielle repository drager du fordel af vores distributionsservice som gør at du kan downloade hurtigere fra en placering tæt på dig.[CR] Alle add-ons i dette repository har gennemgået basale tests. Skulle du finde en defekt x add-on så rapporter det venligst til Team-Kodi, så de kan tage de nødvendige handlinger.</description>
-		<description lang="de">Dies ist das offizielle Kodi.tv PVR-Addon-Verzeichnis.[CR]Dieses Addon-Verzeichnis ermöglicht aufgrund umfangreicher Spiegelserver in der Nähe schnelle Downloads.[CR]Alle Addons in diesem Verzeichnis wurden einfachen Tests unterzogen. Sollte dennoch ein Addon nicht richtig funktionieren benachrichtige bitte Team-Kodi damit wir reagieren können.</description>
-		<description lang="el">Λήψη και εγκατάσταση πρόσθετων από το επίσημο αποθετήριο του Kodi.tv.[CR]  Χρησιμοποιώντας το Επίσημο Αποθετήριο μπορείτε να εκμεταλλευτείτε τους εκτεταμένους διακομιστές αρχείων μας για ταχύτερες λήψεις από μία κοντινή σας περιοχή.[CR]  Όλα τα πρόσθετα σε αυτό το αποθετήριο έχουν περάσει τις στοιχειώδεις δοκιμές, αν βρείτε ένα κατεστραμμένο ή ανενεργό πρόσθετο παρακαλούμε να το αναφέρετε στην Ομάδα Kodi ούτως ώστε να ληφθούν οι απαραίτητες ενέργειες.</description>
-		<description lang="en">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_AU">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have undergone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_NZ">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_US">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="es">Descarga e instala complementos de PVR desde el repositorio oficial de Kodi.[CR] Usando el repositorio oficial tendrás las ventajas de nuestro servicio de mirrors para ayudarte a conseguir unas descargas más rápidas de un sitio cercano a ti.[CR] Todos los complementos en este repositorio han pasado por un periodo de pruebas básico, pero si encuentras algún complemento que no funciona, por favor informa de ello al equipo de Kodi para solucionar el problema.</description>
-		<description lang="es_AR">Descarga e instala el complemento desde el repositorio oficial de Kodi.tv.[CR] Usando el repositorio oficial tendrá las ventajas de nuestro servicio de réplicas para ayudarle a conseguir unas descargas más rápidas de un sitio cercano a su región.[CR] Todos los complementos en este repositorio han pasado por un periodo de pruebas básico, pero si encuentra algún complemento que no funciona, por favor infórmelo al equipo de Kodi para que podamos tomar las acciones necesarias.</description>
-		<description lang="es_MX">Descarga e instala complementos del repositorio oficial Kodi.tv.[CR] Al usar el repositorio oficial, tendrá la ventaja de nuestro servicio extenso de espejos para ayudarle a tener descargas mas rapidas desde una region mas cerca de usted.[CR] Todos los complementos en este repositorio se han probado de manera básica, si encuentra alguno que no funciona o roto, favor de reportarlo al Equipo de Kodi para poder tomar las medidas necesarias.</description>
-		<description lang="et">Lae alla ja installi videosalvesti lisasid ametlikust Kodi.tv hoidlast.[CR]  Ametliku hoidla kasutamise eeliseks on võimalus kasutada meie ulatuslikku failide peegelteenust laadides faile sulle kõige lähemast serverist.[CR]  Kõik lisad selles hoidlas on läbinud elementaarse testimise. Siiski, kui sa leiad vigase või mittetöötava lisa, siis palun teavita sellest Kodi meeskonda, et me saaksime vajaliku abi osutada.</description>
-		<description lang="fr">Télécharger et installer des extensions à partir du dépôt officiel Kodi.tv.[CR]  En utilisant le dépôt officiel, vous bénéficierez de notre service de serveurs miroirs vous permettant de télécharger rapidement depuis une région proche de vous.[CR]  Toutes les extensions de ce dépôt ont été testées de manière basique, si vous trouvez une extension corrompue ou inutilisable, merci d'en informer la Team-Kodi afin que nous puissions prendre les mesures nécessaires.</description>
-		<description lang="fr_CA">Télécharger et installer des addiciels de numériscopes depuis le dépôt officiel de Kodi.tv.[CR] En utilisant le dépôt officiel vous pourrez bénéficier de notre service étendu de miroirs de fichiers favorisant des téléchargements plus rapides depuis une région proche de vous.[CR] Tous les addiciels de ce dépôt ont subi des tests de base. Si vous trouvez un addiciel non fonctionnel ou brisé, veuillez le rapporter à l'équipe-Kodi afin que nous puissions agir.</description>
-		<description lang="gl">Descargar e instalar Engadidos de PVR dende o repositorio oficial de Kodi.tv.[CR] Empregando o repositorio oficial, vostede poderá gozar das vantaxes do seu extenso servizo de replicación de ficheiros que lle permite unhas descargas máis rápidas dende unha rexión preto a vostede.[CR] Tódolos Engadidos deste repositorio pasaron por comprobacións básicas. Se atopa algún Engadido roto ou non funcional, por favor reporteo ó equipo de Kodi para que poidan actuar en consecuencia.</description>
-		<description lang="he">הורדה והתקנת הרחבות ממאגר הרחבות Kodi.tv הרשמי.[CR] שימוש במאגר הרשמי מאפשר לנצל את שירות שיקוף הקבצים של Kodi.tv העוזר להוריד מהר יותר מהשרת הקרוב ביותר.[CR] כל ההרחבות במאגר זה עברו בדיקה בסיסית. יש לדווח לצוות הפיתוח של Kodi על כל הרחבה שנמצאה כלא תקינה או שלא עובדת ע"מ שתתבצע הפעולה המתאימה.</description>
-		<description lang="hr">Preuzmite i instalirajte PVR dodatke sa službenog Kodi.tv repozitorija dodataka.[CR]  Korištenjm službenog repozitorija biti ćete u mogućnosti iskoristiti prednost našeg zrcalnog poslužitelja u svrhu bržeg preuzimanja iz regije bliže vama.[CR]  Svi dodaci na ovom repozitoriju prošli su osnovno testiranje. Ako pronađete slomljeni ili dodatak koji ne radi, prijavite ga Kodi timu da ga možemo popraviti.</description>
-		<description lang="hu">PVR Kiegészítők letöltése és telepítése a hivatalos Kodi.tv tárolóhelyről.[CR] A hivatalos tárolóhely használatával kihasználhatod szerteágazó tükör-kiszolgáló hálózatunkat, ami segít a gyorsabb letöltésben egy hozzád közelebb eső körzet használatával.[CR]  Minden kiegészítő ezen a tárolóhelyen átment egy alaptesztelésen. Ha mégis hibás vagy nem működő kiegészítőt találsz, kérünk jelezd az Kodi csapatnak, hogy megtegyük a szükséges lépéseket.</description>
-		<description lang="id">Unduh dan pasang pengaya dari repositori pengaya resmi Kodi.tv. [CR] Dengan menggunakan repositori resmi anda akan mendapat keuntungan dari miror berkas kami yang luas dimana dapat membantu anda untuk lebih cepat mengunduh dari daerah yang dekat dengan anda. [CR] Semua pengaya pada repository telah melalui uji coba standar, jika anda menemukan pengaya yang rusak atau tidak bekerja tolong laporkan kepada tim Kodi agar kami bisa menindak lanjutinya.</description>
-		<description lang="is">Náðu í og settu inn PVR viðbætur frá viðurkenndu Kodi.tv viðbóta safninu.[CR]  með því að nota viðurkennt geymslusafn þá nýturðu kosta skráaspeglunarþjónustu okkar sem veitir þér hraðvirkara niðurhal frá miðlara sem næst þér.[CR]  Allar viðbætur í þessu geymslusafni hafa undirgengist undirstöðuprófanir, ef þú finnur bilaða viðbót eða einhverja sem virkar ekki, þá vinsamlegast tilkynntu það til Team-Kodi svo við getum gripið til viðeigandi ráðstafanna.</description>
-		<description lang="it">Scarica ed installa gli add-on dalla libreria ufficiale di Kodi.tv[CR]  Usando la libreria ufficiale avrai il vantaggio di ottenere download più veloci con mirror più vicini alla tua località.[CR]  Tutti gli add-on in questa libreria sono stati sottoposti a test di base, se ne trovi uno non funzionante o corrotto, per favore riporta il problema al team di Kodi così potremmo prendere provvedimenti.</description>
-		<description lang="ja">公式の Kodi.tv アドオンリポジトリからPVRアドオンをダウンロードしインストールします。[CR]公式のリポジトリを利用することで、私達の大規模なファイル・ミラーサービスから、よりあなたに近い地域からの高速なダウンロードが可能になります。[CR]このリポジトリのすべてのアドオンは、基本的なテストは行っています。もしも壊れている、もしくは、動かないアドオンを見つけた場合は、Kodi チームに報告してください。</description>
-		<description lang="ko">공식 Kodi.tv 애드온 저장소에서 PVR 애드온을 다운로드하여 설치합니다.[CR] 공식 저장소를 사용하면 파일 미러링 서비스를 통해 사용자와 가까운 곳에서 빠르게 다운로드할 수 있습니다.[CR] 저장소의 모든 애드온은 기본 테스트를 거치지만 작동이 되지 않거나 손상된 추가기능을 발견하면 필요한 조치를 취할 수 있게 Team-Kodi로 알려주시기 바랍니다.</description>
-		<description lang="lt">Atsisiųskite ir įdiekite PVR priedą iš oficialios Kodi.tv priedų saugyklos. [Cr] Naudojant oficialią saugyklą galėsite pasinaudoti mūsų  failų Veidrodine saugyklos paslauga katra padės jums greičiau parsisiųsti iš artimiausios vietos šalia jūsų. [CR] Visi priedai šioje saugykloje yra perėję pagrindinį testavimą, jei atsisiuntėte neveikiantį ar/arba sugadintą priedą praneškite 'Team-Kodi', kad galėtume imtis visų būtinų priemonių klaidai ištaisyti.</description>
-		<description lang="lv">Lejupielādējiet un instalējiet PVR pielikumus no oficiālā Kodi.tv pielikumu repozitorija.[CR]  Izmantojot oficiālo repozitoriju, varēsiet izmantot mūsu plašo spoguļu pakalpojumu, lai iegūtu ātrākas lejupielādes no reģiona, kas vistuvāk.[CR]  Visi pielikumi šajā repozitorijā ir izgājuši pamata testēšanu, bet, ja atrodat saplīsušu vai nestrādājošu pielikumu, lūdzu, ziņojiet par to Team-Kodi, lai varam izpildīt nepieciešamās labošanas darbības.</description>
-		<description lang="mk">Превземи и инсталирај PVR addon-и од официјалното складиште на Kodi.tv.[CR] Кога го користиш официјалното складиште, можеш да ги искористиш нашите бројни мирори за фајлови за побрзо симнување преку сервер близу до тебе.[CR] Сите addon-и на ова складиште имаат поминато основни тестови, но ако најдеш расипан add-on, те молиме пријави го на Team-Kodi за да можеме да превземеме иницијатива.</description>
-		<description lang="nl">Download en installeer PVR add-ons van het officiële Kodi.tv add-on depot.[CR] Wanneer u het officiële depot gebruikt beschikt u over onze uitgebreide mirrorservice, waardoor u snel kan downloaden van locaties in uw buurt.[CR] Alle add-ons in dit depot ondergingen standaardtests; indien u een defecte of niet-werkende add-on vindt, meld dit dan aan Team-Kodi zodat zij actie kunnen ondernemen.</description>
-		<description lang="no">Last ned og installer tillegg fra den offisielle Kodi.tv pakkebrønnen.[CR] Når du benytter den offisielle brønnen drar du fordel av vår utvidede filspeilingstjeneste slik at du får raskere nedlastinger fra en server nær deg.[CR] Alle tillegg i denne brønnen har gått gjennom en grunnleggende testing, men hvis du finner et tillegg som ikke fungerer, vennligst rapporter det til Team-Kodi så vi får sett på det.</description>
-		<description lang="pl">Pobieraj i instaluj wtyczki PVR z oficjalnego repozytorium Kodi.tv.[CR] Używając oficjalnego repozytorium korzystasz z serwerów lustrzanych, rozsianych po całym świecie. Wybierany jest ten, który znajduje się najbliżej ciebie, zapewniając dużą prędkość połączenia.[CR]Wszystkie wtyczki znajdujące się w tym repozytorium są testowane, ale mogą okazać się niesprawne. Zgłoś wówczas błąd, aby zespół Kodi mógł podjąć odpowiednie działanie.</description>
-		<description lang="pt">Transferir e instalar add-ons PVR do repositório oficial Kodi.tv.[CR] Ao usar o repositório oficial, os nossos servidores garantem-lhe sempre transferências rápidas a partir da localização mais próxima.[CR] Todos os Add-ons neste repositório foram alvo de testes preliminares. Na improvável hipótese de encontrar um Add-on que não funcione, por favor contacte a equipa do Kodi, para que a situação se resolva.</description>
-		<description lang="pt_BR">Transfira e instale add-ons de Tv ao Vivo, a partir do repositório oficial do Kodi.tv.[CR]|Ao utilizar o repositório oficial, você será capaz de tirar proveito do nosso serviço de espelhamento de arquivos, auxiliando em downloads mais rápidos a partir de uma região perto de você.[CR]|Todos os add-ons neste repositório passam por testes básicos, se você encontrar algum quebrado ou que não esteja funcionando, por favor reporte para a equipe do Kodi, para que possamos tomar as ações necessárias.</description>
-		<description lang="ru">Загружайте и устанавливайте обновления из официального репозитория Kodi.tv[CR]Используя официальный репозиторий, вы сможете воспользоваться преимуществами распределенного хранилища для быстрой загрузки файлов с ближайшего к вам сервера.[CR]Все дополнения в данном репозитории прошли тестирование. Если вы обнаружили нерабочее дополнение, сообщите об этом разработчикам Kodi.</description>
-		<description lang="sk">Stiahnuť a nainštalovať PVR rozšírenia z oficiálneho zdroja rozšírení Kodi.tv.[CR] Použitím oficiálneho zdroja získavate možnosť využiť rozsiahly systém zrkadiel, ktorý Vám umožní rýchlejšie sťahovanie z Vám blízkeho regiónu.[CR] Všetky rozšírenia v tomto zdroji boli podrobené základnému testovaniu. Ak nájdete poškodené alebo nefunkčné rozšírenie, oznámte to prosím týmu Kodi aby mohol podľa potreby zakročiť.</description>
-		<description lang="sl">Prenos in namestitev dodatkov PVR iz uradnega skladišča Kodi.tv.[CR] Z uporabo uradnega skladišča, boste lahko izkoristili hitrejšo povezavo, ki bo izbrana glede na vašo lokacijo.[CR] Vsi dodatki tega skladišča so bili osnovno stestirani, če pa boste našli pokvarjen ali nedelujoč dodatek, to sporočite ekipi Kodi, da bomo lahko odpravili napake.</description>
-		<description lang="sv">Ladda ner och installera PVR-tillägg från det officiella Kodi.tv tilläggsförrådet.[CR] Genom att använda det officiella förrådet kommer du att få fördelen att kunna använda vår omfattande spegeltjänst som hjälper dig till snabbare nedladdningar från en plats nära dig.[CR] Alla tillägg i detta förråd har genomgått grundläggande tester. Hittar du ett trasigt eller icke fungerande tillägg, vänligen meddela detta till Team-Kodi så att vi kan vidta nödvändiga åtgärder.</description>
-		<description lang="tg">Барномаҳои иловагии PVR-ро аз анбори нармафзори расмии Kodi.tv боргирӣ кунед ва насб кунед.[CR]  Агар анбори нармафзори расмиро истифода баред, метавонед нармафзори иловагиро аз серверҳои наздиктарин ба шумо боргирӣ намоед.[CR]  Ҳамаи нармафзори анбори зикршуда аз санҷиши асосӣ мегузаранд, ва агар шумо ягон барномаи иловагии вайроншуда ё ғайрифаъолро пайдо кунед, метавонед дар бораи он гузоришро ба Гурӯҳи кории Kodi фиристонед, то ки барномасозон тавонанд камбудиҳои пайдошударо ҳал кунанд.</description>
-		<description lang="tr">PVR Eklentilerini Resmi Kodi.tv eklenti deposundan indir ve yükle.[CR]Resmi yazılım depomuzu kullanarak size en yakın bölgeden en hızlı biçimde indirme yapmanızı sağlayacak gelişkin dosya aynalama servisini kullanma avantajını elde edeceksiniz.[CR]Bu yazılım deposundaki tüm eklentiler temel testlerden geçerler, şayet hatalı ya da çalışmayan bir eklenti bulur iseniz lütfen düzeltilmesi için bu durumu Kodi Takımına bildiriniz.</description>
-		<description lang="zh">从官方 Kodi.tv 插件库下载和安装 PVR 插件。[CR] 通过官方程序库你将能利用我们广泛的镜像服务优势,使你能够就近下载资源。[CR] 官方库中的所有插件都经过了基本的测试,如果你发现有失效或不能正常工作的插件,请向 Kodi 开发团队报告,以便及时处理。</description>
-		<description lang="zh_TW">從Kodi.tv安裝PVR附加元件。[CR]使用官方資料庫,你可以直接從你地區內的伺服器下載,享受更快速的體驗。[CR]所有的附加原件都已經經過基本測試。但如果你發現有損壞或不正常運作的附加原件,請回報於Kodi開發團隊。</description>
-		<disclaimer lang="af">Die Kodi span het nie al die byvoegsels in die kodebank gemaak nie en is nie verantwoordelik vir hulle inhoud nie</disclaimer>
-		<disclaimer lang="am">የ Kodi ቡድን እዚህ ማጠራቀሚያ ውስጥ ያሉትን የ ተጨማ-ሪዎች ይዞታ አልፈጠሩም ስለዚህም ምንም አይነት ሀላፊነት አይወስዱም</disclaimer>
-		<disclaimer lang="ar">فريق برنامج إكس بى إم سى لم يُصنِع جميع اﻹضافات فى هذا المستودع وغير مسؤول عن ما قد تسببه لك</disclaimer>
-		<disclaimer lang="be">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="bg">Team-Kodi (Екипът зад Kodi) не е автор на всички добавки в хранилището и не носи отговорност за съдържанието им</disclaimer>
-		<disclaimer lang="ca">L'equip del Kodi no ha fet tots els complements d'aquest dipòsit i per tant no són responsables del seu contingut.</disclaimer>
-		<disclaimer lang="cs">Tým Kodi nevytvořil všechna rozšíření v tomto repozitáři a není zodpovědný za jejich obsah</disclaimer>
-		<disclaimer lang="cy">Nid Team-Kodi wnaeth yr holl ychwanegion yn y storfa hon ac nid ydynt yn gyfrifol am eu cynnwys.</disclaimer>
-		<disclaimer lang="da">Team-Kodi har ikke lavet alle add-ons i dette fjernlager og er ikke ansvarlig for deres indhold</disclaimer>
-		<disclaimer lang="de">Die Addons in diesem Verzeichnis wurden nicht alle vom Team-Kodi erstellt. Verantwortlich für den Inhalt sind die jeweiligen Autoren.</disclaimer>
-		<disclaimer lang="el">Η Ομάδα Kodi δεν δημιούργησε όλα τα πρόσθετα σε αυτό το αποθετήριο συνεπώς δεν είναι υπεύθυνοι για το περιεχόμενό τους</disclaimer>
-		<disclaimer lang="en">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_AU">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_NZ">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_US">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="es">El equipo de Kodi no ha hecho todos los Complementos en este repositorio y no son responsables de su contenido</disclaimer>
-		<disclaimer lang="es_AR">No todos los add-ons en este repositorio han sido creados por el equipo de Kodi y este no es responsable de su contenido</disclaimer>
-		<disclaimer lang="es_MX">El equipo de Kodi no hizo todos los add-ons en este repositorio y no es responsable de su contenido</disclaimer>
-		<disclaimer lang="et">Kodi meeskond ei teinud kõiki lisasid selles hoidlas ja ei vastuta ka nende sisu eest.</disclaimer>
-		<disclaimer lang="eu">Kodi taldeak ez ditu biltegi honetako gehigarri guztiak sortu eta ez da beren edukien erantzule.</disclaimer>
-		<disclaimer lang="fi">Team-Kodi ei ole tehnyt kaikkia tässä säilössä olevia lisäosia, eikä siten ole vastuullinen kyseisten lisäosien sisällöstä</disclaimer>
-		<disclaimer lang="fr">La Team-Kodi n'est pas l'auteur de toutes les extensions de ce dépôt et n'est pas responsable de leur contenu</disclaimer>
-		<disclaimer lang="fr_CA">L'équipe-Kodi n'a pas créé tous les addiciels de ce dépôt et n'est pas responsable de leur contenu</disclaimer>
-		<disclaimer lang="gl">O equipo de Kodi non creou todos os Engadidos deste repositorio e non é responsábel do seu contido</disclaimer>
-		<disclaimer lang="he">צוות הפיתוח של Kodi לא יצר את כל ההרחבות שבמאגר זה ואיננו אחראי על תוכנן</disclaimer>
-		<disclaimer lang="hr">Kodi tim nije autor svih dodataka u ovom repozitoriju te kao takvi ne odgovaraju za njihov sadržaj</disclaimer>
-		<disclaimer lang="hu">Nem minden itt található kiegészítőt az Kodi csapat készített és nem vállal felelősséget azok tartalmáért</disclaimer>
-		<disclaimer lang="id">Tim Kodi tidak membuat semua pengaya pada repository ini dan tidak bertanggung jawab atas isinya.</disclaimer>
-		<disclaimer lang="is">Kodi teymið gerir ekki allar þessar viðbætur og er ekki ábyrgt fyrir innihaldi þeirra.</disclaimer>
-		<disclaimer lang="it">Il team di Kodi non ha creato tutti gli add-on di questa libreria e non è responsabile per il loro contenuto</disclaimer>
-		<disclaimer lang="ja">Kodi チームが、このリポジトリ上の全アドオンを作ったわけではありません。また、その内容についても責任は負いかねます。</disclaimer>
-		<disclaimer lang="ko">Team-Kodi가 이 저장소의 모든 애드온을 제작한 것은 아니며, 애드온 컨텐츠에 대한 책임이 없습니다.</disclaimer>
-		<disclaimer lang="ku">تیمی Kodi هەموو پێوەکراوەکانی دروست نەکردووە بۆیە بەرپرسیار نیە لە پێکهاتە و ناوەڕۆکەکانی</disclaimer>
-		<disclaimer lang="lt">Kodi komanda netestavo priedų šioje saugykloje ir neatsako arba nėra atsakinga už jų turinį</disclaimer>
-		<disclaimer lang="lv">Kodi komanda nav izveidojusi visus šīs krātuves paplašinājumus un nav atbildīga par to saturu</disclaimer>
-		<disclaimer lang="mk">Kodi тимот ги нема направено сите овие додатоци и не е одговорен за нивната содржина</disclaimer>
-		<disclaimer lang="nl">Team-Kodi heeft niet alle add-ons in dit depot geschreven en is niet verantwoordelijk voor hun inhoud.</disclaimer>
-		<disclaimer lang="no">Team-Kodi har ikke produsert alle tilleggene i denne pakkebrønnen og er ikke ansvarlig for deres innhold</disclaimer>
-		<disclaimer lang="pl">Zespół Kodi nie tworzy wszystkich dodatków i nie bierze odpowiedzialności za ich zawartość</disclaimer>
-		<disclaimer lang="pt">A equipa Kodi não desenvolveu todos os Add-ons neste repositório e não é responsável pelo seu conteúdo.</disclaimer>
-		<disclaimer lang="pt_BR">O Time do Kodi não produziu todos os add-ons deste repositório, e portanto não é responsável ​​por seu conteúdo</disclaimer>
-		<disclaimer lang="ro">Echipa Kodi nu a creat toate aceste suplimente din acest depozit și nu este responsabilă pentru conținutul lor.</disclaimer>
-		<disclaimer lang="ru">Разработчики Kodi не являются авторами всех дополнений в данном репозитории и не несут ответственность за их содержимое.</disclaimer>
-		<disclaimer lang="se">Team-Kodi har inte skapat alla tillägg på detta förråd och är inte ansvariga för deras innehåll</disclaimer>
-		<disclaimer lang="sk">Team-Kodi nevytvoril všetky rozšírenia v tomto zdroji nie je zodpovedný za ich obsah</disclaimer>
-		<disclaimer lang="sl">Ekipa Kodi ni naredila vseh dodatkov v tem skladišču in ne odgovarja za njihovo vsebino</disclaimer>
-		<disclaimer lang="sv">Team-Kodi har inte gjort alla tillägg och är inte ansvariga för innehållet i dessa.</disclaimer>
-		<disclaimer lang="tg">Гурӯҳи кории Kodi дар ин анбори нармафзор соҳиби ҳамаи барномаҳои иловагӣ намебошад ва барои мӯҳтавояшон ҷавобгар намебшад</disclaimer>
-		<disclaimer lang="th">ทีม Kodi ไม่ได้จัดทำ ส่วนเสริม ทั้งหมดในแหล่งข้อมูลโปรแกรมนี้ และจะไม่รับผิดชอบต่อเนื้อหาเหล่านั้น</disclaimer>
-		<disclaimer lang="tr">Kodi takımı bu depodaki tüm eklentileri geliştirmemiştir ve bunların içeriklerinden sorumlu değildir.</disclaimer>
-		<disclaimer lang="uk">Зауважте, що не всі додатки в цьому Репозиторії створені Командою Kodi, і тому Команда не несе відповідальності за їх вміст.</disclaimer>
-		<disclaimer lang="vi">Đội ngũ Kodi không làm ra tất cả các add-on có trên kho chứa này và sẽ không chịu trách nhiệm về nội dung của các add-on đấy</disclaimer>
-		<disclaimer lang="zh">本库中插件不完全由 Kodi 团队开发,Kodi 团队对他人提交的内容不承担责任</disclaimer>
-		<disclaimer lang="zh_TW">這個附加元件庫的附加元件並非全部由 Kodi 團隊製作的,所以我們不對這些內容負責。</disclaimer>
-		<platform>ios</platform>
-	</extension>
-</addon>
diff --git a/addons/repository.pvr-ios.xbmc.org/icon.png b/addons/repository.pvr-ios.xbmc.org/icon.png
deleted file mode 100644
index 01149a5..0000000
Binary files a/addons/repository.pvr-ios.xbmc.org/icon.png and /dev/null differ
diff --git a/addons/repository.pvr-osx32.xbmc.org/addon.xml b/addons/repository.pvr-osx32.xbmc.org/addon.xml
deleted file mode 100644
index b6fd6eb..0000000
--- a/addons/repository.pvr-osx32.xbmc.org/addon.xml
+++ /dev/null
@@ -1,166 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="repository.pvr-osx32.xbmc.org"
-		name="Kodi PVR Add-on repository"
-		version="1.1.16"
-		provider-name="XBMC Foundation">
-  <requires>
-    <import addon="xbmc.addon" version="12.0.0"/>
-    <import addon="xbmc.pvr" version="1.9.0"/>
-  </requires>
-	<extension point="xbmc.addon.repository"
-		name="Official XBMC.org PVR Add-on Repository">
-		<info compressed="true">http://mirrors.kodi.tv/addons/gotham/pvr/osx32/addons.xml</info>
-		<checksum>http://mirrors.kodi.tv/addons/gotham/pvr/osx32/addons.xml.md5</checksum>
-		<datadir zip="true">http://mirrors.kodi.tv/addons/gotham/pvr/osx32</datadir>
-		<hashes>true</hashes>
-	</extension>
-	<extension point="xbmc.addon.metadata">
-		<summary lang="am">ከ Kodi.tv የ PVR ተጨማ-ሪዎች መግጠሚያ </summary>
-		<summary lang="ar">ثبت اضافة البي في ار PVR من موقع kodi.tv</summary>
-		<summary lang="bg">Инсталира PVR добавки от Kodi.tv</summary>
-		<summary lang="ca">Instal·la complements PVR des de Kodi.tv</summary>
-		<summary lang="cs">Nainstalovat rozšíření PVR z Kodi.tv</summary>
-		<summary lang="cy">Gosod Ychwanegon PVR o Kodi.tv</summary>
-		<summary lang="da">Installer PVR add-ons fra Kodi.tv</summary>
-		<summary lang="de">Installiere PVR Addons von Kodi.tv</summary>
-		<summary lang="el">Εγκατάσταση Πρόσθετων PVR από το Kodi.tv</summary>
-		<summary lang="en">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_AU">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_NZ">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_US">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="es">Instalar Complementos de PVR de Kodi.tv</summary>
-		<summary lang="es_AR">Instalar complemento PVR desde Kodi.tv</summary>
-		<summary lang="es_MX">Instalar Complementos PVR de Kodi.tv</summary>
-		<summary lang="et">Paigalda videosalvesti lisasid lehelt Kodi.tv</summary>
-		<summary lang="eu">Instalatu PVR gehigarriak Kodi.tv-etik</summary>
-		<summary lang="fi">Asenna PVR-lisäosia Kodi.tvista</summary>
-		<summary lang="fr">Installer des extensions Magnétoscope numérique depuis Kodi.tv</summary>
-		<summary lang="fr_CA">Installer des addiciels de numériscopes depuis Kodi.tv</summary>
-		<summary lang="gl">Instalar Engadidos de PVR dende Kodi.tv</summary>
-		<summary lang="he">התקנת הרחבות מ־Kodi.tv</summary>
-		<summary lang="hr">Instaliraj PVR dodatke s Kodi.tv</summary>
-		<summary lang="hu">PVR kiegészítők telepítése az Kodi.tv-ról</summary>
-		<summary lang="id">Pasang Pengaya PVR dari Kodi.tv</summary>
-		<summary lang="is">Settu inn viðbætur fyrir persónulegan mynd upptökubúnað (PVR) frá Kodi.tv</summary>
-		<summary lang="it">Installa addon da Kodi.tv</summary>
-		<summary lang="ja">Kodi.tv から PVR アドオンをインストール</summary>
-		<summary lang="ko">Kodi.tv에서 PVR 애드온 설치</summary>
-		<summary lang="lt">Įdiekite PVR priedą iš Kodi.tv</summary>
-		<summary lang="lv">Instalēt PVR pielikumus no Kodi.tv</summary>
-		<summary lang="mk">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="mn_MN">Kodi.tv-с PVR нэмэлт суулгах</summary>
-		<summary lang="mr">Kodi.ORG  वरून PVR अद्डोंस इंस्टाल करा </summary>
-		<summary lang="nl">Installeer PVR Add-ons van Kodi.tv</summary>
-		<summary lang="no">Installer tillegg fra Kodi.tv</summary>
-		<summary lang="pl">Instaluj klienty TV z Kodi.tv</summary>
-		<summary lang="pt">Instalar Add-ons PVR de Kodi.tv</summary>
-		<summary lang="pt_BR">Instalar Add-ons de PVR do repositório Kodi.tv</summary>
-		<summary lang="ru">Установить дополнения с сайта Kodi.tv</summary>
-		<summary lang="sk">Inštalovať PVR doplnky z Kodi.tv</summary>
-		<summary lang="sl">Namestite dodatke PVR z Kodi.tv</summary>
-		<summary lang="sv">Installera PVR-tillägg från Kodi.tv</summary>
-		<summary lang="tg">Насб кардани барномаи иловагии PVR аз Kodi.tv</summary>
-		<summary lang="th">ติดตั้งส่วนเสริม PVR จาก Kodi.tv</summary>
-		<summary lang="tr">Kodi.tv sitesinden PVR Eklentilerini Yükle</summary>
-		<summary lang="uk">Встановити додатки PVR з Kodi.tv</summary>
-		<summary lang="zh">从 Kodi.tv 安装 PVR 插件</summary>
-		<summary lang="zh_TW">從Kodi.tv安裝PVR附加元件</summary>
-		<description lang="ar">نزل ونصب اضاقة البي في ار من موقع اكس بي ام سي الرسمي مستودع الاضافات "repository". باستخدامك للمستودع الرسمي ستستفيد من تعدد سيرفراتنا التي ستعطيك سرعة اكبر في تنزيل بجعلك تنزل من منطقة قريبة منك. كل الملفات في هذا المستودع مر على اختبارات مبدئية ولكن اذا وجدت اي خلل او خطأ في </description>
-		<description lang="bg">Сваля и инсталира PVR добавки от официалното хранилище за добавки на Kodi.tv. Ползвайки добавката ще се възползвате от системата ни от огледални сървъри - за да сваляте с висока скорост, от сървър близък до Вас. Добавките от хранилището са минали няколко теста, но ако се натъкнете на неработеща или проблемна добавка, моля уведомете екипа на Kodi, за да бъдат предприети необходимите действия.</description>
-		<description lang="cs">Stáhnout a nainstalovat rozšíření z oficiálního repozitáře Kodi.tv. [CR]  Použitím oficiálního repozitáře získáte rozsáhlý systém zrcadel, který vám umožní rychlé stažení z blízkého regionu.[CR]  Všechna rozšíření v repozitáři prošla základním testováním. Pokud najdete rozbitý, nebo nefunkční rozšíření, nahlaste jej prosím týmu Kodi, abychom mohli dle potřeby zakročit.</description>
-		<description lang="cy">Llwythwch i law a gosod ategion amserydd o storfa swyddogol Kodi.tv.[CR] Drwy ddefnyddio'r gronfa swyddogol mae modd i chi gymryd mantais o'n gwasanaeth ffeiliau helaeth i allu llwytho ffeiliau i lawr o'ch ardal chi.[CR]Bydd pob ategyn ar y storfa wedi ei phrofi, ond os ddowch ar draws rhai sydd wedi torri neu ddim yn gweithio gadewch i Team-Kodi wybod er mwyn i ni gael gweithredi ar mater.</description>
-		<description lang="da">Download og installer PVR add-ons fra det officielle Kodi.tv add-on repository.[CR] Ved at benytte det officielle repository drager du fordel af vores distributionsservice som gør at du kan downloade hurtigere fra en placering tæt på dig.[CR] Alle add-ons i dette repository har gennemgået basale tests. Skulle du finde en defekt x add-on så rapporter det venligst til Team-Kodi, så de kan tage de nødvendige handlinger.</description>
-		<description lang="de">Dies ist das offizielle Kodi.tv PVR-Addon-Verzeichnis.[CR]Dieses Addon-Verzeichnis ermöglicht aufgrund umfangreicher Spiegelserver in der Nähe schnelle Downloads.[CR]Alle Addons in diesem Verzeichnis wurden einfachen Tests unterzogen. Sollte dennoch ein Addon nicht richtig funktionieren benachrichtige bitte Team-Kodi damit wir reagieren können.</description>
-		<description lang="el">Λήψη και εγκατάσταση πρόσθετων από το επίσημο αποθετήριο του Kodi.tv.[CR]  Χρησιμοποιώντας το Επίσημο Αποθετήριο μπορείτε να εκμεταλλευτείτε τους εκτεταμένους διακομιστές αρχείων μας για ταχύτερες λήψεις από μία κοντινή σας περιοχή.[CR]  Όλα τα πρόσθετα σε αυτό το αποθετήριο έχουν περάσει τις στοιχειώδεις δοκιμές, αν βρείτε ένα κατεστραμμένο ή ανενεργό πρόσθετο παρακαλούμε να το αναφέρετε στην Ομάδα Kodi ούτως ώστε να ληφθούν οι απαραίτητες ενέργειες.</description>
-		<description lang="en">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_AU">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have undergone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_NZ">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_US">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="es">Descarga e instala complementos de PVR desde el repositorio oficial de Kodi.[CR] Usando el repositorio oficial tendrás las ventajas de nuestro servicio de mirrors para ayudarte a conseguir unas descargas más rápidas de un sitio cercano a ti.[CR] Todos los complementos en este repositorio han pasado por un periodo de pruebas básico, pero si encuentras algún complemento que no funciona, por favor informa de ello al equipo de Kodi para solucionar el problema.</description>
-		<description lang="es_AR">Descarga e instala el complemento desde el repositorio oficial de Kodi.tv.[CR] Usando el repositorio oficial tendrá las ventajas de nuestro servicio de réplicas para ayudarle a conseguir unas descargas más rápidas de un sitio cercano a su región.[CR] Todos los complementos en este repositorio han pasado por un periodo de pruebas básico, pero si encuentra algún complemento que no funciona, por favor infórmelo al equipo de Kodi para que podamos tomar las acciones necesarias.</description>
-		<description lang="es_MX">Descarga e instala complementos del repositorio oficial Kodi.tv.[CR] Al usar el repositorio oficial, tendrá la ventaja de nuestro servicio extenso de espejos para ayudarle a tener descargas mas rapidas desde una region mas cerca de usted.[CR] Todos los complementos en este repositorio se han probado de manera básica, si encuentra alguno que no funciona o roto, favor de reportarlo al Equipo de Kodi para poder tomar las medidas necesarias.</description>
-		<description lang="et">Lae alla ja installi videosalvesti lisasid ametlikust Kodi.tv hoidlast.[CR]  Ametliku hoidla kasutamise eeliseks on võimalus kasutada meie ulatuslikku failide peegelteenust laadides faile sulle kõige lähemast serverist.[CR]  Kõik lisad selles hoidlas on läbinud elementaarse testimise. Siiski, kui sa leiad vigase või mittetöötava lisa, siis palun teavita sellest Kodi meeskonda, et me saaksime vajaliku abi osutada.</description>
-		<description lang="fr">Télécharger et installer des extensions à partir du dépôt officiel Kodi.tv.[CR]  En utilisant le dépôt officiel, vous bénéficierez de notre service de serveurs miroirs vous permettant de télécharger rapidement depuis une région proche de vous.[CR]  Toutes les extensions de ce dépôt ont été testées de manière basique, si vous trouvez une extension corrompue ou inutilisable, merci d'en informer la Team-Kodi afin que nous puissions prendre les mesures nécessaires.</description>
-		<description lang="fr_CA">Télécharger et installer des addiciels de numériscopes depuis le dépôt officiel de Kodi.tv.[CR] En utilisant le dépôt officiel vous pourrez bénéficier de notre service étendu de miroirs de fichiers favorisant des téléchargements plus rapides depuis une région proche de vous.[CR] Tous les addiciels de ce dépôt ont subi des tests de base. Si vous trouvez un addiciel non fonctionnel ou brisé, veuillez le rapporter à l'équipe-Kodi afin que nous puissions agir.</description>
-		<description lang="gl">Descargar e instalar Engadidos de PVR dende o repositorio oficial de Kodi.tv.[CR] Empregando o repositorio oficial, vostede poderá gozar das vantaxes do seu extenso servizo de replicación de ficheiros que lle permite unhas descargas máis rápidas dende unha rexión preto a vostede.[CR] Tódolos Engadidos deste repositorio pasaron por comprobacións básicas. Se atopa algún Engadido roto ou non funcional, por favor reporteo ó equipo de Kodi para que poidan actuar en consecuencia.</description>
-		<description lang="he">הורדה והתקנת הרחבות ממאגר הרחבות Kodi.tv הרשמי.[CR] שימוש במאגר הרשמי מאפשר לנצל את שירות שיקוף הקבצים של Kodi.tv העוזר להוריד מהר יותר מהשרת הקרוב ביותר.[CR] כל ההרחבות במאגר זה עברו בדיקה בסיסית. יש לדווח לצוות הפיתוח של Kodi על כל הרחבה שנמצאה כלא תקינה או שלא עובדת ע"מ שתתבצע הפעולה המתאימה.</description>
-		<description lang="hr">Preuzmite i instalirajte PVR dodatke sa službenog Kodi.tv repozitorija dodataka.[CR]  Korištenjm službenog repozitorija biti ćete u mogućnosti iskoristiti prednost našeg zrcalnog poslužitelja u svrhu bržeg preuzimanja iz regije bliže vama.[CR]  Svi dodaci na ovom repozitoriju prošli su osnovno testiranje. Ako pronađete slomljeni ili dodatak koji ne radi, prijavite ga Kodi timu da ga možemo popraviti.</description>
-		<description lang="hu">PVR Kiegészítők letöltése és telepítése a hivatalos Kodi.tv tárolóhelyről.[CR] A hivatalos tárolóhely használatával kihasználhatod szerteágazó tükör-kiszolgáló hálózatunkat, ami segít a gyorsabb letöltésben egy hozzád közelebb eső körzet használatával.[CR]  Minden kiegészítő ezen a tárolóhelyen átment egy alaptesztelésen. Ha mégis hibás vagy nem működő kiegészítőt találsz, kérünk jelezd az Kodi csapatnak, hogy megtegyük a szükséges lépéseket.</description>
-		<description lang="id">Unduh dan pasang pengaya dari repositori pengaya resmi Kodi.tv. [CR] Dengan menggunakan repositori resmi anda akan mendapat keuntungan dari miror berkas kami yang luas dimana dapat membantu anda untuk lebih cepat mengunduh dari daerah yang dekat dengan anda. [CR] Semua pengaya pada repository telah melalui uji coba standar, jika anda menemukan pengaya yang rusak atau tidak bekerja tolong laporkan kepada tim Kodi agar kami bisa menindak lanjutinya.</description>
-		<description lang="is">Náðu í og settu inn PVR viðbætur frá viðurkenndu Kodi.tv viðbóta safninu.[CR]  með því að nota viðurkennt geymslusafn þá nýturðu kosta skráaspeglunarþjónustu okkar sem veitir þér hraðvirkara niðurhal frá miðlara sem næst þér.[CR]  Allar viðbætur í þessu geymslusafni hafa undirgengist undirstöðuprófanir, ef þú finnur bilaða viðbót eða einhverja sem virkar ekki, þá vinsamlegast tilkynntu það til Team-Kodi svo við getum gripið til viðeigandi ráðstafanna.</description>
-		<description lang="it">Scarica ed installa gli add-on dalla libreria ufficiale di Kodi.tv[CR]  Usando la libreria ufficiale avrai il vantaggio di ottenere download più veloci con mirror più vicini alla tua località.[CR]  Tutti gli add-on in questa libreria sono stati sottoposti a test di base, se ne trovi uno non funzionante o corrotto, per favore riporta il problema al team di Kodi così potremmo prendere provvedimenti.</description>
-		<description lang="ja">公式の Kodi.tv アドオンリポジトリからPVRアドオンをダウンロードしインストールします。[CR]公式のリポジトリを利用することで、私達の大規模なファイル・ミラーサービスから、よりあなたに近い地域からの高速なダウンロードが可能になります。[CR]このリポジトリのすべてのアドオンは、基本的なテストは行っています。もしも壊れている、もしくは、動かないアドオンを見つけた場合は、Kodi チームに報告してください。</description>
-		<description lang="ko">공식 Kodi.tv 애드온 저장소에서 PVR 애드온을 다운로드하여 설치합니다.[CR] 공식 저장소를 사용하면 파일 미러링 서비스를 통해 사용자와 가까운 곳에서 빠르게 다운로드할 수 있습니다.[CR] 저장소의 모든 애드온은 기본 테스트를 거치지만 작동이 되지 않거나 손상된 애드온을 발견하면 필요한 조치를 취할 수 있게 Team-Kodi로 알려주시기 바랍니다.</description>
-		<description lang="lt">Atsisiųskite ir įdiekite PVR priedą iš oficialios Kodi.tv priedų saugyklos. [Cr] Naudojant oficialią saugyklą galėsite pasinaudoti mūsų  failų Veidrodine saugyklos paslauga katra padės jums greičiau parsisiųsti iš artimiausios vietos šalia jūsų. [CR] Visi priedai šioje saugykloje yra perėję pagrindinį testavimą, jei atsisiuntėte neveikiantį ar/arba sugadintą priedą praneškite 'Team-Kodi', kad galėtume imtis visų būtinų priemonių klaidai ištaisyti.</description>
-		<description lang="lv">Lejupielādējiet un instalējiet PVR pielikumus no oficiālā Kodi.tv pielikumu repozitorija.[CR]  Izmantojot oficiālo repozitoriju, varēsiet izmantot mūsu plašo spoguļu pakalpojumu, lai iegūtu ātrākas lejupielādes no reģiona, kas vistuvāk.[CR]  Visi pielikumi šajā repozitorijā ir izgājuši pamata testēšanu, bet, ja atrodat saplīsušu vai nestrādājošu pielikumu, lūdzu, ziņojiet par to Team-Kodi, lai varam izpildīt nepieciešamās labošanas darbības.</description>
-		<description lang="mk">Превземи и инсталирај PVR addon-и од официјалното складиште на Kodi.tv.[CR] Кога го користиш официјалното складиште, можеш да ги искористиш нашите бројни мирори за фајлови за побрзо симнување преку сервер близу до тебе.[CR] Сите addon-и на ова складиште имаат поминато основни тестови, но ако најдеш расипан add-on, те молиме пријави го на Team-Kodi за да можеме да превземеме иницијатива.</description>
-		<description lang="nl">Download en installeer PVR add-ons van het officiële Kodi.tv add-on depot.[CR] Wanneer u het officiële depot gebruikt beschikt u over onze uitgebreide mirrorservice, waardoor u snel kan downloaden van locaties in uw buurt.[CR] Alle add-ons in dit depot ondergingen standaardtests; indien u een defecte of niet-werkende add-on vindt, meld dit dan aan Team-Kodi zodat zij actie kunnen ondernemen.</description>
-		<description lang="no">Last ned og installer tillegg fra den offisielle Kodi.tv pakkebrønnen.[CR] Når du benytter den offisielle brønnen drar du fordel av vår utvidede filspeilingstjeneste slik at du får raskere nedlastinger fra en server nær deg.[CR] Alle tillegg i denne brønnen har gått gjennom en grunnleggende testing, men hvis du finner et tillegg som ikke fungerer, vennligst rapporter det til Team-Kodi så vi får sett på det.</description>
-		<description lang="pl">Pobieraj i instaluj wtyczki PVR z oficjalnego repozytorium Kodi.tv.[CR] Używając oficjalnego repozytorium korzystasz z serwerów lustrzanych, rozsianych po całym świecie. Wybierany jest ten, który znajduje się najbliżej ciebie, zapewniając dużą prędkość połączenia.[CR]Wszystkie wtyczki znajdujące się w tym repozytorium są testowane, ale mogą okazać się niesprawne. Zgłoś wówczas błąd, aby zespół Kodi mógł podjąć odpowiednie działanie.</description>
-		<description lang="pt">Transferir e instalar add-ons PVR do repositório oficial Kodi.tv.[CR] Ao usar o repositório oficial, os nossos servidores garantem-lhe sempre transferências rápidas a partir da localização mais próxima.[CR] Todos os Add-ons neste repositório foram alvo de testes preliminares. Na improvável hipótese de encontrar um Add-on que não funcione, por favor contacte a equipa do Kodi, para que a situação se resolva.</description>
-		<description lang="pt_BR">Transfira e instale add-ons de Tv ao Vivo, a partir do repositório oficial do Kodi.tv.[CR]|Ao utilizar o repositório oficial, você será capaz de tirar proveito do nosso serviço de espelhamento de arquivos, auxiliando em downloads mais rápidos a partir de uma região perto de você.[CR]|Todos os add-ons neste repositório passam por testes básicos, se você encontrar algum quebrado ou que não esteja funcionando, por favor reporte para a equipe do Kodi, para que possamos tomar as ações necessárias.</description>
-		<description lang="ru">Загружайте и устанавливайте обновления из официального репозитория Kodi.tv[CR]Используя официальный репозиторий, вы сможете воспользоваться преимуществами распределенного хранилища для быстрой загрузки файлов с ближайшего к вам сервера.[CR]Все дополнения в данном репозитории прошли тестирование. Если вы обнаружили нерабочее дополнение, сообщите об этом разработчикам Kodi.</description>
-		<description lang="sk">Stiahnuť a nainštalovať PVR rozšírenia z oficiálneho zdroja rozšírení Kodi.tv.[CR] Použitím oficiálneho zdroja získavate možnosť využiť rozsiahly systém zrkadiel, ktorý Vám umožní rýchlejšie sťahovanie z Vám blízkeho regiónu.[CR] Všetky rozšírenia v tomto zdroji boli podrobené základnému testovaniu. Ak nájdete poškodené alebo nefunkčné rozšírenie, oznámte to prosím týmu Kodi aby mohol podľa potreby zakročiť.</description>
-		<description lang="sl">Prenos in namestitev dodatkov PVR iz uradnega skladišča Kodi.tv.[CR] Z uporabo uradnega skladišča, boste lahko izkoristili hitrejšo povezavo, ki bo izbrana glede na vašo lokacijo.[CR] Vsi dodatki tega skladišča so bili osnovno stestirani, če pa boste našli pokvarjen ali nedelujoč dodatek, to sporočite ekipi Kodi, da bomo lahko odpravili napake.</description>
-		<description lang="sv">Ladda ner och installera PVR-tillägg från det officiella Kodi.tv tilläggsförrådet.[CR] Genom att använda det officiella förrådet kommer du att få fördelen att kunna använda vår omfattande spegeltjänst som hjälper dig till snabbare nedladdningar från en plats nära dig.[CR] Alla tillägg i detta förråd har genomgått grundläggande tester. Hittar du ett trasigt eller icke fungerande tillägg, vänligen meddela detta till Team-Kodi så att vi kan vidta nödvändiga åtgärder.</description>
-		<description lang="tg">Барномаҳои иловагии PVR-ро аз анбори нармафзори расмии Kodi.tv боргирӣ кунед ва насб кунед.[CR]  Агар анбори нармафзори расмиро истифода баред, метавонед нармафзори иловагиро аз серверҳои наздиктарин ба шумо боргирӣ намоед.[CR]  Ҳамаи нармафзори анбори зикршуда аз санҷиши асосӣ мегузаранд, ва агар шумо ягон барномаи иловагии вайроншуда ё ғайрифаъолро пайдо кунед, метавонед дар бораи он гузоришро ба Гурӯҳи кории Kodi фиристонед, то ки барномасозон тавонанд камбудиҳои пайдошударо ҳал кунанд.</description>
-		<description lang="tr">PVR Eklentilerini Resmi Kodi.tv eklenti deposundan indir ve yükle.[CR]Resmi yazılım depomuzu kullanarak size en yakın bölgeden en hızlı biçimde indirme yapmanızı sağlayacak gelişkin dosya aynalama servisini kullanma avantajını elde edeceksiniz.[CR]Bu yazılım deposundaki tüm eklentiler temel testlerden geçerler, şayet hatalı ya da çalışmayan bir eklenti bulur iseniz lütfen düzeltilmesi için bu durumu Kodi Takımına bildiriniz.</description>
-		<description lang="zh">从官方 Kodi.tv 插件库下载和安装 PVR 插件。[CR] 通过官方程序库你将能利用我们广泛的镜像服务优势,使你能够就近下载资源。[CR] 官方库中的所有插件都经过了基本的测试,如果你发现有失效或不能正常工作的插件,请向 Kodi 开发团队报告,以便及时处理。</description>
-		<description lang="zh_TW">從Kodi.tv安裝PVR附加元件。[CR]使用官方資料庫,你可以直接從你地區內的伺服器下載,享受更快速的體驗。[CR]所有的附加原件都已經經過基本測試。但如果你發現有損壞或不正常運作的附加原件,請回報於Kodi開發團隊。</description>
-		<disclaimer lang="af">Die Kodi span het nie al die byvoegsels in die kodebank gemaak nie en is nie verantwoordelik vir hulle inhoud nie</disclaimer>
-		<disclaimer lang="am">የ Kodi ቡድን እዚህ ማጠራቀሚያ ውስጥ ያሉትን የ ተጨማ-ሪዎች ይዞታ አልፈጠሩም ስለዚህም ምንም አይነት ሀላፊነት አይወስዱም</disclaimer>
-		<disclaimer lang="ar">فريق برنامج إكس بى إم سى لم يُصنِع جميع اﻹضافات فى هذا المستودع وغير مسؤول عن ما قد تسببه لك</disclaimer>
-		<disclaimer lang="be">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="bg">Team-Kodi (Екипът зад Kodi) не е автор на всички добавки в хранилището и не носи отговорност за съдържанието им</disclaimer>
-		<disclaimer lang="ca">L'equip del Kodi no ha fet tots els complements d'aquest dipòsit i per tant no són responsables del seu contingut.</disclaimer>
-		<disclaimer lang="cs">Tým Kodi nevytvořil všechna rozšíření v tomto repozitáři a není zodpovědný za jejich obsah</disclaimer>
-		<disclaimer lang="cy">Nid Team-Kodi wnaeth yr holl ychwanegion yn y storfa hon ac nid ydynt yn gyfrifol am eu cynnwys.</disclaimer>
-		<disclaimer lang="da">Team-Kodi har ikke lavet alle add-ons i dette fjernlager og er ikke ansvarlig for deres indhold</disclaimer>
-		<disclaimer lang="de">Die Addons in diesem Verzeichnis wurden nicht alle vom Team-Kodi erstellt. Verantwortlich für den Inhalt sind die jeweiligen Autoren.</disclaimer>
-		<disclaimer lang="el">Η Ομάδα Kodi δεν δημιούργησε όλα τα πρόσθετα σε αυτό το αποθετήριο συνεπώς δεν είναι υπεύθυνοι για το περιεχόμενό τους</disclaimer>
-		<disclaimer lang="en">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_AU">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_NZ">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_US">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="es">El equipo de Kodi no ha hecho todos los Complementos en este repositorio y no son responsables de su contenido</disclaimer>
-		<disclaimer lang="es_AR">No todos los add-ons en este repositorio han sido creados por el equipo de Kodi y este no es responsable de su contenido</disclaimer>
-		<disclaimer lang="es_MX">El equipo de Kodi no hizo todos los add-ons en este repositorio y no es responsable de su contenido</disclaimer>
-		<disclaimer lang="et">Kodi meeskond ei teinud kõiki lisasid selles hoidlas ja ei vastuta ka nende sisu eest.</disclaimer>
-		<disclaimer lang="eu">Kodi taldeak ez ditu biltegi honetako gehigarri guztiak sortu eta ez da beren edukien erantzule.</disclaimer>
-		<disclaimer lang="fi">Team-Kodi ei ole tehnyt kaikkia tässä säilössä olevia lisäosia, eikä siten ole vastuullinen kyseisten lisäosien sisällöstä</disclaimer>
-		<disclaimer lang="fr">La Team-Kodi n'est pas l'auteur de toutes les extensions de ce dépôt et n'est pas responsable de leur contenu</disclaimer>
-		<disclaimer lang="fr_CA">L'équipe-Kodi n'a pas créé tous les addiciels de ce dépôt et n'est pas responsable de leur contenu</disclaimer>
-		<disclaimer lang="gl">O equipo de Kodi non creou todos os Engadidos deste repositorio e non é responsábel do seu contido</disclaimer>
-		<disclaimer lang="he">צוות הפיתוח של Kodi לא יצר את כל ההרחבות שבמאגר זה ואיננו אחראי על תוכנן</disclaimer>
-		<disclaimer lang="hr">Kodi tim nije autor svih dodataka u ovom repozitoriju te kao takvi ne odgovaraju za njihov sadržaj</disclaimer>
-		<disclaimer lang="hu">Nem minden itt található kiegészítőt az Kodi csapat készített és nem vállal felelősséget azok tartalmáért</disclaimer>
-		<disclaimer lang="id">Tim Kodi tidak membuat semua pengaya pada repository ini dan tidak bertanggung jawab atas isinya.</disclaimer>
-		<disclaimer lang="is">Kodi teymið gerir ekki allar þessar viðbætur og er ekki ábyrgt fyrir innihaldi þeirra.</disclaimer>
-		<disclaimer lang="it">Il team di Kodi non ha creato tutti gli add-on di questa libreria e non è responsabile per il loro contenuto</disclaimer>
-		<disclaimer lang="ja">Kodi チームが、このリポジトリ上の全アドオンを作ったわけではありません。また、その内容についても責任は負いかねます。</disclaimer>
-		<disclaimer lang="ko">Team-Kodi가 이 저장소의 모든 애드온을 제작한 것은 아니며, 애드온 컨텐츠에 대한 책임이 없습니다.</disclaimer>
-		<disclaimer lang="ku">تیمی Kodi هەموو پێوەکراوەکانی دروست نەکردووە بۆیە بەرپرسیار نیە لە پێکهاتە و ناوەڕۆکەکانی</disclaimer>
-		<disclaimer lang="lt">Kodi komanda netestavo priedų šioje saugykloje ir neatsako arba nėra atsakinga už jų turinį</disclaimer>
-		<disclaimer lang="lv">Kodi komanda nav izveidojusi visus šīs krātuves paplašinājumus un nav atbildīga par to saturu</disclaimer>
-		<disclaimer lang="mk">Kodi тимот ги нема направено сите овие додатоци и не е одговорен за нивната содржина</disclaimer>
-		<disclaimer lang="nl">Team-Kodi heeft niet alle add-ons in dit depot geschreven en is niet verantwoordelijk voor hun inhoud.</disclaimer>
-		<disclaimer lang="no">Team-Kodi har ikke produsert alle tilleggene i denne pakkebrønnen og er ikke ansvarlig for deres innhold</disclaimer>
-		<disclaimer lang="pl">Zespół Kodi nie tworzy wszystkich dodatków i nie bierze odpowiedzialności za ich zawartość</disclaimer>
-		<disclaimer lang="pt">A equipa Kodi não desenvolveu todos os Add-ons neste repositório e não é responsável pelo seu conteúdo.</disclaimer>
-		<disclaimer lang="pt_BR">O Time do Kodi não produziu todos os add-ons deste repositório, portanto não é responsável ​por seu conteúdo</disclaimer>
-		<disclaimer lang="ro">Echipa Kodi nu a creat toate aceste suplimente din acest depozit și nu este responsabilă pentru conținutul lor.</disclaimer>
-		<disclaimer lang="ru">Разработчики Kodi не являются авторами всех дополнений в данном репозитории и не несут ответственность за их содержимое.</disclaimer>
-		<disclaimer lang="se">Team-Kodi har inte skapat alla tillägg på detta förråd och är inte ansvariga för deras innehåll</disclaimer>
-		<disclaimer lang="sk">Team-Kodi nevytvoril všetky rozšírenia v tomto zdroji nie je zodpovedný za ich obsah</disclaimer>
-		<disclaimer lang="sl">Ekipa Kodi ni naredila vseh dodatkov v tem skladišču in ne odgovarja za njihovo vsebino</disclaimer>
-		<disclaimer lang="sv">Team-Kodi har inte gjort alla tillägg och är inte ansvariga för innehållet i dessa.</disclaimer>
-		<disclaimer lang="tg">Гурӯҳи кории Kodi дар ин анбори нармафзор соҳиби ҳамаи барномаҳои иловагӣ намебошад ва барои мӯҳтавояшон ҷавобгар намебшад</disclaimer>
-		<disclaimer lang="th">ทีม Kodi ไม่ได้จัดทำ ส่วนเสริม ทั้งหมดในแหล่งข้อมูลโปรแกรมนี้ และจะไม่รับผิดชอบต่อเนื้อหาเหล่านั้น</disclaimer>
-		<disclaimer lang="tr">Kodi takımı bu depodaki tüm eklentileri geliştirmemiştir ve bunların içeriklerinden sorumlu değildir.</disclaimer>
-		<disclaimer lang="uk">Зауважте, що не всі додатки в цьому Репозиторії створені Командою Kodi, і тому Команда не несе відповідальності за їх вміст.</disclaimer>
-		<disclaimer lang="vi">Đội ngũ Kodi không làm ra tất cả các add-on có trên kho chứa này và sẽ không chịu trách nhiệm về nội dung của các add-on đấy</disclaimer>
-		<disclaimer lang="zh">本库中插件不完全由 Kodi 团队开发,Kodi 团队对他人提交的内容不承担责任</disclaimer>
-		<disclaimer lang="zh_TW">這個附加元件庫的附加元件並非全部由 Kodi 團隊製作的,所以我們不對這些內容負責。</disclaimer>
-		<platform>osx32</platform>
-	</extension>
-</addon>
diff --git a/addons/repository.pvr-osx32.xbmc.org/icon.png b/addons/repository.pvr-osx32.xbmc.org/icon.png
deleted file mode 100644
index 01149a5..0000000
Binary files a/addons/repository.pvr-osx32.xbmc.org/icon.png and /dev/null differ
diff --git a/addons/repository.pvr-osx64.xbmc.org/addon.xml b/addons/repository.pvr-osx64.xbmc.org/addon.xml
deleted file mode 100644
index 7e53028..0000000
--- a/addons/repository.pvr-osx64.xbmc.org/addon.xml
+++ /dev/null
@@ -1,166 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="repository.pvr-osx64.xbmc.org"
-		name="Kodi PVR Add-on repository"
-		version="1.0.16"
-		provider-name="XBMC Foundation">
-  <requires>
-    <import addon="xbmc.addon" version="12.0.0"/>
-    <import addon="xbmc.pvr" version="1.9.0"/>
-  </requires>
-	<extension point="xbmc.addon.repository"
-		name="Official XBMC.org PVR Add-on Repository">
-		<info compressed="true">http://mirrors.kodi.tv/addons/gotham/pvr/osx64/addons.xml</info>
-		<checksum>http://mirrors.kodi.tv/addons/gotham/pvr/osx64/addons.xml.md5</checksum>
-		<datadir zip="true">http://mirrors.kodi.tv/addons/gotham/pvr/osx64</datadir>
-		<hashes>true</hashes>
-	</extension>
-	<extension point="xbmc.addon.metadata">
-		<summary lang="am">ከ Kodi.tv የ PVR ተጨማ-ሪዎች መግጠሚያ </summary>
-		<summary lang="ar">ثبت اضافة البي في ار PVR من موقع kodi.tv</summary>
-		<summary lang="bg">Инсталира PVR добавки от Kodi.tv</summary>
-		<summary lang="ca">Instal·la complements PVR des de Kodi.tv</summary>
-		<summary lang="cs">Nainstalovat rozšíření PVR z Kodi.tv</summary>
-		<summary lang="cy">Gosod Ychwanegon PVR o Kodi.tv</summary>
-		<summary lang="da">Installer PVR add-ons fra Kodi.tv</summary>
-		<summary lang="de">Installiere PVR Addons von Kodi.tv</summary>
-		<summary lang="el">Εγκατάσταση Πρόσθετων PVR από το Kodi.tv</summary>
-		<summary lang="en">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_AU">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_NZ">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_US">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="es">Instalar Complementos de PVR de Kodi.tv</summary>
-		<summary lang="es_AR">Instalar complemento PVR desde Kodi.tv</summary>
-		<summary lang="es_MX">Instalar Complementos PVR de Kodi.tv</summary>
-		<summary lang="et">Paigalda videosalvesti lisasid lehelt Kodi.tv</summary>
-		<summary lang="eu">Instalatu PVR gehigarriak Kodi.tv-etik</summary>
-		<summary lang="fi">Asenna PVR-lisäosia Kodi.tvista</summary>
-		<summary lang="fr">Installer des extensions Magnétoscope numérique depuis Kodi.tv</summary>
-		<summary lang="fr_CA">Installer des addiciels de numériscopes depuis Kodi.tv</summary>
-		<summary lang="gl">Instalar Engadidos de PVR dende Kodi.tv</summary>
-		<summary lang="he">התקנת הרחבות מ־Kodi.tv</summary>
-		<summary lang="hr">Instaliraj PVR dodatke s Kodi.tv</summary>
-		<summary lang="hu">PVR kiegészítők telepítése az Kodi.tv-ról</summary>
-		<summary lang="id">Pasang Pengaya dari Kodi.tv</summary>
-		<summary lang="is">Settu inn viðbætur fyrir persónulegan mynd upptökubúnað (PVR) frá Kodi.tv</summary>
-		<summary lang="it">Installa addon da Kodi.tv</summary>
-		<summary lang="ja">Kodi.tv から PVR アドオンをインストール</summary>
-		<summary lang="ko">Kodi.tv에서 PVR 애드온 설치</summary>
-		<summary lang="lt">Įdiekite PVR priedą iš Kodi.tv</summary>
-		<summary lang="lv">Instalēt PVR pielikumus no Kodi.tv</summary>
-		<summary lang="mk">Инсталирај PVR addon-и од Kodi.tv</summary>
-		<summary lang="mn_MN">Kodi.tv-с PVR нэмэлт суулгах</summary>
-		<summary lang="mr">Kodi.ORG  वरून PVR अद्डोंस इंस्टाल करा </summary>
-		<summary lang="nl">Installeer PVR Add-ons van Kodi.tv</summary>
-		<summary lang="no">Installer tillegg fra Kodi.tv</summary>
-		<summary lang="pl">Instaluj klienty TV z Kodi.tv</summary>
-		<summary lang="pt">Instalar Add-ons PVR de Kodi.tv</summary>
-		<summary lang="pt_BR">Instalar Add-ons de PVR do repositório Kodi.tv</summary>
-		<summary lang="ru">Установить дополнения с сайта Kodi.tv</summary>
-		<summary lang="sk">Inštalovať PVR doplnky z Kodi.tv</summary>
-		<summary lang="sl">Namestite dodatke PVR z Kodi.tv</summary>
-		<summary lang="sv">Installera PVR-tillägg från Kodi.tv</summary>
-		<summary lang="tg">Насб кардани барномаи иловагии PVR аз Kodi.tv</summary>
-		<summary lang="th">ติดตั้งส่วนเสริม PVR จาก  Kodi.tv</summary>
-		<summary lang="tr">Kodi.tv sitesinden PVR Eklentilerini Yükle</summary>
-		<summary lang="uk">Встановити додатки PVR з Kodi.tv</summary>
-		<summary lang="zh">从 Kodi.tv 安装 PVR 插件</summary>
-		<summary lang="zh_TW">從Kodi.tv安裝PVR附加元件</summary>
-		<description lang="ar">نزل ونصب اضاقة البي في ار من موقع اكس بي ام سي الرسمي مستودع الاضافات "repository". باستخدامك للمستودع الرسمي ستستفيد من تعدد سيرفراتنا التي ستعطيك سرعة اكبر في تنزيل بجعلك تنزل من منطقة قريبة منك. كل الملفات في هذا المستودع مر على اختبارات مبدئية ولكن اذا وجدت اي خلل او خطأ في </description>
-		<description lang="bg">Сваля и инсталира PVR добавки от официалното хранилище за добавки на Kodi.tv. Ползвайки добавката ще се възползвате от системата ни от огледални сървъри - за да сваляте с висока скорост, от сървър близък до Вас. Добавките от хранилището са минали няколко теста, но ако се натъкнете на неработеща или проблемна добавка, моля уведомете екипа на Kodi, за да бъдат предприети необходимите действия.</description>
-		<description lang="cs">Stáhnout a nainstalovat rozšíření z oficiálního repozitáře Kodi.tv. [CR]  Použitím oficiálního repozitáře získáte rozsáhlý systém zrcadel, který vám umožní rychlé stažení z blízkého regionu.[CR]  Všechna rozšíření v repozitáři prošla základním testováním. Pokud najdete rozbitý, nebo nefunkční rozšíření, nahlaste jej prosím týmu Kodi, abychom mohli dle potřeby zakročit.</description>
-		<description lang="cy">Llwythwch i law a gosod ategion amserydd o storfa swyddogol Kodi.tv.[CR] Drwy ddefnyddio'r gronfa swyddogol mae modd i chi gymryd mantais o'n gwasanaeth ffeiliau helaeth i allu llwytho ffeiliau i lawr o'ch ardal chi.[CR]Bydd pob ategyn ar y storfa wedi ei phrofi, ond os ddowch ar draws rhai sydd wedi torri neu ddim yn gweithio gadewch i Team-Kodi wybod er mwyn i ni gael gweithredi ar mater.</description>
-		<description lang="da">Download og installer PVR add-ons fra det officielle Kodi.tv add-on repository.[CR] Ved at benytte det officielle repository drager du fordel af vores distributionsservice som gør at du kan downloade hurtigere fra en placering tæt på dig.[CR] Alle add-ons i dette repository har gennemgået basale tests. Skulle du finde en defekt x add-on så rapporter det venligst til Team-Kodi, så de kan tage de nødvendige handlinger.</description>
-		<description lang="de">Dies ist das offizielle Kodi.tv PVR-Addon-Verzeichnis.[CR]Dieses Addon-Verzeichnis ermöglicht aufgrund umfangreicher Spiegelserver in der Nähe schnelle Downloads.[CR]Alle Addons in diesem Verzeichnis wurden einfachen Tests unterzogen. Sollte dennoch ein Addon nicht richtig funktionieren benachrichtige bitte Team-Kodi damit wir reagieren können.</description>
-		<description lang="el">Λήψη και εγκατάσταση πρόσθετων από το επίσημο αποθετήριο του Kodi.tv.[CR]  Χρησιμοποιώντας το Επίσημο Αποθετήριο μπορείτε να εκμεταλλευτείτε τους εκτεταμένους διακομιστές αρχείων μας για ταχύτερες λήψεις από μία κοντινή σας περιοχή.[CR]  Όλα τα πρόσθετα σε αυτό το αποθετήριο έχουν περάσει τις στοιχειώδεις δοκιμές, αν βρείτε ένα κατεστραμμένο ή ανενεργό πρόσθετο παρακαλούμε να το αναφέρετε στην Ομάδα Kodi ούτως ώστε να ληφθούν οι απαραίτητες ενέργειες.</description>
-		<description lang="en">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_AU">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have undergone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_NZ">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_US">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="es">Descarga e instala complementos de PVR desde el repositorio oficial de Kodi.[CR] Usando el repositorio oficial tendrás las ventajas de nuestro servicio de mirrors para ayudarte a conseguir unas descargas más rápidas de un sitio cercano a ti.[CR] Todos los complementos en este repositorio han pasado por un periodo de pruebas básico, pero si encuentras algún complemento que no funciona, por favor informa de ello al equipo de Kodi para solucionar el problema.</description>
-		<description lang="es_AR">Descarga e instala el complemento desde el repositorio oficial de Kodi.tv.[CR] Usando el repositorio oficial tendrá las ventajas de nuestro servicio de réplicas para ayudarle a conseguir unas descargas más rápidas de un sitio cercano a su región.[CR] Todos los complementos en este repositorio han pasado por un periodo de pruebas básico, pero si encuentra algún complemento que no funciona, por favor infórmelo al equipo de Kodi para que podamos tomar las acciones necesarias.</description>
-		<description lang="es_MX">Descarga e instala complementos del repositorio oficial Kodi.tv.[CR] Al usar el repositorio oficial, tendrá la ventaja de nuestro servicio extenso de espejos para ayudarle a tener descargas mas rapidas desde una region mas cerca de usted.[CR] Todos los complementos en este repositorio se han probado de manera básica, si encuentra alguno que no funciona o roto, favor de reportarlo al Equipo de Kodi para poder tomar las medidas necesarias.</description>
-		<description lang="et">Lae alla ja installi videosalvesti lisasid ametlikust Kodi.tv hoidlast.[CR]  Ametliku hoidla kasutamise eeliseks on võimalus kasutada meie ulatuslikku failide peegelteenust laadides faile sulle kõige lähemast serverist.[CR]  Kõik lisad selles hoidlas on läbinud elementaarse testimise. Siiski, kui sa leiad vigase või mittetöötava lisa, siis palun teavita sellest Kodi meeskonda, et me saaksime vajaliku abi osutada.</description>
-		<description lang="fr">Télécharger et installer des extensions à partir du dépôt officiel Kodi.tv.[CR]  En utilisant le dépôt officiel, vous bénéficierez de notre service de serveurs miroirs vous permettant de télécharger rapidement depuis une région proche de vous.[CR]  Toutes les extensions de ce dépôt ont été testées de manière basique, si vous trouvez une extension corrompue ou inutilisable, merci d'en informer la Team-Kodi afin que nous puissions prendre les mesures nécessaires.</description>
-		<description lang="fr_CA">Télécharger et installer des addiciels de numériscopes depuis le dépôt officiel de Kodi.tv.[CR] En utilisant le dépôt officiel vous pourrez bénéficier de notre service étendu de miroirs de fichiers favorisant des téléchargements plus rapides depuis une région proche de vous.[CR] Tous les addiciels de ce dépôt ont subi des tests de base. Si vous trouvez un addiciel non fonctionnel ou brisé, veuillez le rapporter à l'équipe-Kodi afin que nous puissions agir.</description>
-		<description lang="gl">Descargar e instalar Engadidos de PVR dende o repositorio oficial de Kodi.tv.[CR] Empregando o repositorio oficial, vostede poderá gozar das vantaxes do seu extenso servizo de replicación de ficheiros que lle permite unhas descargas máis rápidas dende unha rexión preto a vostede.[CR] Tódolos Engadidos deste repositorio pasaron por comprobacións básicas. Se atopa algún Engadido roto ou non funcional, por favor reporteo ó equipo de Kodi para que poidan actuar en consecuencia.</description>
-		<description lang="he">הורדה והתקנת הרחבות ממאגר הרחבות Kodi.tv הרשמי.[CR] שימוש במאגר הרשמי מאפשר לנצל את שירות שיקוף הקבצים של Kodi.tv העוזר להוריד מהר יותר מהשרת הקרוב ביותר.[CR] כל ההרחבות במאגר זה עברו בדיקה בסיסית. יש לדווח לצוות הפיתוח של Kodi על כל הרחבה שנמצאה כלא תקינה או שלא עובדת ע"מ שתתבצע הפעולה המתאימה.</description>
-		<description lang="hr">Preuzmite i instalirajte PVR dodatke sa službenog Kodi.tv repozitorija dodataka.[CR]  Korištenjm službenog repozitorija biti ćete u mogućnosti iskoristiti prednost našeg zrcalnog poslužitelja u svrhu bržeg preuzimanja iz regije bliže vama.[CR]  Svi dodaci na ovom repozitoriju prošli su osnovno testiranje. Ako pronađete slomljeni ili dodatak koji ne radi, prijavite ga Kodi timu da ga možemo popraviti.</description>
-		<description lang="hu">PVR Kiegészítők letöltése és telepítése a hivatalos Kodi.tv tárolóhelyről.[CR] A hivatalos tárolóhely használatával kihasználhatod szerteágazó tükör-kiszolgáló hálózatunkat, ami segít a gyorsabb letöltésben egy hozzád közelebb eső körzet használatával.[CR]  Minden kiegészítő ezen a tárolóhelyen átment egy alaptesztelésen. Ha mégis hibás vagy nem működő kiegészítőt találsz, kérünk jelezd az Kodi csapatnak, hogy megtegyük a szükséges lépéseket.</description>
-		<description lang="id">Unduh dan pasang pengaya dari repositori pengaya resmi Kodi.tv. [CR] Dengan menggunakan repositori resmi anda akan mendapat keuntungan dari miror berkas kami yang luas dimana dapat membantu anda untuk lebih cepat mengunduh dari daerah yang dekat dengan anda. [CR] Semua pengaya pada repository telah melalui uji coba standar, jika anda menemukan pengaya yang rusak atau tidak bekerja tolong laporkan kepada tim Kodi agar kami bisa menindak lanjutinya.</description>
-		<description lang="is">Náðu í og settu inn PVR viðbætur frá viðurkenndu Kodi.tv viðbóta safninu.[CR]  með því að nota viðurkennt geymslusafn þá nýturðu kosta skráaspeglunarþjónustu okkar sem veitir þér hraðvirkara niðurhal frá miðlara sem næst þér.[CR]  Allar viðbætur í þessu geymslusafni hafa undirgengist undirstöðuprófanir, ef þú finnur bilaða viðbót eða einhverja sem virkar ekki, þá vinsamlegast tilkynntu það til Team-Kodi svo við getum gripið til viðeigandi ráðstafanna.</description>
-		<description lang="it">Scarica ed installa gli add-on dalla libreria ufficiale di Kodi.tv[CR]  Usando la libreria ufficiale avrai il vantaggio di ottenere download più veloci con mirror più vicini alla tua località.[CR]  Tutti gli add-on in questa libreria sono stati sottoposti a test di base, se ne trovi uno non funzionante o corrotto, per favore riporta il problema al team di Kodi così potremmo prendere provvedimenti.</description>
-		<description lang="ja">公式の Kodi.tv アドオンリポジトリからPVRアドオンをダウンロードしインストールします。[CR]公式のリポジトリを利用することで、私達の大規模なファイル・ミラーサービスから、よりあなたに近い地域からの高速なダウンロードが可能になります。[CR]このリポジトリのすべてのアドオンは、基本的なテストは行っています。もしも壊れている、もしくは、動かないアドオンを見つけた場合は、Kodi チームに報告してください。</description>
-		<description lang="ko">공식 Kodi.tv 애드온 저장소에서 PVR 애드온을 다운로드하여 설치합니다.[CR] 공식 저장소를 사용하면 파일 미러링 서비스를 통해 사용자와 가까운 곳에서 빠르게 다운로드할 수 있습니다.[CR] 저장소의 모든 애드온은 기본 테스트를 거치지만 작동이 되지 않거나 손상된 애드온을 발견하면 필요한 조치를 취할 수 있게 Team-Kodi로 알려주시기 바랍니다.</description>
-		<description lang="lt">Atsisiųskite ir įdiekite PVR priedą iš oficialios Kodi.tv priedų saugyklos. [Cr] Naudojant oficialią saugyklą galėsite pasinaudoti mūsų  failų Veidrodine saugyklos paslauga katra padės jums greičiau parsisiųsti iš artimiausios vietos šalia jūsų. [CR] Visi priedai šioje saugykloje yra perėję pagrindinį testavimą, jei atsisiuntėte neveikiantį ar/arba sugadintą priedą praneškite 'Team-Kodi', kad galėtume imtis visų būtinų priemonių klaidai ištaisyti.</description>
-		<description lang="lv">Lejupielādējiet un instalējiet PVR pielikumus no oficiālā Kodi.tv pielikumu repozitorija.[CR]  Izmantojot oficiālo repozitoriju, varēsiet izmantot mūsu plašo spoguļu pakalpojumu, lai iegūtu ātrākas lejupielādes no reģiona, kas vistuvāk.[CR]  Visi pielikumi šajā repozitorijā ir izgājuši pamata testēšanu, bet, ja atrodat saplīsušu vai nestrādājošu pielikumu, lūdzu, ziņojiet par to Team-Kodi, lai varam izpildīt nepieciešamās labošanas darbības.</description>
-		<description lang="mk">Превземи и инсталирај PVR addon-и од официјалното складиште на Kodi.tv.[CR] Кога го користиш официјалното складиште, можеш да ги искористиш нашите бројни мирори за фајлови за побрзо симнување преку сервер близу до тебе.[CR] Сите addon-и на ова складиште имаат поминато основни тестови, но ако најдеш расипан add-on, те молиме пријави го на Team-Kodi за да можеме да превземеме иницијатива.</description>
-		<description lang="nl">Download en installeer PVR add-ons uit de officiële Kodi.tv add-on depot.[CR] Wanneer u het officiële depot gebruikt beschikt u over onze uitgebreide mirrorservice, waardoor u snel kan downloaden van locaties in uw buurt.[CR] Alle add-ons in dit depot ondergingen standaardtests; indien u een defecte of niet-werkende add-on vindt, meld dit dan aan Team-Kodi zodat zij actie kunnen ondernemen.</description>
-		<description lang="no">Last ned og installer tillegg fra den offisielle Kodi.tv pakkebrønnen.[CR] Når du benytter den offisielle brønnen drar du fordel av vår utvidede filspeilingstjeneste slik at du får raskere nedlastinger fra en server nær deg.[CR] Alle tillegg i denne brønnen har gått gjennom en grunnleggende testing, men hvis du finner et tillegg som ikke fungerer, vennligst rapporter det til Team-Kodi så vi får sett på det.</description>
-		<description lang="pl">Pobieraj i instaluj wtyczki PVR z oficjalnego repozytorium Kodi.tv.[CR] Używając oficjalnego repozytorium korzystasz z serwerów lustrzanych, rozsianych po całym świecie. Wybierany jest ten, który znajduje się najbliżej ciebie, zapewniając dużą prędkość połączenia.[CR]Wszystkie wtyczki znajdujące się w tym repozytorium są testowane, ale mogą okazać się niesprawne. Zgłoś wówczas błąd, aby zespół Kodi mógł podjąć odpowiednie działanie.</description>
-		<description lang="pt">Transferir e instalar add-ons PVR do repositório oficial Kodi.tv.[CR] Ao usar o repositório oficial, os nossos servidores garantem-lhe sempre transferências rápidas a partir da localização mais próxima.[CR] Todos os Add-ons neste repositório foram alvo de testes preliminares. Na improvável hipótese de encontrar um Add-on que não funcione, por favor contacte a equipa do Kodi, para que a situação se resolva.</description>
-		<description lang="pt_BR">Transfira e instale add-ons de Tv ao Vivo, a partir do repositório oficial do Kodi.tv.[CR]|Ao utilizar o repositório oficial, você será capaz de tirar proveito do nosso serviço de espelhamento de arquivos, auxiliando em downloads mais rápidos a partir de uma região perto de você.[CR]|Todos os add-ons neste repositório passam por testes básicos, se você encontrar algum quebrado ou que não esteja funcionando, por favor reporte para a equipe do Kodi, para que possamos tomar as ações necessárias.</description>
-		<description lang="ru">Загружайте и устанавливайте обновления из официального репозитория Kodi.tv[CR]Используя официальный репозиторий, вы сможете воспользоваться преимуществами распределенного хранилища для быстрой загрузки файлов с ближайшего к вам сервера.[CR]Все дополнения в данном репозитории прошли тестирование. Если вы обнаружили нерабочее дополнение, сообщите об этом разработчикам Kodi.</description>
-		<description lang="sk">Stiahnuť a nainštalovať PVR rozšírenia z oficiálneho zdroja rozšírení Kodi.tv.[CR] Použitím oficiálneho zdroja získavate možnosť využiť rozsiahly systém zrkadiel, ktorý Vám umožní rýchlejšie sťahovanie z Vám blízkeho regiónu.[CR] Všetky rozšírenia v tomto zdroji boli podrobené základnému testovaniu. Ak nájdete poškodené alebo nefunkčné rozšírenie, oznámte to prosím týmu Kodi aby mohol podľa potreby zakročiť.</description>
-		<description lang="sl">Prenos in namestitev dodatkov PVR iz uradnega skladišča Kodi.tv.[CR] Z uporabo uradnega skladišča, boste lahko izkoristili hitrejšo povezavo, ki bo izbrana glede na vašo lokacijo.[CR] Vsi dodatki tega skladišča so bili osnovno stestirani, če pa boste našli pokvarjen ali nedelujoč dodatek, to sporočite ekipi Kodi, da bomo lahko odpravili napake.</description>
-		<description lang="sv">Ladda ner och installera PVR-tillägg från det officiella Kodi.tv tilläggsförrådet.[CR] Genom att använda det officiella förrådet kommer du att få fördelen att kunna använda vår omfattande spegeltjänst som hjälper dig till snabbare nedladdningar från en plats nära dig.[CR] Alla tillägg i detta förråd har genomgått grundläggande tester. Hittar du ett trasigt eller icke fungerande tillägg, vänligen meddela detta till Team-Kodi så att vi kan vidta nödvändiga åtgärder.</description>
-		<description lang="tg">Барномаҳои иловагии PVR-ро аз анбори нармафзори расмии Kodi.tv боргирӣ кунед ва насб кунед.[CR]  Агар анбори нармафзори расмиро истифода баред, метавонед нармафзори иловагиро аз серверҳои наздиктарин ба шумо боргирӣ намоед.[CR]  Ҳамаи нармафзори анбори зикршуда аз санҷиши асосӣ мегузаранд, ва агар шумо ягон барномаи иловагии вайроншуда ё ғайрифаъолро пайдо кунед, метавонед дар бораи он гузоришро ба Гурӯҳи кории Kodi фиристонед, то ки барномасозон тавонанд камбудиҳои пайдошударо ҳал кунанд.</description>
-		<description lang="tr">PVR Eklentilerini Resmi Kodi.tv eklenti deposundan indir ve yükle.[CR]Resmi yazılım depomuzu kullanarak size en yakın bölgeden en hızlı biçimde indirme yapmanızı sağlayacak gelişkin dosya aynalama servisini kullanma avantajını elde edeceksiniz.[CR]Bu yazılım deposundaki tüm eklentiler temel testlerden geçerler, şayet hatalı ya da çalışmayan bir eklenti bulur iseniz lütfen düzeltilmesi için bu durumu Kodi Takımına bildiriniz.</description>
-		<description lang="zh">从官方 Kodi.tv 插件库下载和安装 PVR 插件。[CR] 通过官方程序库你将能利用我们广泛的镜像服务优势,使你能够就近下载资源。[CR] 官方库中的所有插件都经过了基本的测试,如果你发现有失效或不能正常工作的插件,请向 Kodi 开发团队报告,以便及时处理。</description>
-		<description lang="zh_TW">從Kodi.tv安裝PVR附加元件。[CR]使用官方資料庫,你可以直接從你地區內的伺服器下載,享受更快速的體驗。[CR]所有的附加原件都已經經過基本測試。但如果你發現有損壞或不正常運作的附加原件,請回報於Kodi開發團隊。</description>
-		<disclaimer lang="af">Die Kodi span het nie al die byvoegsels in die kodebank gemaak nie en is nie verantwoordelik vir hulle inhoud nie</disclaimer>
-		<disclaimer lang="am">የ Kodi ቡድን እዚህ ማጠራቀሚያ ውስጥ ያሉትን የ ተጨማ-ሪዎች ይዞታ አልፈጠሩም ስለዚህም ምንም አይነት ሀላፊነት አይወስዱም</disclaimer>
-		<disclaimer lang="ar">فريق برنامج إكس بى إم سى لم يُصنِع جميع اﻹضافات فى هذا المستودع وغير مسؤول عن ما قد تسببه لك</disclaimer>
-		<disclaimer lang="be">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="bg">Team-Kodi (Екипът зад Kodi) не е автор на всички добавки в хранилището и не носи отговорност за съдържанието им</disclaimer>
-		<disclaimer lang="ca">L'equip del Kodi no ha fet tots els complements d'aquest dipòsit i per tant no són responsables del seu contingut.</disclaimer>
-		<disclaimer lang="cs">Tým Kodi nevytvořil všechna rozšíření v tomto repozitáři a není zodpovědný za jejich obsah</disclaimer>
-		<disclaimer lang="cy">Nid Team-Kodi wnaeth yr holl ychwanegion yn y storfa hon ac nid ydynt yn gyfrifol am eu cynnwys.</disclaimer>
-		<disclaimer lang="da">Team-Kodi har ikke lavet alle add-ons i dette fjernlager og er ikke ansvarlig for deres indhold</disclaimer>
-		<disclaimer lang="de">Die Addons in diesem Verzeichnis wurden nicht alle vom Team-Kodi erstellt. Verantwortlich für den Inhalt sind die jeweiligen Autoren.</disclaimer>
-		<disclaimer lang="el">Η Ομάδα Kodi δεν δημιούργησε όλα τα πρόσθετα σε αυτό το αποθετήριο συνεπώς δεν είναι υπεύθυνοι για το περιεχόμενό τους</disclaimer>
-		<disclaimer lang="en">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_AU">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_NZ">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_US">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="es">El equipo de Kodi no ha hecho todos los Complementos en este repositorio y no son responsables de su contenido</disclaimer>
-		<disclaimer lang="es_AR">No todos los add-ons en este repositorio han sido creados por el equipo de Kodi y este no es responsable de su contenido</disclaimer>
-		<disclaimer lang="es_MX">El equipo de Kodi no hizo todos los add-ons en este repositorio y no es responsable de su contenido</disclaimer>
-		<disclaimer lang="et">Kodi meeskond ei teinud kõiki lisasid selles hoidlas ja ei vastuta ka nende sisu eest.</disclaimer>
-		<disclaimer lang="eu">Kodi taldeak ez ditu biltegi honetako gehigarri guztiak sortu eta ez da beren edukien erantzule.</disclaimer>
-		<disclaimer lang="fi">Team-Kodi ei ole tehnyt kaikkia tässä säilössä olevia lisäosia, eikä siten ole vastuullinen kyseisten lisäosien sisällöstä</disclaimer>
-		<disclaimer lang="fr">La Team-Kodi n'est pas l'auteur de toutes les extensions de ce dépôt et n'est pas responsable de leur contenu</disclaimer>
-		<disclaimer lang="fr_CA">L'équipe-Kodi n'a pas créé tous les addiciels de ce dépôt et n'est pas responsable de leur contenu</disclaimer>
-		<disclaimer lang="gl">O equipo de Kodi non creou todos os Engadidos deste repositorio e non é responsábel do seu contido</disclaimer>
-		<disclaimer lang="he">צוות הפיתוח של Kodi לא יצר את כל ההרחבות שבמאגר זה ואיננו אחראי על תוכנן</disclaimer>
-		<disclaimer lang="hr">Kodi tim nije autor svih dodataka u ovom repozitoriju te kao takvi ne odgovaraju za njihov sadržaj</disclaimer>
-		<disclaimer lang="hu">Nem minden itt található kiegészítőt az Kodi csapat készített és nem vállal felelősséget azok tartalmáért</disclaimer>
-		<disclaimer lang="id">Tim Kodi tidak membuat semua pengaya pada repository ini dan tidak bertanggung jawab atas isinya.</disclaimer>
-		<disclaimer lang="is">Kodi teymið gerir ekki allar þessar viðbætur og er ekki ábyrgt fyrir innihaldi þeirra.</disclaimer>
-		<disclaimer lang="it">Il team di Kodi non ha creato tutti gli add-on di questa libreria e non è responsabile per il loro contenuto</disclaimer>
-		<disclaimer lang="ja">Kodi チームが、このリポジトリ上の全アドオンを作ったわけではありません。また、その内容についても責任は負いかねます。</disclaimer>
-		<disclaimer lang="ko">Team-Kodi가 이 저장소의 모든 애드온을 제작한 것은 아니며, 애드온 컨텐츠에 대한 책임이 없습니다.</disclaimer>
-		<disclaimer lang="ku">تیمی Kodi هەموو پێوەکراوەکانی دروست نەکردووە بۆیە بەرپرسیار نیە لە پێکهاتە و ناوەڕۆکەکانی</disclaimer>
-		<disclaimer lang="lt">Kodi komanda netestavo priedų šioje saugykloje ir neatsako arba nėra atsakinga už jų turinį</disclaimer>
-		<disclaimer lang="lv">Kodi komanda nav izveidojusi visus šīs krātuves paplašinājumus un nav atbildīga par to saturu</disclaimer>
-		<disclaimer lang="mk">Kodi тимот ги нема направено сите овие додатоци и не е одговорен за нивната содржина</disclaimer>
-		<disclaimer lang="nl">Team-Kodi heeft niet alle add-ons in dit depot geschreven en is niet verantwoordelijk voor hun inhoud.</disclaimer>
-		<disclaimer lang="no">Team-Kodi har ikke produsert alle tilleggene i denne pakkebrønnen og er ikke ansvarlig for deres innhold</disclaimer>
-		<disclaimer lang="pl">Zespół Kodi nie tworzy wszystkich wszystkich i nie bierze odpowiedzialności za ich zawartość</disclaimer>
-		<disclaimer lang="pt">A equipa Kodi não desenvolveu todos os Add-ons neste repositório e não é responsável pelo seu conteúdo.</disclaimer>
-		<disclaimer lang="pt_BR">O Time do Kodi não produziu todos os add-ons deste repositório, e portanto não é responsável ​​por seu conteúdo</disclaimer>
-		<disclaimer lang="ro">Echipa Kodi nu a creat toate aceste suplimente din acest depozit și nu este responsabilă pentru conținutul lor.</disclaimer>
-		<disclaimer lang="ru">Разработчики Kodi не являются авторами всех дополнений в данном репозитории и не несут ответственность за их содержимое.</disclaimer>
-		<disclaimer lang="se">Team-Kodi har inte skapat alla tillägg på detta förråd och är inte ansvariga för deras innehåll</disclaimer>
-		<disclaimer lang="sk">Team-Kodi nevytvoril všetky rozšírenia v tomto zdroji nie je zodpovedný za ich obsah</disclaimer>
-		<disclaimer lang="sl">Ekipa Kodi ni naredila vseh dodatkov v tem skladišču in ne odgovarja za njihovo vsebino</disclaimer>
-		<disclaimer lang="sv">Team-Kodi har inte gjort alla tillägg och är inte ansvariga för innehållet i dessa.</disclaimer>
-		<disclaimer lang="tg">Гурӯҳи кории Kodi дар ин анбори нармафзор соҳиби ҳамаи барномаҳои иловагӣ намебошад ва барои мӯҳтавояшон ҷавобгар намебшад</disclaimer>
-		<disclaimer lang="th">ทีม Kodi ไม่ได้จัดทำ ส่วนเสริม ทั้งหมดในแหล่งข้อมูลโปรแกรมนี้ และจะไม่รับผิดชอบต่อเนื้อหาเหล่านั้น</disclaimer>
-		<disclaimer lang="tr">Kodi takımı bu depodaki tüm eklentileri geliştirmemiştir ve bunların içeriklerinden sorumlu değildir.</disclaimer>
-		<disclaimer lang="uk">Зауважте, що не всі додатки в цьому Репозиторії створені Командою Kodi, і тому Команда не несе відповідальності за їх вміст.</disclaimer>
-		<disclaimer lang="vi">Đội ngũ Kodi không làm ra tất cả các add-on có trên kho chứa này và sẽ không chịu trách nhiệm về nội dung của các add-on đấy</disclaimer>
-		<disclaimer lang="zh">本库中插件不完全由 Kodi 团队开发,Kodi 团队对他人提交的内容不承担责任</disclaimer>
-		<disclaimer lang="zh_TW">這個附加元件庫的附加元件並非全部由 Kodi 團隊製作的,所以我們不對這些內容負責。</disclaimer>
-		<platform>osx64</platform>
-	</extension>
-</addon>
diff --git a/addons/repository.pvr-osx64.xbmc.org/icon.png b/addons/repository.pvr-osx64.xbmc.org/icon.png
deleted file mode 100644
index 01149a5..0000000
Binary files a/addons/repository.pvr-osx64.xbmc.org/icon.png and /dev/null differ
diff --git a/addons/repository.pvr-win32.xbmc.org/addon.xml b/addons/repository.pvr-win32.xbmc.org/addon.xml
deleted file mode 100644
index 0aa0be2..0000000
--- a/addons/repository.pvr-win32.xbmc.org/addon.xml
+++ /dev/null
@@ -1,166 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="repository.pvr-win32.xbmc.org"
-		name="Kodi PVR Add-on repository"
-		version="1.1.16"
-		provider-name="XBMC Foundation">
-  <requires>
-    <import addon="xbmc.addon" version="12.0.0"/>
-    <import addon="xbmc.pvr" version="1.9.0"/>
-  </requires>
-	<extension point="xbmc.addon.repository"
-		name="Official XBMC.org PVR Add-on Repository">
-		<info compressed="true">http://mirrors.kodi.tv/addons/gotham/pvr/win32/addons.xml</info>
-		<checksum>http://mirrors.kodi.tv/addons/gotham/pvr/win32/addons.xml.md5</checksum>
-		<datadir zip="true">http://mirrors.kodi.tv/addons/gotham/pvr/win32</datadir>
-		<hashes>true</hashes>
-	</extension>
-	<extension point="xbmc.addon.metadata">
-		<summary lang="am">ከ Kodi.tv የ PVR ተጨማ-ሪዎች መግጠሚያ </summary>
-		<summary lang="ar">ثبت اضافة البي في ار PVR من موقع kodi.tv</summary>
-		<summary lang="bg">Инсталира PVR добавки от Kodi.tv</summary>
-		<summary lang="ca">Instal·la complements PVR des de Kodi.tv</summary>
-		<summary lang="cs">Nainstalovat rozšíření PVR z Kodi.tv</summary>
-		<summary lang="cy">Gosod Ychwanegon PVR o Kodi.tv</summary>
-		<summary lang="da">Installer PVR add-ons fra Kodi.tv</summary>
-		<summary lang="de">Installiere PVR Addons von Kodi.tv</summary>
-		<summary lang="el">Εγκατάσταση Πρόσθετων PVR από το Kodi.tv</summary>
-		<summary lang="en">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_AU">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_NZ">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="en_US">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="es">Instalar Complementos de PVR de Kodi.tv</summary>
-		<summary lang="es_AR">Instalar complemento PVR desde Kodi.tv</summary>
-		<summary lang="es_MX">Instalar Complementos PVR de Kodi.tv</summary>
-		<summary lang="et">Paigalda videosalvesti lisasid lehelt Kodi.tv</summary>
-		<summary lang="eu">Instalatu PVR gehigarriak Kodi.tv-tik</summary>
-		<summary lang="fi">Asenna PVR-lisäosia Kodi.tvista</summary>
-		<summary lang="fr">Installer des extensions Magnétoscope numérique depuis Kodi.tv</summary>
-		<summary lang="fr_CA">Installer des addiciels de numériscopes depuis Kodi.tv</summary>
-		<summary lang="gl">Instalar Engadidos de PVR dende Kodi.tv</summary>
-		<summary lang="he">התקנת הרחבות מ־Kodi.tv</summary>
-		<summary lang="hr">Instaliraj PVR dodatke s Kodi.tv</summary>
-		<summary lang="hu">PVR kiegészítők telepítése az Kodi.tv-ról</summary>
-		<summary lang="id">Pasang Pengaya PVR dari Kodi.tv</summary>
-		<summary lang="is">Settu inn viðbætur fyrir persónulegan mynd upptökubúnað (PVR) frá Kodi.tv</summary>
-		<summary lang="it">Installa addon da Kodi.tv</summary>
-		<summary lang="ja">Kodi.tv から PVR アドオンをインストール</summary>
-		<summary lang="ko">Kodi.tv에서 PVR 애드온 설치</summary>
-		<summary lang="lt">Įdiekite PVR priedą iš Kodi.tv</summary>
-		<summary lang="lv">Instalēt PVR pielikumus no Kodi.tv</summary>
-		<summary lang="mk">Install PVR Add-ons from Kodi.tv</summary>
-		<summary lang="mn_MN">Kodi.tv-с PVR нэмэлт суулгах</summary>
-		<summary lang="mr">Kodi.ORG  वरून PVR अद्डोंस इंस्टाल करा </summary>
-		<summary lang="nl">Installeer PVR Add-ons van Kodi.tv</summary>
-		<summary lang="no">Installer tillegg fra Kodi.tv</summary>
-		<summary lang="pl">Instaluj klienty TV z Kodi.tv</summary>
-		<summary lang="pt">Instalar Add-ons PVR de Kodi.tv</summary>
-		<summary lang="pt_BR">Instalar Add-ons de PVR do repositório Kodi.tv</summary>
-		<summary lang="ru">Установить дополнения с сайта Kodi.tv</summary>
-		<summary lang="sk">Inštalovať PVR doplnky z Kodi.tv</summary>
-		<summary lang="sl">Namestite dodatke PVR z Kodi.tv</summary>
-		<summary lang="sv">Installera PVR-tillägg från Kodi.tv</summary>
-		<summary lang="tg">Насб кардани барномаи иловагии PVR аз Kodi.tv</summary>
-		<summary lang="th">ติดตั้งส่วนเสริม PVR จาก  Kodi.tv</summary>
-		<summary lang="tr">Kodi.tv sitesinden PVR Eklentilerini Yükle</summary>
-		<summary lang="uk">Встановити додатки PVR з Kodi.tv</summary>
-		<summary lang="zh">从 Kodi.tv 安装 PVR 插件</summary>
-		<summary lang="zh_TW">從Kodi.tv安裝PVR附加元件</summary>
-		<description lang="ar">نزل ونصب اضاقة البي في ار من موقع اكس بي ام سي الرسمي مستودع الاضافات "repository". باستخدامك للمستودع الرسمي ستستفيد من تعدد سيرفراتنا التي ستعطيك سرعة اكبر في تنزيل بجعلك تنزل من منطقة قريبة منك. كل الملفات في هذا المستودع مر على اختبارات مبدئية ولكن اذا وجدت اي خلل او خطأ في </description>
-		<description lang="bg">Сваля и инсталира PVR добавки от официалното хранилище за добавки на Kodi.tv. Ползвайки добавката ще се възползвате от системата ни от огледални сървъри - за да сваляте с висока скорост, от сървър близък до Вас. Добавките от хранилището са минали няколко теста, но ако се натъкнете на неработеща или проблемна добавка, моля уведомете екипа на Kodi, за да бъдат предприети необходимите действия.</description>
-		<description lang="cs">Stáhnout a nainstalovat rozšíření z oficiálního repozitáře Kodi.tv. [CR]  Použitím oficiálního repozitáře získáte rozsáhlý systém zrcadel, který vám umožní rychlé stažení z blízkého regionu.[CR]  Všechna rozšíření v repozitáři prošla základním testováním. Pokud najdete rozbitý, nebo nefunkční rozšíření, nahlaste jej prosím týmu Kodi, abychom mohli dle potřeby zakročit.</description>
-		<description lang="cy">Llwythwch i law a gosod ategion amserydd o storfa swyddogol Kodi.tv.[CR] Drwy ddefnyddio'r gronfa swyddogol mae modd i chi gymryd mantais o'n gwasanaeth ffeiliau helaeth i allu llwytho ffeiliau i lawr o'ch ardal chi.[CR]Bydd pob ategyn ar y storfa wedi ei phrofi, ond os ddowch ar draws rhai sydd wedi torri neu ddim yn gweithio gadewch i Team-Kodi wybod er mwyn i ni gael gweithredi ar mater.</description>
-		<description lang="da">Download og installer PVR add-ons fra det officielle Kodi.tv add-on repository.[CR] Ved at benytte det officielle repository drager du fordel af vores distributionsservice som gør at du kan downloade hurtigere fra en placering tæt på dig.[CR] Alle add-ons i dette repository har gennemgået basale tests. Skulle du finde en defekt x add-on så rapporter det venligst til Team-Kodi, så de kan tage de nødvendige handlinger.</description>
-		<description lang="de">Dies ist das offizielle Kodi.tv PVR-Addon-Verzeichnis.[CR]Dieses Addon-Verzeichnis ermöglicht aufgrund umfangreicher Spiegelserver in der Nähe schnelle Downloads.[CR]Alle Addons in diesem Verzeichnis wurden einfachen Tests unterzogen. Sollte dennoch ein Addon nicht richtig funktionieren benachrichtige bitte Team-Kodi damit wir reagieren können.</description>
-		<description lang="el">Λήψη και εγκατάσταση πρόσθετων από το επίσημο αποθετήριο του Kodi.tv.[CR]  Χρησιμοποιώντας το Επίσημο Αποθετήριο μπορείτε να εκμεταλλευτείτε τους εκτεταμένους διακομιστές αρχείων μας για ταχύτερες λήψεις από μία κοντινή σας περιοχή.[CR]  Όλα τα πρόσθετα σε αυτό το αποθετήριο έχουν περάσει τις στοιχειώδεις δοκιμές, αν βρείτε ένα κατεστραμμένο ή ανενεργό πρόσθετο παρακαλούμε να το αναφέρετε στην Ομάδα Kodi ούτως ώστε να ληφθούν οι απαραίτητες ενέργειες.</description>
-		<description lang="en">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_AU">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have undergone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_NZ">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="en_US">Download and install PVR add-ons from the Official Kodi.tv add-on repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All add-ons on this repository have under gone basic testing, if you find a broken or not working add-on please report it to Team-Kodi so we can take any action needed.</description>
-		<description lang="es">Descarga e instala complementos de PVR desde el repositorio oficial de Kodi.[CR] Usando el repositorio oficial tendrás las ventajas de nuestro servicio de mirrors para ayudarte a conseguir unas descargas más rápidas de un sitio cercano a ti.[CR] Todos los complementos en este repositorio han pasado por un periodo de pruebas básico, pero si encuentras algún complemento que no funciona, por favor informa de ello al equipo de Kodi para solucionar el problema.</description>
-		<description lang="es_AR">Descarga e instala el complemento desde el repositorio oficial de Kodi.tv.[CR] Usando el repositorio oficial tendrá las ventajas de nuestro servicio de réplicas para ayudarle a conseguir unas descargas más rápidas de un sitio cercano a su región.[CR] Todos los complementos en este repositorio han pasado por un periodo de pruebas básico, pero si encuentra algún complemento que no funciona, por favor infórmelo al equipo de Kodi para que podamos tomar las acciones necesarias.</description>
-		<description lang="es_MX">Descarga e instala complementos del repositorio oficial Kodi.tv.[CR] Al usar el repositorio oficial, tendrá la ventaja de nuestro servicio extenso de espejos para ayudarle a tener descargas mas rapidas desde una region mas cerca de usted.[CR] Todos los complementos en este repositorio se han probado de manera básica, si encuentra alguno que no funciona o roto, favor de reportarlo al Equipo de Kodi para poder tomar las medidas necesarias.</description>
-		<description lang="et">Lae alla ja installi videosalvesti lisasid ametlikust Kodi.tv hoidlast.[CR]  Ametliku hoidla kasutamise eeliseks on võimalus kasutada meie ulatuslikku failide peegelteenust laadides faile sulle kõige lähemast serverist.[CR]  Kõik lisad selles hoidlas on läbinud elementaarse testimise. Siiski, kui sa leiad vigase või mittetöötava lisa, siis palun teavita sellest Kodi meeskonda, et me saaksime vajaliku abi osutada.</description>
-		<description lang="fr">Télécharger et installer des extensions à partir du dépôt officiel Kodi.tv.[CR]  En utilisant le dépôt officiel, vous bénéficierez de notre service de serveurs miroirs vous permettant de télécharger rapidement depuis une région proche de vous.[CR]  Toutes les extensions de ce dépôt ont été testées de manière basique, si vous trouvez une extension corrompue ou inutilisable, merci d'en informer la Team-Kodi afin que nous puissions prendre les mesures nécessaires.</description>
-		<description lang="fr_CA">Télécharger et installer des addiciels de numériscopes depuis le dépôt officiel de Kodi.tv.[CR] En utilisant le dépôt officiel vous pourrez bénéficier de notre service étendu de miroirs de fichiers favorisant des téléchargements plus rapides depuis une région proche de vous.[CR] Tous les addiciels de ce dépôt ont subi des tests de base. Si vous trouvez un addiciel non fonctionnel ou brisé, veuillez le rapporter à l'équipe-Kodi afin que nous puissions agir.</description>
-		<description lang="gl">Descargar e instalar Engadidos de PVR dende o repositorio oficial de Kodi.tv.[CR] Empregando o repositorio oficial, vostede poderá gozar das vantaxes do seu extenso servizo de replicación de ficheiros que lle permite unhas descargas máis rápidas dende unha rexión preto a vostede.[CR] Tódolos Engadidos deste repositorio pasaron por comprobacións básicas. Se atopa algún Engadido roto ou non funcional, por favor reporteo ó equipo de Kodi para que poidan actuar en consecuencia.</description>
-		<description lang="he">הורדה והתקנת הרחבות ממאגר הרחבות Kodi.tv הרשמי.[CR] שימוש במאגר הרשמי מאפשר לנצל את שירות שיקוף הקבצים של Kodi.tv העוזר להוריד מהר יותר מהשרת הקרוב ביותר.[CR] כל ההרחבות במאגר זה עברו בדיקה בסיסית. יש לדווח לצוות הפיתוח של Kodi על כל הרחבה שנמצאה כלא תקינה או שלא עובדת ע"מ שתתבצע הפעולה המתאימה.</description>
-		<description lang="hr">Preuzmite i instalirajte PVR dodatke sa službenog Kodi.tv repozitorija dodataka.[CR]  Korištenjm službenog repozitorija biti ćete u mogućnosti iskoristiti prednost našeg zrcalnog poslužitelja u svrhu bržeg preuzimanja iz regije bliže vama.[CR]  Svi dodaci na ovom repozitoriju prošli su osnovno testiranje. Ako pronađete slomljeni ili dodatak koji ne radi, prijavite ga Kodi timu da ga možemo popraviti.</description>
-		<description lang="hu">PVR Kiegészítők letöltése és telepítése a hivatalos Kodi.tv tárolóhelyről.[CR] A hivatalos tárolóhely használatával kihasználhatod szerteágazó tükör-kiszolgáló hálózatunkat, ami segít a gyorsabb letöltésben egy hozzád közelebb eső körzet használatával.[CR]  Minden kiegészítő ezen a tárolóhelyen átment egy alaptesztelésen. Ha mégis hibás vagy nem működő kiegészítőt találsz, kérünk jelezd az Kodi csapatnak, hogy megtegyük a szükséges lépéseket.</description>
-		<description lang="id">Unduh dan pasang pengaya dari repositori pengaya resmi Kodi.tv. [CR] Dengan menggunakan repositori resmi anda akan mendapat keuntungan dari miror berkas kami yang luas dimana dapat membantu anda untuk lebih cepat mengunduh dari daerah yang dekat dengan anda. [CR] Semua pengaya pada repository telah melalui uji coba standar, jika anda menemukan pengaya yang rusak atau tidak bekerja tolong laporkan kepada tim Kodi agar kami bisa menindak lanjutinya.</description>
-		<description lang="is">Náðu í og settu inn PVR viðbætur frá viðurkenndu Kodi.tv viðbóta safninu.[CR]  með því að nota viðurkennt geymslusafn þá nýturðu kosta skráaspeglunarþjónustu okkar sem veitir þér hraðvirkara niðurhal frá miðlara sem næst þér.[CR]  Allar viðbætur í þessu geymslusafni hafa undirgengist undirstöðuprófanir, ef þú finnur bilaða viðbót eða einhverja sem virkar ekki, þá vinsamlegast tilkynntu það til Team-Kodi svo við getum gripið til viðeigandi ráðstafanna.</description>
-		<description lang="it">Scarica ed installa gli add-on dalla libreria ufficiale di Kodi.tv[CR]  Usando la libreria ufficiale avrai il vantaggio di ottenere download più veloci con mirror più vicini alla tua località.[CR]  Tutti gli add-on in questa libreria sono stati sottoposti a test di base, se ne trovi uno non funzionante o corrotto, per favore riporta il problema al team di Kodi così potremmo prendere provvedimenti.</description>
-		<description lang="ja">公式の Kodi.tv アドオンリポジトリからPVRアドオンをダウンロードしインストールします。[CR]公式のリポジトリを利用することで、私達の大規模なファイル・ミラーサービスから、よりあなたに近い地域からの高速なダウンロードが可能になります。[CR]このリポジトリのすべてのアドオンは、基本的なテストは行っています。もしも壊れている、もしくは、動かないアドオンを見つけた場合は、Kodi チームに報告してください。</description>
-		<description lang="ko">공식 Kodi.tv 애드온 저장소에서 PVR 애드온을 다운로드하여 설치합니다.[CR] 공식 저장소를 사용하면 파일 미러링 서비스를 통해 사용자와 가까운 곳에서 빠르게 다운로드할 수 있습니다.[CR] 저장소의 모든 애드온은 기본 테스트를 거치지만 작동이 되지 않거나 손상된 애드온을 발견하면 필요한 조치를 취할 수 있게 Team-Kodi로 알려주시기 바랍니다.</description>
-		<description lang="lt">Atsisiųskite ir įdiekite PVR priedą iš oficialios Kodi.tv priedų saugyklos. [Cr] Naudojant oficialią saugyklą galėsite pasinaudoti mūsų  failų Veidrodine saugyklos paslauga katra padės jums greičiau parsisiųsti iš artimiausios vietos šalia jūsų. [CR] Visi priedai šioje saugykloje yra perėję pagrindinį testavimą, jei atsisiuntėte neveikiantį ar/arba sugadintą priedą praneškite 'Team-Kodi', kad galėtume imtis visų būtinų priemonių klaidai ištaisyti.</description>
-		<description lang="lv">Lejupielādējiet un instalējiet PVR pielikumus no oficiālā Kodi.tv pielikumu repozitorija.[CR]  Izmantojot oficiālo repozitoriju, varēsiet izmantot mūsu plašo spoguļu pakalpojumu, lai iegūtu ātrākas lejupielādes no reģiona, kas vistuvāk.[CR]  Visi pielikumi šajā repozitorijā ir izgājuši pamata testēšanu, bet, ja atrodat saplīsušu vai nestrādājošu pielikumu, lūdzu, ziņojiet par to Team-Kodi, lai varam izpildīt nepieciešamās labošanas darbības.</description>
-		<description lang="mk">Превземи и инсталирај PVR addon-и од официјалното складиште на Kodi.tv.[CR] Кога го користиш официјалното складиште, можеш да ги искористиш нашите бројни мирори за фајлови за побрзо симнување преку сервер близу до тебе.[CR] Сите addon-и на ова складиште имаат поминато основни тестови, но ако најдеш расипан add-on, те молиме пријави го на Team-Kodi за да можеме да превземеме иницијатива.</description>
-		<description lang="nl">Download en installeer PVR add-ons uit de officiële Kodi.tv add-on depot.[CR] Wanneer u het officiële depot gebruikt beschikt u over onze uitgebreide mirrorservice, waardoor u snel kan downloaden van locaties in uw buurt.[CR] Alle add-ons in dit depot ondergingen standaardtests; indien u een defecte of niet-werkende add-on vindt, meld dit dan aan Team-Kodi zodat zij actie kunnen ondernemen.</description>
-		<description lang="no">Last ned og installer tillegg fra den offisielle Kodi.tv pakkebrønnen.[CR] Når du benytter den offisielle brønnen drar du fordel av vår utvidede filspeilingstjeneste slik at du får raskere nedlastinger fra en server nær deg.[CR] Alle tillegg i denne brønnen har gått gjennom en grunnleggende testing, men hvis du finner et tillegg som ikke fungerer, vennligst rapporter det til Team-Kodi så vi får sett på det.</description>
-		<description lang="pl">Pobieraj i instaluj wtyczki PVR z oficjalnego repozytorium Kodi.tv.[CR] Używając oficjalnego repozytorium korzystasz z serwerów lustrzanych, rozsianych po całym świecie. Wybierany jest ten, który znajduje się najbliżej ciebie, zapewniając dużą prędkość połączenia.[CR]Wszystkie wtyczki znajdujące się w tym repozytorium są testowane, ale mogą okazać się niesprawne. Zgłoś wówczas błąd, aby zespół Kodi mógł podjąć odpowiednie działanie.</description>
-		<description lang="pt">Transferir e instalar add-ons PVR do repositório oficial Kodi.tv.[CR] Ao usar o repositório oficial, os nossos servidores garantem-lhe sempre transferências rápidas a partir da localização mais próxima.[CR] Todos os Add-ons neste repositório foram alvo de testes preliminares. Na improvável hipótese de encontrar um Add-on que não funcione, por favor contacte a equipa do Kodi, para que a situação se resolva.</description>
-		<description lang="pt_BR">Transfira e instale add-ons de Tv ao Vivo, a partir do repositório oficial do Kodi.tv.[CR]|Ao utilizar o repositório oficial, você será capaz de tirar proveito do nosso serviço de espelhamento de arquivos, auxiliando em downloads mais rápidos a partir de uma região perto de você.[CR]|Todos os add-ons neste repositório passam por testes básicos, se você encontrar algum quebrado ou que não esteja funcionando, por favor reporte para a equipe do Kodi, para que possamos tomar as ações necessárias.</description>
-		<description lang="ru">Загружайте и устанавливайте обновления из официального репозитория Kodi.tv[CR]Используя официальный репозиторий, вы сможете воспользоваться преимуществами распределенного хранилища для быстрой загрузки файлов с ближайшего к вам сервера.[CR]Все дополнения в данном репозитории прошли тестирование. Если вы обнаружили нерабочее дополнение, сообщите об этом разработчикам Kodi.</description>
-		<description lang="sk">Stiahnuť a nainštalovať PVR rozšírenia z oficiálneho zdroja rozšírení Kodi.tv.[CR] Použitím oficiálneho zdroja získavate možnosť využiť rozsiahly systém zrkadiel, ktorý Vám umožní rýchlejšie sťahovanie z Vám blízkeho regiónu.[CR] Všetky rozšírenia v tomto zdroji boli podrobené základnému testovaniu. Ak nájdete poškodené alebo nefunkčné rozšírenie, oznámte to prosím týmu Kodi aby mohol podľa potreby zakročiť.</description>
-		<description lang="sl">Prenos in namestitev dodatkov PVR iz uradnega skladišča Kodi.tv.[CR] Z uporabo uradnega skladišča, boste lahko izkoristili hitrejšo povezavo, ki bo izbrana glede na vašo lokacijo.[CR] Vsi dodatki tega skladišča so bili osnovno stestirani, če pa boste našli pokvarjen ali nedelujoč dodatek, to sporočite ekipi Kodi, da bomo lahko odpravili napake.</description>
-		<description lang="sv">Ladda ner och installera PVR-tillägg från det officiella Kodi.tv tilläggsförrådet.[CR] Genom att använda det officiella förrådet kommer du att få fördelen att kunna använda vår omfattande spegeltjänst som hjälper dig till snabbare nedladdningar från en plats nära dig.[CR] Alla tillägg i detta förråd har genomgått grundläggande tester. Hittar du ett trasigt eller icke fungerande tillägg, vänligen meddela detta till Team-Kodi så att vi kan vidta nödvändiga åtgärder.</description>
-		<description lang="tg">Барномаҳои иловагии PVR-ро аз анбори нармафзори расмии Kodi.tv боргирӣ кунед ва насб кунед.[CR]  Агар анбори нармафзори расмиро истифода баред, метавонед нармафзори иловагиро аз серверҳои наздиктарин ба шумо боргирӣ намоед.[CR]  Ҳамаи нармафзори анбори зикршуда аз санҷиши асосӣ мегузаранд, ва агар шумо ягон барномаи иловагии вайроншуда ё ғайрифаъолро пайдо кунед, метавонед дар бораи он гузоришро ба Гурӯҳи кории Kodi фиристонед, то ки барномасозон тавонанд камбудиҳои пайдошударо ҳал кунанд.</description>
-		<description lang="tr">PVR Eklentilerini Resmi Kodi.tv eklenti deposundan indir ve yükle.[CR]Resmi yazılım depomuzu kullanarak size en yakın bölgeden en hızlı biçimde indirme yapmanızı sağlayacak gelişkin dosya aynalama servisini kullanma avantajını elde edeceksiniz.[CR]Bu yazılım deposundaki tüm eklentiler temel testlerden geçerler, şayet hatalı ya da çalışmayan bir eklenti bulur iseniz lütfen düzeltilmesi için bu durumu Kodi Takımına bildiriniz.</description>
-		<description lang="zh">从官方 Kodi.tv 插件库下载和安装 PVR 插件。[CR] 通过官方程序库你将能利用我们广泛的镜像服务优势,使你能够就近下载资源。[CR] 官方库中的所有插件都经过了基本的测试,如果你发现有失效或不能正常工作的插件,请向 Kodi 开发团队报告,以便及时处理。</description>
-		<description lang="zh_TW">從Kodi.tv安裝PVR附加元件。[CR]使用官方資料庫,你可以直接從你地區內的伺服器下載,享受更快速的體驗。[CR]所有的附加原件都已經經過基本測試。但如果你發現有損壞或不正常運作的附加原件,請回報於Kodi開發團隊。</description>
-		<disclaimer lang="af">Die Kodi span het nie al die byvoegsels in die kodebank gemaak nie en is nie verantwoordelik vir hulle inhoud nie</disclaimer>
-		<disclaimer lang="am">የ Kodi ቡድን እዚህ ማጠራቀሚያ ውስጥ ያሉትን የ ተጨማ-ሪዎች ይዞታ አልፈጠሩም ስለዚህም ምንም አይነት ሀላፊነት አይወስዱም</disclaimer>
-		<disclaimer lang="ar">فريق برنامج إكس بى إم سى لم يُصنِع جميع اﻹضافات فى هذا المستودع وغير مسؤول عن ما قد تسببه لك</disclaimer>
-		<disclaimer lang="be">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="bg">Team-Kodi (Екипът зад Kodi) не е автор на всички добавки в хранилището и не носи отговорност за съдържанието им</disclaimer>
-		<disclaimer lang="ca">L'equip del Kodi no ha fet tots els complements d'aquest dipòsit i per tant no són responsables del seu contingut.</disclaimer>
-		<disclaimer lang="cs">Tým Kodi nevytvořil všechna rozšíření v tomto repozitáři a není zodpovědný za jejich obsah</disclaimer>
-		<disclaimer lang="cy">Nid Team-Kodi wnaeth yr holl ychwanegion yn y storfa hon ac nid ydynt yn gyfrifol am eu cynnwys.</disclaimer>
-		<disclaimer lang="da">Team-Kodi har ikke lavet alle add-ons i dette fjernlager og er ikke ansvarlig for deres indhold</disclaimer>
-		<disclaimer lang="de">Die Addons in diesem Verzeichnis wurden nicht alle vom Team-Kodi erstellt. Verantwortlich für den Inhalt sind die jeweiligen Autoren.</disclaimer>
-		<disclaimer lang="el">Η Ομάδα Kodi δεν δημιούργησε όλα τα πρόσθετα σε αυτό το αποθετήριο συνεπώς δεν είναι υπεύθυνοι για το περιεχόμενό τους</disclaimer>
-		<disclaimer lang="en">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_AU">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_NZ">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="en_US">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
-		<disclaimer lang="es">El equipo de Kodi no ha hecho todos los Complementos en este repositorio y no son responsables de su contenido</disclaimer>
-		<disclaimer lang="es_AR">No todos los add-ons en este repositorio han sido creados por el equipo de Kodi y este no es responsable de su contenido</disclaimer>
-		<disclaimer lang="es_MX">El equipo de Kodi no hizo todos los add-ons en este repositorio y no es responsable de su contenido</disclaimer>
-		<disclaimer lang="et">Kodi meeskond ei teinud kõiki lisasid selles hoidlas ja ei vastuta ka nende sisu eest.</disclaimer>
-		<disclaimer lang="eu">Kodi taldeak ez ditu biltegi honetako gehigarri guztiak sortu eta ez da beren edukien erantzule.</disclaimer>
-		<disclaimer lang="fi">Team-Kodi ei ole tehnyt kaikkia tässä säilössä olevia lisäosia, eikä siten ole vastuullinen kyseisten lisäosien sisällöstä</disclaimer>
-		<disclaimer lang="fr">La Team-Kodi n'est pas l'auteur de toutes les extensions de ce dépôt et n'est pas responsable de leur contenu</disclaimer>
-		<disclaimer lang="fr_CA">L'équipe-Kodi n'a pas créé tous les addiciels de ce dépôt et n'est pas responsable de leur contenu</disclaimer>
-		<disclaimer lang="gl">O equipo de Kodi non creou todos os Engadidos deste repositorio e non é responsábel do seu contido</disclaimer>
-		<disclaimer lang="he">צוות הפיתוח של Kodi לא יצר את כל ההרחבות שבמאגר זה ואיננו אחראי על תוכנן</disclaimer>
-		<disclaimer lang="hr">Kodi tim nije autor svih dodataka u ovom repozitoriju te kao takvi ne odgovaraju za njihov sadržaj</disclaimer>
-		<disclaimer lang="hu">Nem minden itt található kiegészítőt az Kodi csapat készített és nem vállal felelősséget azok tartalmáért</disclaimer>
-		<disclaimer lang="id">Tim Kodi tidak membuat semua pengaya pada repository ini dan tidak bertanggung jawab atas isinya.</disclaimer>
-		<disclaimer lang="is">Kodi teymið gerir ekki allar þessar viðbætur og er ekki ábyrgt fyrir innihaldi þeirra.</disclaimer>
-		<disclaimer lang="it">Il team di Kodi non ha creato tutti gli add-on di questa libreria e non è responsabile per il loro contenuto</disclaimer>
-		<disclaimer lang="ja">Kodi チームが、このリポジトリ上の全アドオンを作ったわけではありません。また、その内容についても責任は負いかねます。</disclaimer>
-		<disclaimer lang="ko">Team-Kodi가 이 저장소의 모든 애드온을 제작한 것은 아니며, 애드온 컨텐츠에 대한 책임이 없습니다.</disclaimer>
-		<disclaimer lang="ku">تیمی Kodi هەموو پێوەکراوەکانی دروست نەکردووە بۆیە بەرپرسیار نیە لە پێکهاتە و ناوەڕۆکەکانی</disclaimer>
-		<disclaimer lang="lt">Kodi komanda netestavo priedų šioje saugykloje ir neatsako arba nėra atsakinga už jų turinį</disclaimer>
-		<disclaimer lang="lv">Kodi komanda nav izveidojusi visus šīs krātuves paplašinājumus un nav atbildīga par to saturu</disclaimer>
-		<disclaimer lang="mk">Kodi тимот ги нема направено сите овие додатоци и не е одговорен за нивната содржина</disclaimer>
-		<disclaimer lang="nl">Team-Kodi heeft niet alle add-ons in dit depot geschreven en is niet verantwoordelijk voor hun inhoud.</disclaimer>
-		<disclaimer lang="no">Team-Kodi har ikke produsert alle tilleggene i denne pakkebrønnen og er ikke ansvarlig for deres innhold</disclaimer>
-		<disclaimer lang="pl">Zespół Kodi nie tworzy wszystkich wtyczek i nie bierze odpowiedzialności za ich zawartość</disclaimer>
-		<disclaimer lang="pt">A equipa Kodi não desenvolveu todos os Add-ons neste repositório e não é responsável pelo seu conteúdo.</disclaimer>
-		<disclaimer lang="pt_BR">O Time do  Kodi não produziu todos os add-ons deste repositório, e portanto não é responsável ​​por seu conteúdo</disclaimer>
-		<disclaimer lang="ro">Echipa Kodi nu a creat toate aceste suplimente din acest depozit și nu este responsabilă pentru conținutul lor.</disclaimer>
-		<disclaimer lang="ru">Разработчики Kodi не являются авторами всех дополнений в данном репозитории и не несут ответственность за их содержимое.</disclaimer>
-		<disclaimer lang="se">Team-Kodi har inte skapat alla tillägg på detta förråd och är inte ansvariga för deras innehåll</disclaimer>
-		<disclaimer lang="sk">Team-Kodi nevytvoril všetky rozšírenia v tomto zdroji nie je zodpovedný za ich obsah</disclaimer>
-		<disclaimer lang="sl">Ekipa Kodi ni naredila vseh dodatkov v tem skladišču in ne odgovarja za njihovo vsebino</disclaimer>
-		<disclaimer lang="sv">Team-Kodi har inte gjort alla tillägg och är inte ansvariga för innehållet i dessa.</disclaimer>
-		<disclaimer lang="tg">Гурӯҳи кории Kodi дар ин анбори нармафзор соҳиби ҳамаи барномаҳои иловагӣ намебошад ва барои мӯҳтавояшон ҷавобгар намебшад</disclaimer>
-		<disclaimer lang="th">ทีม Kodi ไม่ได้จัดทำ ส่วนเสริม ทั้งหมดในแหล่งข้อมูลโปรแกรมนี้ และจะไม่รับผิดชอบต่อเนื้อหาเหล่านั้น</disclaimer>
-		<disclaimer lang="tr">Kodi takımı bu depodaki tüm eklentileri geliştirmemiştir ve bunların içeriklerinden sorumlu değildir.</disclaimer>
-		<disclaimer lang="uk">Зауважте, що не всі додатки в цьому Репозиторії створені Командою Kodi, і тому Команда не несе відповідальності за їх вміст.</disclaimer>
-		<disclaimer lang="vi">Đội ngũ Kodi không làm ra tất cả các add-on có trên kho chứa này và sẽ không chịu trách nhiệm về nội dung của các add-on đấy</disclaimer>
-		<disclaimer lang="zh">本库中插件不完全由 Kodi 团队开发,Kodi 团队对他人提交的内容不承担责任</disclaimer>
-		<disclaimer lang="zh_TW">這個附加元件庫的附加元件並非全部由 Kodi 團隊製作的,所以我們不對這些內容負責。</disclaimer>
-		<platform>windx wingl</platform>
-	</extension>
-</addon>
diff --git a/addons/repository.pvr-win32.xbmc.org/icon.png b/addons/repository.pvr-win32.xbmc.org/icon.png
deleted file mode 100644
index 01149a5..0000000
Binary files a/addons/repository.pvr-win32.xbmc.org/icon.png and /dev/null differ
diff --git a/addons/repository.xbmc.org/addon.xml b/addons/repository.xbmc.org/addon.xml
index 66c94d4..af4ca21 100644
--- a/addons/repository.xbmc.org/addon.xml
+++ b/addons/repository.xbmc.org/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="repository.xbmc.org"
 		name="Kodi Add-on repository"
-		version="2.1.30"
+		version="2.1.32"
 		provider-name="XBMC Foundation">
   <requires>
     <import addon="xbmc.addon" version="12.0.0"/>
@@ -14,21 +14,17 @@
 			<datadir zip="true">http://mirrors.kodi.tv/addons/gotham</datadir>
 			<hashes>true</hashes>
 		</dir>
-		<dir minversion="13.9.0">
+		<dir minversion="14.0.0">
 			<info compressed="true">http://mirrors.kodi.tv/addons/helix/addons.xml</info>
 			<checksum>http://mirrors.kodi.tv/addons/helix/addons.xml.md5</checksum>
 			<datadir zip="true">http://mirrors.kodi.tv/addons/helix</datadir>
 			<hashes>true</hashes>
 		</dir>
-		<info compressed="true">http://mirrors.kodi.tv/addons/frodo/addons.xml</info>
-		<checksum>http://mirrors.kodi.tv/addons/frodo/addons.xml.md5</checksum>
-		<datadir zip="true">http://mirrors.kodi.tv/addons/frodo</datadir>
-		<hashes>true</hashes>
 	</extension>
 	<extension point="xbmc.addon.metadata">
 		<summary lang="af">Installeer Byvoegsels vanaf Kodi.tv</summary>
 		<summary lang="am">ከ Kodi.tv ተጨማ-ሪዎች መግጠሚያ </summary>
-		<summary lang="ar">ثبت إضافات من موقع إكس بى إم سى الرسمى</summary>
+		<summary lang="ar">ثبت إضافات من موقع Kodi.tv الرسمي</summary>
 		<summary lang="be">Усталяваць дадатак з Kodi.tv</summary>
 		<summary lang="bg">Инсталира добавки от Kodi.tv</summary>
 		<summary lang="ca">Instal·la complements des de Kodi.tv</summary>
@@ -53,7 +49,7 @@
 		<summary lang="he">התקנת הרחבות מ־Kodi.tv</summary>
 		<summary lang="hr">Instaliraj dodatke s Kodi.tv</summary>
 		<summary lang="hu">Kiegészítők letöltése az Kodi.tv-ról</summary>
-		<summary lang="id">pasang pengaya dari Kodi.tv</summary>
+		<summary lang="id">Pasang Pengaya dari Kodi.tv</summary>
 		<summary lang="is">Setja inn viðbætur frá Kodi.tv</summary>
 		<summary lang="it">Installa addon da Kodi.tv</summary>
 		<summary lang="ja">Kodi.tv からアドオンをインストール</summary>
@@ -72,7 +68,7 @@
 		<summary lang="ru">Установить дополнения с сайта Kodi.tv</summary>
 		<summary lang="se">Installera tillägg från Kodi.tv</summary>
 		<summary lang="sk">Inštalovať rozšírenia z Kodi.tv</summary>
-		<summary lang="sl">Namestite dodatke z Kodi.tv</summary>
+		<summary lang="sl">Namestite dodatke s Kodi.tv</summary>
 		<summary lang="sv">Installera tillägg från Kodi.tv</summary>
 		<summary lang="tg">Насб кардани барномаҳои иловагӣ аз Kodi.tv</summary>
 		<summary lang="th">ติดตั้งส่วนเสริมจาก Kodi.tv</summary>
@@ -82,7 +78,7 @@
 		<summary lang="zh">从 Kodi.tv 安装插件</summary>
 		<summary lang="zh_TW">從 Kodi.tv 安裝附加元件</summary>
 		<description lang="af">Aflaai en installeer byvoegsels vanaf die Amptelike Kodi.tv byvoegsel kodebank.[CR] Deur die amptelike Kodebank te gebruik trek jy voordeel van ons uitgebreide lêer spieël diens wat jou help vinniger aflaai vanaf 'n gebied naby aan jou.[CR] Alle byvoegsels in die kodebank het basiese toetsing ondergaan, as jy 'n gebreekte of nie werkende byvoegsel vind rapporteer dit asseblief aan die Kodi Span sodat ons die nodige stappe kan neem.</description>
-		<description lang="ar">حمل و ثبت الإضافات من موقع Kodi.tv مستودع الإضافات الرسمي. [CR]  باستخدام المستودع الرسمي ستكون قادر على أخذ ميزة من خدمة مراة ملف الواسعة لمساعدتك بالحصول على تحكيل أسرع من منطقة أنت قريب منها. جميع الإضافات في هذا المستودع تخضع لاختبار أساسي, إذا وجدت إضافة معطوية أو لاتعمل الرجاء الإبلاغ عنها لفريق Kodi لنتمكن من اتخاذ أي إجراء لازم.</description>
+		<description lang="ar">حمل و ثبت الإضافات من مستودع الإضافات لموقع Kodi.tv الرسمي.[CR] باستخدامك المستودع الرسمي ستكون قادر على الاستفادة مما نقدمه من خدمة حصرية لتوفير خوادم بديله لتحميل الملفات توفر لك سرعة تحميل أعلى من منطقه قريبة منك.[CR] جميع الإضافات في هذا المستودع خضعت لاختبارات مبدئية, إذا صادفتك إضافة معطوبة أو لا تعمل برجاء الإبلاغ عنها لفريق Kodi لنتمكن من اتخاذ الإجراء اللازم.</description>
 		<description lang="be">Download and install add-ons from the Official Kodi.tv addon repository.[CR]  By using the official Repository you will be able to take advantage of our extensive file mirror service to help get you faster downloads from a region close to you.[CR]  All addons on this repository have under gone basic testing, if you find a broken or not working addon please report it to Team-Kodi so we can take any action needed.</description>
 		<description lang="bg">Сваля и инсталира добавки от официалното хранилище за добавки на Kodi.tv. Ползвайки добавката ще се възползвате от системата ни от огледални сървъри - за да сваляте с висока скорост, от сървър близък до Вас. Добавките от хранилището са минали няколко теста, но ако се натъкнете на неработеща или проблемна добавка, моля уведомете екипа на Kodi, за да бъдат предприети необходимите действия.</description>
 		<description lang="ca">Baixa i instal·la complements des del repositori oficial de Kodi.tv.[CR]Utilitzant el repositori oficial, podràs aprofitar els avantatges del nostre sistema de miralls per ajudar-te a tenir unes descarregues més ràpides des d'una regió propera a tu.[CR] Tots els complements d'aquest repositori han passat per un testeig bàsic, així que si trobeu algun complement que no funcioni correctament, si us plau digueu-ho a l'equip del Kodi per què puguin dur a terme les accions pertinents.</description>
@@ -135,7 +131,7 @@
 		<description lang="zh_TW">從 Kodi.tv 官方的附加元件庫下載並安裝附加元件。[CR] 使用官方的附加元件庫你可以從離你較近的檔案鏡像伺器以較快的速度下載附加元件。[CR] 在這個附加元件庫中的附加元件都經過簡單的測試,如果你發現損壞或無法正常工作的附加元件,請回報給 Kodi 團隊,以讓 Kodi 團隊能做一些必須的處置。</description>
 		<disclaimer lang="af">Die Kodi span het nie al die byvoegsels in die kodebank gemaak nie en is nie verantwoordelik vir hulle inhoud nie</disclaimer>
 		<disclaimer lang="am">የ Kodi ቡድን እዚህ ማጠራቀሚያ ውስጥ ያሉትን የ ተጨማ-ሪዎች ይዞታ አልፈጠሩም ስለዚህም ምንም አይነት ሀላፊነት አይወስዱም</disclaimer>
-		<disclaimer lang="ar">فريق برنامج إكس بى إم سى لم يُصنِع جميع اﻹضافات فى هذا المستودع وغير مسؤول عن ما قد تسببه لك</disclaimer>
+		<disclaimer lang="ar">فريق Kodi لم يقم بصنع جميع اﻹضافات فى هذا المستودع وغير مسؤول عن محتواها</disclaimer>
 		<disclaimer lang="be">Team-Kodi did not make all the add-ons on this repository and are not responsible for their content</disclaimer>
 		<disclaimer lang="bg">Team-Kodi (Екипът зад Kodi) не е автор на всички добавки в хранилището и не носи отговорност за съдържанието им</disclaimer>
 		<disclaimer lang="ca">L'equip del Kodi no ha fet tots els complements d'aquest repositori i per tant no són responsables del seu contingut.</disclaimer>
diff --git a/addons/screensaver.rsxs.euphoria/addon.xml b/addons/screensaver.rsxs.euphoria/addon.xml
index 0c88527..f40084d 100644
--- a/addons/screensaver.rsxs.euphoria/addon.xml
+++ b/addons/screensaver.rsxs.euphoria/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <addon
   id="screensaver.rsxs.euphoria"
-  version="1.0.25"
+  version="1.0.26"
   name="Euphoria"
   provider-name="mogumbo, Team-Kodi">
   <requires>
@@ -42,7 +42,7 @@
     <summary lang="is">Eins geggjuð og skjáhvíla getur orðið</summary>
     <summary lang="it">Quanto di più psichedelico possa essere un salvaschermo</summary>
     <summary lang="ja">スクリーンセーバーはここまでサイケになれる</summary>
-    <summary lang="ko">싸이키델릭 화면보호기</summary>
+    <summary lang="ko">싸이키델릭 화면 보호기</summary>
     <summary lang="lt">Psihodelinė užsklanda nunešanti stoga</summary>
     <summary lang="lv">Cik nu vien psihodēlisks ekrānsaudzētājs var būt</summary>
     <summary lang="mk">Најпсиходелична заштита на екран</summary>
diff --git a/addons/screensaver.rsxs.plasma/addon.xml b/addons/screensaver.rsxs.plasma/addon.xml
index 7dfc963..cc21132 100644
--- a/addons/screensaver.rsxs.plasma/addon.xml
+++ b/addons/screensaver.rsxs.plasma/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <addon
   id="screensaver.rsxs.plasma"
-  version="1.0.25"
+  version="1.0.26"
   name="Plasma"
   provider-name="mogumbo, Team-Kodi">
   <requires>
@@ -42,7 +42,7 @@
     <summary lang="is">Líklega í öðru sæti yfir klikkuðustu skjáhvíluna</summary>
     <summary lang="it">Probabilmente il secondo salvaschermo più psichedelico di sempre</summary>
     <summary lang="ja">世界で2番目にサイケなスクリーンセーバー</summary>
-    <summary lang="ko">아마도 지금까지 두번째로 가장 환상적인 화면보호기</summary>
+    <summary lang="ko">아마도 지금까지 두번째로 가장 환상적인 화면 보호기</summary>
     <summary lang="lt">Tikriausiai antra labiausiai psichodelinė ekrano užsklanda pasaulyje.</summary>
     <summary lang="lv">Iespējams viens no vispsihodēliskākajiem ekrānsaudzētājiem pasaulē</summary>
     <summary lang="mk">Можеби втора нај психоделична заштита на екран</summary>
@@ -94,7 +94,7 @@
     <description lang="is">Líklega í öðru sæti yfir klikkuðustu skjáhvíluna sem til er. Reyndi bara að ímynda þér alla þessa liti á hreyfingu.</description>
     <description lang="it">Probabilmente il secondo salvaschermo più psichedelico di sempre. Prova semplicemente a guardare tutti quei colori che si muovono.</description>
     <description lang="ja">Probably the second most psychedelic screensaver in existence. Just try to picture all those colors moving around.</description>
-    <description lang="ko">아마도 존재하는 두번째로 가장 환상적인 화면보호기. 모든 색깔들이 움직이는 것을 상상해보세요.</description>
+    <description lang="ko">아마도 존재하는 두번째로 가장 환상적인 화면 보호기. 모든 색깔들이 움직이는 것을 상상해보세요.</description>
     <description lang="lt">Turbūt antra labiausiai psichodelinė ekrano užsklanda pasaulyje. Išbandykite ją ir pamatysite judančių spalvų šventę.</description>
     <description lang="lv">Iespējams viens no vispsihodēliskākajiem ekrānsaudzētājiem pasaulē. Pamēģiniet, lai gūtu priekšstatu par krāsu kustību un plūsmu visapkārt.</description>
     <description lang="mk">Можеби втора нај психоделична заштита на екран. Само обидете се да ги согледате сите тие бои кои се движат.</description>
diff --git a/addons/screensaver.rsxs.solarwinds/addon.xml b/addons/screensaver.rsxs.solarwinds/addon.xml
index da49385..f3f854f 100644
--- a/addons/screensaver.rsxs.solarwinds/addon.xml
+++ b/addons/screensaver.rsxs.solarwinds/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <addon
   id="screensaver.rsxs.solarwinds"
-  version="1.0.25"
+  version="1.0.26"
   name="Solarwinds"
   provider-name="mogumbo, Team-Kodi">
   <requires>
@@ -41,7 +41,7 @@
     <summary lang="is">Dáleiðandi skjáhvíla með brellum með agnir</summary>
     <summary lang="it">Un salvaschermo con effetti particellari ipnotizzanti</summary>
     <summary lang="ja">幻想的な粒子エフェクトのスクリーンセーバー</summary>
-    <summary lang="ko">매혹적인 파티클 이펙트 화면보호기</summary>
+    <summary lang="ko">매혹적인 파티클 이펙트 화면 보호기</summary>
     <summary lang="lt">Įtaigaus dalelių poveikio ekrano užsklanda</summary>
     <summary lang="lv">Hipnotizējošs daļiņu efekta ekrānsaudzētājs</summary>
     <summary lang="mk">Заштита на екран со смирувачки честички</summary>
diff --git a/addons/screensaver.xbmc.builtin.black/addon.xml b/addons/screensaver.xbmc.builtin.black/addon.xml
index 0879f8e..52b3bc2 100644
--- a/addons/screensaver.xbmc.builtin.black/addon.xml
+++ b/addons/screensaver.xbmc.builtin.black/addon.xml
@@ -1,14 +1,13 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="screensaver.xbmc.builtin.black"
        name="Black"
-       version="1.0.25"
+       version="1.0.26"
        provider-name="Team-Kodi">
   <extension point="xbmc.ui.screensaver" library=""/>
   <extension point="xbmc.addon.metadata">
     <summary lang="af">Sluimerskerm wat jou skerm swart maak.</summary>
     <summary lang="am">መመልከቻ ማዳኛ የእርስዎን መመልከቻ ጥቁር ያደርገዋል </summary>
     <summary lang="ar">شاشة التوقف التي تحول شاشتك لأسود</summary>
-    <summary lang="ast">Un curiapantalles que pon la pantalla en prieto</summary>
     <summary lang="be">Ахоўнік экрану што робіць экран чорным</summary>
     <summary lang="bg">Скрийнсейвър, който прави екрана черен</summary>
     <summary lang="ca">Estalvi de pantalla que posa la pantalla en negre</summary>
@@ -37,7 +36,7 @@
     <summary lang="is">Skjáhvíla sem sendir svart út á skjáinn</summary>
     <summary lang="it">Salvaschermo che trasforma il tuo schermo in nero</summary>
     <summary lang="ja">画面を黒くするスクリーンセーバー</summary>
-    <summary lang="ko">화면을 검게하는 화면보호기</summary>
+    <summary lang="ko">화면을 검게하는 화면 보호기</summary>
     <summary lang="lt">Ekrano užsklanda, kuri paverčia jūsų ekraną juodu fonu</summary>
     <summary lang="lv">Ekrānsaudzētājs, kas padara jūsu ekrānu melnu</summary>
     <summary lang="mk">Заштита на екран која го прави екранот црн</summary>
@@ -63,7 +62,6 @@
     <description lang="af">Die is 'n eenvoudige sluimerskerm wat jou skerm swart maak.</description>
     <description lang="am">ጥቁር ቀላል መመልከቻ ማዳኛ የእርስዎን መመልከቻ ጥቁር ያደርገዋል </description>
     <description lang="ar">بلاك شاشة توقف بسيطة تحول شاشتك لأسود</description>
-    <description lang="ast">Black ye un cenciellu curiapantalles que pon la pantalla en prieto.</description>
     <description lang="be">Black is a simple screensaver that will turn your screen black.</description>
     <description lang="bg">"Black" е просто скрийнсейвър, който ще направи екрана Ви черен.</description>
     <description lang="ca">Black és un estalvi de pantalla simple que posarà la teva pantalla en negre.</description>
diff --git a/addons/screensaver.xbmc.builtin.dim/addon.xml b/addons/screensaver.xbmc.builtin.dim/addon.xml
index ce4d5d8..5ff5334 100644
--- a/addons/screensaver.xbmc.builtin.dim/addon.xml
+++ b/addons/screensaver.xbmc.builtin.dim/addon.xml
@@ -1,13 +1,12 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="screensaver.xbmc.builtin.dim"
        name="Dim"
-       version="1.0.25"
+       version="1.0.26"
        provider-name="Team-Kodi">
   <extension point="xbmc.ui.screensaver" library=""/>
   <extension point="xbmc.addon.metadata">
     <summary lang="af">Sluimerskerm wat jou skerm verdof</summary>
     <summary lang="ar">شاشة توقف تمكن من تظليم الشاشة</summary>
-    <summary lang="ast">Un curiapantalles qu'escurez la pantalla</summary>
     <summary lang="be">Ахоўнік экрану што зацямняе экран</summary>
     <summary lang="bg">Скрийнсейвър, който затъмнява екрана</summary>
     <summary lang="ca">Estalvi de pantalla que enfosqueix la pantalla</summary>
@@ -36,7 +35,7 @@
     <summary lang="is">Skjáhvíla sem lækkar birtustigið á skjánum</summary>
     <summary lang="it">Salvaschermo che oscura lo schermo</summary>
     <summary lang="ja">画面を薄暗くするスクリーンセーバー</summary>
-    <summary lang="ko">화면을 어둡게 하는 화면보호기</summary>
+    <summary lang="ko">화면을 어둡게 하는 화면 보호기</summary>
     <summary lang="lt">Ekrano vaizdas pritemdantis foną Jūsų ekrane</summary>
     <summary lang="lv">Ekrānsaudzētājs, kas aptumšo jūsu ekrānu</summary>
     <summary lang="mk">Заштита што го стемнува екранот</summary>
@@ -61,7 +60,6 @@
     <summary lang="zh_TW">讓螢幕變暗的螢幕保護程式</summary>
     <description lang="af">Die Verdof sluimerskerm is 'n eenvoudige sluimerskerm wat jou skerm verdof (uit vaag) tot 'n stelbare waarde tussen 20 en 100%</description>
     <description lang="ar">Dim عبارة عن شاشة توقف  تمكن من  تظليم (صورة خافتة) الشاشة إلى قيمة قابلة للتحديد بين 20 و 100%</description>
-    <description lang="ast">Dim ye un cenciellu curiapantalles qu'escurez la to pantalla. El valor ye configurable ente'l 20% y el 100%.</description>
     <description lang="be">The Dim screensaver is a simple screensaver that will dim (fade out) your screen to a setable value between 20 and 100% .</description>
     <description lang="bg">Скрийнсейвърът "Dim" затъмнява екрана, до стойност, която Вие определяте предварително (между 20 и 100%).</description>
     <description lang="ca">L'estalvi de pantalla Dim és un estalvi de pantalla simple que enfosquirà (fos en negre) la seva pantalla a un valor que es pot configurar entre 20 i 100%.</description>
@@ -90,7 +88,7 @@
     <description lang="is">Dim er einföld skjáhvíla sem lækkar birtustigið á skjánum um stillanlegt gildi á milli 20 og 100%</description>
     <description lang="it">'Dim' è un semplice salvaschermo che diminuirà la luminosità del tuo schermo ad un valore (regolabile) tra il 20% ed il 100%.</description>
     <description lang="ja">Dim はシンプルなスクリーンセーバーで、画面を(フェードアウトで)薄暗くします。値は20%から100%まで設定可能です。</description>
-    <description lang="ko">Dim 화면보호기는 화면을 어둡게(페이드 아웃)하는 간단한 화면보호기 입니다. 어둡게 하는 정도를 20-100%사이에서 설정할 수 있습니다.</description>
+    <description lang="ko">Dim 화면보호기는 화면을 어둡게(페이드 아웃)하는 간단한 화면 보호기 입니다. 어둡게 하는 정도를 20-100%사이에서 설정할 수 있습니다.</description>
     <description lang="lt">Pritemdyta ekrano užsklanda yra paprasta ekrano užsklanda,katra pamažu (pamažu mažinant vaizdo ryškumą) jūsų ekrano ryškuma sumažins nuo 20 iki 100%.</description>
     <description lang="lv">Aptumsuma ekrānsaudzētājs ir vienkāršs ekrānsaudzētājs, kas aptumšo (padara tumšāku) jūsu ekrānu līdz uzstādāmai robežai starp 20 un 100%.</description>
     <description lang="mk">ДИМ Заштитата на екран е едноставно стемнување на екранот, може да се одбере вредност помеѓу 20 и 100%</description>
diff --git a/addons/screensaver.xbmc.builtin.dim/resources/language/Asturian/strings.po b/addons/screensaver.xbmc.builtin.dim/resources/language/Asturian/strings.po
deleted file mode 100644
index d0eb3a1..0000000
--- a/addons/screensaver.xbmc.builtin.dim/resources/language/Asturian/strings.po
+++ /dev/null
@@ -1,21 +0,0 @@
-# Kodi Media Center language file
-# Addon Name: Dim
-# Addon id: screensaver.xbmc.builtin.dim
-# Addon Provider: Team-Kodi
-msgid ""
-msgstr ""
-"Project-Id-Version: XBMC Main\n"
-"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
-"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Kodi Translation Team\n"
-"Language-Team: Asturian (http://www.transifex.com/projects/p/xbmc-main/language/ast/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ast\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-msgctxt "#30000"
-msgid "Dim level"
-msgstr "Nivel d'atenuación"
diff --git a/addons/skin.confluence/720p/DialogAddonInfo.xml b/addons/skin.confluence/720p/DialogAddonInfo.xml
index a277fe5..a523444 100644
--- a/addons/skin.confluence/720p/DialogAddonInfo.xml
+++ b/addons/skin.confluence/720p/DialogAddonInfo.xml
@@ -157,30 +157,9 @@
 					<scroll>true</scroll>
 				</control>
 				<control type="label">
-					<description>Rating txt</description>
-					<left>10</left>
-					<top>90</top>
-					<width>140</width>
-					<height>25</height>
-					<label>$LOCALIZE[563]:</label>
-					<align>right</align>
-					<aligny>center</aligny>
-					<font>font13</font>
-					<textcolor>blue</textcolor>
-				</control>
-				<control type="image">
-					<description>Rating value</description>
-					<left>155</left>
-					<top>90</top>
-					<width>160</width>
-					<height>32</height>
-					<aspectratio align="left">keep</aspectratio>
-					<texture fallback="LeftRating/rating0.png">$INFO[ListItem.Property(Addon.StarRating),LeftRating/]</texture>
-				</control>
-				<control type="label">
 					<description>Summary txt</description>
 					<left>10</left>
-					<top>120</top>
+					<top>90</top>
 					<width>140</width>
 					<height>25</height>
 					<label>$LOCALIZE[20037]:</label>
@@ -192,7 +171,7 @@
 				<control type="fadelabel">
 					<description>Summary Value</description>
 					<left>160</left>
-					<top>120</top>
+					<top>90</top>
 					<width>440</width>
 					<height>25</height>
 					<label fallback="416">$INFO[ListItem.Property(Addon.Summary)]</label>
diff --git a/addons/skin.confluence/720p/MyPVRSearch.xml b/addons/skin.confluence/720p/MyPVRSearch.xml
index b3d6370..06862eb 100644
--- a/addons/skin.confluence/720p/MyPVRSearch.xml
+++ b/addons/skin.confluence/720p/MyPVRSearch.xml
@@ -195,9 +195,9 @@
 								<info>ListItem.Label</info>
 							</control>
 							<control type="label">
-								<left>700</left>
+								<left>750</left>
 								<top>0</top>
-								<width>270</width>
+								<width>230</width>
 								<height>40</height>
 								<font>font12</font>
 								<aligny>center</aligny>
@@ -332,9 +332,9 @@
 								<info>ListItem.Label</info>
 							</control>
 							<control type="label">
-								<left>700</left>
+								<left>750</left>
 								<top>0</top>
-								<width>270</width>
+								<width>230</width>
 								<height>40</height>
 								<font>font12</font>
 								<aligny>center</aligny>
diff --git a/addons/skin.confluence/720p/ViewsAddonBrowser.xml b/addons/skin.confluence/720p/ViewsAddonBrowser.xml
index c380375..7d0c50d 100644
--- a/addons/skin.confluence/720p/ViewsAddonBrowser.xml
+++ b/addons/skin.confluence/720p/ViewsAddonBrowser.xml
@@ -199,30 +199,9 @@
 						<font>font13</font>
 						<scroll>true</scroll>
 					</control>
-					<control type="label">
-						<description>Rating txt</description>
-						<left>10</left>
-						<top>60</top>
-						<width>140</width>
-						<height>25</height>
-						<label>$LOCALIZE[563]:</label>
-						<align>right</align>
-						<aligny>center</aligny>
-						<font>font13</font>
-						<textcolor>blue</textcolor>
-					</control>
-					<control type="image">
-						<description>Rating value</description>
-						<left>155</left>
-						<top>60</top>
-						<width>160</width>
-						<height>32</height>
-						<aspectratio align="left">keep</aspectratio>
-						<texture fallback="LeftRating/rating0.png">$INFO[ListItem.Property(Addon.StarRating),LeftRating/]</texture>
-					</control>
 					<control type="image">
 						<left>0</left>
-						<top>90</top>
+						<top>60</top>
 						<width>490</width>
 						<height>4</height>
 						<texture>separator.png</texture>
@@ -230,9 +209,9 @@
 					<control type="textbox">
 						<description>Description</description>
 						<left>10</left>
-						<top>95</top>
+						<top>65</top>
 						<width>490</width>
-						<height>192</height>
+						<height>215</height>
 						<font>font13</font>
 						<align>justify</align>
 						<textcolor>white</textcolor>
@@ -452,30 +431,9 @@
 						<font>font13</font>
 						<scroll>true</scroll>
 					</control>
-					<control type="label">
-						<description>Rating txt</description>
-						<left>10</left>
-						<top>60</top>
-						<width>120</width>
-						<height>25</height>
-						<label>$LOCALIZE[563]:</label>
-						<align>right</align>
-						<aligny>center</aligny>
-						<font>font13</font>
-						<textcolor>blue</textcolor>
-					</control>
-					<control type="image">
-						<description>Rating value</description>
-						<left>135</left>
-						<top>60</top>
-						<width>150</width>
-						<height>30</height>
-						<aspectratio align="left">keep</aspectratio>
-						<texture fallback="LeftRating/rating0.png">$INFO[ListItem.Property(Addon.StarRating),LeftRating/]</texture>
-					</control>
 					<control type="image">
 						<left>0</left>
-						<top>100</top>
+						<top>70</top>
 						<width>290</width>
 						<height>4</height>
 						<texture>separator.png</texture>
@@ -483,9 +441,9 @@
 					<control type="textbox">
 						<description>Description</description>
 						<left>10</left>
-						<top>110</top>
+						<top>75</top>
 						<width>290</width>
-						<height>400</height>
+						<height>445</height>
 						<font>font13</font>
 						<align>justify</align>
 						<textcolor>white</textcolor>
diff --git a/addons/skin.confluence/addon.xml b/addons/skin.confluence/addon.xml
index 88c6a37..8768a7e 100644
--- a/addons/skin.confluence/addon.xml
+++ b/addons/skin.confluence/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <addon
   id="skin.confluence"
-  version="2.5.9"
+  version="2.5.12"
   name="Confluence"
   provider-name="Jezz_X, Team Kodi">
   <requires>
@@ -117,7 +117,7 @@
     <description lang="ro">Confluence este costumul implicit pentru Kodi 9.11 și versiunile ulterioare. Este o combinație de concepte împrumutate de la mai multe costume populare, care încearcă să îmbrățișeze și să integreze ideile lor bune într-un costum care să fie ușor de înțeles și folosit de către utilizatorii Kodi începători.</description>
     <description lang="ru">Confluence — это стандартная обложка Kodi, начиная с версии 9.11. Она представляет собой сочетание концепций, взятых из многих популярных обложек, в попытке интегрировать их удачные идеи в обложке, которая была бы простой для использования и понимания новыми пользователями Kodi.</description>
     <description lang="sk">Confluence je predvolený pre Kodi 9.11 a vyššie. Je kombináciou konceptov z mnoho populárnych skinov a pokusom integrovať ich dobré nápady do skinu, ktorý by bol ľahko zrozumiteľný a použiteľný pre nových používateľov Kodi.</description>
-    <description lang="sl">Confluence je privzeta preobleka za Kodi 9.11 in novejše. Je kombinacija konceptov mnogih priljubljenih preoblek in poskuša zaobjeti in integrirati njihove dobre ideje v preobleko, ki bi bila preprosta za uporabo in razumevanje tudi novim uporabnikom Kodi.</description>
+    <description lang="sl">Confluence je privzeta preobleka za Kodi 14.0 in novejše. Je kombinacija konceptov mnogih priljubljenih preoblek in poskuša zaobjeti in integrirati njihove dobre ideje v preobleko, ki bi bila preprosta za uporabo in razumevanje tudi novim uporabnikom.</description>
     <description lang="sq">Confluence është maska kryesore për Kodi 9.11 dhe verzionet më të lartë. Është nje kombinim nga shumë maska e popullarizuar dhe përpjeket për të përqafuar dhe integruar idetë më të mira në një maskë që të jetë sa më lehtë në përdorim dhe kuptim për përdoruasit duke e përdorur Kodi për herë të parë.</description>
     <description lang="sv">Confluence är standardskal för Kodi 9.11 och senare. Det är en kombination av koncept från många populära skal i ett försök att använda och integrera flera goda idéer till ett skal som är enkelt för användare som precis har börjat använda Kodi att förstå och använda.</description>
     <description lang="tg">Пӯсти ҳамҷараёнӣ ҳамчун пӯсти пешфарз барои Kodi 9.11 ё версияи навтар истифода мешавад. Ин пӯст аз унсурҳои пӯстҳои машҳури дигар сохта шудааст ва ва ҳамаи фикрҳои беҳтарин дар як пӯст ҷамъ мекунад, то ки корбарони навомад тавонанд Kodi-ро ба осонӣ фаҳманд ва истифода баранд.</description>
diff --git a/addons/skin.confluence/changelog.txt b/addons/skin.confluence/changelog.txt
index a9a4802..3e08776 100644
--- a/addons/skin.confluence/changelog.txt
+++ b/addons/skin.confluence/changelog.txt
@@ -1,3 +1,15 @@
+[B]2.5.12[/B]
+
+- Updated language files from Transifex
+
+[B]2.5.11[/B]
+
+- Updated language files from Transifex
+
+[B]2.5.10[/B]
+
+- Updated language files from Transifex
+
 [B]2.5.9[/B]
 
 - Updated language files from Transifex
diff --git a/addons/skin.confluence/language/Indonesian/strings.po b/addons/skin.confluence/language/Indonesian/strings.po
index 140984d..b296824 100644
--- a/addons/skin.confluence/language/Indonesian/strings.po
+++ b/addons/skin.confluence/language/Indonesian/strings.po
@@ -548,6 +548,10 @@ msgctxt "#31903"
 msgid "Weekend Forecast"
 msgstr "Ramalan Akhir Minggu"
 
+msgctxt "#31904"
+msgid "Daily Forecast"
+msgstr "Ramalan Cuaca Harian"
+
 msgctxt "#31905"
 msgid "Forecast"
 msgstr "Ramalan"
diff --git a/addons/skin.confluence/language/Japanese/strings.po b/addons/skin.confluence/language/Japanese/strings.po
index 8c80e82..7db218a 100644
--- a/addons/skin.confluence/language/Japanese/strings.po
+++ b/addons/skin.confluence/language/Japanese/strings.po
@@ -548,6 +548,10 @@ msgctxt "#31903"
 msgid "Weekend Forecast"
 msgstr "週末の予報"
 
+msgctxt "#31904"
+msgid "Daily Forecast"
+msgstr "1日ごとの予報"
+
 msgctxt "#31905"
 msgid "Forecast"
 msgstr "予報"
diff --git a/addons/skin.confluence/language/Korean/strings.po b/addons/skin.confluence/language/Korean/strings.po
index eb01df1..2323bce 100644
--- a/addons/skin.confluence/language/Korean/strings.po
+++ b/addons/skin.confluence/language/Korean/strings.po
@@ -438,7 +438,7 @@ msgstr "Arial 기본값"
 
 msgctxt "#31400"
 msgid "[B]CONFIGURE APPEARANCE SETTINGS[/B][CR][CR]Change the skin · Set language and region · Change file listing options[CR]Set up a screensaver"
-msgstr "[B]모양새 설정[/B][CR][CR]스킨 변경 · 언어 및 지역 설정 · 파일 목록 옵션 변경[CR]화면보호기 설정"
+msgstr "[B]모양새 설정[/B][CR][CR]스킨 변경 · 언어 및 지역 설정 · 파일 목록 옵션 변경[CR]화면 보호기 설정"
 
 msgctxt "#31401"
 msgid "[B]CONFIGURE VIDEO SETTINGS[/B][CR][CR]Manage your video library · Set video playback options · Change video listing options[CR]Set subtitle fonts"
diff --git a/addons/skin.confluence/language/Malay/strings.po b/addons/skin.confluence/language/Malay/strings.po
index 0c6080c..fdf6cd0 100644
--- a/addons/skin.confluence/language/Malay/strings.po
+++ b/addons/skin.confluence/language/Malay/strings.po
@@ -548,6 +548,10 @@ msgctxt "#31903"
 msgid "Weekend Forecast"
 msgstr "Ramalan Mingguan"
 
+msgctxt "#31904"
+msgid "Daily Forecast"
+msgstr "Ramalan Harian"
+
 msgctxt "#31905"
 msgid "Forecast"
 msgstr "Ramalan"
@@ -560,6 +564,10 @@ msgctxt "#31909"
 msgid "Fetching forecast info..."
 msgstr "Mendapatkan maklumat ramalan..."
 
+msgctxt "#31910"
+msgid "Maps"
+msgstr "Peta"
+
 msgctxt "#31950"
 msgid "WEATHER"
 msgstr "CUACA"
@@ -599,3 +607,7 @@ msgstr "MAIN CAKERA"
 msgctxt "#31959"
 msgid "SYSTEM"
 msgstr "Sistem"
+
+msgctxt "#31960"
+msgid "RADIO"
+msgstr "RADIO"
diff --git a/addons/skin.confluence/language/Polish/strings.po b/addons/skin.confluence/language/Polish/strings.po
index 526b749..1d8a589 100644
--- a/addons/skin.confluence/language/Polish/strings.po
+++ b/addons/skin.confluence/language/Polish/strings.po
@@ -222,7 +222,7 @@ msgstr "Nie używaj tapet w roli tła"
 
 msgctxt "#31124"
 msgid "Show Background \"Now Playing\" Video"
-msgstr "Używaj odtwarzane wideo w roli tła"
+msgstr "Wyświetlaj panel Teraz odtwarzane w tle interfejsu"
 
 msgctxt "#31125"
 msgid "Show Background \"Now Playing\" Visualisation"
diff --git a/addons/skin.confluence/language/Slovenian/strings.po b/addons/skin.confluence/language/Slovenian/strings.po
index 82661be..2c9ab0a 100644
--- a/addons/skin.confluence/language/Slovenian/strings.po
+++ b/addons/skin.confluence/language/Slovenian/strings.po
@@ -462,7 +462,7 @@ msgstr "[B]PRILAGODITE NASTAVITVE SISTEMA[/B][CR][CR]Nastavite in prilagodite za
 
 msgctxt "#31408"
 msgid "[B]CONFIGURE ADD-ONS[/B][CR][CR]Manage your installed Add-ons · Browse for and install Add-ons from kodi.tv[CR]Modify Add-on settings"
-msgstr "[B]PRILAGODITE DODATKE[/B][CR][CR]Upravljajte nameščene dodatke · Brskajte in namestite nove dodatke iz kodi.tv[CR]Nastavite dodatke"
+msgstr "[B]PRILAGODITE DODATKE[/B][CR][CR]Upravljajte nameščene dodatke · Brskajte in namestite nove dodatke s kodi.tv[CR]Nastavite dodatke"
 
 msgctxt "#31409"
 msgid "[B]CONFIGURE TV SETTINGS[/B][CR][CR]Change full screen info · Manage EPG data settings"
@@ -470,7 +470,7 @@ msgstr "[B]PRILAGODITVE NASTAVITVE TV[/B][CR][CR]Spremenite informacije v celoza
 
 msgctxt "#31410"
 msgid "[B]CONFIGURE SERVICE SETTINGS[/B][CR][CR]Setup control of Kodi via UPnP and HTTP · Configure file sharing[CR]Enable Zeroconf · Configure AirPlay"
-msgstr "[B]PRILAGODITE NASTAVITVE STORITEV[/B][CR][CR]Nastavite upravljanje Kodi-ja preko UPnP-ja in HTTP-ja · Nastavite deljenje datotek[CR]Vključite Zeroconf · Prilagodite AirPlay"
+msgstr "[B]PRILAGODITE NASTAVITVE STORITEV[/B][CR][CR]Nastavite upravljanje Kodija preko UPnP-ja in HTTP-ja · Nastavite deljenje datotek[CR]Vključite Zeroconf · Prilagodite AirPlay"
 
 msgctxt "#31411"
 msgid "First run help...."
@@ -566,7 +566,7 @@ msgstr "Prenašam vremenske informacije ..."
 
 msgctxt "#31910"
 msgid "Maps"
-msgstr "Karte"
+msgstr "Zemljevidi"
 
 msgctxt "#31950"
 msgid "WEATHER"
diff --git a/addons/skin.confluence/language/Tajik/strings.po b/addons/skin.confluence/language/Tajik/strings.po
index e090b1c..5c030d0 100644
--- a/addons/skin.confluence/language/Tajik/strings.po
+++ b/addons/skin.confluence/language/Tajik/strings.po
@@ -548,6 +548,10 @@ msgctxt "#31903"
 msgid "Weekend Forecast"
 msgstr "Пешгӯии обу ҳаво барои рӯзҳои истироҳат"
 
+msgctxt "#31904"
+msgid "Daily Forecast"
+msgstr "Пешгӯии ҳаррӯза"
+
 msgctxt "#31905"
 msgid "Forecast"
 msgstr "Пешгӯии обу ҳаво"
@@ -603,3 +607,7 @@ msgstr "ПАХШИ ДИСК"
 msgctxt "#31959"
 msgid "SYSTEM"
 msgstr "СИСТЕМА"
+
+msgctxt "#31960"
+msgid "RADIO"
+msgstr "РАДИО"
diff --git a/addons/skin.confluence/language/Tamil (India)/strings.po b/addons/skin.confluence/language/Tamil (India)/strings.po
index a216063..313727a 100644
--- a/addons/skin.confluence/language/Tamil (India)/strings.po	
+++ b/addons/skin.confluence/language/Tamil (India)/strings.po	
@@ -16,10 +16,38 @@ msgstr ""
 "Language: ta_IN\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgctxt "#31003"
+msgid "Power Options"
+msgstr "மின்திறன் விருப்பங்கள்"
+
+msgctxt "#31004"
+msgid "Working..."
+msgstr "சற்று காத்திருக்கவும்..."
+
+msgctxt "#31006"
+msgid "View Options"
+msgstr "விருப்பங்கள் காண்க"
+
 msgctxt "#31008"
 msgid "Full screen"
 msgstr "முழுத்திரை"
 
+msgctxt "#31009"
+msgid "Total Duration"
+msgstr "முழு நீடிக்கும் காலம்"
+
+msgctxt "#31024"
+msgid "Page"
+msgstr "பக்கம்"
+
+msgctxt "#31025"
+msgid "Items"
+msgstr "உருப்படிகள்"
+
+msgctxt "#31026"
+msgid "Misc Options"
+msgstr "இதர விருப்பங்கள்"
+
 msgctxt "#31027"
 msgid "Location"
 msgstr "இருப்பிடம்"
@@ -32,6 +60,58 @@ msgctxt "#31033"
 msgid "Info"
 msgstr "தகவல்"
 
+msgctxt "#31039"
+msgid "Actions"
+msgstr "நடவடிக்கைகள்"
+
+msgctxt "#31040"
+msgid "Now Playing"
+msgstr "தற்போது வாசிக்கபடுவது"
+
+msgctxt "#31042"
+msgid "PLAYING"
+msgstr "வாசிக்கபடுகிறது"
+
+msgctxt "#31043"
+msgid "PAUSED"
+msgstr "இடைநிறுத்தம்"
+
+msgctxt "#31044"
+msgid "FAST FORWARD"
+msgstr "முன்சுற்று"
+
+msgctxt "#31045"
+msgid "REWIND"
+msgstr "பின்சுற்று"
+
+msgctxt "#31046"
+msgid "SEEKING"
+msgstr "தேடுகிறது"
+
+msgctxt "#31048"
+msgid "Visualisation Presets"
+msgstr "காட்சி முன் நிறுவுகள்"
+
+msgctxt "#31050"
+msgid "Sort: Ascending"
+msgstr "வரிசைபடுத்து : ஏறுவரிசை"
+
+msgctxt "#31051"
+msgid "Sort: Descending"
+msgstr "வரிசைபடுத்து : இறங்குவரிசை"
+
+msgctxt "#31055"
+msgid "Open playlist"
+msgstr "பட்டியலை திற"
+
+msgctxt "#31056"
+msgid "Save playlist"
+msgstr "பட்டியலை சேமி"
+
+msgctxt "#31057"
+msgid "Close playlist"
+msgstr "பட்டியலை முடு"
+
 msgctxt "#31059"
 msgid "Current playlist"
 msgstr "தற்போதைய பட்டியல்"
@@ -48,18 +128,66 @@ msgctxt "#31112"
 msgid "Options"
 msgstr "விருப்பங்கள்"
 
+msgctxt "#31124"
+msgid "Show Background \"Now Playing\" Video"
+msgstr "பின்புலனில் காண்பி : \"தற்போது கான்பிக்கபடும்\" படகாட்சி"
+
+msgctxt "#31125"
+msgid "Show Background \"Now Playing\" Visualisation"
+msgstr "பின்புலனில் காண்பி : \"தற்போது கான்பிக்கபடும்\" காட்சி"
+
 msgctxt "#31128"
 msgid "Lyrics"
 msgstr "பாடல்வரிகள்"
 
+msgctxt "#31129"
+msgid "Hide Fanart in full screen visualisation"
+msgstr "முழுத்திரையில் விசிறிபடத்தை மறை"
+
+msgctxt "#31142"
+msgid "Settings level"
+msgstr "அமைப்புக்கள் நிலை"
+
 msgctxt "#31200"
 msgid "Shortcuts"
 msgstr "குறுக்குவழிகள்"
 
+msgctxt "#31205"
+msgid "Lyrics Source"
+msgstr "பாடல்வரிகள் மூலம்"
+
+msgctxt "#31301"
+msgid "Last Updated"
+msgstr "கடைசியாக புதுபித்தது"
+
+msgctxt "#31307"
+msgid "Hide Fanart"
+msgstr "விசிறிபடத்தை மறை"
+
+msgctxt "#31309"
+msgid "Memory Used:"
+msgstr "பயன்படுத்தப்பட்டுள்ள நினைவகம்"
+
+msgctxt "#31317"
+msgid "Set Fanart Path"
+msgstr "விசிறிபட பாதையை தேர்வுசெய்"
+
+msgctxt "#31320"
+msgid "Last Logged In"
+msgstr "கடைசியாக உள்நுழைந்தது"
+
+msgctxt "#31321"
+msgid "Karaoke Song Selector"
+msgstr "கரோக்கி பாடல் தொகுப்பான்"
+
 msgctxt "#31327"
 msgid "Resolution"
 msgstr "திரைத்திறன்"
 
+msgctxt "#31328"
+msgid "Recently Added"
+msgstr "சமிபத்தில் சேர்க்கப்பட்டது"
+
 msgctxt "#31362"
 msgid "Enabled"
 msgstr "செயல்படுத்தபட்டுள்ளது"
@@ -68,10 +196,126 @@ msgctxt "#31390"
 msgid "Skin default"
 msgstr "இயல்புநிலை அலங்கார அமைப்பு"
 
+msgctxt "#31400"
+msgid "[B]CONFIGURE APPEARANCE SETTINGS[/B][CR][CR]Change the skin · Set language and region · Change file listing options[CR]Set up a screensaver"
+msgstr "[B]தோற்றம் அமைப்புகள் கட்டமைப்பு[/B][CR][CR]அலங்காரம் மாற்று · மொழி மற்றும் பிராந்தியம் அமைக்க · கோப்பு பட்டியல் விருப்பங்களை மாற்று[CR]திரை காப்பான் அமைக்க"
+
+msgctxt "#31401"
+msgid "[B]CONFIGURE VIDEO SETTINGS[/B][CR][CR]Manage your video library · Set video playback options · Change video listing options[CR]Set subtitle fonts"
+msgstr "[B]நிகழ்படம் அமைப்புகள் கட்டமைப்பு[/B][CR][CR]உங்கள் வீடியோ நூலக மேலாண்மை · வீடியோ பின்னணி விருப்பங்களை அமைக்க · வீடியோ பட்டியல் விருப்பங்களை மாற்ற[CR]வசன எழுத்துருக்களை அமைக்க"
+
+msgctxt "#31402"
+msgid "[B]CONFIGURE MUSIC SETTINGS[/B][CR][CR]Manage your music library · Set music playback options · Change music listing options[CR]Setup song submission · Set karaoke options"
+msgstr "[B]இசை அமைப்புகள் கட்டமைப்பு[/B][CR][CR]உங்கள் இசை நூலகம் நிர்வகிக்க · இசை பின்னணி விருப்பங்களை அமைக்க · இசை பட்டியல் விருப்பங்களை மாற்ற[CR]சமர்ப்பிப்பு பாடல் அமைப்பு · கரோக்கே விருப்பங்கள் அமைக்க"
+
+msgctxt "#31403"
+msgid "[B]CONFIGURE PICTURE SETTINGS[/B][CR][CR]Set picture listing options · Configure slideshows"
+msgstr "[B]படம் அமைப்புகள் கட்டமைப்பு[/B][CR][CR]படம் பட்டியல் விருப்பங்கள் அமைக்க · படவில்லை கட்டமைக்க"
+
+msgctxt "#31404"
+msgid "[B]CONFIGURE WEATHER SETTINGS[/B][CR][CR]Set three cities to collect weather information"
+msgstr "[B]வானிலை அமைப்புகள் கட்டமைப்பு[/B][CR][CR]வானிலை தகவல்களை சேகரிக்க மூன்று நகரங்களின் பெயரை அமைக்க"
+
+msgctxt "#31406"
+msgid "[B]CONFIGURE SYSTEM SETTINGS[/B][CR][CR]Setup and calibrate displays · Configure audio output · Setup remote controls[CR]Set power saving options · Enable debugging · Setup master lock"
+msgstr "[B]கணினி அமைப்புகள் கட்டமைப்பு[/B][CR][CR]காட்சிகளை அமைப்பது மற்றும் அளவீடு · ஆடியோ வெளியீடு கட்டமைக்க · ரிமோட் கண்ட்ரோல்கள் அமைப்பதற்கு[CR]மின் ஆற்றல் சேமிப்பு விருப்பங்கள் அமைக்க · பிழைத்திருத்தம் செயல்படுத்த · மாஸ்டர் பூட்டு அமைப்பு"
+
+msgctxt "#31408"
+msgid "[B]CONFIGURE ADD-ONS[/B][CR][CR]Manage your installed Add-ons · Browse for and install Add-ons from kodi.tv[CR]Modify Add-on settings"
+msgstr "[B]துணை-பயன் அமைப்புகள் கட்டமைப்பு[/B][CR][CR]நிறுவிய துணை-பயன்களை மேலாண்மை · kodi.tv உலாவி மற்றும் துணை-பயன்களை நிறுவ[CR]துணை-பயன் அமைப்புகளை மாற்ற"
+
+msgctxt "#31409"
+msgid "[B]CONFIGURE TV SETTINGS[/B][CR][CR]Change full screen info · Manage EPG data settings"
+msgstr "[B]தொலைக்காட்சி அமைப்புகள் கட்டமைப்பு[/B][CR][CR]முழுத்திரை தகவல் மாற்று · EPG தரவு அமைப்புகள் மேலாண்மை"
+
+msgctxt "#31410"
+msgid "[B]CONFIGURE SERVICE SETTINGS[/B][CR][CR]Setup control of Kodi via UPnP and HTTP · Configure file sharing[CR]Enable Zeroconf · Configure AirPlay"
+msgstr "[B]சேவை அமைப்புகள் கட்டமைப்பு[/B][CR][CR]UPnP மற்றும் HTTP வழியாக Kodiஅமைப்பு கட்டுப்பாடு  · கோப்பு பகிர்வு கட்டமைப்பு[CR]Zeroconf செயல்படுத்த · AirPlay கட்டமைப்பு"
+
+msgctxt "#31413"
+msgid "Local subtitle available"
+msgstr "உள்ளூர் வசன வரிகள் இருக்கிறது"
+
+msgctxt "#31502"
+msgid "Live TV"
+msgstr "நேரடி தொலைக்காட்சி"
+
+msgctxt "#31503"
+msgid "Add Group"
+msgstr "குழுவை சேர்க்க"
+
+msgctxt "#31504"
+msgid "Rename Group"
+msgstr "குழுவுக்கு வேறு பெயரிடு"
+
+msgctxt "#31505"
+msgid "Delete Group"
+msgstr "குழுவை நீக்கு"
+
+msgctxt "#31506"
+msgid "Available[CR]Groups"
+msgstr "இருக்கின்ற[CR]குழுக்கள்"
+
+msgctxt "#31511"
+msgid "Channel Options"
+msgstr "சேனல் விருப்பங்கள்"
+
+msgctxt "#31901"
+msgid "36 Hour Forecast"
+msgstr "36 மணி நேர முன் அறிவிப்பு"
+
+msgctxt "#31902"
+msgid "Hourly Forecast"
+msgstr "மணி நேர முன் அறிவிப்பு"
+
+msgctxt "#31903"
+msgid "Weekend Forecast"
+msgstr "வாராந்திர முன் அறிவிப்பு"
+
+msgctxt "#31908"
+msgid "Chance of Precipitation"
+msgstr "பொழிவு வாய்ப்பு"
+
+msgctxt "#31909"
+msgid "Fetching forecast info..."
+msgstr "முன் அறிவிப்பு தகவல்களை சேகரித்தல்..."
+
 msgctxt "#31910"
 msgid "Maps"
 msgstr "வரைபடங்கள்"
 
+msgctxt "#31950"
+msgid "WEATHER"
+msgstr "வானிலை"
+
+msgctxt "#31951"
+msgid "PICTURES"
+msgstr "படங்கள்"
+
 msgctxt "#31952"
 msgid "TV"
 msgstr "தொலைக்காட்சி"
+
+msgctxt "#31953"
+msgid "VIDEOS"
+msgstr "வீடியோக்கள்"
+
+msgctxt "#31954"
+msgid "MOVIES"
+msgstr "திரைப்படங்கள்"
+
+msgctxt "#31955"
+msgid "TV SHOWS"
+msgstr "தொலைக்காட்சி நிகழ்சிகள்"
+
+msgctxt "#31956"
+msgid "MUSIC"
+msgstr "இசை"
+
+msgctxt "#31958"
+msgid "PLAY DISC"
+msgstr "தட்டை வாசி"
+
+msgctxt "#31959"
+msgid "SYSTEM"
+msgstr "கணினி"
diff --git a/addons/skin.confluence/language/Azerbaijani/strings.po b/addons/skin.confluence/language/Tatar/strings.po
similarity index 57%
copy from addons/skin.confluence/language/Azerbaijani/strings.po
copy to addons/skin.confluence/language/Tatar/strings.po
index c561f46..edb00b9 100644
--- a/addons/skin.confluence/language/Azerbaijani/strings.po
+++ b/addons/skin.confluence/language/Tatar/strings.po
@@ -9,29 +9,25 @@ msgstr ""
 "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Kodi Translation Team\n"
-"Language-Team: Azerbaijani (http://www.transifex.com/projects/p/xbmc-main/language/az/)\n"
+"Language-Team: Tatar (http://www.transifex.com/projects/p/xbmc-main/language/tt/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: az\n"
+"Language: tt\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-msgctxt "#31008"
-msgid "Full screen"
-msgstr "Tam ekran"
+msgctxt "#31953"
+msgid "VIDEOS"
+msgstr "ВИДЕОЛАР"
 
-msgctxt "#31200"
-msgid "Shortcuts"
-msgstr "Qısayollar"
+msgctxt "#31954"
+msgid "MOVIES"
+msgstr "КИНОЛАР"
 
-msgctxt "#31327"
-msgid "Resolution"
-msgstr "Əksetmə qabiliyyəti"
+msgctxt "#31956"
+msgid "MUSIC"
+msgstr "МУЗЫКА"
 
-msgctxt "#31502"
-msgid "Live TV"
-msgstr "TV"
-
-msgctxt "#31952"
-msgid "TV"
-msgstr "TV"
+msgctxt "#31959"
+msgid "SYSTEM"
+msgstr "СИСТЕМА"
diff --git a/addons/skin.confluence/language/Thai/strings.po b/addons/skin.confluence/language/Thai/strings.po
index ef366fb..2a24ab4 100644
--- a/addons/skin.confluence/language/Thai/strings.po
+++ b/addons/skin.confluence/language/Thai/strings.po
@@ -548,6 +548,10 @@ msgctxt "#31903"
 msgid "Weekend Forecast"
 msgstr "พยากรณ์สุดสัปดาห์"
 
+msgctxt "#31904"
+msgid "Daily Forecast"
+msgstr "พยากรณ์ประจำวัน"
+
 msgctxt "#31905"
 msgid "Forecast"
 msgstr "พยากรณ์"
@@ -603,3 +607,7 @@ msgstr "เล่นแผ่น"
 msgctxt "#31959"
 msgid "SYSTEM"
 msgstr "ระบบ"
+
+msgctxt "#31960"
+msgid "RADIO"
+msgstr "วิทยุ"
diff --git a/addons/skin.confluence/language/Welsh/strings.po b/addons/skin.confluence/language/Welsh/strings.po
index a979b12..745191e 100644
--- a/addons/skin.confluence/language/Welsh/strings.po
+++ b/addons/skin.confluence/language/Welsh/strings.po
@@ -548,6 +548,10 @@ msgctxt "#31903"
 msgid "Weekend Forecast"
 msgstr "Rhagolygon Penwythnos"
 
+msgctxt "#31904"
+msgid "Daily Forecast"
+msgstr "Rhagolygon Dyddiol"
+
 msgctxt "#31905"
 msgid "Forecast"
 msgstr "Rhagolygon"
diff --git a/addons/visualization.fishbmc/addon.xml b/addons/visualization.fishbmc/addon.xml
index b013288..0955de4 100644
--- a/addons/visualization.fishbmc/addon.xml
+++ b/addons/visualization.fishbmc/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <addon
   id="visualization.fishbmc"
-  version="4.0.17"
+  version="4.0.18"
   name="FishBMC"
   provider-name="26elf">
   <extension
diff --git a/addons/visualization.fishbmc/changelog.txt b/addons/visualization.fishbmc/changelog.txt
index cb944b3..f17408e 100644
--- a/addons/visualization.fishbmc/changelog.txt
+++ b/addons/visualization.fishbmc/changelog.txt
@@ -1,3 +1,6 @@
+2015-01-11:
+        Updated language files from Transifex
+
 2014-12-21:
         Updated language files from Transifex
 
diff --git a/addons/visualization.fishbmc/resources/language/Catalan/strings.po b/addons/visualization.fishbmc/resources/language/Catalan/strings.po
index c052841..c213ae7 100644
--- a/addons/visualization.fishbmc/resources/language/Catalan/strings.po
+++ b/addons/visualization.fishbmc/resources/language/Catalan/strings.po
@@ -16,6 +16,10 @@ msgstr ""
 "Language: ca\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgctxt "#30000"
+msgid "Detail [CPU intensive]"
+msgstr "Detall [intensiu de CPU]"
+
 msgctxt "#30001"
 msgid "Low"
 msgstr "Baix"
diff --git a/addons/visualization.milkdrop/resources/language/Korean/strings.po b/addons/visualization.milkdrop/resources/language/Korean/strings.po
index 2f3c631..561aa07 100644
--- a/addons/visualization.milkdrop/resources/language/Korean/strings.po
+++ b/addons/visualization.milkdrop/resources/language/Korean/strings.po
@@ -30,11 +30,11 @@ msgstr "추가적 랜덤 간격"
 
 msgctxt "#30003"
 msgid "Enable Anisotropic Filtering"
-msgstr "비등방성 필터링 활성화"
+msgstr "비등방성 필터링 사용"
 
 msgctxt "#30004"
 msgid "Enable Hard Cuts"
-msgstr "하드컷 활성화"
+msgstr "하드컷 사용"
 
 msgctxt "#30005"
 msgid "Loudness Threshold For Hard Cuts"
@@ -50,7 +50,7 @@ msgstr "최대 리프레쉬 레이트"
 
 msgctxt "#30008"
 msgid "Enable Stereo 3D"
-msgstr "스테레오 3D 활성화"
+msgstr "스테레오 3D 사용"
 
 msgctxt "#30009"
 msgid "Preset Pack"
diff --git a/addons/visualization.vortex/addon.xml b/addons/visualization.vortex/addon.xml
index 40c4a49..e0a79b9 100644
--- a/addons/visualization.vortex/addon.xml
+++ b/addons/visualization.vortex/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <addon
   id="visualization.vortex"
-  version="1.0.14"
+  version="1.0.15"
   name="Vortex"
   provider-name="Team-Kodi">
   <extension
@@ -13,6 +13,7 @@
     <summary lang="bg">Визуализацията Vortex  от пакета за XBOX</summary>
     <summary lang="ca">Visualització Vortex del paquet d'XBOX</summary>
     <summary lang="cs">Vizualizace Vortex z balíčku XBOX</summary>
+    <summary lang="cy">Vortex Visualization o becyn XBOX</summary>
     <summary lang="da">Vortex visualisering fra XBOX pakken</summary>
     <summary lang="de">Vortex Visualisierung aus dem XBOX Paket</summary>
     <summary lang="el">Οπτικοποίηση Δίνης από το πακέτο XBOX</summary>
diff --git a/addons/visualization.vortex/resources/language/Welsh/strings.po b/addons/visualization.vortex/resources/language/Welsh/strings.po
index 0d0c23c..dfeec65 100644
--- a/addons/visualization.vortex/resources/language/Welsh/strings.po
+++ b/addons/visualization.vortex/resources/language/Welsh/strings.po
@@ -16,14 +16,42 @@ msgstr ""
 "Language: cy\n"
 "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n"
 
+msgctxt "#30000"
+msgid "Random Presets"
+msgstr "Rhagosodiadau Hap"
+
 msgctxt "#30001"
 msgid "Time Between Presets"
-msgstr "Amse Rhwg Rhagosodiadau"
+msgstr "Amser Rhwng Rhagosodiadau"
 
 msgctxt "#30002"
 msgid "Additional Random Time"
 msgstr "Amser Hap Ychwanegol"
 
+msgctxt "#30003"
+msgid "Lock Preset"
+msgstr "Cloi'r Rhagosodiadau"
+
+msgctxt "#30004"
+msgid "Enable Transitions"
+msgstr "Galluogi'r Newidiadau"
+
+msgctxt "#30005"
+msgid "Stop first preset"
+msgstr "Rhwystro'r rhagosodiad cyntaf"
+
+msgctxt "#30006"
+msgid "Show FPS"
+msgstr "Dangos FPS"
+
+msgctxt "#30007"
+msgid "Show debug console"
+msgstr "Dangos y consol dadfygio"
+
+msgctxt "#30008"
+msgid "Show audio analysis"
+msgstr "Dangos y dadansoddiad sain"
+
 msgctxt "#30050"
 msgid "%2.0f secs"
 msgstr "%2.0f eil"
diff --git a/addons/webinterface.default/addon.xml b/addons/webinterface.default/addon.xml
index 062f0d0..80e1ab4 100644
--- a/addons/webinterface.default/addon.xml
+++ b/addons/webinterface.default/addon.xml
@@ -1,11 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <addon
   id="webinterface.default"
-  version="2.2.22"
+  version="2.2.23"
   name="Default"
   provider-name="Team-Kodi">
   <requires>
-    <import addon="xbmc.gui" version="4.0.0"/>
     <import addon="xbmc.json" version="6.0.0"/>
   </requires>
   <extension
@@ -14,7 +13,6 @@
     <summary lang="af">Span Kodi Web Koppelvlak. (Kodi se verstek web koppelvlak)</summary>
     <summary lang="am">የ Kodi የዌብ ገጽታዎች (የ Kodi ነባር የዌብ ገጽታዎች)</summary>
     <summary lang="ar">واجهه فريق إكس بي إم سي للشبكة العنكبوتية (واجهه الشبكة العنكبوتية المبدئية لـ إكس بي إم سي)</summary>
-    <summary lang="ast">Interfaz web de Kodi. (Interfaz web por defeutu de Kodi)</summary>
     <summary lang="be">Team-Kodi Web Interface. (Kodi's default web interface)</summary>
     <summary lang="bg">Уеб интерфейс на Team-Kodi. (стандартният уеб интерфейс на Kodi)</summary>
     <summary lang="ca">Interfície web de l'equip Kodi. (Interficie web per defecte del Kodi)</summary>
@@ -34,7 +32,7 @@
     <summary lang="eu">Kodi taldean Web Interfazea. (Kodi-ren lehenetsiriko web interfazea)</summary>
     <summary lang="fa">نمایه وب تیم Kodi.(رابط پیش فرض Kodi)</summary>
     <summary lang="fi">Team-Kodi:n WWW-käyttöliittymä. (Kodi:n oletus WWW-käyttöliittymä)</summary>
-    <summary lang="fr">Interface Web de l'équipe d'Kodi. (Interface Web par défaut d'Kodi)</summary>
+    <summary lang="fr">Interface Web de l'équipe de Kodi. (Interface Web par défaut de Kodi)</summary>
     <summary lang="fr_CA">Interface Web de l'équipe-Kodi. (Interface Web par défaut d'Kodi)</summary>
     <summary lang="gl">Interface web da equipa de Kodi. (Interface web predefinida de Kodi)</summary>
     <summary lang="he">ממשק הדפדפן הרשמי של Kodi. (ברירת המחדל)</summary>
@@ -73,7 +71,6 @@
     <description lang="af">Verstek web koppelvlak vir Kodi; Ontwerp vir toestelle van alle resolusies</description>
     <description lang="am">ነባር የዌብ ገጽታዎች ለ Kodi ፡ የተነደፈው ለሁሉም አካላቶች resolutions ነው </description>
     <description lang="ar">واجهه الشبكة العنكبوتية المبدئية لـ إكس بي إم سي، مُصمَمة لتناسب كافة قياسات أبعاد الشاشات</description>
-    <description lang="ast">Interfaz web por defeutu de Kodi. Diseñada pa preseos de cualquier resolución</description>
     <description lang="be">Стандартны вэб-інтэрфэйс да Kodi; распрацаваны для прыладаў зь любымі разрознасьцямі</description>
     <description lang="bg">Стандартния уеб интерфейс на Kodi; Направен е за устройства с най-различни резолюции</description>
     <description lang="ca">Interfície web per defecte del Kodi; Dissenyada per dispositius de totes les resol·lucions</description>
@@ -93,7 +90,7 @@
     <description lang="eu">Kodi-ren lehenetsiriko web interfazea. Erresoluzio guztietako gailentzat diseinatua</description>
     <description lang="fa">رابط پیش فرض Kodiوطراحی شده برای هر رزولیشن</description>
     <description lang="fi">Oletus WWW-käyttöliittymä Kodi:lle. Suunniteltu käytettäväksi kaiken kokoisilla laitteilla.</description>
-    <description lang="fr">Interface Web par défaut d'Kodi; Adaptée aux dispositifs de toutes résolutions</description>
+    <description lang="fr">Interface Web par défaut de Kodi; Adaptée aux dispositifs de toutes résolutions</description>
     <description lang="fr_CA">Interface Web par défaut d'Kodi - Conçue pour les dispositifs de toutes résolutions</description>
     <description lang="gl">Interface web predefinida para Kodi, deseñada para dispositivos de todas as resolucións</description>
     <description lang="he">ממשק דפדפן ברירת המחדל עבור Kodi; מותאם למכשירים בעלי אבחנות שונות</description>
diff --git a/configure.in b/configure.in
index 45bf230..0c223a8 100644
--- a/configure.in
+++ b/configure.in
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.59)
-AC_INIT([kodi], [14.0.000], [http://issues.kodi.tv])
+AC_INIT([kodi], [14.2.000], [http://trac.kodi.tv])
 AC_CONFIG_HEADERS([xbmc/config.h])
 AH_TOP([#pragma once])
 m4_include([m4/ax_prog_cc_for_build.m4])
diff --git a/language/Amharic/strings.po b/language/Amharic/strings.po
index 8f473c5..b3802b7 100644
--- a/language/Amharic/strings.po
+++ b/language/Amharic/strings.po
@@ -573,6 +573,10 @@ msgctxt "#170"
 msgid "Adjust display refresh rate to match video"
 msgstr "የ ማሳያውን ማነቃቂያ መጠን ከቪዲዮ ጋር ማዛመጃ ማስተካከያ "
 
+msgctxt "#171"
+msgid "Sort title"
+msgstr " አርእስት መለያ   "
+
 msgctxt "#172"
 msgid "Release date"
 msgstr "የተለቀቀበት ቀን"
@@ -965,6 +969,10 @@ msgctxt "#305"
 msgid "Enabled"
 msgstr "ተችሏል "
 
+msgctxt "#310"
+msgid "Keyboard layouts"
+msgstr "የፊደል ገበታ አቀራረብ"
+
 msgctxt "#312"
 msgid "(0=auto)"
 msgstr "(0=auto)"
@@ -2261,6 +2269,10 @@ msgctxt "#801"
 msgid "Would you like to scan now?"
 msgstr "አሁን ማሰስ ይፈልጋሉ? "
 
+msgctxt "#802"
+msgid "%s of %s available"
+msgstr "%s ከ %s ዝግጁ ናቸው"
+
 msgctxt "#997"
 msgid "Add Pictures..."
 msgstr "ስእሎች መጨመሪያ..."
@@ -2577,6 +2589,10 @@ msgctxt "#1390"
 msgid "Settings"
 msgstr "ማሰናጃዎች"
 
+msgctxt "#1391"
+msgid "Breeze"
+msgstr "ቀዝቃዛ"
+
 msgctxt "#1397"
 msgid "and"
 msgstr "እና "
@@ -2685,6 +2701,10 @@ msgctxt "#1432"
 msgid "Sand"
 msgstr "አሸዋ"
 
+msgctxt "#1435"
+msgid "Sandstorm"
+msgstr "የ አሸዋ ንፋስ"
+
 msgctxt "#1438"
 msgid "Small"
 msgstr "ትንሽ "
@@ -2697,6 +2717,10 @@ msgctxt "#1441"
 msgid "with"
 msgstr "ጋር "
 
+msgctxt "#1443"
+msgid "of"
+msgstr "ከ"
+
 msgctxt "#1445"
 msgid "Cloud"
 msgstr "ደመና"
@@ -2853,6 +2877,10 @@ msgctxt "#10044"
 msgid "No help available"
 msgstr "ምንም እርዳታ አልተገኘም"
 
+msgctxt "#10100"
+msgid "Yes/No dialogue"
+msgstr "አዎ/አይ ንግግር"
+
 msgctxt "#10126"
 msgid "File browser"
 msgstr "ፋይል መቃኛ"
@@ -3209,6 +3237,18 @@ msgctxt "#12395"
 msgid "Battery level"
 msgstr "የባትሪ ደረጃ "
 
+msgctxt "#12396"
+msgid "Auto updates: On"
+msgstr "በራሱ ማሻሻያ: በርቷል "
+
+msgctxt "#12397"
+msgid "Auto updates: Notify"
+msgstr "በራሱ ማሻሻያ: አሳዋቂ"
+
+msgctxt "#12398"
+msgid "Auto updates: Never"
+msgstr "በራሱ ማሻሻያ: በፍጹም"
+
 msgctxt "#12600"
 msgid "Weather"
 msgstr "የአየር ንብረት"
@@ -4921,6 +4961,10 @@ msgctxt "#20162"
 msgid "Used"
 msgstr "የተጠቀሙት"
 
+msgctxt "#20163"
+msgid "of"
+msgstr "ከ"
+
 msgctxt "#20165"
 msgid "Not locked"
 msgstr "አልተቆለፈም "
@@ -5733,6 +5777,10 @@ msgctxt "#29800"
 msgid "Library Mode"
 msgstr "በ መጻህፍት ቤት ዘዴ"
 
+msgctxt "#33002"
+msgid "Stream"
+msgstr "ማስተላለፊያ"
+
 msgctxt "#33003"
 msgid "Download"
 msgstr "የ ወረደ"
diff --git a/language/Arabic/strings.po b/language/Arabic/strings.po
index e221e6c..f4829cb 100644
--- a/language/Arabic/strings.po
+++ b/language/Arabic/strings.po
@@ -27,7 +27,7 @@ msgstr "الموسيقى"
 
 msgctxt "#3"
 msgid "Videos"
-msgstr "المقاطع المرئيه"
+msgstr "الفيديو"
 
 msgctxt "#4"
 msgid "TV-Guide"
@@ -311,7 +311,7 @@ msgstr "العرض: قائمة"
 
 msgctxt "#102"
 msgid "Scan"
-msgstr "فحص"
+msgstr "بحث"
 
 msgctxt "#103"
 msgid "Sort by: Name"
@@ -343,7 +343,7 @@ msgstr "إنشاء مصغرات"
 
 msgctxt "#110"
 msgid "Create thumbnails"
-msgstr "إنشاء مصغرات"
+msgstr "إنشاء صور مصغرة"
 
 msgctxt "#111"
 msgid "Shortcuts"
diff --git a/language/Bulgarian/strings.po b/language/Bulgarian/strings.po
index 337b157..77db1ca 100644
--- a/language/Bulgarian/strings.po
+++ b/language/Bulgarian/strings.po
@@ -2967,11 +2967,11 @@ msgstr "Въведете нов етикет"
 
 msgctxt "#1030"
 msgid "Browse for image"
-msgstr "Преглед за снимка"
+msgstr "Преглед за картина"
 
 msgctxt "#1031"
 msgid "Browse for image folder"
-msgstr "Преглед за папка със снимки"
+msgstr "Преглед за папка с картини"
 
 msgctxt "#1032"
 msgid "Add network location..."
@@ -3495,7 +3495,7 @@ msgstr "Облачно"
 
 msgctxt "#1446"
 msgid "Unknown"
-msgstr "Непознат"
+msgstr "Неизвестно"
 
 msgctxt "#1447"
 msgid "Squals"
@@ -9747,7 +9747,7 @@ msgstr "Доп. местоположение"
 
 msgctxt "#21858"
 msgid "Image type"
-msgstr "Тип изображение"
+msgstr "Тип картина"
 
 msgctxt "#21859"
 msgid "Time created"
@@ -11135,11 +11135,11 @@ msgstr "Навигиране с жестове:"
 
 msgctxt "#34405"
 msgid "1 finger swipe left,right,up,down for cursors"
-msgstr "Замахване с 1 пръст <, >, ˄ и ˅ за курсори"
+msgstr "Плъзнете 1 пръст <, >, ˄ и ˅ за курсори"
 
 msgctxt "#34406"
 msgid "2 finger swipe left for backspace"
-msgstr "Замахване с 2 пръста наляво за backspace"
+msgstr "Плъзнете 2 пръста наляво за backspace"
 
 msgctxt "#34407"
 msgid "1 finger single tap for enter"
@@ -12199,11 +12199,11 @@ msgstr "Категорията съдържа всички настройки с
 
 msgctxt "#36312"
 msgid "Select the amount of time that each image is displayed in a slideshow."
-msgstr "Изберете колко време ще бъде показвано всяко изображение по време на слайдшоу."
+msgstr "Изберете колко време ще бъде показвано всяка картина по време на слайдшоу."
 
 msgctxt "#36313"
 msgid "Images in a slideshow will pan and zoom while displayed."
-msgstr "Към изображенията в слайдшоуто ще се приложат панорамни и увеличаващи ефекти, докато те се показват."
+msgstr "Към картините в слайдшоуто ще се приложат панорамни и увеличаващи ефекти, докато те се показват."
 
 msgctxt "#36314"
 msgid "View slideshow images in a random order."
@@ -12587,7 +12587,7 @@ msgstr "Включва кеширането при възпроизвеждан
 
 msgctxt "#36409"
 msgid "Enable cache of unknown types from Internet."
-msgstr "Включете кеширането на неизвестните видове от интернет."
+msgstr "Включете кеширането на неизвестните типове от интернет."
 
 msgctxt "#36410"
 msgid "No info available yet."
diff --git a/language/Catalan/strings.po b/language/Catalan/strings.po
index ff62f88..8a813d2 100644
--- a/language/Catalan/strings.po
+++ b/language/Catalan/strings.po
@@ -10601,6 +10601,10 @@ msgctxt "#24122"
 msgid "Update all"
 msgstr "Actualitza-ho tota"
 
+msgctxt "#24124"
+msgid "Next to the video"
+msgstr "Continua el video"
+
 msgctxt "#24125"
 msgid "Custom location"
 msgstr "Localització personalitzada"
@@ -11917,6 +11921,10 @@ msgctxt "#36344"
 msgid "Enable AirPlay password protection."
 msgstr "Habilita la protecció amb contrasenya de l'AirPlay."
 
+msgctxt "#36345"
+msgid "Sets the AirPlay password."
+msgstr "Canvia la paraula de pas de AirPlay"
+
 msgctxt "#36350"
 msgid "Automatically send 'Wake-On-Lan' to server(s) right before trying to access shared files or services."
 msgstr "Envia automàticament l'ordre 'Wake-On-Lan' al(s) servidor(s) just abans d'intentar accedir als fitxers compartits o serveis."
diff --git a/language/Chinese (Simple)/strings.po b/language/Chinese (Simple)/strings.po
index 7eed334..dc5e75d 100644
--- a/language/Chinese (Simple)/strings.po	
+++ b/language/Chinese (Simple)/strings.po	
@@ -10475,7 +10475,7 @@ msgstr "助手插件"
 
 msgctxt "#24082"
 msgid "Add-on libraries"
-msgstr "插件库"
+msgstr "插件模块"
 
 msgctxt "#24083"
 msgid "Information libraries"
diff --git a/language/Croatian/strings.po b/language/Croatian/strings.po
index 5aaa822..d83d9e2 100644
--- a/language/Croatian/strings.po
+++ b/language/Croatian/strings.po
@@ -6631,7 +6631,7 @@ msgstr "Usluga"
 
 msgctxt "#19100"
 msgid "Mux"
-msgstr "Mux"
+msgstr "Multipleks"
 
 msgctxt "#19101"
 msgid "Provider"
diff --git a/language/Czech/strings.po b/language/Czech/strings.po
index a9808ea..71970d5 100644
--- a/language/Czech/strings.po
+++ b/language/Czech/strings.po
@@ -10479,7 +10479,7 @@ msgstr "Doplňky knihoven"
 
 msgctxt "#24083"
 msgid "Information libraries"
-msgstr "Informace o klihovnÄ›"
+msgstr "Informace o knihovnÄ›"
 
 msgctxt "#24084"
 msgid "Visualisation libraries"
diff --git a/language/Dutch/strings.po b/language/Dutch/strings.po
index 2acbc9f..7f77001 100644
--- a/language/Dutch/strings.po
+++ b/language/Dutch/strings.po
@@ -583,7 +583,7 @@ msgstr "Resolutie"
 
 msgctxt "#170"
 msgid "Adjust display refresh rate to match video"
-msgstr "Verversingsfrequentie scherm aanpassen aan video"
+msgstr "Verversingsfrequentie van het scherm aanpassen aan dat van de video."
 
 msgctxt "#171"
 msgid "Sort title"
@@ -3703,7 +3703,7 @@ msgstr "Addon verkenner"
 
 msgctxt "#10041"
 msgid "Reset above settings to default"
-msgstr "Herstel bovengenoemde instellingen naar standaard"
+msgstr "Herstel bovengenoemde instellingen naar standaardwaarden"
 
 msgctxt "#10042"
 msgid "Are you sure you want to reset the settings in this category?"
@@ -6447,7 +6447,7 @@ msgstr "Verplaats kanaal naar:"
 
 msgctxt "#19053"
 msgid "Recording information"
-msgstr "Opname informatie"
+msgstr "Opname-informatie"
 
 msgctxt "#19054"
 msgid "Hide channel"
@@ -6523,7 +6523,7 @@ msgstr "TV gids niet opslaan in de database"
 
 msgctxt "#19073"
 msgid "Delay channel switch"
-msgstr "Kanaal wisselen vertragen"
+msgstr "Vertraag kanaalwisseling"
 
 msgctxt "#19074"
 msgid "Active:"
@@ -6911,11 +6911,11 @@ msgstr "Duur van directe opname"
 
 msgctxt "#19173"
 msgid "Default recording priority"
-msgstr "Standaard opname prioriteit"
+msgstr "Standaard opnameprioriteit"
 
 msgctxt "#19174"
 msgid "Default recording lifetime"
-msgstr "Standaard opname levensduur"
+msgstr "Standaard opnamelevensduur"
 
 msgctxt "#19175"
 msgid "Margin at the start of a recording"
@@ -6931,7 +6931,7 @@ msgstr "Afspelen"
 
 msgctxt "#19178"
 msgid "Show channel information when switching channels"
-msgstr "Toon kanaal Informatie bij wisselen kanaal"
+msgstr "Toon kanaalinformatie bij wisselen van kanalen"
 
 msgctxt "#19180"
 msgid "TV"
@@ -8427,11 +8427,11 @@ msgstr "Extra informatie downloaden tijdens updates"
 
 msgctxt "#20193"
 msgid "Default service for album information"
-msgstr "Standaarddiesnt voor albuminformatie"
+msgstr "Standaarddienst voor albuminformatie"
 
 msgctxt "#20194"
 msgid "Default service for artist information"
-msgstr "Standaarddiesnt voor artiestinformatie"
+msgstr "Standaarddienst voor artiestinformatie"
 
 msgctxt "#20195"
 msgid "Change scraper"
@@ -8455,11 +8455,11 @@ msgstr "Downloaden van artiestinformatie mislukt"
 
 msgctxt "#20220"
 msgid "Override song tags with online information"
-msgstr "Overschrijf nummer tags met online informatie"
+msgstr "Overschrijf nummertags met online informatie"
 
 msgctxt "#20221"
 msgid "With this enabled, any information that is downloaded for albums and artists will override anything you have set in your song tags, such as genres, year, song artists etc. Useful if you have MusicBrainz identifiers in your song tags."
-msgstr "Wanneer dit is geactiveerd, zal alle informatie die voor albums en artiesten is gedownload worden overschreven voor als wat je hebt ingesteld in jouw muziektags, zoals genres, jaar, artiesten, etc. Handig als je MusicBrainz indentificatie hebt in jouw muziektags."
+msgstr "Indien geactiveerd, zal alle gedownloade albums- en muziekinformatie worden overschreven m.b.t. muziektaginstellingen, bijvoorbeeld genres, jaar en artiesten. Handig als je MusicBrainz-indentificatie hebt in je muziektags."
 
 msgctxt "#20240"
 msgid "Android music"
@@ -10051,7 +10051,7 @@ msgstr "Gids"
 
 msgctxt "#22021"
 msgid "Allowed error in aspect ratio to minimise black bars"
-msgstr "Toegestane afwijking in beeldverhouding om zwarte balken te minimaliseren"
+msgstr "Toegestane beeldaspectafwijking voor reduceren zwarte balken"
 
 msgctxt "#22022"
 msgid "Show video files in listings"
@@ -10391,7 +10391,7 @@ msgstr "Controleren op updates"
 
 msgctxt "#24056"
 msgid "Last updated %s"
-msgstr "Laats geüpdatet %s "
+msgstr "Laatst geüpdate %s "
 
 msgctxt "#24059"
 msgid "Would you like to enable this Add-on?"
@@ -10571,7 +10571,7 @@ msgstr "Talen van te downloaden ondertiteling"
 
 msgctxt "#24112"
 msgid "Set languages to use when searching for subtitles. Not all subtitle services will use all languages."
-msgstr "Stel te gebruiken talen in wanneer er wordt gezocht naar ondertiteling. Niet alle ondertiteling diensten gebruiken alle talen."
+msgstr "Stel de te gebruiken talen in wanneer er gezocht wordt naar ondertitels. Niet alle ondertiteldiensten gebruiken alle talen."
 
 msgctxt "#24113"
 msgid "Failed to download subtitle"
@@ -10591,7 +10591,7 @@ msgstr "Standaard TV dienst"
 
 msgctxt "#24117"
 msgid "Select service that will be used as default to search for TV Show subtitles."
-msgstr "Selecteer de standaarddienst die zal worden gebruik om te zoeken naar serie ondertiteling."
+msgstr "Selecteer de standaarddienst die zal worden gebruikt om te zoeken naar ondertiteling voor series."
 
 msgctxt "#24118"
 msgid "Default Movie Service"
@@ -10599,7 +10599,7 @@ msgstr "Standaard films dienst"
 
 msgctxt "#24119"
 msgid "Select service that will be used as default to search for Movie subtitles."
-msgstr "Selecteer de standaarddienst die zal worden gebruikt om te zoeken voor film ondertiteling."
+msgstr "Selecteer de standaarddienst die zal worden gebruikt om te zoeken voor ondertiteling voor films."
 
 msgctxt "#24120"
 msgid "Manual search string"
@@ -11455,7 +11455,7 @@ msgstr "Kies de lettertypes die getoond worden in de gebruikersinterface. De let
 
 msgctxt "#36108"
 msgid "Resize the view of the user interface."
-msgstr "Wijzig het formaat van de gebruikersinterface,"
+msgstr "Wijzig het formaat van de gebruikersinterface."
 
 msgctxt "#36109"
 msgid "Select the media window that Kodi displays on startup."
@@ -11491,7 +11491,7 @@ msgstr "Kies welke karakterset gebruikt moet worden om tekst weer te geven in de
 
 msgctxt "#36117"
 msgid "Select country location."
-msgstr "Selecteer de land locatie."
+msgstr "Selecteer het land."
 
 msgctxt "#36118"
 msgid "Select your current timezone."
@@ -11499,7 +11499,7 @@ msgstr "Selecteer de huidige tijdszone."
 
 msgctxt "#36119"
 msgid "Select the default audio track when different language tracks are available."
-msgstr "Kies de standaard audio taal als er meerdere talen beschikbaar zijn."
+msgstr "Kies de standaard audiotaal als er meerdere talen beschikbaar zijn."
 
 msgctxt "#36120"
 msgid "Select the default subtitles when different languages are available."
@@ -11515,11 +11515,11 @@ msgstr "Toon het (..) item in lijsten om naar de bovenliggende map te gaan."
 
 msgctxt "#36123"
 msgid "Show file extensions on media files. For example, 'You Enjoy Myself.mp3' would be simply be shown as 'You Enjoy Myself'."
-msgstr "Laat bestandsextensies zien bij media bestanden. Bijvoorbeeld, 'Jij Geniet Van Mij.mp3' wordt getoond als 'Jij Geniet Van Mij'."
+msgstr "Laat bestandsextensies zien bij mediabestanden.\nBijvoorbeeld: 'Jij Geniet Van Mij' wordt getoond als 'Jij Geniet Van Mij.mp3'."
 
 msgctxt "#36124"
 msgid "Ignore certain tokens during sort operations. For example, 'The Simpsons' would be sorted as 'Simpsons'."
-msgstr "Negeer bepaalde woorden of tekens tijdens het sorteren. Bijvoorbeeld, 'The Simpsons' wordt gesorteerd als 'Simpsons'."
+msgstr "Negeer bepaalde woorden of tekens tijdens het sorteren.\nBijvoorbeeld: 'The Simpsons' wordt gesorteerd als 'Simpsons'."
 
 msgctxt "#36125"
 msgid "Allow files to be deleted and renamed through the user interface, via the contextual menu (press C on a keyboard, for example, to bring up this menu)."
@@ -11587,7 +11587,7 @@ msgstr "Activeer de videobibliotheek."
 
 msgctxt "#36141"
 msgid "Show plot information for unwatched media in the Video Library."
-msgstr "Laat de plot informatie voor onbekeken media zien in de Video Bibliotheek."
+msgstr "Laat de plotinformatie voor onbekeken media zien in de videobibliotheek."
 
 msgctxt "#36143"
 msgid "Get thumbnails for actors when scanning media."
@@ -11603,7 +11603,7 @@ msgstr "Groepeer films in 'Film sets' wanneer je de film bibliotheek verkent."
 
 msgctxt "#36146"
 msgid "Check for new media files on Kodi startup."
-msgstr "Controleer op nieuwe media bestanden bij het opstarten van Kodi"
+msgstr "Controleer op nieuwe mediabestanden bij het opstarten van Kodi."
 
 msgctxt "#36147"
 msgid "Hide the library scanning progress bar during scans."
@@ -11611,15 +11611,15 @@ msgstr "Verberg de voortgang tijdens het scannen van de bibliotheek"
 
 msgctxt "#36148"
 msgid "Remove items from your library that can't be found (either renamed, deleted, or on removable storage that is currently unplugged)."
-msgstr "Verwijder items uit de bibliotheek die niet meer gevonden kunnen worden (oftewel hernoemd, gewist of op een extern geheugen dat momenteel niet aangesloten is)."
+msgstr "Verwijder items uit de bibliotheek die niet meer gevonden kunnen worden. Die items zijn ofwel hernoemd of gewist, of staan op een extern geheugen dat momenteel niet aangesloten is."
 
 msgctxt "#36149"
 msgid "Export the Video Library database to XML files. This will optionally overwrite your current XML files."
-msgstr "Exporteer de Video bibliotheek database naar XML bestanden. Dit zal optioneel de huidige XML bestanden overschrijven."
+msgstr "Exporteer de videobibliotheekdatabase naar XML bestanden. Dit zal optioneel de huidige XML bestanden overschrijven."
 
 msgctxt "#36150"
 msgid "Import a XML file into the Video Library database."
-msgstr "Importeer een XML bestand in de Video bibliotheek database."
+msgstr "Importeer een XML bestand in de videobibliotheekdatabase."
 
 msgctxt "#36151"
 msgid "Category containing settings for how video playback is handled."
@@ -11635,7 +11635,7 @@ msgstr "Kies de manier waarop video behandeld, verbeterd en getoond wordt."
 
 msgctxt "#36154"
 msgid "Use high quality scalers when upscaling a video by at least this percentage."
-msgstr "Gebruik hogekwaliteits verbeteraars bij het opschalen van een video door tenminste dit percentage."
+msgstr "Gebruik hogekwaliteitsverbeteraars bij het opschalen van een video met tenminste dit percentage."
 
 msgctxt "#36155"
 msgid "Enable VDPAU hardware decoding of video files, mainly used for NVIDIA graphics and in some circumstances AMD graphics."
@@ -11671,7 +11671,7 @@ msgstr "Activeer decodering voor videobestanden gebruikmakend van pixelbuffer-ob
 
 msgctxt "#36164"
 msgid "Allow the refresh rate of the display to be changed so that it best matches the video frame rate. This may yield smoother video playback."
-msgstr "Toestaan de verversingsfrequentie van het scherm te veranderen zodat het het beste overeenkomt met de video frame frequentie. dit kan leiden tot een soepelere afspeling van video`s."
+msgstr "Veranderen van de verversingsfrequentie van het scherm toestaan, zodat dit overeenkomt met de videoframefrequentie. Dit kan leiden tot het optimaler afspelen van video's."
 
 msgctxt "#36165"
 msgid "Pause for a small amount of time during a refresh rate change."
@@ -11695,11 +11695,11 @@ msgstr "Selecteer de kwaliteit van resampling voor gevallen waarbij de audio-uit
 
 msgctxt "#36170"
 msgid "Allow video player to ignoring aspect ratio by a certain amount to fill a larger amount of the screen with video."
-msgstr "Laat de videospeler toe de beeldverhouding licht aan te passen om zo een groter deel van het scherm te kunnen vullen."
+msgstr "Pas de beeldverhouding licht aan om zo een groter deel van het scherm te kunnen vullen."
 
 msgctxt "#36171"
 msgid "Select the zoom level that 4:3 videos are shown on widescreen displays."
-msgstr "Kies het zoom-niveau voor 4:3 video's wanneer afgespeeld op breedbeeld schermen."
+msgstr "Kies het zoomniveau voor 4:3 video's op breedbeeldschermen."
 
 msgctxt "#36172"
 msgid "VDPAU studio level conversion provides a way for advanced applications like Kodi to influence the colour space conversion."
@@ -11723,7 +11723,7 @@ msgstr "Categorie met instellingen voor hoe videobestandslijsten wordt verwerkt.
 
 msgctxt "#36177"
 msgid "Toggle between Choose, Play (default), Resume and Show Information. Choose will select an item, e.g. open a directory in files mode. Resume will automatically resume videos from the last position that you were viewing them, even after restarting the system."
-msgstr "Kies tussen Kiezen, Afspelen (standaard), Hervatten en Informatie tonen. Kiezen zal een item selecteren, bv. een folder openen in bestandsbeheermodus. Hervatten zal automatisch video's hervatten vanaf de laatst bekeken positie, zelfs na het herstarten van het systeem."
+msgstr "Schakel tussen Kiezen, Afspelen (standaard), Hervatten en Informatie tonen. Kiezen zal een item selecteren, bv. een folder openen in bestandsbeheermodus. Hervatten zal automatisch video's hervatten vanaf de laatst bekeken positie, zelfs na het herstarten van het systeem."
 
 msgctxt "#36178"
 msgid "Extract thumbnails and metadata information such as codec and aspect ratio from videos."
@@ -11731,7 +11731,7 @@ msgstr "Haal miniatuurafbeeldingen en metadatainformatie zoals codec en beeldver
 
 msgctxt "#36179"
 msgid "When a file is scanned into the library it will display the metadata title instead of the file name."
-msgstr "Wanneer een bestand in de bibliotheek geïmporteerd wordt, zal de metadata titel getoond worden in plaats van de bestandsnaam."
+msgstr "Wanneer een bestand in de bibliotheek geïmporteerd wordt, zal de metadatatitel getoond worden in plaats van de bestandsnaam."
 
 msgctxt "#36180"
 msgid "Extract thumbnails and information, such as codecs and aspect ratio, to display in Library Mode."
@@ -11743,11 +11743,11 @@ msgstr "Nog geen informatie beschikbaar."
 
 msgctxt "#36182"
 msgid "Combines multi-part video files, DVD folders, and movie folders down to a single item in non-library views."
-msgstr "Combineert opgesplitste videobestanden, DVD mappen en film mappen tot één enkel item in niet-bibliotheekweergaven."
+msgstr "Combineert opgesplitste videobestanden, DVD-mappen en filmmappen tot één enkel item in niet-bibliotheekweergaven."
 
 msgctxt "#36183"
 msgid "Removes the title, genre etc nodes from the library view. Selecting a category takes you straight to the title view."
-msgstr "Laat titel, genre, enz. selectieniveau's weg uit de bibliotheek. Een categorie selecteren brengt u meteen naar de titel-lijst."
+msgstr "Verwijder titel- en genreniveau's etc. uit de bibliotheekview. Het selecteren van een categorie brengt u meteen naar de titellijst."
 
 msgctxt "#36184"
 msgid "Category containing settings for how subtitles are handled."
@@ -11827,7 +11827,7 @@ msgstr "Categorie voor algemene instellingen van PVR/Live TV functies."
 
 msgctxt "#36203"
 msgid "Enable the Personal Video Recorder (PVR) features in Kodi. This requires that at least one PVR Add-on is installed."
-msgstr "Activeer de personal Video Recorder (PVR) functies in Kodi. dit vereist dat minstens één PVR Add-on is geïnstalleerd."
+msgstr "Activeer de personal Video Recorder (PVR) functies in Kodi. Dit vereist dat tenminste één PVR Add-on is geïnstalleerd."
 
 msgctxt "#36204"
 msgid "Import channel groups from the PVR backend (if supported). Will delete user created groups if they're not found on the backend."
@@ -11863,11 +11863,11 @@ msgstr "Categorie voor PVR menu`s en op-beeld scherminstellingen, evenals kanaal
 
 msgctxt "#36212"
 msgid "Display programming information when changing channels, such as the current TV show."
-msgstr "Toon de programmeringsinformatie wanneer kanalen worden verandert, zoals de huidige TV uitzending."
+msgstr "Toon de programmeringsinformatie wanneer kanalen worden veranderd, zoals de huidige TV-uitzending."
 
 msgctxt "#36214"
 msgid "Close the on screen display controls after switching channels."
-msgstr "sluit de op beeld scherm knoppen af na verwisselen van kanalen."
+msgstr "Sluit het controlemenu na een nieuwe kanaalkeuze."
 
 msgctxt "#36216"
 msgid "Folder where channel icons are stored."
@@ -11911,7 +11911,7 @@ msgstr "Categorie voor PVR afspelen en kanaalwissel instellingen."
 
 msgctxt "#36227"
 msgid "Display stream of selected channel in a small box instead of fullscreen."
-msgstr "Toon het beeld van het gekozen kanaal in een klein venstertje in plaats van op volledig scherm."
+msgstr "Toon het beeld van het gekozen kanaal in een venstertje in plaats van op volledig scherm."
 
 msgctxt "#36228"
 msgid "Continue with the last viewed channel on startup."
@@ -12059,7 +12059,7 @@ msgstr "Categorie die instellingen bevat voor hoe het afspelen van muziek wordt
 
 msgctxt "#36265"
 msgid "Kodi automatically plays the next item in the current folder. For example, in Files View: After a track has been played, Kodi would automatically play the next track in the same folder."
-msgstr "Kodi speelt automatisch het volgende item in de huidige map. Bijvoorbeeld, in Bestanden overzicht: nadat een nummer afgespeeld wordt, wordt automatisch het volgende nummer uit dezelfde map afgespeeld."
+msgstr "Kodi speelt automatisch het volgende item in de huidige map. Bijvoorbeeld, in Bestandenoverzicht: nadat een nummer afgespeeld is, wordt automatisch het volgende nummer uit dezelfde map afgespeeld."
 
 msgctxt "#36266"
 msgid "When songs are selected they are queued instead of playback starting immediately."
@@ -12143,7 +12143,7 @@ msgstr "Selecteer de locatie op uw harde schijf waar geripte nummers bewaard moe
 
 msgctxt "#36286"
 msgid "Control how saved music is named from the tags. Tags: [B]%N[/B]: TrackNumber, [B]%S[/B]: DiscNumber, [B]%A[/B]: Artist, [B]%T[/B]: Title, [B]%B[/B]: Album, [B]%G[/B]: Genre, [B]%Y[/B]: Year, [B]%F[/B]: FileName, [B]%D[/B]: Duration, [B]%J[/B]: Date, [B]%R[/B]: Rating, [B]%I[/B]: FileSize."
-msgstr "Beheer hoe bewaarde muziek hernoemd wordt op basis van metadata. Tags: [B]%N[/B]: Nummer, [B]%S[/B]: Schijfnummer, [B]%A[/B]: Artiest, [B]%T[/B]: Titel, [B]%B[/B]: Album, [B]%G[/B]: Genre, [B]%Y[/B]: Jaar, [B]%F[/B]: Bestandsnaam, [B]%D[/B]: Duur, [B]%J[/B]: Datum, [B]%R[/B]: Waardering, [B]%I[/B]: bestandsgrootte."
+msgstr "Beheer hoe opgeslagen muziek hernoemd wordt op basis van metadata. Tags: [B]%N[/B]: Nummer, [B]%S[/B]: Schijfnummer, [B]%A[/B]: Artiest, [B]%T[/B]: Titel, [B]%B[/B]: Album, [B]%G[/B]: Genre, [B]%Y[/B]: Jaar, [B]%F[/B]: Bestandsnaam, [B]%D[/B]: Duur, [B]%J[/B]: Datum, [B]%R[/B]: Waardering, [B]%I[/B]: bestandsgrootte."
 
 msgctxt "#36287"
 msgid "Select which audio encoder to use when ripping."
@@ -12719,7 +12719,7 @@ msgstr "Bepaalt of video-decodering moeten worden uitgevoerd via de software (ve
 
 msgctxt "#36432"
 msgid "Select virtual keyboard layouts."
-msgstr "Selecteer virtuele toetsenbord lay-outs."
+msgstr "Selecteer virtuele toetsenbordlayouts."
 
 msgctxt "#36433"
 msgid "If enabled VAAPI render method is prefered. This puts less load on the CPU but driver may hang!"
@@ -13075,7 +13075,7 @@ msgstr "Onbeperkt"
 
 msgctxt "#37031"
 msgid "Specifies how Blu-rays should be opened/played back. Disc menus are not fully supported yet and may cause problems."
-msgstr "Specificeer hoe Blu-rays moeten worden geopend/afgespeeld. Disk menu`s worden nog niet volledig ondersteunt en kunnen mogelijk problemen veroorzaken."
+msgstr "Specificeer hoe Blu-rays moeten worden geopend/afgespeeld. Diskmenu's worden nog niet volledig ondersteund, en kunnen mogelijk problemen veroorzaken."
 
 msgctxt "#38010"
 msgid "GPU accelerated"
diff --git a/language/English (Australia)/strings.po b/language/English (Australia)/strings.po
index 90d2da4..55b9b43 100644
--- a/language/English (Australia)/strings.po	
+++ b/language/English (Australia)/strings.po	
@@ -7305,6 +7305,10 @@ msgctxt "#19273"
 msgid "Add-on for the backend to be able to use PVR."
 msgstr "Add-on for the backend to be able to use PVR."
 
+msgctxt "#19274"
+msgid "Please visit http://kodi.wiki/view/PVR to learn more."
+msgstr "Please visit http://kodi.wiki/view/PVR to learn more."
+
 msgctxt "#19275"
 msgid "Conflict warning"
 msgstr "Conflict warning"
@@ -10633,6 +10637,14 @@ msgctxt "#24128"
 msgid "Configuration has been moved"
 msgstr "Configuration has been moved"
 
+msgctxt "#24129"
+msgid "The configuration of XBMC has been moved to the new location for Kodi. Please refer to http://kodi.wiki/view/Migration - this message will not be shown again!"
+msgstr "The configuration of XBMC has been moved to the new location for Kodi. Please refer to http://kodi.wiki/view/Migration - this message will not be shown again!"
+
+msgctxt "#24999"
+msgid "Hide incompatible"
+msgstr "Hide incompatible"
+
 msgctxt "#25000"
 msgid "Notifications"
 msgstr "Notifications"
diff --git a/language/French/strings.po b/language/French/strings.po
index 0ec084a..d12ab40 100644
--- a/language/French/strings.po
+++ b/language/French/strings.po
@@ -12879,7 +12879,7 @@ msgstr "Limite la résolution de l'interface pour économiser de la mémoire. Ce
 
 msgctxt "#36549"
 msgid "Use iOS8 compatible AirPlay support. If you have trouble with older iOS devices detecting Kodi as a valid target try switching this off. This option takes effect on the next restart of Kodi only!"
-msgstr "Utiliser le support AirPLay compatible iOS8. Si vous avez des soucis avec des périphériques tournant sur des versions plus anciennes d'iOS pour détecter Kodi comme une cible valide, essayez de désactiver cette option. Cette option prend effect au prochain redémarrage de Kodi seulement !"
+msgstr "Utiliser le support AirPlay compatible iOS8. Si vous avez des périphériques tournant sur des versions plus anciennes d'iOS qui ne détectent pas Kodi comme une cible valide, essayez de désactiver cette option. Cette option ne prendra effet qu'au prochain redémarrage de Kodi !"
 
 msgctxt "#36600"
 msgid "Category containing the settings for how the music library is handled."
diff --git a/language/Galician/strings.po b/language/Galician/strings.po
index e7c0b60..4ce3439 100644
--- a/language/Galician/strings.po
+++ b/language/Galician/strings.po
@@ -5677,6 +5677,10 @@ msgctxt "#14102"
 msgid "Blu-ray playback mode"
 msgstr "Modo de reprodución do Blu-ray"
 
+msgctxt "#14103"
+msgid "Play main movie"
+msgstr "Reproducir filme"
+
 msgctxt "#14104"
 msgid "Show simplified menu"
 msgstr "Amosar menú simplificado"
@@ -5745,6 +5749,10 @@ msgctxt "#15109"
 msgid "Skin default"
 msgstr "Pel predefinida"
 
+msgctxt "#15110"
+msgid "Larger font size"
+msgstr "Fonte de maior tamaño"
+
 msgctxt "#15111"
 msgid "Theme"
 msgstr "Temas"
diff --git a/language/Hebrew/strings.po b/language/Hebrew/strings.po
index 6a99e5d..d629baf 100644
--- a/language/Hebrew/strings.po
+++ b/language/Hebrew/strings.po
@@ -8299,7 +8299,7 @@ msgstr "פרטי חומרה"
 
 msgctxt "#20161"
 msgid "Total"
-msgstr "סך הכל"
+msgstr "סה\"כ"
 
 msgctxt "#20162"
 msgid "Used"
@@ -12447,7 +12447,7 @@ msgstr "בחירה כיצד יקבעו מאפייני פלט השמע: [מקוב
 
 msgctxt "#36362"
 msgid "Select the number of channels supported by the audio connection, or the number of speakers if connected by analog connections. This setting does not apply to passthrough audio. Note - SPDIF supports 2.0 channels only but can still output multichannel audio using a format supported by passthrough."
-msgstr "בחירת מספר הערוצים הנתמכים ע\"י חיבור השמע, או מספר הרמקולים המחוברים ליציאות האנלוגיות. הגדרה זו אינה בתוקף עבור התקן פלט passthrough. הערה - חיבור SPIDF תומך בפלט 2.0 ערוצים בלבד אך באמצעות passthrough עם קידוד מתאים ניתן להעביר פלט שמע רב-ערוצי."
+msgstr "בחירת מספר הערוצים הנתמכים ע\"י חיבור השמע, או מספר הרמקולים המחוברים ליציאות האנלוגיות. הגדרה זו אינה בתוקף עבור התקן פלט passthrough. הערה - חיבור SPDIF תומך בפלט 2.0 ערוצים בלבד אך באמצעות passthrough עם קידוד מתאים ניתן להעביר פלט שמע רב-ערוצי."
 
 msgctxt "#36363"
 msgid "Boost AC3 streams that have been downmixed to 2 channels."
diff --git a/language/Indonesian/strings.po b/language/Indonesian/strings.po
index 0e6dd3d..0f1a096 100644
--- a/language/Indonesian/strings.po
+++ b/language/Indonesian/strings.po
@@ -2473,6 +2473,10 @@ msgctxt "#679"
 msgid "Verbose logging for CEC library"
 msgstr "Pencatatan log terinci untuk pustaka CEC"
 
+msgctxt "#680"
+msgid "Verbose logging for VIDEO component"
+msgstr "Pencatatan log terperinci untuk komponen VIDEO"
+
 msgctxt "#700"
 msgid "Cleaning up library"
 msgstr "Bersihkan Pustaka"
@@ -3265,6 +3269,10 @@ msgctxt "#1379"
 msgid "Ragged"
 msgstr "Kasar"
 
+msgctxt "#1380"
+msgid "Very"
+msgstr "Sangat"
+
 msgctxt "#1381"
 msgid "Extreme"
 msgstr "Ekstrim"
@@ -3273,6 +3281,10 @@ msgctxt "#1382"
 msgid "Whirls"
 msgstr "Whirl"
 
+msgctxt "#1383"
+msgid "Sky Is Clear"
+msgstr "Langit Cerah"
+
 msgctxt "#1384"
 msgid "Broken"
 msgstr "Rusak"
@@ -3281,6 +3293,18 @@ msgctxt "#1385"
 msgid "Tornado"
 msgstr "Tornado"
 
+msgctxt "#1386"
+msgid "Tropical"
+msgstr "Tropis"
+
+msgctxt "#1387"
+msgid "Hurricane"
+msgstr "Badai"
+
+msgctxt "#1388"
+msgid "Cold"
+msgstr "Dingin"
+
 msgctxt "#1389"
 msgid "Windy"
 msgstr "Berangin"
@@ -3289,6 +3313,26 @@ msgctxt "#1390"
 msgid "Settings"
 msgstr "Setelan"
 
+msgctxt "#1391"
+msgid "Breeze"
+msgstr "Angin sepoi - sepoi"
+
+msgctxt "#1392"
+msgid "Gentle"
+msgstr "Lembut"
+
+msgctxt "#1393"
+msgid "High wind, near gale"
+msgstr "Angin kencang, dekat badai"
+
+msgctxt "#1394"
+msgid "Severe"
+msgstr "Parah"
+
+msgctxt "#1395"
+msgid "Violent"
+msgstr "Kekerasan"
+
 msgctxt "#1396"
 msgid "Drifting"
 msgstr "Drifting"
@@ -6153,6 +6197,22 @@ msgctxt "#16329"
 msgid "VAAPI Motion Compensated"
 msgstr "VAAPI Motion Compensated"
 
+msgctxt "#16330"
+msgid "MMAL - Advanced"
+msgstr "Tingkat Lanjut - MMAL"
+
+msgctxt "#16331"
+msgid "MMAL - Advanced (Half)"
+msgstr "Tingkat Lanjut (Setengah) - MMAL"
+
+msgctxt "#16332"
+msgid "MMAL - Bob"
+msgstr "Bob - MMAL"
+
+msgctxt "#16333"
+msgid "MMAL - Bob (Half)"
+msgstr "Bob (Setengah) - MMAL"
+
 msgctxt "#16400"
 msgid "Post-processing"
 msgstr "Pos-pemrosesan"
@@ -7245,6 +7305,10 @@ msgctxt "#19273"
 msgid "Add-on for the backend to be able to use PVR."
 msgstr "Pengaya untuk backend agar dapat menggunakan PVR."
 
+msgctxt "#19274"
+msgid "Please visit http://kodi.wiki/view/PVR to learn more."
+msgstr "Silakan kunjungi http://kodi.wiki/view/PVR untuk mempelajari lebih lanjut"
+
 msgctxt "#19275"
 msgid "Conflict warning"
 msgstr "Peringatan konflik"
@@ -8465,6 +8529,10 @@ msgctxt "#20261"
 msgid "Apple Filing Protocol (AFP)"
 msgstr "Apple Filing Protocol (AFP)"
 
+msgctxt "#20262"
+msgid "Zeroconf Browser"
+msgstr "Peramban Zeroconf"
+
 msgctxt "#20300"
 msgid "Web server directory (HTTP)"
 msgstr "Mendeteksi Perangkat Keras Xbox"
@@ -10569,6 +10637,14 @@ msgctxt "#24128"
 msgid "Configuration has been moved"
 msgstr "Konfigurasi telah dipindahkan"
 
+msgctxt "#24129"
+msgid "The configuration of XBMC has been moved to the new location for Kodi. Please refer to http://kodi.wiki/view/Migration - this message will not be shown again!"
+msgstr "Konfigurasi Kodi telah dipindahkan ke lokasi baru untuk Kodi. Silahkan baca http://kodi.wiki/view/Migration - Pesan ini tidak akan ditampilkan lagi!"
+
+msgctxt "#24999"
+msgid "Hide incompatible"
+msgstr "Sembunyikan Inkompatibel"
+
 msgctxt "#25000"
 msgid "Notifications"
 msgstr "Notifikasi"
diff --git a/language/Italian/strings.po b/language/Italian/strings.po
index 3097818..c88258b 100644
--- a/language/Italian/strings.po
+++ b/language/Italian/strings.po
@@ -3265,6 +3265,14 @@ msgctxt "#1378"
 msgid "Intensity"
 msgstr "Intensità"
 
+msgctxt "#1379"
+msgid "Ragged"
+msgstr "Irregolare"
+
+msgctxt "#1380"
+msgid "Very"
+msgstr "Molto"
+
 msgctxt "#1381"
 msgid "Extreme"
 msgstr "Estremo"
@@ -3273,10 +3281,30 @@ msgctxt "#1382"
 msgid "Whirls"
 msgstr "Turbine"
 
+msgctxt "#1383"
+msgid "Sky Is Clear"
+msgstr "Il Cielo è Chiaro"
+
 msgctxt "#1384"
 msgid "Broken"
 msgstr "Non funzionante"
 
+msgctxt "#1385"
+msgid "Tornado"
+msgstr "Tornado"
+
+msgctxt "#1386"
+msgid "Tropical"
+msgstr "Tropicale"
+
+msgctxt "#1387"
+msgid "Hurricane"
+msgstr "Uragano"
+
+msgctxt "#1388"
+msgid "Cold"
+msgstr "Freddo"
+
 msgctxt "#1389"
 msgid "Windy"
 msgstr "Ventoso"
@@ -3285,6 +3313,26 @@ msgctxt "#1390"
 msgid "Settings"
 msgstr "Impostazioni"
 
+msgctxt "#1391"
+msgid "Breeze"
+msgstr "Ventoso"
+
+msgctxt "#1392"
+msgid "Gentle"
+msgstr "Gentile"
+
+msgctxt "#1393"
+msgid "High wind, near gale"
+msgstr "Molto Ventoso, quasi tempesta"
+
+msgctxt "#1394"
+msgid "Severe"
+msgstr "Intenso"
+
+msgctxt "#1395"
+msgid "Violent"
+msgstr "Violento"
+
 msgctxt "#1396"
 msgid "Drifting"
 msgstr "Mutevole"
@@ -7257,6 +7305,10 @@ msgctxt "#19273"
 msgid "Add-on for the backend to be able to use PVR."
 msgstr "add-on per il backend per poter usare PVR."
 
+msgctxt "#19274"
+msgid "Please visit http://kodi.wiki/view/PVR to learn more."
+msgstr "Visita http://kodi.wiki/view/PVR per saperne di più."
+
 msgctxt "#19275"
 msgid "Conflict warning"
 msgstr "Avviso di conflitto"
@@ -10589,6 +10641,10 @@ msgctxt "#24129"
 msgid "The configuration of XBMC has been moved to the new location for Kodi. Please refer to http://kodi.wiki/view/Migration - this message will not be shown again!"
 msgstr "La configurazione di XBMC è stata spostata alla nuova destinazione per Kodi. Per favore fai riferimento a http://kodi.wiki/view/Migration - questo messaggio non verrà mostrato di nuovo!"
 
+msgctxt "#24999"
+msgid "Hide incompatible"
+msgstr "Nascondi incompatibili"
+
 msgctxt "#25000"
 msgid "Notifications"
 msgstr "Notifiche"
diff --git a/language/Japanese/strings.po b/language/Japanese/strings.po
index 6f10e68..ac87fe3 100644
--- a/language/Japanese/strings.po
+++ b/language/Japanese/strings.po
@@ -9951,7 +9951,7 @@ msgstr "ガイド"
 
 msgctxt "#22021"
 msgid "Allowed error in aspect ratio to minimise black bars"
-msgstr "黒いバーを小さくする目的での縦横比エラーを許可しました"
+msgstr "黒帯を最小限にするためのアスペクト比の許容誤差"
 
 msgctxt "#22022"
 msgid "Show video files in listings"
diff --git a/language/Korean/strings.po b/language/Korean/strings.po
index d3dc870..bb432a7 100644
--- a/language/Korean/strings.po
+++ b/language/Korean/strings.po
@@ -8307,7 +8307,7 @@ msgstr "사용됨"
 
 msgctxt "#20163"
 msgid "of"
-msgstr "-"
+msgstr "/"
 
 msgctxt "#20164"
 msgid "Locking not supported"
diff --git a/language/Latvian/strings.po b/language/Latvian/strings.po
index f815fc9..c800b26 100644
--- a/language/Latvian/strings.po
+++ b/language/Latvian/strings.po
@@ -3241,6 +3241,14 @@ msgctxt "#1301"
 msgid "Custom passthrough device"
 msgstr "Pielāgota tranzīta ierīce"
 
+msgctxt "#1375"
+msgid "Temperature"
+msgstr "Temperatūra"
+
+msgctxt "#1376"
+msgid "Pressure"
+msgstr "Spiediens"
+
 msgctxt "#1381"
 msgid "Extreme"
 msgstr "Ekstrēms"
@@ -3253,6 +3261,10 @@ msgctxt "#1384"
 msgid "Broken"
 msgstr "Bojāts"
 
+msgctxt "#1385"
+msgid "Tornado"
+msgstr "Tornado"
+
 msgctxt "#1389"
 msgid "Windy"
 msgstr "vējains"
@@ -5855,7 +5867,7 @@ msgstr "Bob"
 
 msgctxt "#16022"
 msgid "Bob (inverted)"
-msgstr "Bob (invertētais)"
+msgstr "Bob (inversais)"
 
 msgctxt "#16024"
 msgid "Cancelling..."
@@ -6101,6 +6113,18 @@ msgctxt "#16327"
 msgid "VAAPI Bob"
 msgstr "VAAPI Bob"
 
+msgctxt "#16330"
+msgid "MMAL - Advanced"
+msgstr "MMAL - Papildus"
+
+msgctxt "#16332"
+msgid "MMAL - Bob"
+msgstr "MMAL - Bob"
+
+msgctxt "#16333"
+msgid "MMAL - Bob (Half)"
+msgstr "MMAL - Bob (Puse)"
+
 msgctxt "#16400"
 msgid "Post-processing"
 msgstr "Pēcapstrāde"
@@ -7237,6 +7261,10 @@ msgctxt "#19285"
 msgid "Browse for icon"
 msgstr "Pārlūkot ikonu"
 
+msgctxt "#19286"
+msgid "Searching for channel icons"
+msgstr "Meklē kanālu ikonas"
+
 msgctxt "#19287"
 msgid "All channels"
 msgstr "Visi kanāli"
@@ -8405,6 +8433,10 @@ msgctxt "#20261"
 msgid "Apple Filing Protocol (AFP)"
 msgstr "Apple Filing Protocol (AFP)"
 
+msgctxt "#20262"
+msgid "Zeroconf Browser"
+msgstr "Zeroconf pārlūks"
+
 msgctxt "#20300"
 msgid "Web server directory (HTTP)"
 msgstr "Tīmekļa servera direktorija (HTTP)"
@@ -10501,6 +10533,10 @@ msgctxt "#24126"
 msgid "Auto download first subtitle"
 msgstr "Automatiski lejupielādēt pirmos subtitrus"
 
+msgctxt "#24127"
+msgid "Automatically download first subtitle from the search result list"
+msgstr "Automātiski lejupielādēt pirmos subtitrus no meklēšanas rezultātu saraksta"
+
 msgctxt "#24128"
 msgid "Configuration has been moved"
 msgstr "Konfigurācija tika pārvietota"
@@ -12653,6 +12689,10 @@ msgctxt "#36533"
 msgid "Select how audio is downmixed, for example from 5.1 to 2.0: [Enabled] maintains volume level of the original audio source however the dynamic range is compressed. [Disabled] maintains the dynamic range of the original audio source when downmixed however volume will be lower. Note - Dynamic range is the difference between the quietest and loudest sounds in an audio source. Enable this setting if movie dialogues are barely audible."
 msgstr "Atlasīt, kā audio ir lejupmiksēts, piemēram, no 5.1 uz 2.0: [Ieslēgts] patur sākotnējā audio avota skaļuma līmeni lejupmiksējot, tomēr skaļuma diapazons tiks saspiests. [Izslēgts] lejupmiksējot patur sākotnējā audio avota skaļuma diapazonu, taču skaļuma līmenis būs mazāks. \nPiezīme - Skaļuma diapazons ir starpība starp klusākajām un skaļākajām skaņām audio avotā. Ieslēdziet šo iestatījumu, ja dialogi filmā ir knapi dzirdami."
 
+msgctxt "#36535"
+msgid "Stereoscopic 3D mode of video"
+msgstr "Video stereoskopiskais 3D režīms"
+
 msgctxt "#36539"
 msgid "Changes the stereoscopic 3D mode of the user interface."
 msgstr "Mainīt lietotāja saskarnes stereoskopisko 3D režīmu."
@@ -12697,6 +12737,10 @@ msgctxt "#36603"
 msgid "Category containing settings for how video output is handled."
 msgstr "Kategorija, kas satur iestatījumus video izvades darbībai."
 
+msgctxt "#36900"
+msgid "movie"
+msgstr "filma"
+
 msgctxt "#36901"
 msgid "movies"
 msgstr "filmas"
@@ -12713,6 +12757,10 @@ msgctxt "#36904"
 msgid "season"
 msgstr "sezona"
 
+msgctxt "#36905"
+msgid "seasons"
+msgstr "sezonas"
+
 msgctxt "#36906"
 msgid "episode"
 msgstr "sērija"
@@ -12721,6 +12769,14 @@ msgctxt "#36907"
 msgid "episodes"
 msgstr "sērijas"
 
+msgctxt "#36908"
+msgid "musicvideo"
+msgstr "mūzikas video"
+
+msgctxt "#36909"
+msgid "musicvideos"
+msgstr "mūzikas video"
+
 msgctxt "#36910"
 msgid "set"
 msgstr "Iestatīt"
@@ -12737,10 +12793,30 @@ msgctxt "#36913"
 msgid "videos"
 msgstr "Video"
 
+msgctxt "#36914"
+msgid "music"
+msgstr "mūzika"
+
+msgctxt "#36915"
+msgid "music"
+msgstr "mūzika"
+
+msgctxt "#36916"
+msgid "artist"
+msgstr "mākslinieks"
+
+msgctxt "#36917"
+msgid "artists"
+msgstr "mākslinieki"
+
 msgctxt "#36918"
 msgid "album"
 msgstr "Albums"
 
+msgctxt "#36919"
+msgid "albums"
+msgstr "albumi"
+
 msgctxt "#36920"
 msgid "song"
 msgstr "Dziesma"
@@ -12816,3 +12892,19 @@ msgstr "Atlasiet šo, ja audio izejas savienojums atbalsta tikai daudzkanālu au
 msgctxt "#37026"
 msgid "Auto"
 msgstr "Auto"
+
+msgctxt "#37027"
+msgid "540"
+msgstr "540"
+
+msgctxt "#37028"
+msgid "720"
+msgstr "720"
+
+msgctxt "#37029"
+msgid "900"
+msgstr "900"
+
+msgctxt "#38010"
+msgid "GPU accelerated"
+msgstr "GPU paātrināts"
diff --git a/language/Lithuanian/strings.po b/language/Lithuanian/strings.po
index ade6e3e..ce51008 100644
--- a/language/Lithuanian/strings.po
+++ b/language/Lithuanian/strings.po
@@ -6251,7 +6251,7 @@ msgstr "Surasti panašų"
 
 msgctxt "#19004"
 msgid "Importing EPG from clients"
-msgstr "Importuoti EPG iš klientų"
+msgstr "Importuojama EPG iš klientų"
 
 msgctxt "#19005"
 msgid "PVR stream information"
@@ -7211,11 +7211,11 @@ msgstr "Filtruoti kanalus"
 
 msgctxt "#19250"
 msgid "Loading EPG from database"
-msgstr "Įkeliamas EPG iš duomenų bazės"
+msgstr "Įkeliama EPG iš duomenų bazės"
 
 msgctxt "#19251"
 msgid "Update EPG information"
-msgstr "Atnaujinti EPG duomenis"
+msgstr "Atnaujinti EPG informacijÄ…"
 
 msgctxt "#19252"
 msgid "Schedule EPG update for this channel?"
diff --git a/language/Malay/strings.po b/language/Malay/strings.po
index 7287350..0c7880a 100644
--- a/language/Malay/strings.po
+++ b/language/Malay/strings.po
@@ -965,6 +965,10 @@ msgctxt "#379"
 msgid "PM"
 msgstr "PM"
 
+msgctxt "#387"
+msgid "Clouds"
+msgstr "Awan"
+
 msgctxt "#391"
 msgid "Low"
 msgstr "Rendah"
@@ -2389,6 +2393,10 @@ msgctxt "#33021"
 msgid "Precipitation"
 msgstr "Presipitasi"
 
+msgctxt "#33022"
+msgid "Precip"
+msgstr "Pracip"
+
 msgctxt "#33029"
 msgid "Details"
 msgstr "Perincian"
@@ -2401,6 +2409,10 @@ msgctxt "#33031"
 msgid "Coverflow"
 msgstr "Aliran Kulit Hadapan"
 
+msgctxt "#33035"
+msgid "Maps"
+msgstr "Peta"
+
 msgctxt "#33037"
 msgid "Weekend"
 msgstr "Hujung minggu"
diff --git a/language/Polish/strings.po b/language/Polish/strings.po
index 3a946ef..269b5c8 100644
--- a/language/Polish/strings.po
+++ b/language/Polish/strings.po
@@ -599,7 +599,7 @@ msgstr "Wyświetlaj wideo w formacie 4:3 w trybie"
 
 msgctxt "#175"
 msgid "Moods"
-msgstr "Nastrój"
+msgstr "Nastroje"
 
 msgctxt "#176"
 msgid "Styles"
@@ -4291,7 +4291,7 @@ msgstr "Niebezpieczne odłączenie urządzenia"
 
 msgctxt "#13023"
 msgid "Successfully removed device"
-msgstr "Bezpiecznie odłączenie urządzenia"
+msgstr "Bezpieczne odłączenie urządzenia"
 
 msgctxt "#13024"
 msgid "Joystick plugged"
@@ -4535,7 +4535,7 @@ msgstr "Alarm"
 
 msgctxt "#13209"
 msgid "Alarm clock interval (in minutes)"
-msgstr "Alarmuj w interwale (w minutach)"
+msgstr "Częstotliwość ponawiania alarmu (w minutach)"
 
 msgctxt "#13210"
 msgid "Started, alarm in %im"
@@ -4751,7 +4751,7 @@ msgstr "Tylko prawy"
 
 msgctxt "#13323"
 msgid "Enable karaoke support"
-msgstr "Aktywuj obsługę karaoke"
+msgstr "Uruchom obsługę karaoke"
 
 msgctxt "#13324"
 msgid "Background transparency"
@@ -4839,7 +4839,7 @@ msgstr "Dodaj do kolejki"
 
 msgctxt "#13348"
 msgid "Search IMDb..."
-msgstr "Przeszukiwanie IMDb..."
+msgstr "Wyszukiwanie w IMDb..."
 
 msgctxt "#13349"
 msgid "Scan for new content"
@@ -5875,7 +5875,7 @@ msgstr "Ogólne"
 
 msgctxt "#16002"
 msgid "Internet lookup"
-msgstr "Przeszukiwanie w Internecie"
+msgstr "Wyszukiwanie w Internecie"
 
 msgctxt "#16003"
 msgid "Player"
@@ -6287,11 +6287,11 @@ msgstr "Serwer TV"
 
 msgctxt "#19013"
 msgid "Free to air"
-msgstr "Kanały niekodowane"
+msgstr "Brak"
 
 msgctxt "#19014"
 msgid "Fixed"
-msgstr "Stała"
+msgstr "Stałe"
 
 msgctxt "#19015"
 msgid "Encryption"
@@ -6515,7 +6515,7 @@ msgstr "Przejdź do aktualnych"
 
 msgctxt "#19071"
 msgid "EPG update interval"
-msgstr "Odświeżaj przewodnik w interwale"
+msgstr "Częstotliwość odświeżania przewodnika"
 
 msgctxt "#19072"
 msgid "Do not store the EPG in the database"
@@ -6755,7 +6755,7 @@ msgstr "Maksymalny czas trwania"
 
 msgctxt "#19132"
 msgid "Include unknown genres"
-msgstr "Uwzględnij nieznane gatunki"
+msgstr "Uwzględniaj nieznane gatunki"
 
 msgctxt "#19133"
 msgid "Search string"
@@ -6763,7 +6763,7 @@ msgstr "Wyrażenie wyszukiwania"
 
 msgctxt "#19134"
 msgid "Include description"
-msgstr "Uwzględnij opis"
+msgstr "Uwzględniaj opis"
 
 msgctxt "#19135"
 msgid "Case sensitive"
@@ -8579,15 +8579,15 @@ msgstr "Sortuj: Identyfikator"
 
 msgctxt "#20317"
 msgid "Scanning movies using %s"
-msgstr "Przeszukiwanie filmów przy użyciu %s"
+msgstr "Wyszukiwanie filmów przy użyciu %s"
 
 msgctxt "#20318"
 msgid "Scanning music videos using %s"
-msgstr "Przeszukiwanie teledysków przy użyciu %s"
+msgstr "Wyszukiwanie teledysków przy użyciu %s"
 
 msgctxt "#20319"
 msgid "Scanning tvshows using %s"
-msgstr "Przeszukiwanie seriali przy użyciu %s"
+msgstr "Wyszukiwanie seriali przy użyciu %s"
 
 msgctxt "#20320"
 msgid "Scanning artists using %s"
@@ -8595,7 +8595,7 @@ msgstr "Wyszukiwanie wykonawców przy użyciu %s"
 
 msgctxt "#20321"
 msgid "Scanning albums using %s"
-msgstr "Przeszukiwanie albumów przy użyciu %s"
+msgstr "Wyszukiwanie albumów przy użyciu %s"
 
 msgctxt "#20323"
 msgid "Movie plot"
@@ -9035,7 +9035,7 @@ msgstr "Pomijaj ścieżkę podczas aktualizacji biblioteki"
 
 msgctxt "#20433"
 msgid "Extract thumbnails and video information"
-msgstr "Ekstrahuj miniatury i informacje o wideo"
+msgstr "Wykonuj ekstrakcjÄ™ miniatur i informacji o wideo"
 
 msgctxt "#20434"
 msgid "Sets"
@@ -9255,7 +9255,7 @@ msgstr "Zastępuj czcionki w napisach ASS/SSA"
 
 msgctxt "#21369"
 msgid "Enable mouse and touch screen support"
-msgstr "Aktywuj obsługę myszy i ekranu dotykowego"
+msgstr "Uruchom obsługę myszy i ekranu dotykowego"
 
 msgctxt "#21370"
 msgid "Play navigation sounds during media playback"
@@ -10943,7 +10943,7 @@ msgstr "Niestandardowe tło"
 
 msgctxt "#33071"
 msgid "Custom backgrounds"
-msgstr "Niestandardowe tło"
+msgstr "Niestandardowe tła"
 
 msgctxt "#33072"
 msgid "View Readme"
@@ -11239,7 +11239,7 @@ msgstr "Nie używaj niestandardowej mapy klawiszy dla tego urządzenia"
 
 msgctxt "#35100"
 msgid "Enable joystick and gamepad support"
-msgstr "Aktywuj obsługę dżojstika i pada"
+msgstr "Uruchom obsługę dżojstika i pada"
 
 msgctxt "#35102"
 msgid "Disable joystick when this device is present"
@@ -11691,7 +11691,7 @@ msgstr "Maksymalna prędkość dopasowania wideo do aktualnej częstotliwości o
 
 msgctxt "#36169"
 msgid "Select the quality of resampling for cases where the audio output needs to be at a different sampling rate from that used by the source. [Low] is fast and will have minimal impact on system resources such as the use of the CPU, [Medium] & [High] will use progressively more system resources."
-msgstr "Określa jakość próbkowania w przypadku, gdy urządzenie podłączone do wyjścia dźwięku wymaga innego próbkowania niż to używane przez źródło. [Niska] jest szybkie i ma minimalny wpływ na zasoby systemowe takie, jak użycie procesora, [Średnia] i [Wysoka] będzie używać proporcjonalnie więcej zasobów systemowych."
+msgstr "Określa jakość próbkowania w przypadku, gdy urządzenie podłączone do wyjścia dźwięku wymaga innego próbkowania niż to używane przez źródło. [Niska] jest szybkie i ma minimalny wpływ na zasoby systemowe takie, jak użycie procesora, [Średnia] i [Wysoka] używa proporcjonalnie więcej zasobów systemowych."
 
 msgctxt "#36170"
 msgid "Allow video player to ignoring aspect ratio by a certain amount to fill a larger amount of the screen with video."
@@ -11819,7 +11819,7 @@ msgstr "Domyślnie używany ekstraktor metadanych teledysków podczas aktualizac
 
 msgctxt "#36201"
 msgid "Settings for PVR/Live TV features."
-msgstr "Ustawienia funkcji odtwarzania i nagrywania programów telewizyjnych"
+msgstr "Ustawienia funkcji odtwarzania i nagrywania programów telewizyjnych."
 
 msgctxt "#36202"
 msgid "Category for general settings for PVR/Live TV features."
@@ -11971,7 +11971,7 @@ msgstr "Uruchamia \"polecenie wznowienia\", kiedy Kodi będzie zamykane lub prze
 
 msgctxt "#36242"
 msgid "The command will not be executed when a recording will be started within this timeout."
-msgstr "Polecenie nie zostanie wykonane, jeśli nagranie nie rozpocznie się przed upłynięciem wprowadzonego tutaj czasu."
+msgstr "Polecenie nie zostanie wykonane, jeśli nagranie nie rozpocznie się przed upłynięciem wprowadzonegoczasu."
 
 msgctxt "#36243"
 msgid "The command to execute."
@@ -12027,7 +12027,7 @@ msgstr "Określa czy wykonawcy, którzy pojawiają się tylko w kompilacjach, b
 
 msgctxt "#36256"
 msgid "Automatically fetch album and artist information via scrapers during scan."
-msgstr "Automatycznie pobiera informacje o albumie i wykonawcy podczas skanowania."
+msgstr "Pobiera automatycznie informacje o albumie i wykonawcy podczas skanowania."
 
 msgctxt "#36257"
 msgid "Select the default album information source."
@@ -12711,7 +12711,7 @@ msgstr "Zaznacz tę opcję, gdy złącze dźwiękowe obsługuje wielokanałowy d
 
 msgctxt "#36430"
 msgid "Configure how video processing will be accelerated. This includes things like decoding and scaling."
-msgstr "Określa sposób akceleracji przetwarzania wideo. Obejmuje to dekodowanie i skalowanie."
+msgstr "Określa sposób sprzętowej akceleracji przetwarzania wideo, z uwzględnieniem dekodowania i skalowania."
 
 msgctxt "#36431"
 msgid "Defines whether video decoding should be performed in software (requires more CPU) or with hardware acceleration where possible."
diff --git a/language/Serbian/strings.po b/language/Serbian/strings.po
index 1baabdb..981be39 100644
--- a/language/Serbian/strings.po
+++ b/language/Serbian/strings.po
@@ -269,6 +269,26 @@ msgctxt "#86"
 msgid "NNW"
 msgstr "SSZ"
 
+msgctxt "#88"
+msgid "South"
+msgstr "Jug"
+
+msgctxt "#89"
+msgid "North"
+msgstr "Sjever"
+
+msgctxt "#90"
+msgid "West"
+msgstr "Zapad"
+
+msgctxt "#91"
+msgid "East"
+msgstr "Istok"
+
+msgctxt "#92"
+msgid "Variable"
+msgstr "Varijabla"
+
 msgctxt "#98"
 msgid "View: Auto"
 msgstr "Prikaz: Autom."
@@ -365,6 +385,10 @@ msgctxt "#121"
 msgid "Confirm file move"
 msgstr "Potvrdite premeštanje"
 
+msgctxt "#122"
+msgid "Confirm delete"
+msgstr "Potvrdite brisanje"
+
 msgctxt "#123"
 msgid "Copy these files?"
 msgstr "Kopiranje ovih datoteka?"
@@ -541,6 +565,10 @@ msgctxt "#166"
 msgid "Skin"
 msgstr "Maska"
 
+msgctxt "#167"
+msgid "Cancel file operations"
+msgstr "Otkažite operacije sa datotekama"
+
 msgctxt "#169"
 msgid "Resolution"
 msgstr "Rezolucija"
@@ -645,6 +673,14 @@ msgctxt "#198"
 msgid "Loading movie details"
 msgstr "Učitavanje podataka o filmu"
 
+msgctxt "#199"
+msgid "Web interface"
+msgstr "Veb interfejs"
+
+msgctxt "#200"
+msgid "Audio encoders"
+msgstr "Audio enkoderi"
+
 msgctxt "#202"
 msgid "Tagline"
 msgstr "Tagline"
@@ -793,6 +829,10 @@ msgctxt "#242"
 msgid "Windowed"
 msgstr "Prozor"
 
+msgctxt "#243"
+msgid "Refresh Rate"
+msgstr "Frekvencija osvježavanja"
+
 msgctxt "#244"
 msgid "Full screen"
 msgstr "Ceo Ekran"
@@ -801,6 +841,10 @@ msgctxt "#245"
 msgid "Sizing: (%i,%i)->(%i,%i) (Zoom x%2.2f) AR:%2.2f:1 (Pixels: %2.2f:1) (VShift: %2.2f)"
 msgstr "Veličina: (%i,%i)->(%i,%i) (Zoom x%2.2f) AR:%2.2f:1 (Pixels: %2.2f:1) (VShift: %2.2f)"
 
+msgctxt "#246"
+msgid "Monitor"
+msgstr "Monitor"
+
 msgctxt "#247"
 msgid "Scripts"
 msgstr "Skripte"
@@ -813,6 +857,10 @@ msgctxt "#249"
 msgid "Music"
 msgstr "Muzika"
 
+msgctxt "#250"
+msgid "Visualisation"
+msgstr "Vizualizacija"
+
 msgctxt "#251"
 msgid "Select destination directory"
 msgstr "Izaberite odredišnu fasciklu"
@@ -1009,6 +1057,18 @@ msgctxt "#306"
 msgid "Non-interleaved"
 msgstr "Nestandardni"
 
+msgctxt "#308"
+msgid "Original stream's language"
+msgstr "Jezik originalnog strima"
+
+msgctxt "#309"
+msgid "User interface language"
+msgstr "Jezik korisničkog interfejsa"
+
+msgctxt "#310"
+msgid "Keyboard layouts"
+msgstr "Rasporedi tastature"
+
 msgctxt "#312"
 msgid "(0=auto)"
 msgstr "(0=autom.)"
@@ -1113,6 +1173,10 @@ msgctxt "#338"
 msgid "Fixed"
 msgstr "Brzo"
 
+msgctxt "#339"
+msgid "Optimized"
+msgstr "Optimizovano"
+
 msgctxt "#340"
 msgid "Various artists"
 msgstr "Različiti izvođači"
@@ -1453,6 +1517,14 @@ msgctxt "#433"
 msgid "Really remove '%s'?"
 msgstr "Zaista želite da uklonite „%s“?"
 
+msgctxt "#435"
+msgid "No optical disc drive detected"
+msgstr "Optički disk nije detektovan"
+
+msgctxt "#436"
+msgid "You need an optical disc drive to play this video"
+msgstr "Potreban vam je optički disk da gledate ovaj video"
+
 msgctxt "#437"
 msgid "Removable disk"
 msgstr "Prenosivi disk"
@@ -1465,6 +1537,10 @@ msgctxt "#439"
 msgid "Cache"
 msgstr "Keš"
 
+msgctxt "#440"
+msgid "Hard disk"
+msgstr "Hard disk"
+
 msgctxt "#441"
 msgid "UDF"
 msgstr "UDF"
@@ -1697,6 +1773,10 @@ msgctxt "#507"
 msgid "Sort by: Usage"
 msgstr "Složi po: Upotrebi"
 
+msgctxt "#510"
+msgid "Enable visualisations"
+msgstr "Omogućite vizualizacije"
+
 msgctxt "#511"
 msgid "Enable video mode switching"
 msgstr "Omogući promenu režima videa"
@@ -1841,6 +1921,10 @@ msgctxt "#548"
 msgid "Downmix multichannel audio to stereo"
 msgstr "Pretvori višekanalni zvuk u stereo"
 
+msgctxt "#549"
+msgid "Number"
+msgstr "Broj"
+
 msgctxt "#550"
 msgid "Sort by: %s"
 msgstr "Složi po: %s"
@@ -1945,6 +2029,10 @@ msgctxt "#575"
 msgid "In progress"
 msgstr "U toku"
 
+msgctxt "#576"
+msgid "Times played"
+msgstr "Broj pregleda"
+
 msgctxt "#580"
 msgid "Sort direction"
 msgstr "Smer slaganja"
@@ -2061,6 +2149,10 @@ msgctxt "#611"
 msgid "Enter number"
 msgstr "Unesite broj"
 
+msgctxt "#614"
+msgid "Virtual folder"
+msgstr "Virtuelni direktorijum"
+
 msgctxt "#620"
 msgid "Audio CDs"
 msgstr "Muzički CD-ovi"
@@ -2209,6 +2301,10 @@ msgctxt "#664"
 msgid "Browse for Script"
 msgstr "Potraži skriptu"
 
+msgctxt "#665"
+msgid "Compression level"
+msgstr "Nivo kompresije"
+
 msgctxt "#700"
 msgid "Cleaning up library"
 msgstr "Čišćenje biblioteke"
@@ -2225,6 +2321,10 @@ msgctxt "#705"
 msgid "Network"
 msgstr "Mreža"
 
+msgctxt "#706"
+msgid "Server"
+msgstr "Server"
+
 msgctxt "#708"
 msgid "Use an HTTP proxy server to access the internet"
 msgstr "Koristi posrednički HTTP server za pristup Internetu"
@@ -2241,6 +2341,10 @@ msgctxt "#713"
 msgid "HTTP proxy"
 msgstr "HTTP posrednik"
 
+msgctxt "#715"
+msgid "Assignment"
+msgstr "Zadatak"
+
 msgctxt "#716"
 msgid "Automatic (DHCP)"
 msgstr "Automatski (DHCP)"
@@ -2253,6 +2357,10 @@ msgctxt "#719"
 msgid "IP address"
 msgstr "IP adresa"
 
+msgctxt "#722"
+msgid "DNS server"
+msgstr "DNS server"
+
 msgctxt "#723"
 msgid "Save & restart"
 msgstr "Sačuvaj i ponovo pokreni"
@@ -2297,6 +2405,14 @@ msgctxt "#735"
 msgid "Character set"
 msgstr "Skup znakova"
 
+msgctxt "#736"
+msgid "Style"
+msgstr "Stil"
+
+msgctxt "#737"
+msgid "Colour"
+msgstr "Boja"
+
 msgctxt "#738"
 msgid "Normal"
 msgstr "Normalan"
@@ -2429,6 +2545,10 @@ msgctxt "#776"
 msgid "Wireless network name (ESSID)"
 msgstr "Ime bežične mreže (ESSID)"
 
+msgctxt "#777"
+msgid "Wireless password"
+msgstr "Lozinka bežičnog interneta"
+
 msgctxt "#779"
 msgid "Save and apply network interface settings"
 msgstr "Sačuvaj i primeni postavke mrežnog intrefejsa"
@@ -2509,6 +2629,14 @@ msgctxt "#798"
 msgid "Internet access"
 msgstr "Pristup Internetu"
 
+msgctxt "#799"
+msgid "Library Update"
+msgstr "Ažuriranje Biblioteke"
+
+msgctxt "#801"
+msgid "Would you like to scan now?"
+msgstr "Želite li sada da skenirate?"
+
 msgctxt "#850"
 msgid "Invalid port number entered"
 msgstr "Uneli ste pogrešan broj priključka"
@@ -2521,6 +2649,10 @@ msgctxt "#852"
 msgid "Valid port range is 1024-65535"
 msgstr "Ispravan opseg priključaka je od 1024 do 65535"
 
+msgctxt "#997"
+msgid "Add Pictures..."
+msgstr "Dodaj slike..."
+
 msgctxt "#998"
 msgid "Add Music..."
 msgstr "Dodaj Muziku..."
@@ -2529,6 +2661,10 @@ msgctxt "#999"
 msgid "Add Videos..."
 msgstr "Dodaj Video..."
 
+msgctxt "#1000"
+msgid "Preview"
+msgstr "Pregled"
+
 msgctxt "#1001"
 msgid "Unable to connect"
 msgstr "Nije moguće povezivanje"
@@ -2725,6 +2861,14 @@ msgctxt "#1051"
 msgid "Enter web address"
 msgstr "Unesite internet adresu"
 
+msgctxt "#1180"
+msgid "Proxy type"
+msgstr "Tip proxy-ja"
+
+msgctxt "#1181"
+msgid "HTTP"
+msgstr "HTTP"
+
 msgctxt "#1200"
 msgid "SMB client"
 msgstr "SMB klijent"
@@ -2853,6 +2997,10 @@ msgctxt "#1260"
 msgid "Announce these services to other systems via Zeroconf"
 msgstr "Oglasi ove usluge ostalim sistemima putem Zeroconf"
 
+msgctxt "#1269"
+msgid "Allow volume control"
+msgstr "Omogući podešavanje jačine tona"
+
 msgctxt "#1270"
 msgid "Allow Kodi to receive AirPlay content"
 msgstr "Dozvoli Kodi da primi AirPlay sadržaj"
@@ -2861,10 +3009,18 @@ msgctxt "#1271"
 msgid "Device name"
 msgstr "Ime uređaja"
 
+msgctxt "#1272"
+msgid "Use password protection"
+msgstr "Koristi zaštitu lozinkom"
+
 msgctxt "#1273"
 msgid "AirPlay"
 msgstr "AirPlay"
 
+msgctxt "#1274"
+msgid "AirTunes"
+msgstr "AirTunes"
+
 msgctxt "#1300"
 msgid "Custom audio device"
 msgstr "Prilagođen zvučni uređaj"
@@ -2873,14 +3029,70 @@ msgctxt "#1301"
 msgid "Custom passthrough device"
 msgstr "Prilagođen prolazni uređaj"
 
+msgctxt "#1375"
+msgid "Temperature"
+msgstr "Temperatura"
+
+msgctxt "#1376"
+msgid "Pressure"
+msgstr "Pritisak"
+
+msgctxt "#1377"
+msgid "Proximity"
+msgstr "Udaljenost"
+
+msgctxt "#1378"
+msgid "Intensity"
+msgstr "Intenzitet"
+
+msgctxt "#1380"
+msgid "Very"
+msgstr "Veoma"
+
 msgctxt "#1381"
 msgid "Extreme"
 msgstr "Ekstremno"
 
+msgctxt "#1383"
+msgid "Sky Is Clear"
+msgstr "Nebo je vedro"
+
+msgctxt "#1384"
+msgid "Broken"
+msgstr "Pokvaren"
+
+msgctxt "#1385"
+msgid "Tornado"
+msgstr "Tornado"
+
+msgctxt "#1386"
+msgid "Tropical"
+msgstr "Tropski"
+
+msgctxt "#1387"
+msgid "Hurricane"
+msgstr "Uragan"
+
+msgctxt "#1388"
+msgid "Cold"
+msgstr "Hladno"
+
+msgctxt "#1389"
+msgid "Windy"
+msgstr "Vjetrovito"
+
 msgctxt "#1390"
 msgid "Settings"
 msgstr "Поставке"
 
+msgctxt "#1392"
+msgid "Gentle"
+msgstr "Lagano"
+
+msgctxt "#1394"
+msgid "Severe"
+msgstr "Teško"
+
 msgctxt "#1396"
 msgid "Drifting"
 msgstr "klizavo"
@@ -2965,10 +3177,42 @@ msgctxt "#1418"
 msgid "Thunderstorms"
 msgstr "grmljavina"
 
+msgctxt "#1420"
+msgid "Moderate"
+msgstr "Srednje"
+
+msgctxt "#1421"
+msgid "Very High"
+msgstr "Veoma visok"
+
+msgctxt "#1422"
+msgid "Windy"
+msgstr "Vjetrovito"
+
+msgctxt "#1423"
+msgid "Mist"
+msgstr "Magla"
+
 msgctxt "#1427"
 msgid "Smoke"
 msgstr "Zatamni"
 
+msgctxt "#1429"
+msgid "Ash"
+msgstr "Pepeo"
+
+msgctxt "#1431"
+msgid "Dust"
+msgstr "Prašina"
+
+msgctxt "#1432"
+msgid "Sand"
+msgstr "Pesak"
+
+msgctxt "#1433"
+msgid "Spray"
+msgstr "Sprej"
+
 msgctxt "#1439"
 msgid "and"
 msgstr "i"
@@ -2977,10 +3221,18 @@ msgctxt "#1441"
 msgid "with"
 msgstr "sa"
 
+msgctxt "#1442"
+msgid "Chance"
+msgstr "Å ansa"
+
 msgctxt "#1443"
 msgid "of"
 msgstr "od"
 
+msgctxt "#1445"
+msgid "Cloud"
+msgstr "Oblak"
+
 msgctxt "#1446"
 msgid "Unknown"
 msgstr "Nepoznato"
@@ -2989,6 +3241,10 @@ msgctxt "#1448"
 msgid "Precipitation"
 msgstr "Obilne padavine"
 
+msgctxt "#1449"
+msgid "Partial"
+msgstr "Djelimično"
+
 msgctxt "#1450"
 msgid "Put display to sleep when idle"
 msgstr "Postavi ekran „na spavanje“, kada se ne koristi"
@@ -3105,6 +3361,10 @@ msgctxt "#10034"
 msgid "Settings - Profiles"
 msgstr "Postavke - Profili"
 
+msgctxt "#10035"
+msgid "Reset"
+msgstr "Resetuj"
+
 msgctxt "#10036"
 msgid "Basic"
 msgstr "Osnovno"
@@ -3113,6 +3373,46 @@ msgctxt "#10037"
 msgid "Standard"
 msgstr "Uobičajeno"
 
+msgctxt "#10038"
+msgid "Advanced"
+msgstr "Napredno"
+
+msgctxt "#10039"
+msgid "Expert"
+msgstr "Stručno"
+
+msgctxt "#10041"
+msgid "Reset above settings to default"
+msgstr "Vratite podešavanja na podrazumevana"
+
+msgctxt "#10042"
+msgid "Are you sure you want to reset the settings in this category?"
+msgstr "Da li ste sigurni da želite da vratite podešavanja u ovoj kategoriji na podrazumevana?"
+
+msgctxt "#10043"
+msgid "Help"
+msgstr "Pomoć"
+
+msgctxt "#10044"
+msgid "No help available"
+msgstr "Pomoć nije dostupna"
+
+msgctxt "#10045"
+msgid "Resets all the visible settings to their default values."
+msgstr "Vratite vidljiva podešavanja na njihove podrazumevane vrednosti"
+
+msgctxt "#10046"
+msgid "No categories available"
+msgstr "Kategorije nisu dostupne"
+
+msgctxt "#10128"
+msgid "Network setup"
+msgstr "Podešavanje mreže"
+
+msgctxt "#10130"
+msgid "Profile settings"
+msgstr "Podešavanja Profila"
+
 msgctxt "#10131"
 msgid "Lock settings"
 msgstr "Zaključaj postavke"
@@ -3121,6 +3421,14 @@ msgctxt "#10134"
 msgid "Favourites"
 msgstr "Omiljeno"
 
+msgctxt "#10135"
+msgid "Songs/Info"
+msgstr "Pesme/Info"
+
+msgctxt "#10139"
+msgid "Pictures/Info"
+msgstr "Slike/Info"
+
 msgctxt "#10140"
 msgid "Add-on settings"
 msgstr "Postavke dodatka"
@@ -3229,6 +3537,14 @@ msgctxt "#12005"
 msgid "Fullscreen video"
 msgstr "Film preko čitavog ekrana"
 
+msgctxt "#12006"
+msgid "Audio visualisation"
+msgstr "Vizualizacija zvuka"
+
+msgctxt "#12008"
+msgid "File stacking dialogue"
+msgstr "Dijalog slaganja datoteka"
+
 msgctxt "#12009"
 msgid "Rebuild index..."
 msgstr "Reindeksiranje..."
@@ -3385,14 +3701,26 @@ msgctxt "#12346"
 msgid "Password retry limit exceeded."
 msgstr "Prekomerni broj pokušaja unosa lozinke."
 
+msgctxt "#12347"
+msgid "The system will now power down."
+msgstr "Sistem će se sada isključiti"
+
 msgctxt "#12348"
 msgid "Item locked"
 msgstr "Stavka je zaključana"
 
+msgctxt "#12352"
+msgid "No downloading is needed."
+msgstr "Preuzimanje nije potrebno."
+
 msgctxt "#12353"
 msgid "Reactivate lock"
 msgstr "Ponovo aktiviraj kôd"
 
+msgctxt "#12354"
+msgid "Would you like to update it now?"
+msgstr "Da li želite sada da ga ažurirate?"
+
 msgctxt "#12356"
 msgid "Change lock"
 msgstr "Promeni kôd"
@@ -3425,6 +3753,10 @@ msgctxt "#12373"
 msgid "Settings & file manager"
 msgstr "Postavke i upr. datotekama"
 
+msgctxt "#12376"
+msgid "Set as default for all videos"
+msgstr "Postavite kao podrazumevano za sve video snimke"
+
 msgctxt "#12377"
 msgid "This will reset any previously saved values"
 msgstr "Ovo će poništiti prethodno sačuvane vrednosti"
@@ -3473,6 +3805,22 @@ msgctxt "#12394"
 msgid "Total uptime"
 msgstr "Ukupno vreme"
 
+msgctxt "#12395"
+msgid "Battery level"
+msgstr "Nivo baterije"
+
+msgctxt "#12396"
+msgid "Auto updates: On"
+msgstr "Automatsko ažuriranje: Da"
+
+msgctxt "#12397"
+msgid "Auto updates: Notify"
+msgstr "Automatsko ažuriranje: Obavještenje"
+
+msgctxt "#12398"
+msgid "Auto updates: Never"
+msgstr "Automatsko ažuriranje: Nikad"
+
 msgctxt "#12600"
 msgid "Weather"
 msgstr "Vremenska prognoza"
@@ -3533,10 +3881,18 @@ msgctxt "#13013"
 msgid "Reboot"
 msgstr "Ponovo pokreni"
 
+msgctxt "#13014"
+msgid "Minimise"
+msgstr "Minimizuj"
+
 msgctxt "#13015"
 msgid "Power button action"
 msgstr "Akcija dugmeta za uključivanje"
 
+msgctxt "#13016"
+msgid "Power off System"
+msgstr "Isključi sistem"
+
 msgctxt "#13020"
 msgid "Is another session active, perhaps over ssh?"
 msgstr "Da li je druga sesija aktivna, možda putem ssh?"
@@ -3561,6 +3917,14 @@ msgctxt "#13025"
 msgid "Joystick unplugged"
 msgstr "Upravljačka palica je raskačena"
 
+msgctxt "#13028"
+msgid "Waiting for network to connect..."
+msgstr "Čekanje da se mreža poveže..."
+
+msgctxt "#13050"
+msgid "Running low on battery"
+msgstr "Baterija je pri kraju"
+
 msgctxt "#13100"
 msgid "Flicker filter"
 msgstr "Flicker filter"
@@ -3593,6 +3957,10 @@ msgctxt "#13110"
 msgid "Save resolution?"
 msgstr "Sačuvati rezoluciju?"
 
+msgctxt "#13111"
+msgid "Would you like to keep this change?"
+msgstr "Želite li da sačuvate ovu izmjenu?"
+
 msgctxt "#13112"
 msgid "High quality upscaling"
 msgstr "Visok kvalitet uvećanja"
@@ -4261,6 +4629,34 @@ msgctxt "#13425"
 msgid "Allow hardware acceleration (VDPAU)"
 msgstr "Broadcom Crystal HD"
 
+msgctxt "#13441"
+msgid "Use MPEG-2 VDPAU"
+msgstr "Koristi MPEG-2 VDPAU"
+
+msgctxt "#13443"
+msgid "Use MPEG-4 VDPAU"
+msgstr "Koristi MPEG-4 VDPAU"
+
+msgctxt "#13445"
+msgid "Use VC-1 VDPAU"
+msgstr "Koristi VC-1 VDPAU"
+
+msgctxt "#13447"
+msgid "Use MPEG-2 VAAPI"
+msgstr "Koristi MPEG-2 VAAPI"
+
+msgctxt "#13449"
+msgid "Use MPEG-4 VAAPI"
+msgstr "Koristi MPEG-4 VAAPI"
+
+msgctxt "#13451"
+msgid "Use VC-1 VAAPI"
+msgstr "Koristi VC-1 VAAPI"
+
+msgctxt "#13454"
+msgid "Decoding method"
+msgstr "Metod dekodiranja"
+
 msgctxt "#13455"
 msgid "Software"
 msgstr "Softver"
@@ -7257,6 +7653,10 @@ msgctxt "#24009"
 msgid "Script"
 msgstr "Skripta"
 
+msgctxt "#24010"
+msgid "Visualisation"
+msgstr "Vizualizacija"
+
 msgctxt "#24011"
 msgid "Add-on repository"
 msgstr "Spremište dodatnog prog."
@@ -7413,6 +7813,10 @@ msgctxt "#24094"
 msgid "(current)"
 msgstr "Omogući hardversko ubrzanje (CrystalHD)"
 
+msgctxt "#24098"
+msgid "Broken"
+msgstr "Pokvaren"
+
 msgctxt "#24121"
 msgid "Enter search string"
 msgstr "Unesite reč za pretragu"
diff --git a/language/Slovenian/strings.po b/language/Slovenian/strings.po
index 16ed2db..1e0deef 100644
--- a/language/Slovenian/strings.po
+++ b/language/Slovenian/strings.po
@@ -1237,6 +1237,10 @@ msgctxt "#345"
 msgid "Year"
 msgstr "Leto"
 
+msgctxt "#346"
+msgid "Maintain original volume on downmix"
+msgstr "Ohrani izvorno jakost pri mešanju"
+
 msgctxt "#347"
 msgid "DTS-HD capable receiver"
 msgstr "Sprejemnik podpira DTS-HD"
@@ -2469,6 +2473,10 @@ msgctxt "#679"
 msgid "Verbose logging for CEC library"
 msgstr "Podrobno zapisovanje knjižnice CEC"
 
+msgctxt "#680"
+msgid "Verbose logging for VIDEO component"
+msgstr "Podrobno zapisovanje komponente VIDEO"
+
 msgctxt "#700"
 msgid "Cleaning up library"
 msgstr "Čiščenje knjižnice"
@@ -3201,6 +3209,10 @@ msgctxt "#1260"
 msgid "Announce these services to other systems via Zeroconf"
 msgstr "Oznani storitve drugim sistemom preko Zeroconf"
 
+msgctxt "#1268"
+msgid "iOS 8 compatibility mode"
+msgstr "Združljivostni način iOS 8"
+
 msgctxt "#1269"
 msgid "Allow volume control"
 msgstr "Dovoli nadzor jakosti zvoka"
@@ -3253,6 +3265,10 @@ msgctxt "#1378"
 msgid "Intensity"
 msgstr "Intenzivnost"
 
+msgctxt "#1379"
+msgid "Ragged"
+msgstr "Raztrgano"
+
 msgctxt "#1380"
 msgid "Very"
 msgstr "Zelo"
@@ -3265,6 +3281,10 @@ msgctxt "#1382"
 msgid "Whirls"
 msgstr "Vrtinci"
 
+msgctxt "#1383"
+msgid "Sky Is Clear"
+msgstr "Jasno nebo"
+
 msgctxt "#1384"
 msgid "Broken"
 msgstr "Nedelujoč"
@@ -3293,10 +3313,26 @@ msgctxt "#1390"
 msgid "Settings"
 msgstr "Nastavitve"
 
+msgctxt "#1391"
+msgid "Breeze"
+msgstr "Rahel"
+
 msgctxt "#1392"
 msgid "Gentle"
 msgstr "Nežen"
 
+msgctxt "#1393"
+msgid "High wind, near gale"
+msgstr "Močan, skoraj viharen"
+
+msgctxt "#1394"
+msgid "Severe"
+msgstr "Močan"
+
+msgctxt "#1395"
+msgid "Violent"
+msgstr "Silovit"
+
 msgctxt "#1396"
 msgid "Drifting"
 msgstr "Drseče"
@@ -3327,7 +3363,7 @@ msgstr "Grom"
 
 msgctxt "#1403"
 msgid "Sun"
-msgstr "Sonce"
+msgstr "Sončno"
 
 msgctxt "#1404"
 msgid "Heavy"
@@ -3483,11 +3519,11 @@ msgstr "z"
 
 msgctxt "#1442"
 msgid "Chance"
-msgstr "Možnost"
+msgstr "možnostjo"
 
 msgctxt "#1443"
 msgid "of"
-msgstr "od"
+msgstr " "
 
 msgctxt "#1444"
 msgid "Funnel"
@@ -5181,6 +5217,14 @@ msgctxt "#13457"
 msgid "Prefer VAAPI render method"
 msgstr "Raje uporabi VAAPI render metodo"
 
+msgctxt "#13458"
+msgid "Allow hardware acceleration (OMXPlayer)"
+msgstr "Dovoli strojno pospeševanje (OMXPlayer)"
+
+msgctxt "#13459"
+msgid "Use OMXPlayer for decoding of video files."
+msgstr "Za dekodiranje video datotek uporabi OMXPlayer."
+
 msgctxt "#13500"
 msgid "A/V sync method"
 msgstr "Metoda sinhroniziranja A/V"
@@ -5685,6 +5729,14 @@ msgctxt "#14101"
 msgid "Acceleration"
 msgstr "Pospeševanje"
 
+msgctxt "#14102"
+msgid "Blu-ray playback mode"
+msgstr "Predvajalni način za Blu-ray"
+
+msgctxt "#14103"
+msgid "Play main movie"
+msgstr "Predvajaj osrednji film"
+
 msgctxt "#14104"
 msgid "Show simplified menu"
 msgstr "Prikaži enostavni meni"
@@ -6133,10 +6185,34 @@ msgctxt "#16326"
 msgid "DXVA-HD"
 msgstr "DXVA-HD"
 
+msgctxt "#16327"
+msgid "VAAPI Bob"
+msgstr "VAAPI bob"
+
+msgctxt "#16328"
+msgid "VAAPI Motion Adaptive"
+msgstr "Prilagajanje gibanju VAAPI"
+
+msgctxt "#16329"
+msgid "VAAPI Motion Compensated"
+msgstr "Kompenzacija gibanja VAAPI"
+
 msgctxt "#16330"
 msgid "MMAL - Advanced"
 msgstr "MMAL - Napredno"
 
+msgctxt "#16331"
+msgid "MMAL - Advanced (Half)"
+msgstr "MMAL - napredno (polovično)"
+
+msgctxt "#16332"
+msgid "MMAL - Bob"
+msgstr "MMAL - bob"
+
+msgctxt "#16333"
+msgid "MMAL - Bob (Half)"
+msgstr "MMAL - bob (polovično)"
+
 msgctxt "#16400"
 msgid "Post-processing"
 msgstr "Post-procesiranje"
@@ -6231,7 +6307,7 @@ msgstr "Posnetki"
 
 msgctxt "#19018"
 msgid "Folder with channel icons"
-msgstr "Mapa z ikonami kanala"
+msgstr "Mapa ikon programov"
 
 msgctxt "#19019"
 msgid "Channels"
@@ -6419,7 +6495,7 @@ msgstr "Pojdi na konec"
 
 msgctxt "#19066"
 msgid "Channel icons"
-msgstr "Ikone kanala"
+msgstr "Ikone programov"
 
 msgctxt "#19067"
 msgid "This event is already being recorded."
@@ -6575,7 +6651,7 @@ msgstr "Vnesite ime mape posnetka"
 
 msgctxt "#19105"
 msgid "Please select a channel"
-msgstr "Prosim izberite program"
+msgstr "Prosim, izberite program"
 
 msgctxt "#19106"
 msgid "Next timer on"
@@ -7229,6 +7305,10 @@ msgctxt "#19273"
 msgid "Add-on for the backend to be able to use PVR."
 msgstr "Dodatek za hrbtenico, ki bo omogočal uporabo PVR."
 
+msgctxt "#19274"
+msgid "Please visit http://kodi.wiki/view/PVR to learn more."
+msgstr "Obiščite http://kodi.wiki/view/PVR za več informacij."
+
 msgctxt "#19275"
 msgid "Conflict warning"
 msgstr "Opozorilo o prekrivanju"
@@ -7275,7 +7355,7 @@ msgstr "Prebrskajte za ikono"
 
 msgctxt "#19286"
 msgid "Searching for channel icons"
-msgstr "Iščem ikone za kanale"
+msgstr "Iščem ikone pogramov"
 
 msgctxt "#19287"
 msgid "All channels"
@@ -8377,6 +8457,10 @@ msgctxt "#20220"
 msgid "Override song tags with online information"
 msgstr "Preglasijo oznake pesmi s spletnimi informacijami"
 
+msgctxt "#20221"
+msgid "With this enabled, any information that is downloaded for albums and artists will override anything you have set in your song tags, such as genres, year, song artists etc. Useful if you have MusicBrainz identifiers in your song tags."
+msgstr "Če je to omogočeno, bodo vse prenesene informacije za albume in izvajalce imele prednost pred zapisanim v značkah posnetkov, kot so žanri, letnica, izvajalci posnetka itn. Uporabno, če imate v značkah posnetkov identifikatorje MusicBrainz."
+
 msgctxt "#20240"
 msgid "Android music"
 msgstr "Glasba Android"
@@ -9115,7 +9199,7 @@ msgstr "Pretok bo ustavljen!"
 
 msgctxt "#21334"
 msgid "Zap to channel: %s failed!"
-msgstr "Povezava s kanalom: %s ni uspel!"
+msgstr "Preklop na program: %s ni uspel!"
 
 msgctxt "#21335"
 msgid "Are you sure to start the stream?"
@@ -10553,6 +10637,10 @@ msgctxt "#24128"
 msgid "Configuration has been moved"
 msgstr "Nastavitve so bile premaknjene"
 
+msgctxt "#24129"
+msgid "The configuration of XBMC has been moved to the new location for Kodi. Please refer to http://kodi.wiki/view/Migration - this message will not be shown again!"
+msgstr "Prilagoditev XBMC je premaknjena na novo mesto za Kodi. Oglejte si http://kodi.wiki/view/Migration - to sporočilo ne bo več prikazano!"
+
 msgctxt "#24999"
 msgid "Hide incompatible"
 msgstr "Skrij nezdružljive"
@@ -11005,6 +11093,10 @@ msgctxt "#34110"
 msgid "7.1"
 msgstr "7.1"
 
+msgctxt "#34111"
+msgid "Select the behaviour when no sound is required for either playback or GUI sounds. [Always] - continuous inaudible signal is output, this keeps the receiving audio device alive for any new sounds, however this might also block sound from other applications. [1- 10 Minutes] - same as Always except that after the selected period of time audio enters a suspended state [Off] - audio output enters a suspended state. Note - sounds can be missed if audio enters suspended state."
+msgstr "Izberite vedenje, ko za predvajanje ali za zvoke vmesnika ni potreben zvok. [Vedno] - na izhod gre zvezen neslišen signal, kar ohranja prejemno zvočno napravo v pripravljenosti za nove zvoke, vendar lahko tudi blokira zvok iz drugih aplikacij; [1- 10 minut] - enako kot Vedno, le da po določenem času zvok vstopi v začasno izklopljeno stanje; [Izključeno] - zvokovni izhod vstopi v začasno izklopljeno stanje. Opomba - če je zvokovni izhod v začasno izklopljenem stanju, lahko zamudite oddani zvok."
+
 msgctxt "#34120"
 msgid "Play GUI sounds"
 msgstr "Predvajaj zvoke GUI"
@@ -11577,6 +11669,14 @@ msgctxt "#36163"
 msgid "Enable decoding of video files using pixel buffer objects."
 msgstr "Vključi strojno dekodiranje video datotek z uporabo pixel-buffer objektov."
 
+msgctxt "#36164"
+msgid "Allow the refresh rate of the display to be changed so that it best matches the video frame rate. This may yield smoother video playback."
+msgstr "Omogoči, da se frekvenca osveževanja zaslona spremeni, tako da se najbolje ujema s številom sličic na sekundo posnetka. S tem si lahko zagotovite bolj gladko predvajanje videa."
+
+msgctxt "#36165"
+msgid "Pause for a small amount of time during a refresh rate change."
+msgstr "Prekini za kratek čas med spremembo frekvence osveževanja zaslona."
+
 msgctxt "#36166"
 msgid "Synchronise the video to the refresh rate of the monitor."
 msgstr "Stopnji osveževanja zaslona prilagodite posnetek."
@@ -11601,6 +11701,10 @@ msgctxt "#36171"
 msgid "Select the zoom level that 4:3 videos are shown on widescreen displays."
 msgstr "Izberite način prikaza vsebin v razmerju 4:3 na širokih zaslonih."
 
+msgctxt "#36172"
+msgid "VDPAU studio level conversion provides a way for advanced applications like Kodi to influence the colour space conversion."
+msgstr "Pretvorba studijskih ravni VDPAU ponuja način, da napredne aplikacije, kot je Kodi, vplivajo na pretvorbo barvnega prostora."
+
 msgctxt "#36173"
 msgid "Enable upscaling using VDPAU."
 msgstr "Omogočite zviševanje ločljivosti z VDPAU."
@@ -11637,6 +11741,14 @@ msgctxt "#36181"
 msgid "No info available yet."
 msgstr "Informacije Å¡e niso na voljo."
 
+msgctxt "#36182"
+msgid "Combines multi-part video files, DVD folders, and movie folders down to a single item in non-library views."
+msgstr "Združi večdelne video datoteke, mape DVD-jev in mape filmov na en sam element v ne-knjižničnih pogledih."
+
+msgctxt "#36183"
+msgid "Removes the title, genre etc nodes from the library view. Selecting a category takes you straight to the title view."
+msgstr "Odstrani naslov, žanr in druga vozlišča iz pogleda knjižnice. Z izborom kategorije ste postavljeni neposredno v pogled naslovov."
+
 msgctxt "#36184"
 msgid "Category containing settings for how subtitles are handled."
 msgstr "Kategorija nastavitev podnapisov."
@@ -11721,6 +11833,10 @@ msgctxt "#36204"
 msgid "Import channel groups from the PVR backend (if supported). Will delete user created groups if they're not found on the backend."
 msgstr "Uvozite skupine programov iz hrbtenic PVR (če je podprto). To bo izbrisalo uporabniško ustvarjene skupine, če se ne nahajajo v hrbtenici."
 
+msgctxt "#36205"
+msgid "Sort the channels by channel number on the backend, but use Kodi's own numbering for channels."
+msgstr "Razvrstite programe po njihovi številki v hrbtenici, a prepustite Kodiju da jih sam oštevilči."
+
 msgctxt "#36206"
 msgid "Use numbering from the backend, instead of configuring them manually over Kodi."
 msgstr "Uporabite številčenje iz hrbtenice namesto ročnega nastavljanja preko Kodi-ja."
@@ -11731,23 +11847,35 @@ msgstr "Odprite upravljalnika programov, ki omogoča urejanje zaporedja programo
 
 msgctxt "#36208"
 msgid "Instruct the backend to search for channels (if supported)."
-msgstr "Podučite hrbtenico za iskanje kanalov (v primeru da obstajajo)."
+msgstr "Naročite hrbtenici iskanje kanalov (če podpira)."
 
 msgctxt "#36209"
 msgid "Delete channel/EPG database and reimport the data from the backend afterwards."
 msgstr "Izbrišite bazo programov/EPG in ponovno uvozite podatke iz hrbtenic."
 
+msgctxt "#36210"
+msgid "Prevent the 'connection lost' notification window from displaying when Kodi is unable to talk to the PVR backend server."
+msgstr "Prepreči, da se prikaže okno obvestila 'povezava izgubljena', ko se Kodi ne more usklajevati s strežnikom hrbtenice PVR."
+
 msgctxt "#36211"
 msgid "Category for PVR menus and on-screen display settings, as well as channel info windows."
 msgstr "Kategorija nastavitev menijev PVR, prikaza informacij med predvajanjem in informacij o programih."
 
+msgctxt "#36212"
+msgid "Display programming information when changing channels, such as the current TV show."
+msgstr "Pokaži programske podatke ob spreminjanju programov, kot je trenutna TV oddaja."
+
+msgctxt "#36214"
+msgid "Close the on screen display controls after switching channels."
+msgstr "Po preklopu programa zapri kontrolnik, prikazan na zaslonu."
+
 msgctxt "#36216"
 msgid "Folder where channel icons are stored."
-msgstr "Mapa kjer so shranjene ikone kanalov."
+msgstr "Mapa, kjer so shranjene ikone programov."
 
 msgctxt "#36217"
 msgid "Scan for missing channel icons."
-msgstr "Išči manjkajoče ikone za kanale."
+msgstr "Preglejte za manjkajoče ikone progamov."
 
 msgctxt "#36218"
 msgid "Category for electronic programming guide settings."
@@ -11773,6 +11901,10 @@ msgctxt "#36224"
 msgid "Hide \"no information available\" labels when no EPG data can be retrieved for a channel."
 msgstr "Skrijte oznako \"Informacije niso na voljo\", ko programskega vodiča za izbran program ni na voljo."
 
+msgctxt "#36225"
+msgid "Delete the EPG database in Kodi and reimport the data afterwards from the backend."
+msgstr "Izbriše zbirko podatkov EPG v Kodiju, nato ponovno uvozi podatke iz hrbtenice."
+
 msgctxt "#36226"
 msgid "Category for PVR playback and channel switching settings."
 msgstr "Kategorija nastavitev predvajanja PVR in preklapljanja med programi. "
@@ -11789,10 +11921,18 @@ msgctxt "#36229"
 msgid "Display signal quality information in the codec information window (if supported by the Add-on and backend)."
 msgstr "Prikažite informacije o kvaliteti signala v oknu z informacijami o kodekih (če to podpirata dodatek in hrbtenica)."
 
+msgctxt "#36230"
+msgid "How long Kodi will wait to change the channel if the channel isn't being received. Useful for over-the-air channels that occasionally lose signal strength."
+msgstr "Kako dolgo Kodi čaka na spremembo programa, če programa ni mogoče sprejemati. Uporabno za zemeljske programe, ki občasno izgubijo jakost signala."
+
 msgctxt "#36231"
 msgid "Pressing a number button in full screen mode will automatically switch to the channel number that was entered after 1 second."
 msgstr "Pritisk na številčne gumbe v celozaslonskem načinu bo samodejno preklopil na program s to številko po 1 sekundi."
 
+msgctxt "#36232"
+msgid "When pressing channel up or down, the actual channel switch is delayed, allowing the user to flip to a channel number without waiting for each channel switch."
+msgstr "Ob pritiskanju gumba za naslednji ali prejšnji kanal, se dejanski preklop kanala zgodi z zamikom, da ima uporabnik čas skočiti na določen kanal, ne da bi potreboval čakati vsakokratni preklop kanalov po vrsti."
+
 msgctxt "#36233"
 msgid "Category for default recording duration settings."
 msgstr "Kategorija nastavitev privzetega trajanja snemanja."
@@ -11837,6 +11977,10 @@ msgctxt "#36243"
 msgid "The command to execute."
 msgstr "Ukaz, ki naj se zažene."
 
+msgctxt "#36244"
+msgid "Time to subtract from the start time of the next scheduled recording."
+msgstr "Čas za odštevanje od časa začetka naslednjega načrtovanega snemanja."
+
 msgctxt "#36245"
 msgid "Execute the wakeup command every day at the given time."
 msgstr "Zaženite ukaz bujenja vsak dan ob določenem času."
@@ -11877,10 +12021,18 @@ msgctxt "#36254"
 msgid "Enable the music library."
 msgstr "Omogočite knjižnico glasbe."
 
+msgctxt "#36255"
+msgid "Determine if artists that appear only on compilations are shown in the library artist view."
+msgstr "Ugotovi, ali so izvajalci, ki se pojavljajo le na kompilacijah, v knjižnici prikazani v pogledu izvajalcev."
+
 msgctxt "#36256"
 msgid "Automatically fetch album and artist information via scrapers during scan."
 msgstr "Med pregledovanjem samodejno prenesite informacije o albumu in izvajalcu s ponudnikov."
 
+msgctxt "#36257"
+msgid "Select the default album information source."
+msgstr "Izberite privzeti vir za podatke o albumu."
+
 msgctxt "#36258"
 msgid "Select the default artist information source. See the Add-ons Manager for options."
 msgstr "Izberite privzeti vir za informacije o izvajalcih. Več možnosti najdete v upravljalniku dodatkov."
@@ -11909,6 +12061,14 @@ msgctxt "#36265"
 msgid "Kodi automatically plays the next item in the current folder. For example, in Files View: After a track has been played, Kodi would automatically play the next track in the same folder."
 msgstr "Kodi samodejno predvaja naslednjo datoteko v trenutni mapi. Na primer v pogledu datotek: Ko pesem zaključi s predvajanjem, bo Kodi samodejno začel predvajanje naslednje pesmi v tej isti mapi."
 
+msgctxt "#36266"
+msgid "When songs are selected they are queued instead of playback starting immediately."
+msgstr "Pesmi se ob izboru namesto takojšnjega predvajanja postavijo v vrsto."
+
+msgctxt "#36267"
+msgid "Kodi will read the ReplayGain information encoded in your audio files by a program such as MP3Gain and normalise the sound levels accordingly."
+msgstr "Kodi prebere podatke ReplayGain, ki so vkodirani v zvočne datoteke s programi, kot je MP3Gain, in ustrezno normalizira jakost zvoka."
+
 msgctxt "#36268"
 msgid "Default is 89dB per standard. Change with caution."
 msgstr "Privzeta vrednost po standardih je 89 dB. Bodite pazljivi pri spreminjanju."
@@ -11937,6 +12097,30 @@ msgctxt "#36274"
 msgid "Read the tag information from song files. For large directories this can slow down read time, especially over a network."
 msgstr "Preberite informacije v značkah glasbenih datotek. Za velike mape to lahko upočasni branje, posebej preko omrežja."
 
+msgctxt "#36275"
+msgid "Control the way that the names of songs are displayed in the user interface. In order to function properly, tag reading needs to be enabled."
+msgstr "Določite, kako so prikazana imena pesmi v uporabniškem vmesniku. Da bi funkcija delovala pravilno, morate omogočiti branje značk."
+
+msgctxt "#36276"
+msgid "Used for formatting the second column in file lists."
+msgstr "Uporablja se za oblikovanje drugega stolpca v seznamih datotek."
+
+msgctxt "#36277"
+msgid "Control the way that the names of songs are displayed in the now playing list."
+msgstr "Določite, kako se prikažejo imena pesmi v seznamu trenutnega predvajanja."
+
+msgctxt "#36278"
+msgid "Used for formatting the second column in the now playing list."
+msgstr "Uporablja se za oblikovanje drugega stolpca v seznamu trenutnega predvajanja."
+
+msgctxt "#36279"
+msgid "Control the way that the names of songs are displayed in library lists."
+msgstr "Določite, kako so prikazana imena pesmi v seznamih knjižnice."
+
+msgctxt "#36280"
+msgid "Used for formatting the second column in library lists."
+msgstr "Uporablja se za oblikovanje drugega stolpca v seznamih knjižnice."
+
 msgctxt "#36281"
 msgid "Kodi will search for thumbs on remote shares and optical media. This can often slow down the listing of network folders."
 msgstr "Kodi bo poiskal sličice na mapah v skupni rabi in optičnih medijih. To lahko upočasni brskanje omrežnih map."
@@ -11989,6 +12173,10 @@ msgctxt "#36293"
 msgid "When playing any music file, Kodi will look for a matching .cdg file and display its graphics."
 msgstr "Ob predvajanju katerikoli glasbene datoteke bo Kodi preveril za pripadajočo .cdg datoteko in prikazal pripadajočo grafiko."
 
+msgctxt "#36294"
+msgid "Show song selection dialog once the last song in the queue has been played."
+msgstr "Pokaži pog. okno izbora pesmi, ko je zaključi predvajanje zadnje pesmi v vrsti."
+
 msgctxt "#36295"
 msgid "Select the font type used during karaoke."
 msgstr "Izberite tip pisave za prikazovanje med karaokami."
@@ -12005,6 +12193,14 @@ msgctxt "#36298"
 msgid "Select the character set used during karaoke."
 msgstr "Izberite nabor znakov za uporabo med karaokami."
 
+msgctxt "#36299"
+msgid "Export the karaoke numbered songs to HTML or CSV files."
+msgstr "Izvozi oštevilčene pesmi karaoke v datoteke HTML ali CSV."
+
+msgctxt "#36300"
+msgid "Import the karaoke numbered songs from HTML or CSV files."
+msgstr "Uvozi oštevilčene pesmi karaoke iz datotek HTML ali CSV."
+
 msgctxt "#36301"
 msgid "No info available yet."
 msgstr "Informacije Å¡e niso na voljo."
@@ -12121,6 +12317,14 @@ msgctxt "#36329"
 msgid "Define the webserver port."
 msgstr "Določite vrata spletnega strežnika."
 
+msgctxt "#36330"
+msgid "Define the webserver username. This only takes effect when both the username and the password are set."
+msgstr "Določite uporabniško ime spletnega strežnika. V veljavi je le, če je obenem določeno tudi geslo."
+
+msgctxt "#36331"
+msgid "Define the webserver password. This only takes effect when both the username and the password are set."
+msgstr "Določite geslo spletnega strežnika. To pride v poštev le, če je določeno tudi uporabniško ime."
+
 msgctxt "#36332"
 msgid "Select between web interfaces installed via the Add-on Manager."
 msgstr "Izberite enega izmed spletnih vmesnikov, nameščenih preko upravljalnika dodatkov."
@@ -12181,6 +12385,14 @@ msgctxt "#36346"
 msgid "Category containing settings for how the SMB Client (samba) service is handled."
 msgstr "Kategorija nastavitev storitve SMB (samba)."
 
+msgctxt "#36347"
+msgid "If a WINS server is running on the network, enter its IP address here. Otherwise, leave blank."
+msgstr "Če je v omrežju strežnik WINS, tukaj vnesite njegov naslov IP. Sicer pustite prazno."
+
+msgctxt "#36348"
+msgid "If a WINS server is running on the network, enter its workgroup name here. Otherwise, leave blank."
+msgstr "Če je v omrežju strežnik WINS, tukaj vnesite njegovo ime delovne skupine. Sicer pustite prazno."
+
 msgctxt "#36349"
 msgid "Section that contains the System related settings for the device Kodi is installed on."
 msgstr "Razdelek sistemskih nastavitev za napravo, na katero je nameščen Kodi."
@@ -12193,6 +12405,18 @@ msgctxt "#36351"
 msgid "Display Kodi in a window, or fullscreen on the selected screen."
 msgstr "Prikaži Kodi v oknu ali celozaslonsko na izbranem zaslonu."
 
+msgctxt "#36352"
+msgid "Changes the resolution that the user interface is displayed in."
+msgstr "Spremeni ločljivost, v kateri je prikazan uporabniški vmesnik."
+
+msgctxt "#36353"
+msgid "Changes the refresh rate that the user interface is displayed in."
+msgstr "Spremeni frekvenco osveževanja, s katero je prikazan uporabniški vmesnik."
+
+msgctxt "#36354"
+msgid "Display Kodi in a fullscreen window. The main benefit is for multi-screen configurations, so that Kodi can be used without minimising other applications. This uses more resources so playback may be less smooth."
+msgstr "Pokaži Kodi v celozaslonskem oknu. Glavna prednost tega načina velja za večzaslonske namestitve, tako da lahko Kodi uporabljate brez pomanjševanja drugih aplikacij. S tem porabite več virov, zato je lahko predvajanje moteno."
+
 msgctxt "#36355"
 msgid "In a multi-screen configuration, the screens where Kodi is not displayed are blacked out."
 msgstr "V več zaslonski konfiguraciji, so zasloni, kjer se ne prikazuje Kodi zatemnjeni."
@@ -12209,14 +12433,30 @@ msgctxt "#36358"
 msgid "Test patterns for display hardware calibration."
 msgstr "Testni vzorec za umerjanje strojne opreme."
 
+msgctxt "#36359"
+msgid "Use limited colour range (16-235) instead of full colour range (0-255). Limited range should be used if your display is a regular HDMI TV and doesn't have a PC or other mode to display full range colour, however if your display is a PC monitor then leave this disabled to get proper blacks."
+msgstr "Uporabi omejeni barvni obseg (16-235) namesto polnega barvnega obsega (0-255). Omejeni obseg uporabljamo, če je zaslon običajni televizor HDMI in nima načina PC ali drugega načina za prikaz barv v polnem obsegu; če je vaš zaslon računalniški, potem pustite možnost onemogočeno, da dobite ustrezno črnino."
+
 msgctxt "#36360"
 msgid "Category containing settings for how audio output is handled."
 msgstr "Kategorija nastavitev zvočnega izhoda."
 
+msgctxt "#36361"
+msgid "Select how the properties of the audio output are set: [Fixed] - output properties are set to the specified sampling rate & speaker configuration at all times; [Best Match] - output properties are set to always be as close a match to the source properties as possible; [Optimized] - output properties are set at the start of playback and will not change if the properties of the source changes."
+msgstr "Izberite, kako se določajo lastnosti zvočnega izhoda: [fiksno] - izhodne lastnosti so vedno nastavljene na navedeno mero vzorčenja in namestitev zvočnikov; [najboljše ujemanje] - izhodne lastnosti se vedno nastavijo tako, da se kar najbolj ujemajo z lastnostmi vira; [optimizirano] - izhodne lastnosti se nastavijo na začetku predvajanja in se ne spreminjajo, če se lastnosti vira ne spreminjajo."
+
+msgctxt "#36362"
+msgid "Select the number of channels supported by the audio connection, or the number of speakers if connected by analog connections. This setting does not apply to passthrough audio. Note - SPDIF supports 2.0 channels only but can still output multichannel audio using a format supported by passthrough."
+msgstr "Izberite število kanalov, ki jih podpira zvočna povezava, oz. število zvočnikov, če imate analogne povezave. Nastavitev se ne nanaša na prepuščeni zvok. Opomba - SPDIF podpira le kanale 2.0 vendar lahko še vedno na izhod podaja večkanalni zvok v zapisu, ki ga podira prepuščanje."
+
 msgctxt "#36363"
 msgid "Boost AC3 streams that have been downmixed to 2 channels."
 msgstr "Ojačaj pretoke AC3, ki so bili združeni v 2 kanala."
 
+msgctxt "#36364"
+msgid "Select to enable upmixing of 2 channel audio to the number of audio channels specified by the channel configuration."
+msgstr "Izberite možnost, da omogočite mešanje 2-kanalnega zvoka na število zvočnih kanalov, ki jih določa prilagoditev kanalov."
+
 msgctxt "#36365"
 msgid "Select this option if your receiver is capable of decoding AC3 streams."
 msgstr "Izberite to možnost, če vaš sprejemnik podpira dekodiranje sledi AC3."
@@ -12225,6 +12465,14 @@ msgctxt "#36366"
 msgid "Select this option if your receiver is capable of decoding DTS streams."
 msgstr "Izberite to možnost, če vaš sprejemnik podpira dekodiranje sledi DTS."
 
+msgctxt "#36367"
+msgid "Select the maximum number of audio channels/speakers available for audio decoded. If optical/coax digital outputs are used this must be set to 2.0"
+msgstr "Izberite največje število zvočnih kanalov/zvočnikov, ki so na voljo za dekodirani zvok. Če uporabljate optične/koaksialne digitalne izhode, morate to možnost nastaviti na 2.0."
+
+msgctxt "#36368"
+msgid "Select to enable the passthrough audio options for playback of encoded audio such as Dolby Digital."
+msgstr "Izberite, če želite omogočiti možnosti prehoda zvoka ob predvajanju kodiranega zvoka, npr. v zapisu Dolby Digital."
+
 msgctxt "#36369"
 msgid "Select this option if your receiver is capable of decoding TrueHD streams."
 msgstr "Izberite to možnost, če vaš sprejemnik podpira dekodiranje sledi TrueHD."
@@ -12249,6 +12497,14 @@ msgctxt "#36374"
 msgid "Category containing settings for how input devices are handled."
 msgstr "Kategorija nastavitev vhodnih naprav."
 
+msgctxt "#36375"
+msgid "Configure any attached peripheral devices."
+msgstr "Prilagodite vse priklopljene periferne naprave."
+
+msgctxt "#36376"
+msgid "When activated, your keyboard arrows will move the selection on the virtual keyboard. When deactivated, they will move the cursor from your text."
+msgstr "Če je možnost potrjena, boste s smernimi tipkami na tipkovnici pomikali izbor na virtualni tipkovnici. Če možnost ni potrjena, boste z njimi pomikali kazalko v besedilu."
+
 msgctxt "#36377"
 msgid "Use a mouse or touch screen device to control Kodi. Note: disabling will cause you to lose control over Kodi when no keyboard or remote is present."
 msgstr "Za upravljanje z Kodi-jem uporabite miško ali zaslon na dotik. Opomba: onemogočenje te nastavitve lahko povzroči, da izgubite nadzor nad Kodi-jem, ko ne boste imeli na voljo tipkovnice ali daljinskega upravljalnika."
@@ -12293,6 +12549,10 @@ msgctxt "#36387"
 msgid "Category containing settings for power saving."
 msgstr "Kategorija nastavitev varčevanja z energijo."
 
+msgctxt "#36388"
+msgid "Turn off display when idle. Useful for TVs that turn off when there is no display signal detected."
+msgstr "V mirovanju izklopi zaslon. Uporabno za TV sprejemnike, ki se izklopijo, če ne zaznajo signala za prikaz."
+
 msgctxt "#36389"
 msgid "Define how long Kodi should idle before shutting down."
 msgstr "Določite kako dolgo je lahko Kodi nedejaven preden se izklopi."
@@ -12405,14 +12665,30 @@ msgctxt "#36416"
 msgid "Specify the type of remote used."
 msgstr "Določite tip uporabljenega daljinskega upravljalca."
 
+msgctxt "#36417"
+msgid "Always run an Kodi helper so that the remote can be used to start Kodi."
+msgstr "Vedno zaženi pomočnika za Kodi, tako da je moč z daljincem Kodi zagnati."
+
+msgctxt "#36418"
+msgid "Specify the delay between button sequences on a universal remote."
+msgstr "Določite časovni zamik med nizi pritiskov gumbov na univerzalnem daljincu."
+
 msgctxt "#36419"
 msgid "Define locations used for retrieving weather information."
 msgstr "Določite lokacijo, ki se uporablja za pridobivanje informacij o vremenu."
 
+msgctxt "#36421"
+msgid "Bypassing VDPAU mixer saves resources on low power systems but slightly reduces picture quality."
+msgstr "Obvod mešalnika VDPAU prihrani vire na sistemih nižje moči, vendar rahlo zmanjša kakovost slike."
+
 msgctxt "#36422"
 msgid "Enable hardware video decode using AMLogic decoder."
 msgstr "Omogočite strojno pospeševanje videa AMLogic."
 
+msgctxt "#36424"
+msgid "Select what will happen when an EPG item is selected: [Show context menu] will trigger the contextual menu from where you can choose further actions; [Switch to channel] will instantly tune to the related channel; [Show information] will display a detailed information with plot and further options; [Record] will create a recording timer for the selected item."
+msgstr "Izberite, kaj se zgodi, ko je izbran element elektronskega programskega vodiča (EPG): [Pokaži kontekstni meni] odpre kontekstni meni, iz katerega lahko izberete nadaljnja dejanja; [Preklopi na program] neposredno preklopi na navedeni program; [Pokaži podatke] prikaže podrobne podatke s kratko vsebino in dodatnimi možnostmi; [Snemaj] ustvari snemalni časovnik za izbrani element."
+
 msgctxt "#36425"
 msgid "Show context menu"
 msgstr "Pokaži priročni meni"
@@ -12429,10 +12705,34 @@ msgctxt "#36428"
 msgid "Record"
 msgstr "Snemaj"
 
+msgctxt "#36429"
+msgid "Select this if the audio out connection only supports multichannel audio as Dolby Digital 5.1, such as an SPDIF connection.  If your system supports LPCM multichannel sound via HDMI, leave this disabled."
+msgstr "Izberite to, če izhodna zvočna povezava podpira le večkanalni zvok, npr. Dolby Digital 5.1, kot je povezava SPDIF; če aš sistem podpira večkanalni zvok LPCM, pustite možnost neizbrano."
+
+msgctxt "#36430"
+msgid "Configure how video processing will be accelerated. This includes things like decoding and scaling."
+msgstr "Prilagodite pospeševanje video procesiranja, kar vključuje tudi dekodiranje in spreminjanje velikosti."
+
+msgctxt "#36431"
+msgid "Defines whether video decoding should be performed in software (requires more CPU) or with hardware acceleration where possible."
+msgstr "Določa, ali naj bo dekodiranje videa izvedeno programsko (zahteva več procesorske moči) ali s strojnim pospeševanjem, kjer je to možno."
+
 msgctxt "#36432"
 msgid "Select virtual keyboard layouts."
 msgstr "Izberi razporeditev tipk na virtualni tipkovnici"
 
+msgctxt "#36433"
+msgid "If enabled VAAPI render method is prefered. This puts less load on the CPU but driver may hang!"
+msgstr "Če je možnost potrjena, je privzeta metoda upodabljanja VAAPI. S tem je CPE manj obremenjena, vendar se gonilnik lahko obesi!"
+
+msgctxt "#36434"
+msgid "Allow hardware acceleration (MMAL)"
+msgstr "Dovoli strojno pospeševanje (MMAL)"
+
+msgctxt "#36435"
+msgid "Use DVDPlayer for decoding of video files with MMAL acceleration."
+msgstr "Za dekodiranje video datotek s pospeševanjem MMAL uporabi DVDPlayer."
+
 msgctxt "#36500"
 msgid "Stereoscopic 3D mode (current)"
 msgstr "Stereoskopski 3D način (trenutno)"
@@ -12469,6 +12769,10 @@ msgctxt "#36508"
 msgid "Hardware Based"
 msgstr "Temelji na strojni opremi"
 
+msgctxt "#36509"
+msgid "Monoscopic (2D)"
+msgstr "Monoskopsko (2D)"
+
 msgctxt "#36520"
 msgid "Playback mode of stereoscopic 3D videos"
 msgstr "Način predvajanja stereoskopskih 3D videov"
@@ -12477,6 +12781,10 @@ msgctxt "#36521"
 msgid "Ask me"
 msgstr "Vprašaj me"
 
+msgctxt "#36523"
+msgid "Maximum sampling rate for spdif or sampling rate for fixed output configuration."
+msgstr "Najvišja mera vzorčenja za spdif ali mera vzorčenja za fiksno izhodno prilagoditev."
+
 msgctxt "#36524"
 msgid "Preferred mode"
 msgstr "Želeni način"
@@ -12485,6 +12793,10 @@ msgctxt "#36525"
 msgid "Same as movie (autodetect)"
 msgstr "Enako kot film (samodejno)"
 
+msgctxt "#36526"
+msgid "Disable stereoscopic 3D mode when playback ended"
+msgstr "Onemogoči stereoskopski način (3D), ko je predvajanje končano"
+
 msgctxt "#36527"
 msgid "Select playback mode"
 msgstr "Izberi način predvajanja"
@@ -12501,6 +12813,10 @@ msgctxt "#36532"
 msgid "Same as movie"
 msgstr "Isto kot film"
 
+msgctxt "#36533"
+msgid "Select how audio is downmixed, for example from 5.1 to 2.0: [Enabled] maintains volume level of the original audio source however the dynamic range is compressed. [Disabled] maintains the dynamic range of the original audio source when downmixed however volume will be lower. Note - Dynamic range is the difference between the quietest and loudest sounds in an audio source. Enable this setting if movie dialogues are barely audible."
+msgstr "Izberite, kako se izvede mešanje kanalov na njihovo manjše število, npr. iz 5.1 na 2.0: [omogočeno] ohrani jakost izvornega zvoka, vendar komprimira dinamični razpon; [onemogočeno] ohranja dinamični razpon izvornega zvoka, a pri mešanju bo jakost nižja. Opomba - Dinamični razpon je razlika med najtišjim in najglasnejšim zvokom v zvočnem viru. To možnost omogočite, če komaj slišite filmske dialoge."
+
 msgctxt "#36534"
 msgid "Specify additional libraries whose log messages are to be included in the log."
 msgstr "Določite dodatne knjižnice ki bodo vključene v zapisnik."
@@ -12513,10 +12829,22 @@ msgctxt "#36536"
 msgid "Invert Stereoscopic 3D mode (flip eyes)"
 msgstr "Obraten stereoskopski 3D način videa (zamenjani očesi)"
 
+msgctxt "#36537"
+msgid "Select in which mode stereoscopic 3D videos will be played. [Ask me] will show a dialog to select the desired mode for each playback. [Preferred mode] will use of the preferred mode specified in the 'System -> Video Hardware' section of the settings. [Monoscopic (2D)] will play the video in mono/2D. [Ignore] disables any stereoscopic 3D processing and handling"
+msgstr "Izberite, v katerem načinu se bodo predvajali stereoskopski (3D) posnetki. [Vprašaj] prikaže pogovorno okno, v katerem izberete želeni način za vsako predvajanje posebej; [Prednostni način] uporabi prednostni način, določen v nastavitvah pod »Sistem -> Video strojna oprema«. [Monokopsko (2D)] predvaja posnetek v mono/2D. [Prezri] onemogoči vsakršno stereoskopsko (3D) obdelavo in upravljanje."
+
+msgctxt "#36538"
+msgid "[Enabled] Switch GUI (and some TVs) back to 2D mode when playback ended. [Disabled] GUI and TV will stay in stereoscopic 3D mode. For video playlists the stereoscopic 3D mode won't change between videos, not even for non stereoscopic ones."
+msgstr "[Omogoči] Preklopi uporabniški vmesnik (in nekatere TV naprave) nazaj v 2-D način, ko se predvajanje zaključi. [Onemogočeno] Uporabniški vmesnik in TV ostaneta v stereoskopskem (3D) načinu. Pri seznamih predvajanja videa stereoskopski (3D) način ne bo spreminjal med posnetki, tudi ob monoskopskih (2D) ne."
+
 msgctxt "#36539"
 msgid "Changes the stereoscopic 3D mode of the user interface."
 msgstr "Spremeni stereoskopski 3D način uporabniškega vmesnika."
 
+msgctxt "#36540"
+msgid "The preferred mode in which stereoscopic 3D media such as videos should be played."
+msgstr "Predlagani način za predvajanje stereoskopskih 3D medijev, kot je video."
+
 msgctxt "#36541"
 msgid "Allows volume control from AirPlay clients."
 msgstr "Dovolite nadzor jakosti zvoka odjemalcev AirPlay."
@@ -12549,6 +12877,10 @@ msgctxt "#36548"
 msgid "Limits resolution of GUI to save memory. Does not affect video playback. Requires restart."
 msgstr "Omeji ločljivost grafičnega uporabniškega vmesnika za prihranitev pomnilnika. Ne vpliva na predvajanje videa. Zahteva ponovni zagon."
 
+msgctxt "#36549"
+msgid "Use iOS8 compatible AirPlay support. If you have trouble with older iOS devices detecting Kodi as a valid target try switching this off. This option takes effect on the next restart of Kodi only!"
+msgstr "Uporabi podporo AirPlay, združljivo z iOS8. Če imate težave s starejšimi napravami iOS pri zaznavanju Kodija kot veljavne tarče, poskusite to možnost izključiti. Možnost prične delovati šele po ponovnem zagonu Kodija!"
+
 msgctxt "#36600"
 msgid "Category containing the settings for how the music library is handled."
 msgstr "Kategorija nastavitev delovanja knjižnice glasbe."
@@ -12713,6 +13045,10 @@ msgctxt "#37023"
 msgid "Do you wish to stop playback on the remote device?"
 msgstr "Želite ustaviti predvajanje na oddaljeni napravi?"
 
+msgctxt "#37024"
+msgid "Select this if the audio out connection only supports multichannel audio as Dolby Digital 5.1, this allows multichannel audio such as AAC5.1 or FLAC5.1 to be listened to in 5.1 surround sound. Note - Not recommended on Pi as this requires a lot of CPU."
+msgstr "Izberite to, če izhodna zvočna povezava podpira le večkanalni zvok, kot je standard Dolby Digital 5.1; s tem je omogočeno poslušanje zapisov AAC5.1 in FLAC5.1 v prostorskem zvoku 5.1. Opomba: ne priporočamo na računalnikih RPi, saj zahteva veliko od CPE."
+
 msgctxt "#37025"
 msgid "Configure audio encoder settings such as quality and compression level"
 msgstr "Prilagodi nastavitve audio pretvornika kot je kakovost in stopnja kompresije"
@@ -12737,6 +13073,10 @@ msgctxt "#37030"
 msgid "Unlimited"
 msgstr "Neomejeno"
 
+msgctxt "#37031"
+msgid "Specifies how Blu-rays should be opened/played back. Disc menus are not fully supported yet and may cause problems."
+msgstr "Določa, kako naj se odprejo/predvajajo diski Blu-ray. Meniji diska še niso v celoti podprti, zato lahko povzročajo težave."
+
 msgctxt "#38010"
 msgid "GPU accelerated"
 msgstr "Pospešeno z GPU"
diff --git a/language/Spanish (Argentina)/strings.po b/language/Spanish (Argentina)/strings.po
index 1ef95ed..4b3d874 100644
--- a/language/Spanish (Argentina)/strings.po	
+++ b/language/Spanish (Argentina)/strings.po	
@@ -5803,7 +5803,7 @@ msgstr "Sonidos de Navegación"
 
 msgctxt "#15109"
 msgid "Skin default"
-msgstr "Skin Por defecto"
+msgstr "Original de skin"
 
 msgctxt "#15110"
 msgid "Larger font size"
@@ -8959,7 +8959,7 @@ msgstr "Descargar fanart"
 
 msgctxt "#20414"
 msgid "Show fanart in video and music libraries"
-msgstr "Mostrar fanarts en COlecciones de música y video "
+msgstr "Mostrar fanarts en Colecciones de música y video "
 
 msgctxt "#20415"
 msgid "Scanning for new content"
@@ -9039,7 +9039,7 @@ msgstr "Extraer los metadatos de información del medio"
 
 msgctxt "#20434"
 msgid "Sets"
-msgstr "Colecciones"
+msgstr "Sets"
 
 msgctxt "#20435"
 msgid "Combine split video items"
@@ -9131,7 +9131,7 @@ msgstr "Ignorar la jerarquía de la Colección"
 
 msgctxt "#20457"
 msgid "Movie set"
-msgstr "Colección de películas"
+msgstr "'Set' de películas"
 
 msgctxt "#20458"
 msgid "Group movies in sets"
@@ -9163,15 +9163,15 @@ msgstr "Seleccionar %s"
 
 msgctxt "#20465"
 msgid "Manage movie set"
-msgstr "Administrar Colección de películas"
+msgstr "Administrar 'set' de películas"
 
 msgctxt "#20466"
 msgid "Select movie set"
-msgstr "Seleccionar set de películas"
+msgstr "Seleccionar 'set' de películas"
 
 msgctxt "#20467"
 msgid "No set (Remove from %s)"
-msgstr "No establecido (Remover de %s)"
+msgstr "Eliminiar de 'set' %s"
 
 msgctxt "#20468"
 msgid "Add movie to a new set"
@@ -9371,7 +9371,7 @@ msgstr "Sombreado de píxeles de alta calidad v2"
 
 msgctxt "#21398"
 msgid "Enable playlist at startup"
-msgstr "Habilitar la lista de reproducción al inicio"
+msgstr "Activar una lista de reproducción al inicio"
 
 msgctxt "#21399"
 msgid "Use tween animations"
diff --git a/language/Tajik/strings.po b/language/Tajik/strings.po
index 613591e..751dc87 100644
--- a/language/Tajik/strings.po
+++ b/language/Tajik/strings.po
@@ -389,6 +389,10 @@ msgctxt "#121"
 msgid "Confirm file move"
 msgstr "Тасдиқи интиқолдиҳии файл"
 
+msgctxt "#122"
+msgid "Confirm delete"
+msgstr "Тасдиқи несткунӣ"
+
 msgctxt "#123"
 msgid "Copy these files?"
 msgstr "Файлҳои зеринро нусхабардорӣ мекунед?"
@@ -685,6 +689,10 @@ msgctxt "#199"
 msgid "Web interface"
 msgstr "Интерфейси веб"
 
+msgctxt "#200"
+msgid "Audio encoders"
+msgstr "Рамзгузори аудиоӣ"
+
 msgctxt "#202"
 msgid "Tagline"
 msgstr "Шиор"
@@ -845,6 +853,10 @@ msgctxt "#245"
 msgid "Sizing: (%i,%i)->(%i,%i) (Zoom x%2.2f) AR:%2.2f:1 (Pixels: %2.2f:1) (VShift: %2.2f)"
 msgstr "Андоза: (%i,%i)->(%i,%i) (Танзими андоза x%2.2f) Таносуб:%2.2f:1 (Пиксел: %2.2f:1) (Ҷойгардонии амудӣ: %2.2f)"
 
+msgctxt "#246"
+msgid "Monitor"
+msgstr "Монитор"
+
 msgctxt "#247"
 msgid "Scripts"
 msgstr "Скриптҳо"
@@ -1085,6 +1097,10 @@ msgctxt "#309"
 msgid "User interface language"
 msgstr "Забони интерфейси корбар"
 
+msgctxt "#310"
+msgid "Keyboard layouts"
+msgstr "Тарҳбандии клавиатура"
+
 msgctxt "#312"
 msgid "(0=auto)"
 msgstr "(0=худкор)"
diff --git a/language/Thai/strings.po b/language/Thai/strings.po
index 3baa6e9..b2badf1 100644
--- a/language/Thai/strings.po
+++ b/language/Thai/strings.po
@@ -1223,7 +1223,7 @@ msgstr "เล่นแผ่น"
 
 msgctxt "#342"
 msgid "Movies"
-msgstr "ภาพยนต์"
+msgstr "ภาพยนตร์"
 
 msgctxt "#343"
 msgid "Adjust framerate"
@@ -1575,7 +1575,7 @@ msgstr "ไม่มีแคช"
 
 msgctxt "#432"
 msgid "Remove movie from library"
-msgstr "ลบภาพยนต์ จาก คลังข้อมูล"
+msgstr "ลบภาพยนตร์ จาก คลังข้อมูล"
 
 msgctxt "#433"
 msgid "Really remove '%s'?"
@@ -3265,6 +3265,10 @@ msgctxt "#1378"
 msgid "Intensity"
 msgstr "ความหนาแน่น"
 
+msgctxt "#1379"
+msgid "Ragged"
+msgstr "ไม่สม่ำเสมอ"
+
 msgctxt "#1380"
 msgid "Very"
 msgstr "มาก"
@@ -3871,7 +3875,7 @@ msgstr "ข้อมูลอัลบั้ม"
 
 msgctxt "#10524"
 msgid "Movie info"
-msgstr "ข้อมูลภาพยนต์"
+msgstr "ข้อมูลภาพยนตร์"
 
 msgctxt "#12000"
 msgid "Select dialogue"
@@ -4827,7 +4831,7 @@ msgstr "ปิด LED ขณะเล่น"
 
 msgctxt "#13346"
 msgid "Movie information"
-msgstr "ข้อมูลภาพยนต์"
+msgstr "ข้อมูลภาพยนตร์"
 
 msgctxt "#13347"
 msgid "Queue item"
@@ -5887,7 +5891,7 @@ msgstr "ป้อนชื่อเรื่องใหม่"
 
 msgctxt "#16009"
 msgid "Enter the movie name"
-msgstr "ป้อนชื่อภาพยนต์"
+msgstr "ป้อนชื่อภาพยนตร์"
 
 msgctxt "#16010"
 msgid "Enter the profile name"
@@ -7367,7 +7371,7 @@ msgstr "อื่น ๆ / ไม่ทราบ"
 
 msgctxt "#19500"
 msgid "Movie/Drama"
-msgstr "ภาพยนต์/ละครชีวิต"
+msgstr "ภาพยนตร์/ละครชีวิต"
 
 msgctxt "#19501"
 msgid "Detective/Thriller"
@@ -8655,7 +8659,7 @@ msgstr "นักแสดง"
 
 msgctxt "#20338"
 msgid "Movie"
-msgstr "ภาพยนต์"
+msgstr "ภาพยนตร์"
 
 msgctxt "#20339"
 msgid "Director"
@@ -8671,7 +8675,7 @@ msgstr "เส้นทางนี้ออกจากคลังข้อม
 
 msgctxt "#20342"
 msgid "Movies"
-msgstr "ภาพยนต์"
+msgstr "ภาพยนตร์"
 
 msgctxt "#20343"
 msgid "TV shows"
@@ -9035,7 +9039,7 @@ msgstr "แยกรูปย่อและข้อมูลวิดีโอ
 
 msgctxt "#20434"
 msgid "Sets"
-msgstr "ตั้งค่า"
+msgstr "ชุด"
 
 msgctxt "#20435"
 msgid "Combine split video items"
@@ -9243,7 +9247,7 @@ msgstr "โฟลเดอร์คำบรรยายที่กำหนด
 
 msgctxt "#21367"
 msgid "Movie & alternate subtitle directory"
-msgstr "ไดเร็กทอรี่ภาพยนต์ & คำบรรยายสำรอง"
+msgstr "ไดเร็กทอรี่ภาพยนตร์ & คำบรรยายสำรอง"
 
 msgctxt "#21368"
 msgid "Override ASS/SSA subtitles fonts"
@@ -9427,7 +9431,7 @@ msgstr "ตัวดึงข้อมูล"
 
 msgctxt "#21413"
 msgid "Default movie scraper"
-msgstr "ค่าเริ่มต้น ตัวดึงข้อมูลของภาพยนต์"
+msgstr "ค่าเริ่มต้น ตัวดึงข้อมูลของภาพยนตร์"
 
 msgctxt "#21414"
 msgid "Default tvshow scraper"
@@ -10199,7 +10203,7 @@ msgstr "แหล่งข้อมูลสื่อ"
 
 msgctxt "#24007"
 msgid "Movie information"
-msgstr "ข้อมูลภาพยนต์"
+msgstr "ข้อมูลภาพยนตร์"
 
 msgctxt "#24008"
 msgid "Screensaver"
@@ -12797,6 +12801,10 @@ msgctxt "#36527"
 msgid "Select playback mode"
 msgstr "เลือกโหมดการเล่น"
 
+msgctxt "#36528"
+msgid "Select stereoscopic 3D mode"
+msgstr "เลือก โหมดกวรแยกภาพ 3 มิติ"
+
 msgctxt "#36531"
 msgid "Select alternate mode..."
 msgstr "เลือกโหมดอื่น..."
@@ -12805,10 +12813,38 @@ msgctxt "#36532"
 msgid "Same as movie"
 msgstr "แบบเดียวกับภาพยนตร์"
 
+msgctxt "#36533"
+msgid "Select how audio is downmixed, for example from 5.1 to 2.0: [Enabled] maintains volume level of the original audio source however the dynamic range is compressed. [Disabled] maintains the dynamic range of the original audio source when downmixed however volume will be lower. Note - Dynamic range is the difference between the quietest and loudest sounds in an audio source. Enable this setting if movie dialogues are barely audible."
+msgstr "เลือกวิธีการรวมช่องสัญญาณเสียง, ตัวอย่างเช่น จาก 5.1 ไปยัง 2.0: [เปิดใช้งาน] รักษาระดับความดังของแหล่งเสียงเดิม แม้ว่าช่วงไดนามิกได้ถูกบีบอัด [ปิดใช้งาน] รักษาไดนามิกของแหล่งเสียงเดิมเมื่อรวมช่องเสียง แม้ว่าความดังจะลดลง. หมายเหตุ - ช่วงไดนามิกคือความแตกต่างระหว่างเสียงเงียบที่สุดและดังที่สุดในเสียงต้นฉบับ เปิดใช้งานการตั้งค่านี้ถ้าการสนทนาในภาพยนตร์เบาเกินไป"
+
+msgctxt "#36534"
+msgid "Specify additional libraries whose log messages are to be included in the log."
+msgstr "ระบุคลังข้อมูลเพิ่มเติม ที่ข้อความจะถูกรวมเข้าในบันทึกการแก้ไขจุดบกพร่อง."
+
+msgctxt "#36535"
+msgid "Stereoscopic 3D mode of video"
+msgstr "โหมดการแยกภาพ 3 มิติ ของวิดีโอ"
+
+msgctxt "#36536"
+msgid "Invert Stereoscopic 3D mode (flip eyes)"
+msgstr "กลับโหมดการแยกภาพ 3 มิติ (สลับสายตา)"
+
+msgctxt "#36537"
+msgid "Select in which mode stereoscopic 3D videos will be played. [Ask me] will show a dialog to select the desired mode for each playback. [Preferred mode] will use of the preferred mode specified in the 'System -> Video Hardware' section of the settings. [Monoscopic (2D)] will play the video in mono/2D. [Ignore] disables any stereoscopic 3D processing and handling"
+msgstr "เลือกโหมดการแยกภาพวิดีโอ 3 มิติ ที่จะเล่น [ถามฉัน] จะแสดงโต้ตอบเพื่อเลือกโหมดที่ต้องการสำหรับการเล่นแต่ละครั้ง [โหมดที่ต้องการ] จะใช้โหมดที่ต้องการที่ระบุไว้ใน 'ระบบ ->วิดีโอ  ฮาร์ดแวร์' ในส่วนของ การตั้งค่า [ภาพเดียว (2 มิติ)] จะแบ่งเล่นวิดีโอในแบบภาพเดียว/2มิติ [ละเว้น] ปิดการใช้งานการประมวลผลและการจัดการ ในการแยกภาพ 3 มิติ ทุกอย่าง"
+
+msgctxt "#36538"
+msgid "[Enabled] Switch GUI (and some TVs) back to 2D mode when playback ended. [Disabled] GUI and TV will stay in stereoscopic 3D mode. For video playlists the stereoscopic 3D mode won't change between videos, not even for non stereoscopic ones."
+msgstr "[เปิดใช้งาน] สลับ GUI (และทีวีบางรุ่น) กลับไปเป็นโหมด 2 มิติ เมื่อจบการเล่น [ปิดใช้งาน] GUI และทีวีจะอยู่ในโหมด 3 สามมิติ สำหรับรายการเล่นวิดีโอ โหมดการแยกภาพ 3 สามมิติ ซึ่งจะไม่เปลี่ยนระหว่างแฟ้มวิดีโอ ไม่เว้นแม้อันที่ไม่เป็นการแยกภาพสามมิติ"
+
 msgctxt "#36539"
 msgid "Changes the stereoscopic 3D mode of the user interface."
 msgstr "เปลี่ยนโหมดการแสดงผล 3 มิติ ของส่วนติดต่อผู้ใช้."
 
+msgctxt "#36540"
+msgid "The preferred mode in which stereoscopic 3D media such as videos should be played."
+msgstr "กำหนดเลือก โหมดที่ใช้แยกภาพสื่อ 3 มิติ อย่างเช่นวิดีโอที่จะเล่น"
+
 msgctxt "#36541"
 msgid "Allows volume control from AirPlay clients."
 msgstr "อนุญาตให้มีการควบคุมระดับเสียง จากลูกข่าย AirPlay."
@@ -12825,6 +12861,10 @@ msgctxt "#36544"
 msgid "Enable hardware decoding of video files."
 msgstr "เปิดใช้งาน การถอดรหัสด้วยฮาร์ดแวร์สำหรับไฟล์วิดีโอ."
 
+msgctxt "#36545"
+msgid "Stereoscopic 3D depth of subtitles"
+msgstr "ความลึกในการแยกภาพแบบ 3 มิติ ของคำบรรยาย"
+
 msgctxt "#36546"
 msgid "Sets the visual depth of subtitles for stereoscopic 3D videos. The higher the value, the closer the subtitles will appear to the viewer."
 msgstr "กำหนดความลึกเสมือนของคำบรรยาย สำหรับวิดีโอแบบ 3 มิติ. ค่าที่สูงขึ้น, จะทำให้คำบรรยายปรากฎใกล้ขึ้นในมุมมอง."
@@ -12833,6 +12873,14 @@ msgctxt "#36547"
 msgid "Use higher quality textures for covers and fanart (uses more memory)"
 msgstr "ใช้พื้นผิวคุณภาพสูงขึ้น สำหรับปกและแฟนอาร์ต (ใช้หน่วยความจำมากขึ้น)"
 
+msgctxt "#36548"
+msgid "Limits resolution of GUI to save memory. Does not affect video playback. Requires restart."
+msgstr "จำกัดความละเอียดของ GUI เพื่อประหยัดหน่วยความจำ. ไม่ส่งผลกับการเล่นวิดีโอ. จำเป็นต้องเริ่มระบบใหม่."
+
+msgctxt "#36549"
+msgid "Use iOS8 compatible AirPlay support. If you have trouble with older iOS devices detecting Kodi as a valid target try switching this off. This option takes effect on the next restart of Kodi only!"
+msgstr "ใช้ การสนับสนุน iOS8 ในการรองรับ AirPlay หากคุณมีปัญหากับอุปกรณ์ iOS ที่เก่ากว่า ในการตรวจหา Kodi เป็นเป้าหมายที่ถูกต้อง ลองปิดตัวเลือกนี้ออกตัวเลือกนี้จะมีผลด้วยการเริ่ม Kodi ใหม่เท่านั้น!"
+
 msgctxt "#36600"
 msgid "Category containing the settings for how the music library is handled."
 msgstr "หมวดหมู่ที่ประกอบด้วยการตั้งค่า สำหรับวิธีจัดการ คลังข้อมูลเพลง."
@@ -12865,6 +12913,14 @@ msgctxt "#36903"
 msgid "TV shows"
 msgstr "รายการทีวี"
 
+msgctxt "#36904"
+msgid "season"
+msgstr "ฤดู"
+
+msgctxt "#36905"
+msgid "seasons"
+msgstr "ฤดู"
+
 msgctxt "#36906"
 msgid "episode"
 msgstr "ตอน"
@@ -12873,13 +12929,21 @@ msgctxt "#36907"
 msgid "episodes"
 msgstr "ตอน"
 
+msgctxt "#36908"
+msgid "musicvideo"
+msgstr "วิดีโอเพลง"
+
+msgctxt "#36909"
+msgid "musicvideos"
+msgstr "วิดีโอเพลง"
+
 msgctxt "#36910"
 msgid "set"
 msgstr "ตั้งค่า"
 
 msgctxt "#36911"
 msgid "sets"
-msgstr "ตั้งค่า"
+msgstr "ชุด"
 
 msgctxt "#36912"
 msgid "video"
@@ -12985,6 +13049,10 @@ msgctxt "#37024"
 msgid "Select this if the audio out connection only supports multichannel audio as Dolby Digital 5.1, this allows multichannel audio such as AAC5.1 or FLAC5.1 to be listened to in 5.1 surround sound. Note - Not recommended on Pi as this requires a lot of CPU."
 msgstr "เลือกส่วนนี้ ถ้าการเชื่อมต่อสัญญาณเสียงออก รองรับการเชื่อมต่อหลายช่องสัญญาณเสียงแบบ Dolby Digital 5.1 เท่านั้น, ซึ่งจะทำให้เสียงหลายช่องสัญญาณ เช่น AAC5.1 or FLAC5.1 สามารถรับฟังได้ในแบบ 5.1 รอบทิศทาง. ข้อควรจำ - ไม่แนะนำในการใช้งานบน Pi เพราะต้องใช้ซีพียูบางส่วน."
 
+msgctxt "#37025"
+msgid "Configure audio encoder settings such as quality and compression level"
+msgstr "กำหนดการตั้งค่าตัวเข้ารหัสเสียง อย่างเช่นคุณภาพและระดับการบีบอัด"
+
 msgctxt "#37026"
 msgid "Auto"
 msgstr "อัตโนมัติ"
@@ -13000,3 +13068,15 @@ msgstr "720"
 msgctxt "#37029"
 msgid "900"
 msgstr "900"
+
+msgctxt "#37030"
+msgid "Unlimited"
+msgstr "ไม่จำกัด"
+
+msgctxt "#37031"
+msgid "Specifies how Blu-rays should be opened/played back. Disc menus are not fully supported yet and may cause problems."
+msgstr "กำหนดวิธีการที่ Blu-rays จะถูกเปิด/เล่นกลับ เมนูของแผ่นดิสค์ขณะนี้ยังไม่รองรับโดยสมบูรณ์ และอาจสร้างปัญหาได้"
+
+msgctxt "#38010"
+msgid "GPU accelerated"
+msgstr "เร่งความเร็ว GPU แล้ว"
diff --git a/language/Turkish/strings.po b/language/Turkish/strings.po
index 0b6e3a5..9efb24f 100644
--- a/language/Turkish/strings.po
+++ b/language/Turkish/strings.po
@@ -10227,7 +10227,7 @@ msgstr "Altyazılar"
 
 msgctxt "#24013"
 msgid "Lyrics"
-msgstr "Şakı Sözleri"
+msgstr "Şarkı Sözleri"
 
 msgctxt "#24014"
 msgid "TV information"
@@ -11307,7 +11307,7 @@ msgstr "Ekran koruyucu devreye girince aygıtı bekleme moduna geçir"
 
 msgctxt "#36010"
 msgid "Wake devices when deactivating screensaver"
-msgstr "Ekran koruyucuyu kapatır iken aygıtları uyanıdır"
+msgstr "Ekran koruyucuyu kapatırken aygıtları uyandır"
 
 msgctxt "#36011"
 msgid "Could not detect the CEC com port. Set it up manually."
@@ -11671,7 +11671,7 @@ msgstr "Piksel arabelleği nesnelerini kullanarak video dosyalarının kod çöz
 
 msgctxt "#36164"
 msgid "Allow the refresh rate of the display to be changed so that it best matches the video frame rate. This may yield smoother video playback."
-msgstr "Ekranın yenileme hızını video kare hızı ile en iyi eşleşecek şekilde değiştirilmesine izin. Bu daha yumuşak video oynatımı sağlar."
+msgstr "Ekranın yenileme hızını video kare hızı ile en iyi eşleşecek şekilde değiştirilmesine izin ver. Bu daha yumuşak video oynatımı sağlar."
 
 msgctxt "#36165"
 msgid "Pause for a small amount of time during a refresh rate change."
@@ -13031,7 +13031,7 @@ msgstr "Downmix yaparken orta kanalı artır."
 
 msgctxt "#37020"
 msgid "Enable higher colour depth artwork"
-msgstr "Daha yüksek artwork renk derinliğini etkinleştir"
+msgstr "Daha yüksek çizim renk derinliğini etkinleştir"
 
 msgctxt "#37021"
 msgid "Set GUI resolution limit"
diff --git a/language/Welsh/strings.po b/language/Welsh/strings.po
index 51a015d..7e44dfd 100644
--- a/language/Welsh/strings.po
+++ b/language/Welsh/strings.po
@@ -2473,6 +2473,10 @@ msgctxt "#679"
 msgid "Verbose logging for CEC library"
 msgstr "Cofnodi hyglyw ar gyfer llyfrgell CEC"
 
+msgctxt "#680"
+msgid "Verbose logging for VIDEO component"
+msgstr "Cofnodi llawn cydran VIDEO"
+
 msgctxt "#700"
 msgid "Cleaning up library"
 msgstr "Glanhau'r llyfrgell"
@@ -3245,6 +3249,30 @@ msgctxt "#1301"
 msgid "Custom passthrough device"
 msgstr "Dyfais hebrwng cyfaddas"
 
+msgctxt "#1375"
+msgid "Temperature"
+msgstr "Tymheredd"
+
+msgctxt "#1376"
+msgid "Pressure"
+msgstr "Pwysedd"
+
+msgctxt "#1377"
+msgid "Proximity"
+msgstr "Agosrwydd"
+
+msgctxt "#1378"
+msgid "Intensity"
+msgstr "Dwyster"
+
+msgctxt "#1379"
+msgid "Ragged"
+msgstr "Blêr"
+
+msgctxt "#1380"
+msgid "Very"
+msgstr "Iawn"
+
 msgctxt "#1381"
 msgid "Extreme"
 msgstr "Eithafol"
@@ -3253,10 +3281,30 @@ msgctxt "#1382"
 msgid "Whirls"
 msgstr "Chwyrliau"
 
+msgctxt "#1383"
+msgid "Sky Is Clear"
+msgstr "Awyr yn Glir"
+
 msgctxt "#1384"
 msgid "Broken"
 msgstr "Wedi Torri"
 
+msgctxt "#1385"
+msgid "Tornado"
+msgstr "Tornado"
+
+msgctxt "#1386"
+msgid "Tropical"
+msgstr "Trofannol"
+
+msgctxt "#1387"
+msgid "Hurricane"
+msgstr "Corwynt"
+
+msgctxt "#1388"
+msgid "Cold"
+msgstr "Oer"
+
 msgctxt "#1389"
 msgid "Windy"
 msgstr "Gwyntog"
@@ -3265,6 +3313,26 @@ msgctxt "#1390"
 msgid "Settings"
 msgstr "Gosodiadau"
 
+msgctxt "#1391"
+msgid "Breeze"
+msgstr "Awel"
+
+msgctxt "#1392"
+msgid "Gentle"
+msgstr "Ysgafn"
+
+msgctxt "#1393"
+msgid "High wind, near gale"
+msgstr "Gwynt mawr, bron yn dymestl"
+
+msgctxt "#1394"
+msgid "Severe"
+msgstr "Gerwin"
+
+msgctxt "#1395"
+msgid "Violent"
+msgstr "Mawr"
+
 msgctxt "#1396"
 msgid "Drifting"
 msgstr "Symud yn araf"
@@ -5665,6 +5733,14 @@ msgctxt "#14102"
 msgid "Blu-ray playback mode"
 msgstr "Modd chwarae Blu-ray"
 
+msgctxt "#14103"
+msgid "Play main movie"
+msgstr "Chwarae'r prif ffilm"
+
+msgctxt "#14104"
+msgid "Show simplified menu"
+msgstr "Dangos y ddewislen syml"
+
 msgctxt "#15012"
 msgid "Unavailable source"
 msgstr "Ffynhonnell ddim ar gael"
@@ -6109,6 +6185,34 @@ msgctxt "#16326"
 msgid "DXVA-HD"
 msgstr "DXVA-HD"
 
+msgctxt "#16327"
+msgid "VAAPI Bob"
+msgstr "Bob VAAPI"
+
+msgctxt "#16328"
+msgid "VAAPI Motion Adaptive"
+msgstr "Mudiant Addasol VAAPI"
+
+msgctxt "#16329"
+msgid "VAAPI Motion Compensated"
+msgstr "Digolledu Symudedd VAAPI"
+
+msgctxt "#16330"
+msgid "MMAL - Advanced"
+msgstr "MMAL - Uwch"
+
+msgctxt "#16331"
+msgid "MMAL - Advanced (Half)"
+msgstr "MAAL - Uwch (Hanner)"
+
+msgctxt "#16332"
+msgid "MMAL - Bob"
+msgstr "MMAL - Bob"
+
+msgctxt "#16333"
+msgid "MMAL - Bob (Half)"
+msgstr "MMAL - Bob (Hanner)"
+
 msgctxt "#16400"
 msgid "Post-processing"
 msgstr "Ôl-brosesu"
@@ -7201,6 +7305,10 @@ msgctxt "#19273"
 msgid "Add-on for the backend to be able to use PVR."
 msgstr "Ychwanegyn ar gyfer y offer cefn er mwyn defnyddio'r Recordydd."
 
+msgctxt "#19274"
+msgid "Please visit http://kodi.wiki/view/PVR to learn more."
+msgstr "Ewch i http://kodi.wiki/view/PVR i ddysgu rhagor."
+
 msgctxt "#19275"
 msgid "Conflict warning"
 msgstr "Rhybudd gwrthdaro"
@@ -8421,6 +8529,10 @@ msgctxt "#20261"
 msgid "Apple Filing Protocol (AFP)"
 msgstr "Protocol Ffeilio Apple (AFP)"
 
+msgctxt "#20262"
+msgid "Zeroconf Browser"
+msgstr "Porwr Zeroconf"
+
 msgctxt "#20300"
 msgid "Web server directory (HTTP)"
 msgstr "Cyfeiriadur gweinydd gwe (HTTP)"
@@ -10521,6 +10633,10 @@ msgctxt "#24127"
 msgid "Automatically download first subtitle from the search result list"
 msgstr "Llwytho'r isdeitl cyntaf yn awtomatig o'r rhestr canlyniadau chwilio"
 
+msgctxt "#24128"
+msgid "Configuration has been moved"
+msgstr "Mae'r ffurfweddiad wedi symud"
+
 msgctxt "#25000"
 msgid "Notifications"
 msgstr "Hysbysiadau"
diff --git a/lib/asap/win32/Makefile b/lib/asap/win32/Makefile
deleted file mode 100644
index 9cccbda..0000000
--- a/lib/asap/win32/Makefile
+++ /dev/null
@@ -1,344 +0,0 @@
-VERSION = 2.0.0
-
-# gcc for most ports
-ASAP_GCC = mingw32-gcc -s -O2 -Wall -o $@ -I. -I..
-ASAP_GPP = mingw32-g++ -s -O2 -Wall -o $@ -I. -I..
-WINDRES = windres -o $@
-LIB_GCC = mingw32-gcc -O2 -Wall -I..
-AR = ar rc
-
-# Microsoft compiler for Windows Media Player and foobar2000
-DSHOW_BASECLASSES_DIR = "C:/Program Files/Microsoft SDKs/Windows/v6.1/Samples/Multimedia/DirectShow/BaseClasses"
-FOOBAR2000_SDK_DIR = ../../foobar2000_SDK
-CL = cl -nologo -O2 -GL -GR- -GS- -W3 -wd4996 -DNDEBUG
-LINKOPT = -link -release
-MKLIB = lib -nologo -ltcg -out:$@
-ASAP_CL = $(CL) -Fe$@ -I. -I..
-
-# old Microsoft compiler for XBMC plugin
-ASAP_CL71 = cl -nologo -O2 -GL -GR- -W3 -DNDEBUG -Fe$@ -I. -I..
-
-# common tools
-PERL = perl
-RM = rm -f
-CP = cp -f
-UNIX2DOS = unix2dos
-ASCIIDOC = asciidoc -o $@ -a localtime -a doctime
-ASCIIDOC_POSTPROCESS = $(PERL) -pi.bak -e "s/527bbd;/c02020;/;END{unlink '$@.bak'}" $@
-ASCIIDOC_VALIDATE = xmllint --valid --noout --nonet $@
-SEVENZIP = 7z a -mx=9
-GREP = grep
-CANDLE = candle -nologo -o $@
-LIGHT = light -nologo -o $@
-
-COMMON_C = ../asap.c ../acpu.c ../apokeysnd.c
-COMMON_H = ../asap.h ../asap_internal.h ../anylang.h ../players.h
-
-all: mingw dsf foo asap.lib
-
-win32: mingw dsf foo xbmc COPYING.txt
-
-mingw: asap2wav.exe wasap.exe in_asap.dll gspasap.dll ASAP_Apollo.dll apokeysnd.dll asapscan.exe libasap.a
-
-include ../players/Makefile
-
-# ASAP2WAV
-
-asap2wav.exe: ../asap2wav.c $(COMMON_C) $(COMMON_H)
-	$(ASAP_GCC) ../asap2wav.c $(COMMON_C)
-
-# WASAP
-
-wasap.exe: wasap/wasap.c $(COMMON_C) gui.c wasap/wasap-res.o $(COMMON_H) gui.h
-	$(ASAP_GCC) -Wl,-subsystem,windows -DWASAP wasap/wasap.c $(COMMON_C) gui.c wasap/wasap-res.o -lcomdlg32 -lwinmm
-
-wasap/wasap-res.o: gui.rc ../asap.h gui.h wasap/wasap.ico wasap/play.ico wasap/stop.ico
-	$(WINDRES) -DWASAP gui.rc
-
-# Winamp
-
-in_asap.dll: winamp/in_asap.c $(COMMON_C) gui.c winamp/in_asap-res.o $(COMMON_H) gui.h winamp/in2.h winamp/ipc_pe.h winamp/wa_ipc.h
-	$(ASAP_GCC) -shared -Wl,-subsystem,windows -DWINAMP winamp/in_asap.c $(COMMON_C) gui.c winamp/in_asap-res.o -lcomdlg32
-
-winamp/in_asap-res.o: gui.rc ../asap.h gui.h
-	$(WINDRES) -DWINAMP gui.rc
-
-# foobar2000
-
-foo: foo_asap.dll
-
-FOOBAR2000_RUNTIME = $(FOOBAR2000_SDK_DIR)/foobar2000/foobar2000_component_client/component_client.cpp foobar2000/foobar2000_SDK.lib foobar2000/pfc.lib $(FOOBAR2000_SDK_DIR)/foobar2000/shared/shared.lib
-
-foo_asap.dll: foobar2000/foo_asap.cpp $(COMMON_C) foobar2000/foo_asap.res $(COMMON_H) gui.h $(FOOBAR2000_RUNTIME)
-	$(ASAP_CL) -Fofoobar2000/ -DFOOBAR2000 -LD -DWIN32 -DUNICODE -EHsc -I$(FOOBAR2000_SDK_DIR) foobar2000/foo_asap.cpp $(COMMON_C) foobar2000/foo_asap.res $(FOOBAR2000_RUNTIME) user32.lib $(LINKOPT)
-
-foobar2000/foobar2000_SDK.lib: foobar2000/abort_callback.obj foobar2000/audio_chunk.obj foobar2000/audio_chunk_channel_config.obj foobar2000/file_info.obj foobar2000/filesystem.obj foobar2000/guids.obj foobar2000/mem_block_container.obj foobar2000/preferences_page.obj foobar2000/replaygain_info.obj foobar2000/service.obj
-	$(MKLIB) $^
-
-foobar2000/%.obj: $(FOOBAR2000_SDK_DIR)/foobar2000/SDK/%.cpp
-	$(CL) -c -Fo$@ -DWIN32 -DUNICODE -EHsc -I$(FOOBAR2000_SDK_DIR) $<
-
-foobar2000/pfc.lib: foobar2000/cfg_var.obj foobar2000/guid.obj foobar2000/other.obj foobar2000/string.obj foobar2000/string_conv.obj foobar2000/utf8.obj
-	$(MKLIB) $^
-
-foobar2000/%.obj: $(FOOBAR2000_SDK_DIR)/pfc/%.cpp
-	$(CL) -c -Fo$@ -DWIN32 -DUNICODE -EHsc $<
-
-foobar2000/foo_asap.res: gui.rc ../asap.h gui.h
-	$(WINDRES) -DFOOBAR2000 gui.rc
-
-# GSPlayer
-
-gspasap.dll: ../gsplayer/gspasap.c $(COMMON_C) gui.c gspasap-res.o $(COMMON_H) gui.h
-	$(ASAP_GCC) -shared -Wl,-subsystem,windows -Wl,--kill-at -DGSPLAYER ../gsplayer/gspasap.c $(COMMON_C) gui.c gspasap-res.o
-
-gspasap-res.o: gui.rc ../asap.h gui.h
-	$(WINDRES) -DGSPLAYER gui.rc
-
-# GSPlayer - Windows CE
-
-wince:
-	$(MAKE) -C ../gsplayer
-
-# DirectShow
-
-dsf: asap_dsf.dll
-
-DSHOW_BASECLASSES = $(DSHOW_BASECLASSES_DIR)/amfilter.cpp $(DSHOW_BASECLASSES_DIR)/combase.cpp $(DSHOW_BASECLASSES_DIR)/dllentry.cpp $(DSHOW_BASECLASSES_DIR)/dllsetup.cpp $(DSHOW_BASECLASSES_DIR)/mtype.cpp $(DSHOW_BASECLASSES_DIR)/source.cpp $(DSHOW_BASECLASSES_DIR)/wxlist.cpp $(DSHOW_BASECLASSES_DIR)/wxutil.cpp
-
-asap_dsf.dll: dshow/asap_dsf.cpp $(COMMON_C) dshow/asap_dsf.res dshow/asap_dsf.def $(COMMON_H)
-	$(ASAP_CL) -Fodshow/ -DDSHOW -LD -I$(DSHOW_BASECLASSES_DIR) dshow/asap_dsf.cpp $(COMMON_C) $(DSHOW_BASECLASSES) dshow/asap_dsf.res dshow/asap_dsf.def advapi32.lib ole32.lib oleaut32.lib strmiids.lib user32.lib winmm.lib $(LINKOPT)
-
-dshow/asap_dsf.res: gui.rc ../asap.h
-	$(WINDRES) -DDSHOW gui.rc
-
-# Apollo
-
-ASAP_Apollo.dll: apollo/ASAP_Apollo.cpp $(COMMON_C) gui.c ASAP_Apollo-res.o $(COMMON_H) gui.h
-	$(ASAP_GPP) -shared -Wl,-subsystem,windows -DAPOLLO apollo/ASAP_Apollo.cpp $(COMMON_C) gui.c ASAP_Apollo-res.o -lcomdlg32
-
-ASAP_Apollo-res.o: gui.rc ../asap.h gui.h
-	$(WINDRES) -DAPOLLO gui.rc
-
-# XBMC
-
-xbmc: xbmc_asap.dll
-
-xbmc_asap.dll: ../xbmc/xbmc_asap.c $(COMMON_C) ../xbmc/xbmc_asap.res $(COMMON_H)
-	$(ASAP_CL71) -Fo../xbmc/ -LD -MD ../xbmc/xbmc_asap.c $(COMMON_C) ../xbmc/xbmc_asap.res $(LINKOPT)
-
-../xbmc/xbmc_asap.res: gui.rc ../asap.h
-	$(WINDRES) -DXBMC gui.rc
-
-# APokeySound
-
-apokeysnd.dll: ../apokeysnd.c apokeysnd-res.o ../asap.h ../asap_internal.h ../anylang.h
-	$(ASAP_GCC) -shared -Wl,-subsystem,windows -DAPOKEYSND ../apokeysnd.c apokeysnd-res.o
-
-apokeysnd-res.o: gui.rc ../asap.h
-	$(WINDRES) -DAPOKEYSND gui.rc
-
-# asapscan
-
-asapscan.exe: ../asapscan.c $(COMMON_C) $(COMMON_H)
-	$(ASAP_GCC) -DASAPSCAN ../asapscan.c $(COMMON_C)
-
-# library
-
-asap.lib: $(COMMON_C) $(COMMON_H)
-	$(CL) -c $(COMMON_C)
-	$(MKLIB) asap.obj acpu.obj apokeysnd.obj
-
-libasap.a: $(COMMON_C) $(COMMON_H)
-	$(LIB_GCC) -c $(COMMON_C)
-	$(AR) $@ asap.o acpu.o apokeysnd.o
-
-# Java
-
-java:
-	$(MAKE) -C ../java
-
-# C#
-
-csharp:
-	$(MAKE) -C ../csharp
-
-# JavaScript
-
-javascript:
-	$(MAKE) -C ../javascript
-
-# Flash
-
-flash:
-	$(MAKE) -C ../flash
-
-# delete generated files
-
-clean:
-	$(RM) *.txt *.html *.dll *.exe *.obj *.exp *.lib *.res *.o
-	$(RM) setup/asap.wixobj
-	$(RM) libasap.a
-	$(RM) wasap/wasap-res.o wasap.exe
-	$(RM) winamp/in_asap-res.o in_asap.dll
-	$(RM) foobar2000/*.obj foobar2000/*.lib foobar2000/foo_asap.res
-	$(RM) dshow/*.obj dshow/asap_dsf.res
-	$(RM) ../xbmc/*.obj ../xbmc/xbmc_asap.res
-	$(RM) install_dsf.bat uninstall_dsf.bat
-	$(RM) ../players/*.obx ../players.h ../README.html
-	$(MAKE) -C ../csharp clean
-	$(MAKE) -C ../flash clean
-	$(MAKE) -C ../gsplayer clean
-	$(MAKE) -C ../java clean
-	$(MAKE) -C ../javascript clean
-
-# prepare files for release
-
-COPYING.txt: ../COPYING
-	$(UNIX2DOS) <$< >$@
-
-../README.html: ../README ../NEWS ../CREDITS ../INSTALL
-	$(ASCIIDOC) -a asapsrc -a asapports ../README
-	$(ASCIIDOC_POSTPROCESS)
-	$(ASCIIDOC_VALIDATE)
-
-README_Flash.html: ../README ../NEWS ../CREDITS ../flash/USAGE
-	$(ASCIIDOC) -a asapflash="(included in this binary package)" ../README
-	$(ASCIIDOC_POSTPROCESS)
-	$(ASCIIDOC_VALIDATE)
-
-README_Java.html: ../README ../NEWS ../CREDITS ../java/USAGE
-	$(ASCIIDOC) -a asapjava="(included in this binary package)" ../README
-	$(ASCIIDOC_POSTPROCESS)
-	$(ASCIIDOC_VALIDATE)
-
-README_JavaScript.html: ../README ../NEWS ../CREDITS ../javascript/USAGE
-	$(ASCIIDOC) -a asapjavascript="(included in this package)" ../README
-	$(ASCIIDOC_POSTPROCESS)
-	$(ASCIIDOC_VALIDATE)
-
-README_Windows.html: ../README ../NEWS ../CREDITS USAGE
-	$(ASCIIDOC) -a asapwin="(included in this binary package)" ../README
-	$(ASCIIDOC_POSTPROCESS)
-	$(ASCIIDOC_VALIDATE)
-
-README_WindowsSetup.html: ../README ../NEWS ../CREDITS USAGE
-	$(ASCIIDOC) -a asapwin="(included in this setup)" -a asapsetup ../README
-	$(ASCIIDOC_POSTPROCESS)
-	$(ASCIIDOC_VALIDATE)
-
-README_WindowsCE.html: ../README ../NEWS ../CREDITS ../gsplayer/USAGE
-	$(ASCIIDOC) -a asapwince="(included in this binary package)" ../README
-	$(ASCIIDOC_POSTPROCESS)
-	$(ASCIIDOC_VALIDATE)
-
-install_dsf.bat:
-	echo regsvr32 asap_dsf.dll>$@
-
-uninstall_dsf.bat:
-	echo regsvr32 /u asap_dsf.dll>$@
-
-setup: ../../asap-$(VERSION)-win32.msi
-
-../../asap-$(VERSION)-win32.msi: setup/asap.wixobj wasap/wasap.ico setup/license.rtf setup/asap-banner.jpg setup/asap-dialog.jpg setup/Website.url win32 README_WindowsSetup.html
-	$(LIGHT) -ext WixUIExtension -sice:ICE69 $<
-
-setup/asap.wixobj: setup/asap.wxs
-	$(CANDLE) -dVERSION=$(VERSION) $<
-
-srcdist: $(PLAYERS_OBX) ../README.html
-	$(RM) ../../asap-$(VERSION).tar.gz
-	$(PERL) -x.. ../maketar.pl -d asap-$(VERSION) \
-		-t asap.c asap.h asap_internal.h anylang.h acpu.c apokeysnd.c \
-		asap2wav.c asapscan.c \
-		players/cmc.asx players/cms.asx players/dlt.as8 players/mpt.asx \
-		players/rmt.asx players/tmc.asx players/tm2.asx \
-		players/Makefile Makefile \
-		ChangeLog COPYING CREDITS INSTALL NEWS README \
-		README.html PORTS.xml PORTS.xsl \
-		csharp/ASAP.ppcs csharp/asap2wav.cs csharp/Makefile \
-		flash/ASAP.ppas flash/ASAP_ModuleInfo.as flash/PokeyState.as \
-		flash/ASAPPlayer.as flash/Makefile flash/USAGE \
-		gsplayer/gspasap.c gsplayer/mapplugin.h \
-		gsplayer/Makefile gsplayer/USAGE \
-		java/ASAP.ppjava java/ASAP_ModuleInfo.java \
-		java/ASAP2WAV.java java/asap2wav.MF \
-		java/ASAPApplet.java \
-		java/ASAPMIDlet.java java/asap_midlet.MF java/mf2jad.pl \
-		java/Makefile java/USAGE \
-		javascript/asap.ppjs javascript/asap2wav.ppjs javascript/asapweb.ppjs \
-		javascript/Makefile javascript/USAGE \
-		moc/libasap_decoder.c \
-		win32/Makefile win32/USAGE \
-		win32/gui.c win32/gui.h win32/gui.rc \
-		win32/apollo/ASAP_Apollo.cpp win32/apollo/InputPlugin.h \
-		win32/dshow/asap_dsf.cpp win32/dshow/asap_dsf.def \
-		win32/foobar2000/foo_asap.cpp \
-		win32/setup/asap.wxs win32/setup/license.rtf \
-		win32/setup/Website.url win32/setup/wix_mutex.pl \
-		win32/wasap/wasap.c \
-		win32/winamp/in_asap.c \
-		win32/winamp/in2.h win32/winamp/out.h \
-		win32/winamp/ipc_pe.h win32/winamp/wa_ipc.h \
-		xbmc/xbmc_asap.c \
-		xmms/libasap-xmms.c xmms/libasap-xmms.map \
-		-b players/cmc.obx players/cm3.obx players/cms.obx players/dlt.obx players/mpt.obx \
-		players/rmt4.obx players/rmt8.obx players/tmc.obx players/tm2.obx \
-		win32/wasap/play.ico win32/wasap/stop.ico win32/wasap/wasap.ico \
-		win32/setup/asap-banner.jpg win32/setup/asap-dialog.jpg \
-		-s chksap.pl maketar.pl files2anylang.pl \
-		| $(SEVENZIP) -tgzip -si ../../asap-$(VERSION).tar.gz
-
-dist: srcdist win32 wince java csharp javascript flash setup \
-	COPYING.txt README_Flash.html README_Java.html README_Windows.html README_WindowsCE.html \
-	install_dsf.bat uninstall_dsf.bat
-	$(RM) ../../asap-$(VERSION)-flash.zip
-	$(RM) ../../asap-$(VERSION)-java.zip
-	$(RM) ../../asap-$(VERSION)-win32.zip
-	$(RM) ../../asap-$(VERSION)-wince-arm.zip
-	$(SEVENZIP) -tzip ../../asap-$(VERSION)-flash.zip \
-		COPYING.txt README_Flash.html ../flash/asap.swf
-	$(SEVENZIP) -tzip ../../asap-$(VERSION)-java.zip \
-		COPYING.txt README_Java.html \
-		../java/asap2wav.jar ../java/asap_applet.jar ../java/asap_midlet.jad ../java/asap_midlet.jar
-	$(SEVENZIP) -tzip ../../asap-$(VERSION)-win32.zip \
-		COPYING.txt README_Windows.html \
-		install_dsf.bat uninstall_dsf.bat \
-		asap2wav.exe wasap.exe in_asap.dll foo_asap.dll gspasap.dll asap_dsf.dll ASAP_Apollo.dll apokeysnd.dll xbmc_asap.dll
-	$(SEVENZIP) -tzip ../../asap-$(VERSION)-wince-arm.zip \
-		COPYING.txt README_WindowsCE.html ../gsplayer/gspasap.dll
-	$(GREP) -m 1 " released on " ../ChangeLog
-	$(GREP) -m 1 ^ASAP ../NEWS
-	$(GREP) ASAP_VERSION ../asap.h
-	$(GREP) " Version =" ../csharp/ASAP.ppcs
-	$(GREP) " VERSION =" ../java/ASAP.ppjava
-	$(GREP) MIDlet-Version ../java/asap_midlet.MF
-	$(GREP) ASAP_VERSION ../javascript/asap.ppjs
-	$(GREP) VERSION ../flash/ASAP.ppas
-
-www: ../../www/index.html ../../www/PORTS.xml ../../www/PORTS.xsl 
-
-../../www/index.html: ../README ../NEWS ../CREDITS
-	$(ASCIIDOC) -a asapwww -a asapports ../README
-	$(ASCIIDOC_POSTPROCESS)
-	$(ASCIIDOC_VALIDATE)
-
-../../www/apokeysnd.dll: apokeysnd.dll
-	$(CP) $< $@
-
-../../www/asap.swf: ../flash/asap.swf
-	$(CP) $< $@
-
-../../www/asap_applet.jar: ../java/asap_applet.jar
-	$(CP) $< $@
-
-../../www/favicon.ico: wasap/wasap.ico
-	$(CP) $< $@
-
-../../www/PORTS.xml: ../PORTS.xml
-	$(CP) $< $@
-
-../../www/PORTS.xsl: ../PORTS.xsl
-	$(CP) $< $@
-
-.DELETE_ON_ERROR:
diff --git a/lib/asap/win32/USAGE b/lib/asap/win32/USAGE
deleted file mode 100755
index b815b8e..0000000
--- a/lib/asap/win32/USAGE
+++ /dev/null
@@ -1,46 +0,0 @@
-How to install and use
-----------------------
-
-ASAP2WAV::
-{asapsetup%}Extract `asap2wav.exe` to a directory of your choice
-{asapsetup%}(for convenience, this directory should be included in your `Path` environment variable).
-{asapsetup%}+
-Run the program from command line to see the syntax.
-Unless you specify the `-o`/`--output` option, the output filename will be
-constructed from the input filename with the extension changed to `wav`.
-
-WASAP::
-{asapsetup%}Extract `wasap.exe` to a directory of your choice.
-{asapsetup%}+
-When you run WASAP, an "Open file" dialog appears. Simply select the file
-you want to listen to. WASAP is later controlled by its tray icon.
-When you hover the mouse pointer over the icon, the name of the loaded file appears.
-To open another file, left-click the tray icon. The other options are
-available in the menu which appears when you right-click the icon.
-
-{asapsetup%}Apollo plugin::
-{asapsetup%}Extract `ASAP_Apollo.dll` to the `Plug-ins` directory of your Apollo installation.
-
-{asapsetup%}foobar2000 plugin::
-{asapsetup%}Extract `foo_asap.dll` to the `components` directory of your foobar2000 installation.
-
-{asapsetup%}GSPlayer plugin::
-{asapsetup%}Put `gspasap.dll` in the directory which contains the GSPlayer executable.
-
-Winamp plugin::
-{asapsetup%}Extract `in_asap.dll` to the `Plugins` directory of your Winamp installation.
-It is recommended that you remove other plugins that support 8-bit Atari music.
-
-{asapsetup%}Windows Media Player plugin::
-{asapsetup%}To install: extract `asap_dsf.dll`, `install_dsf.bat` and `uninstall_dsf.bat`
-{asapsetup%}to a directory of your choice, then run `install_dsf.bat`.
-{asapsetup%}+
-{asapsetup%}To uninstall: run `uninstall_dsf.bat`, then delete the files.
-
-XBMC plugin::
-{asapsetup%}Put `xbmc_asap.dll` in the `system/players/paplayer` directory.
-This DLL can be used with XBox and Windows versions of XBMC.
-Your XBMC must include support for ASAP.
-
-{asapsetup%}DLL for Raster Music Tracker::
-{asapsetup%}Extract `apokeysnd.dll` to the directory which contains `Rmt.exe`.
diff --git a/lib/asap/win32/apollo/ASAP_Apollo.cpp b/lib/asap/win32/apollo/ASAP_Apollo.cpp
deleted file mode 100644
index 97bdfa8..0000000
--- a/lib/asap/win32/apollo/ASAP_Apollo.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * ASAP_Apollo.cpp - ASAP plugin for Apollo
- *
- * Copyright (C) 2008-2009  Piotr Fusik
- *
- * This file is part of ASAP (Another Slight Atari Player),
- * see http://asap.sourceforge.net
- *
- * ASAP 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.
- *
- * ASAP is distributed in the hope that 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 ASAP; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <string.h>
-
-#include "InputPlugin.h"
-
-#include "asap.h"
-#include "gui.h"
-
-ASAP_State asap;
-
-class CASAPDecoder : public CInputDecoder
-{
-	byte buf[8192];
-
-public:
-
-	int __cdecl GetNextAudioChunk(void **buffer)
-	{
-		*buffer = buf;
-		return ASAP_Generate(&asap, buf, sizeof(buf), (ASAP_SampleFormat) BITS_PER_SAMPLE);
-	}
-
-	int __cdecl SetPosition(int newPosition)
-	{
-		ASAP_Seek(&asap, newPosition);
-		return newPosition;
-	}
-
-	void __cdecl SetEqualizer(BOOL equalize)
-	{
-	}
-
-	void __cdecl AdjustEqualizer(int equalizerValues[16])
-	{
-	}
-
-	void __cdecl Close()
-	{
-		delete this;
-	}
-};
-
-class CASAPPlugin : public CInputPlugin
-{
-	HINSTANCE hInstance;
-
-public:
-
-	CASAPPlugin(HINSTANCE hInst) : hInstance(hInst)
-	{
-	}
-
-	char * __cdecl GetDescription()
-	{
-		return "Apollo ASAP Decoder version " ASAP_VERSION;
-	}
-
-	CInputDecoder * __cdecl Open(char *filename, int audioDataOffset)
-	{
-		byte module[ASAP_MODULE_MAX];
-		int module_len;
-		if (!loadModule(filename, module, &module_len))
-			return NULL;
-		if (!ASAP_Load(&asap, filename, module, module_len))
-			return NULL;
-		playSong(asap.module_info.default_song);
-		return new CASAPDecoder();
-	}
-
-	BOOL __cdecl GetInfo(char *filename, int audioDataOffset, TrackInfo *trackInfo)
-	{
-		byte module[ASAP_MODULE_MAX];
-		int module_len;
-		ASAP_ModuleInfo module_info;
-		if (!loadModule(filename, module, &module_len))
-			return FALSE;
-		if (!ASAP_GetModuleInfo(&module_info, filename, module, module_len))
-			return FALSE;
-		strcpy(trackInfo->suggestedTitle, module_info.name);
-		trackInfo->fileSize = module_len;
-		trackInfo->seekable = TRUE;
-		trackInfo->hasEqualizer = FALSE;
-		int duration = getSongDuration(&module_info, module_info.default_song);
-		trackInfo->playingTime = duration >= 0 ? duration : -1;
-		trackInfo->bitRate = 0;
-		trackInfo->sampleRate = ASAP_SAMPLE_RATE;
-		trackInfo->numChannels = module_info.channels;
-		trackInfo->bitResolution = BITS_PER_SAMPLE;
-		strcpy(trackInfo->fileTypeDescription, "8-bit Atari music");
-		return TRUE;
-	}
-
-	void __cdecl AdditionalInfo(char *filename, int audioDataOffset)
-	{
-		showInfoDialog(hInstance, GetActiveWindow(), filename, -1);
-	}
-
-	BOOL __cdecl IsSuitableFile(char *filename, int audioDataOffset)
-	{
-		return ASAP_IsOurFile(filename);
-	}
-
-	char * __cdecl GetExtensions()
-	{
-		return
-			"Slight Atari Player\0*.SAP\0"
-			"Chaos Music Composer\0*.CMC;*.CM3;*.CMR;*.CMS;*.DMC\0"
-			"Delta Music Composer\0*.DLT\0"
-			"Music ProTracker\0*.MPT;*.MPD\0"
-			"Raster Music Tracker\0*.RMT\0"
-			"Theta Music Composer 1.x\0*.TMC;*.TM8\0"
-			"Theta Music Composer 2.x\0*.TM2\0"
-			"\0";
-	}
-
-	void __cdecl Config()
-	{
-		settingsDialog(hInstance, GetActiveWindow());
-	}
-
-	void __cdecl About()
-	{
-		MessageBox(GetActiveWindow(), ASAP_CREDITS "\n" ASAP_COPYRIGHT,
-			"About ASAP plugin " ASAP_VERSION, MB_OK);
-	}
-
-	void __cdecl Close()
-	{
-		delete this;
-	}
-};
-
-extern "C" __declspec(dllexport) CInputPlugin *Apollo_GetInputModule2(HINSTANCE hDLLInstance, HWND hApolloWnd)
-{
-	return new CASAPPlugin(hDLLInstance);
-}
diff --git a/lib/asap/win32/apollo/InputPlugin.h b/lib/asap/win32/apollo/InputPlugin.h
deleted file mode 100644
index c64c18f..0000000
--- a/lib/asap/win32/apollo/InputPlugin.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef __INPUTPLUGIN_H__
-#define __INPUTPLUGIN_H__
-
-#include <windows.h>
-
-typedef struct
-{
-    // General
-
-    char suggestedTitle[256];
-    int fileSize;
-    BOOL seekable;
-    BOOL hasEqualizer;
-
-    // Audio
-
-    int playingTime;    // ms (-1 = stream)
-    int bitRate;        // b/s (negative values mean average)
-    int sampleRate;     // Hz
-    int numChannels;    // 1 = mono, 2 = stereo
-    int bitResolution;  // 8, 16, 24 or 32
-    char fileTypeDescription[256];
-
-    // The following fields are only valid if the upper
-    // 16 bits of fileSize contain the value 0xfeed when 
-    // passed to the GetInfo function. The lower 16
-    // bits of this field are considered as the
-    // version of the extension to this structure.
-
-    // These fields are valid for extension versions >= 1
-
-    // The plug-in must the extension version it supports here
-    BOOL extensionVersion; 
-    __int64 fileSize64Bits;
-
-} TrackInfo;
-
-// __cdecl is a Microsoft specific keyword and means
-// that the C calling convention will be used for the
-// member function. If you are using a compiler other
-// than MS Visual C++ you may have to remove or change
-// this keyword.
-
-class CInputDecoder
-{
-public:
-    virtual int __cdecl GetNextAudioChunk(void **buffer) =0;
-    virtual int __cdecl SetPosition(int position) =0;
-
-    virtual void __cdecl SetEqualizer(BOOL equalize) =0;
-    virtual void __cdecl AdjustEqualizer(int equalizerValues[16]) =0;
-
-    virtual void __cdecl Close() =0;
-};
-
-class CInputPlugin
-{
-public:
-    virtual char *__cdecl GetDescription() =0;
-
-    virtual CInputDecoder *__cdecl Open(char *filename,int audioDataOffset) =0;
-    virtual BOOL __cdecl GetInfo(char *filename,int audioDataOffset,TrackInfo *trackInfo) =0;
-    virtual void __cdecl AdditionalInfo(char *filename,int audioDataOffset) =0;
-    virtual BOOL __cdecl IsSuitableFile(char *filename,int audioDataOffset) =0;
-    virtual char *__cdecl GetExtensions() =0;
-
-    virtual void __cdecl Config() =0;
-    virtual void __cdecl About() =0;
-
-    virtual void __cdecl Close() =0;
-};
-
-#endif//__INPUTPLUGIN_H__
diff --git a/lib/asap/win32/build_xbmc_win32.sh b/lib/asap/win32/build_xbmc_win32.sh
deleted file mode 100644
index d05fe5d..0000000
--- a/lib/asap/win32/build_xbmc_win32.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-
-MAKEFLAGS=""
-BGPROCESSFILE="$2"
-
-if [ "$1" == "clean" ]
-then
-make clean
-fi
-if [ $NUMBER_OF_PROCESSORS > 1 ]; then
-  MAKEFLAGS=-j$NUMBER_OF_PROCESSORS
-fi
-
-make $MAKEFLAGS xbmc
-
-cp xbmc_asap.dll /xbmc/system/players/paplayer/
-#remove the bgprocessfile for signaling the process end
-rm $BGPROCESSFILE
diff --git a/lib/asap/win32/dshow/asap_dsf.cpp b/lib/asap/win32/dshow/asap_dsf.cpp
deleted file mode 100644
index 6963208..0000000
--- a/lib/asap/win32/dshow/asap_dsf.cpp
+++ /dev/null
@@ -1,454 +0,0 @@
-/*
- * asap_dsf.cpp - ASAP DirectShow source filter
- *
- * Copyright (C) 2008-2009  Piotr Fusik
- *
- * This file is part of ASAP (Another Slight Atari Player),
- * see http://asap.sourceforge.net
- *
- * ASAP 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.
- *
- * ASAP is distributed in the hope that 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 ASAP; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <streams.h>
-
-#include "asap.h"
-
-static const char extensions[][5] =
-	{ ".sap", ".cmc", ".cm3", ".cmr", ".cms", ".dmc", ".dlt", ".mpt", ".mpd", ".rmt", ".tmc", ".tm8", ".tm2" };
-#define N_EXTS (sizeof(extensions) / sizeof(extensions[0]))
-
-#define BITS_PER_SAMPLE      16
-#define MIN_BUFFERED_BLOCKS  4096
-
-#define SZ_ASAP_SOURCE       L"ASAP source filter"
-
-static const char CLSID_ASAPSource_str[] = "{8E6205A0-19E2-4037-AF32-B29A9B9D0C93}";
-static const GUID CLSID_ASAPSource = 
-	{ 0x8e6205a0, 0x19e2, 0x4037, { 0xaf, 0x32, 0xb2, 0x9a, 0x9b, 0x9d, 0xc, 0x93 } };
-
-class CASAPSourceStream : public CSourceStream, IMediaSeeking
-{
-	CCritSec cs;
-	ASAP_State asap;
-	BOOL loaded;
-	int duration;
-	LONGLONG blocks;
-
-public:
-
-	CASAPSourceStream(HRESULT *phr, CSource *pFilter)
-		: CSourceStream(NAME("ASAPSourceStream"), phr, pFilter, L"Out"), loaded(FALSE), duration(0)
-	{
-	}
-
-	DECLARE_IUNKNOWN
-
-	STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv)
-	{
-		if (riid == IID_IMediaSeeking)
-			return GetInterface((IMediaSeeking *) this, ppv);
-		return CSourceStream::NonDelegatingQueryInterface(riid, ppv);
-	}
-
-	BOOL Load(const char *filename)
-	{
-		HANDLE fh = CreateFile(filename, GENERIC_READ, 0, NULL, OPEN_EXISTING,
-			FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL);
-		if (fh == INVALID_HANDLE_VALUE)
-			return FALSE;
-		byte module[ASAP_MODULE_MAX];
-		int module_len;
-		BOOL ok = ReadFile(fh, module, ASAP_MODULE_MAX, (LPDWORD) &module_len, NULL);
-		CloseHandle(fh);
-		if (!ok)
-			return FALSE;
-		CAutoLock lck(&cs);
-		loaded = ASAP_Load(&asap, filename, module, module_len);
-		if (!loaded)
-			return FALSE;
-		int song = asap.module_info.default_song;
-		duration = asap.module_info.durations[song];
-		ASAP_PlaySong(&asap, song, duration);
-		blocks = 0;
-		return TRUE;
-	}
-
-	HRESULT GetMediaType(CMediaType *pMediaType)
-	{
-		CheckPointer(pMediaType, E_POINTER);
-		CAutoLock lck(&cs);
-		if (!loaded)
-			return E_FAIL;
-		WAVEFORMATEX *wfx = (WAVEFORMATEX *) pMediaType->AllocFormatBuffer(sizeof(WAVEFORMATEX));
-		CheckPointer(wfx, E_OUTOFMEMORY);
-		int channels = asap.module_info.channels;
-		pMediaType->SetType(&MEDIATYPE_Audio);
-		pMediaType->SetSubtype(&MEDIASUBTYPE_PCM);
-		pMediaType->SetTemporalCompression(FALSE);
-		pMediaType->SetSampleSize(channels * (BITS_PER_SAMPLE / 8));
-		pMediaType->SetFormatType(&FORMAT_WaveFormatEx);
-		wfx->wFormatTag = WAVE_FORMAT_PCM;
-		wfx->nChannels = channels;
-		wfx->nSamplesPerSec = ASAP_SAMPLE_RATE;
-		wfx->nBlockAlign = channels * (BITS_PER_SAMPLE / 8);
-		wfx->nAvgBytesPerSec = ASAP_SAMPLE_RATE * wfx->nBlockAlign;
-		wfx->wBitsPerSample = BITS_PER_SAMPLE;
-		wfx->cbSize = 0;
-		return S_OK;
-	}
-
-	HRESULT DecideBufferSize(IMemAllocator *pAlloc, ALLOCATOR_PROPERTIES *pRequest)
-	{
-		CheckPointer(pAlloc, E_POINTER);
-		CheckPointer(pRequest, E_POINTER);
-		CAutoLock lck(&cs);
-		if (!loaded)
-			return E_FAIL;
-		if (pRequest->cBuffers == 0)
-			pRequest->cBuffers = 2;
-		int bytes = MIN_BUFFERED_BLOCKS * asap.module_info.channels * (BITS_PER_SAMPLE / 8);
-		if (pRequest->cbBuffer < bytes)
-			pRequest->cbBuffer = bytes;
-		ALLOCATOR_PROPERTIES actual;
-		HRESULT hr = pAlloc->SetProperties(pRequest, &actual);
-		if (FAILED(hr))
-			return hr;
-		if (actual.cbBuffer < bytes)
-			return E_FAIL;
-		return S_OK;
-	}
-
-	HRESULT FillBuffer(IMediaSample *pSample)
-	{
-		CheckPointer(pSample, E_POINTER);
-		CAutoLock lck(&cs);
-		if (!loaded)
-			return E_FAIL;
-		BYTE *pData;
-		HRESULT hr = pSample->GetPointer(&pData);
-		if (FAILED(hr))
-			return hr;
-		int cbData = pSample->GetSize();
-		cbData = ASAP_Generate(&asap, pData, cbData, (ASAP_SampleFormat) BITS_PER_SAMPLE);
-		if (cbData == 0)
-			return S_FALSE;
-		pSample->SetActualDataLength(cbData);
-		LONGLONG startTime = blocks * UNITS / ASAP_SAMPLE_RATE;
-		blocks += cbData / (asap.module_info.channels * (BITS_PER_SAMPLE / 8));
-		LONGLONG endTime = blocks * UNITS / ASAP_SAMPLE_RATE;
-		pSample->SetTime(&startTime, &endTime);
-		pSample->SetSyncPoint(TRUE);
-		return S_OK;
-	}
-
-	STDMETHODIMP GetCapabilities(DWORD *pCapabilities)
-	{
-		CheckPointer(pCapabilities, E_POINTER);
-		*pCapabilities = AM_SEEKING_CanSeekAbsolute | AM_SEEKING_CanSeekForwards | AM_SEEKING_CanSeekBackwards | AM_SEEKING_CanGetDuration;
-		return S_OK;
-	}
-
-	STDMETHODIMP CheckCapabilities(DWORD *pCapabilities)
-	{
-		CheckPointer(pCapabilities, E_POINTER);
-		DWORD result = *pCapabilities & (AM_SEEKING_CanSeekAbsolute | AM_SEEKING_CanSeekForwards | AM_SEEKING_CanSeekBackwards | AM_SEEKING_CanGetDuration);
-		if (result == *pCapabilities)
-			return S_OK;
-		*pCapabilities = result;
-		if (result != 0)
-			return S_FALSE;
-		return E_FAIL;
-	}
-
-	STDMETHODIMP IsFormatSupported(const GUID *pFormat)
-	{
-		CheckPointer(pFormat, E_POINTER);
-		if (IsEqualGUID(*pFormat, TIME_FORMAT_MEDIA_TIME))
-			return S_OK;
-		return S_FALSE;
-	}
-
-	STDMETHODIMP QueryPreferredFormat(GUID *pFormat)
-	{
-		CheckPointer(pFormat, E_POINTER);
-		*pFormat = TIME_FORMAT_MEDIA_TIME;
-		return S_OK;
-	}
-
-	STDMETHODIMP GetTimeFormat(GUID *pFormat)
-	{
-		CheckPointer(pFormat, E_POINTER);
-		*pFormat = TIME_FORMAT_MEDIA_TIME;
-		return S_OK;
-	}
-
-	STDMETHODIMP IsUsingTimeFormat(const GUID *pFormat)
-	{
-		CheckPointer(pFormat, E_POINTER);
-		if (IsEqualGUID(*pFormat, TIME_FORMAT_MEDIA_TIME))
-			return S_OK;
-		return S_FALSE;
-	}
-
-	STDMETHODIMP SetTimeFormat(const GUID *pFormat)
-	{
-		CheckPointer(pFormat, E_POINTER);
-		if (IsEqualGUID(*pFormat, TIME_FORMAT_MEDIA_TIME))
-			return S_OK;
-		return E_INVALIDARG;
-	}
-
-	STDMETHODIMP GetDuration(LONGLONG *pDuration)
-	{
-		CheckPointer(pDuration, E_POINTER);
-		*pDuration = duration * (UNITS / MILLISECONDS);
-		return S_OK;
-	}
-
-	STDMETHODIMP GetStopPosition(LONGLONG *pStop)
-	{
-		return E_NOTIMPL;
-	}
-
-	STDMETHODIMP GetCurrentPosition(LONGLONG *pCurrent)
-	{
-		return E_NOTIMPL;
-	}
-
-	STDMETHODIMP ConvertTimeFormat(LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat)
-	{
-		return E_NOTIMPL;
-	}
-
-	STDMETHODIMP SetPositions(LONGLONG *pCurrent, DWORD dwCurrentFlags, LONGLONG *pStop, DWORD dwStopFlags)
-	{
-		if ((dwCurrentFlags & AM_SEEKING_PositioningBitsMask) == AM_SEEKING_AbsolutePositioning)
-		{
-			CheckPointer(pCurrent, E_POINTER);
-			int position = (int) (*pCurrent / (UNITS / MILLISECONDS));
-			CAutoLock lck(&cs);
-			ASAP_Seek(&asap, position);
-			blocks = 0;
-			if ((dwCurrentFlags & AM_SEEKING_ReturnTime) != 0)
-				*pCurrent = position * (UNITS / MILLISECONDS);
-			return S_OK;
-		}
-		return E_INVALIDARG;
-	}
-
-	STDMETHODIMP GetPositions(LONGLONG *pCurrent, LONGLONG *pStop)
-	{
-		return E_NOTIMPL;
-	}
-
-	STDMETHODIMP GetAvailable(LONGLONG *pEarliest, LONGLONG *pLatest)
-	{
-		return E_NOTIMPL;
-	}
-
-	STDMETHODIMP SetRate(double dRate)
-	{
-		return E_NOTIMPL;
-	}
-
-	STDMETHODIMP GetRate(double *dRate)
-	{
-		return E_NOTIMPL;
-	}
-
-	STDMETHODIMP GetPreroll(LONGLONG *pllPreroll)
-	{
-		return E_NOTIMPL;
-	}
-};
-
-class CASAPSource : public CSource, IFileSourceFilter
-{
-	CASAPSourceStream *m_pin;
-	WCHAR *m_filename;
-	CMediaType m_mt;
-
-	CASAPSource(IUnknown *pUnk, HRESULT *phr)
-		: CSource(NAME("ASAPSource"), pUnk, CLSID_ASAPSource), m_pin(NULL), m_filename(NULL)
-	{
-		m_pin = new CASAPSourceStream(phr, this);
-		if (m_pin == NULL && phr != NULL)
-			*phr = E_OUTOFMEMORY;
-	}
-
-	~CASAPSource()
-	{
-		if (m_pin != NULL)
-			delete m_pin;
-		if (m_filename != NULL)
-			delete[] m_filename;
-	}
-
-public:
-
-	DECLARE_IUNKNOWN
-
-	STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv)
-	{
-		if (riid == IID_IFileSourceFilter)
-			return GetInterface((IFileSourceFilter *) this, ppv);
-		return CSource::NonDelegatingQueryInterface(riid, ppv);
-	}
-
-	STDMETHODIMP Load(LPCOLESTR pszFileName, const AM_MEDIA_TYPE *pmt)
-	{
-		CheckPointer(pszFileName, E_POINTER);
-		int cch = lstrlenW(pszFileName) + 1;
-		char *filename = new char[cch * 2];
-		CheckPointer(filename, E_OUTOFMEMORY);
-		if (WideCharToMultiByte(CP_ACP, 0, pszFileName, -1, filename, cch, NULL, NULL) <= 0)
-			return HRESULT_FROM_WIN32(GetLastError());
-		BOOL ok = m_pin->Load(filename);
-		delete[] filename;
-		if (!ok)
-			return E_FAIL;
-		if (m_filename != NULL)
-			delete[] m_filename;
-		m_filename = new WCHAR[cch];
-		CheckPointer(m_filename, E_OUTOFMEMORY);
-		CopyMemory(m_filename, pszFileName, cch * sizeof(WCHAR));
-		if (pmt == NULL) {
-			m_mt.SetType(&MEDIATYPE_Stream);
-			m_mt.SetSubtype(&MEDIASUBTYPE_NULL);
-		}
-		else
-			m_mt = *pmt;
-		return S_OK;
-	}
-
-	STDMETHODIMP GetCurFile(LPOLESTR *ppszFileName, AM_MEDIA_TYPE *pmt)
-	{
-		CheckPointer(ppszFileName, E_POINTER);
-		if (m_filename == NULL)
-			return E_FAIL;
-		DWORD n = (lstrlenW(m_filename) + 1) * sizeof(WCHAR);
-		*ppszFileName = (LPOLESTR) CoTaskMemAlloc(n);
-		CheckPointer(*ppszFileName, E_OUTOFMEMORY);
-		CopyMemory(*ppszFileName, m_filename, n);
-		if (pmt != NULL)
-			CopyMediaType(pmt, &m_mt);
-		return S_OK;
-	}
-
-	static CUnknown * WINAPI CreateInstance(IUnknown *pUnk, HRESULT *phr)
-	{
-		CASAPSource *pNewFilter = new CASAPSource(pUnk, phr);
-		if (phr != NULL && pNewFilter == NULL)
-			*phr = E_OUTOFMEMORY;
-		return pNewFilter;
-	}
-};
-
-static const AMOVIESETUP_MEDIATYPE sudPinTypes =
-{
-	&MEDIATYPE_Audio,
-	&MEDIASUBTYPE_PCM
-};
-
-static const AMOVIESETUP_PIN sudASAPSourceStream =
-{
-	L"Output",
-	FALSE,
-	TRUE,
-	FALSE,
-	FALSE,
-	&CLSID_NULL,
-	NULL,
-	1,
-	&sudPinTypes
-};
-
-static const AMOVIESETUP_FILTER sudASAPSource =
-{
-	&CLSID_ASAPSource,
-	SZ_ASAP_SOURCE,
-	MERIT_NORMAL,
-	1,
-	&sudASAPSourceStream
-};
-
-CFactoryTemplate g_Templates[1] =
-{
-	{
-		SZ_ASAP_SOURCE,
-		&CLSID_ASAPSource,
-		CASAPSource::CreateInstance,
-		NULL,
-		&sudASAPSource
-	}
-};
-
-int g_cTemplates = 1;
-
-STDAPI DllRegisterServer()
-{
-	HRESULT hr = AMovieDllRegisterServer2(TRUE);
-	if (FAILED(hr))
-		return hr;
-
-	HKEY hMTKey;
-	HKEY hWMPKey;
-	if (RegCreateKeyEx(HKEY_CLASSES_ROOT, "Media Type\\Extensions", 0, NULL, 0, KEY_WRITE, NULL, &hMTKey, NULL) != ERROR_SUCCESS)
-		return E_FAIL;
-	if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Multimedia\\WMPlayer\\Extensions", 0, NULL, 0, KEY_WRITE, NULL, &hWMPKey, NULL) != ERROR_SUCCESS)
-		return E_FAIL;
-	for (int i = 0; i < N_EXTS; i++) {
-		HKEY hKey;
-		if (RegCreateKeyEx(hMTKey, extensions[i], 0, NULL, 0, KEY_WRITE, NULL, &hKey, NULL) != ERROR_SUCCESS
-		 || RegSetValueEx(hKey, "Source Filter", 0, REG_SZ, (const BYTE *) &CLSID_ASAPSource_str, sizeof(CLSID_ASAPSource_str)) != ERROR_SUCCESS
-		 || RegCloseKey(hKey) != ERROR_SUCCESS)
-			 return E_FAIL;
-		static const DWORD perms = 15;
-		static const DWORD runtime = 7;
-		if (RegCreateKeyEx(hWMPKey, extensions[i], 0, NULL, 0, KEY_WRITE, NULL, &hKey, NULL) != ERROR_SUCCESS
-		 || RegSetValueEx(hKey, "Permissions", 0, REG_DWORD, (const BYTE *) &perms, sizeof(perms)) != ERROR_SUCCESS
-		 || RegSetValueEx(hKey, "Runtime", 0, REG_DWORD, (const BYTE *) &runtime, sizeof(runtime)) != ERROR_SUCCESS
-		 || RegCloseKey(hKey) != ERROR_SUCCESS)
-			 return E_FAIL;
-	}
-	if (RegCloseKey(hWMPKey) != ERROR_SUCCESS || RegCloseKey(hMTKey) != ERROR_SUCCESS)
-		return E_FAIL;
-	return S_OK;
-}
-
-STDAPI DllUnregisterServer()
-{
-	HKEY hWMPKey;
-	HKEY hMTKey;
-	if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Multimedia\\WMPlayer\\Extensions", 0, DELETE, &hWMPKey) != ERROR_SUCCESS)
-		return E_FAIL;
-	if (RegOpenKeyEx(HKEY_CLASSES_ROOT, "Media Type\\Extensions", 0, DELETE, &hMTKey) != ERROR_SUCCESS)
-		return E_FAIL;
-	for (int i = 0; i < N_EXTS; i++) {
-		RegDeleteKey(hWMPKey, extensions[i]);
-		RegDeleteKey(hMTKey, extensions[i]);
-	}
-	RegCloseKey(hMTKey);
-	RegCloseKey(hWMPKey);
-
-	return AMovieDllRegisterServer2(FALSE);
-}
-
-extern "C" BOOL WINAPI DllEntryPoint(HINSTANCE, ULONG, LPVOID);
-
-BOOL APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
-{
-	return DllEntryPoint(hInstance, dwReason, lpReserved);
-}
diff --git a/lib/asap/win32/dshow/asap_dsf.def b/lib/asap/win32/dshow/asap_dsf.def
deleted file mode 100644
index b3a1d21..0000000
--- a/lib/asap/win32/dshow/asap_dsf.def
+++ /dev/null
@@ -1,5 +0,0 @@
-EXPORTS
-	DllCanUnloadNow		PRIVATE
-	DllGetClassObject	PRIVATE
-	DllRegisterServer	PRIVATE
-	DllUnregisterServer	PRIVATE
diff --git a/lib/asap/win32/foobar2000/foo_asap.cpp b/lib/asap/win32/foobar2000/foo_asap.cpp
deleted file mode 100644
index 503fafd..0000000
--- a/lib/asap/win32/foobar2000/foo_asap.cpp
+++ /dev/null
@@ -1,470 +0,0 @@
-/*
- * foo_asap.cpp - ASAP plugin for foobar2000 0.9.x
- *
- * Copyright (C) 2006-2009  Piotr Fusik
- *
- * This file is part of ASAP (Another Slight Atari Player),
- * see http://asap.sourceforge.net
- *
- * ASAP 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.
- *
- * ASAP is distributed in the hope that 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 ASAP; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <windows.h>
-#include <string.h>
-
-#include "foobar2000/SDK/foobar2000.h"
-
-#include "asap.h"
-#include "gui.h"
-
-
-/* Configuration --------------------------------------------------------- */
-
-static const GUID song_length_guid =
-	{ 0x810e12f0, 0xa695, 0x42d2, { 0xab, 0xc0, 0x14, 0x1e, 0xe5, 0xf3, 0xb3, 0xb7 } };
-static cfg_int song_length(song_length_guid, -1);
-
-static const GUID silence_seconds_guid =
-	{ 0x40170cb0, 0xc18c, 0x4f97, { 0xaa, 0x6, 0xdb, 0xe7, 0x45, 0xb0, 0x7e, 0x1d } };
-static cfg_int silence_seconds(silence_seconds_guid, -1);
-
-static const GUID play_loops_guid =
-	{ 0xf08d12f8, 0x58d6, 0x49fc, { 0xae, 0xc5, 0xf4, 0xd0, 0x2f, 0xb2, 0x20, 0xaf } };
-static cfg_bool play_loops(play_loops_guid, false);
-
-static const GUID mute_mask_guid =
-	{ 0x8bd94472, 0x82f1, 0x4e77, { 0x95, 0x78, 0xe9, 0x84, 0x75, 0xad, 0x17, 0x4 } };
-static cfg_int mute_mask(mute_mask_guid, 0);
-
-
-/* Decoding -------------------------------------------------------------- */
-
-static void copy_info(char *dest, const file_info &p_info, const char *p_name)
-{
-	const char *src;
-	int i = 0;
-	src = p_info.meta_get(p_name, 0);
-	if (src != NULL)
-		for (; i < 127 && src[i] != '\0'; i++)
-			dest[i] = src[i];
-	dest[i] = '\0';
-}
-
-class input_asap
-{
-	static input_asap *head;
-	input_asap *prev;
-	input_asap *next;
-	service_ptr_t<file> m_file;
-	char filename[MAX_PATH];
-	byte module[ASAP_MODULE_MAX];
-	int module_len;
-	ASAP_State asap;
-	ASAP_ModuleInfo module_info;
-
-public:
-
-	static void g_set_mute_mask(int mask)
-	{
-		input_asap *p;
-		for (p = head; p != NULL; p = p->next)
-			ASAP_MutePokeyChannels(&p->asap, mask);
-	}
-
-	static bool g_is_our_content_type(const char *p_content_type)
-	{
-		return false;
-	}
-
-	static bool g_is_our_path(const char *p_path, const char *p_extension)
-	{
-		return ASAP_IsOurFile(p_path) != 0;
-	}
-
-	input_asap()
-	{
-		if (head != NULL)
-			head->prev = this;
-		prev = NULL;
-		next = head;
-		head = this;
-	}
-
-	~input_asap()
-	{
-		if (prev != NULL)
-			prev->next = next;
-		if (next != NULL)
-			next->prev = prev;
-		if (head == this)
-			head = next;
-	}
-
-	void open(service_ptr_t<file> p_filehint, const char *p_path, t_input_open_reason p_reason, abort_callback &p_abort)
-	{
-		if (p_reason == input_open_info_write) {
-			int len = strlen(p_path);
-			if (len >= MAX_PATH || !ASAP_CanSetModuleInfo(p_path))
-				throw exception_io_unsupported_format();
-			memcpy(filename, p_path, len + 1);
-		}
-		if (p_filehint.is_empty())
-			filesystem::g_open(p_filehint, p_path, filesystem::open_mode_read, p_abort);
-		m_file = p_filehint;
-		module_len = m_file->read(module, sizeof(module), p_abort);
-		if (!ASAP_GetModuleInfo(&module_info, p_path, module, module_len))
-			throw exception_io_unsupported_format();
-		if (p_reason == input_open_decode)
-			if (!ASAP_Load(&asap, p_path, module, module_len))
-				throw exception_io_unsupported_format();
-	}
-
-	t_uint32 get_subsong_count()
-	{
-		return module_info.songs;
-	}
-
-	t_uint32 get_subsong(t_uint32 p_index)
-	{
-		return p_index;
-	}
-
-	void get_info(t_uint32 p_subsong, file_info &p_info, abort_callback &p_abort)
-	{
-		int duration = module_info.durations[p_subsong];
-		if (duration < 0)
-			duration = 1000 * song_length;
-		if (play_loops && module_info.loops[p_subsong])
-			duration = 1000 * song_length;
-		if (duration >= 0)
-			p_info.set_length(duration / 1000.0);
-		p_info.info_set_int("channels", module_info.channels);
-		p_info.info_set_int("subsongs", module_info.songs);
-		if (module_info.author[0] != '\0')
-			p_info.meta_set("composer", module_info.author);
-		p_info.meta_set("title", module_info.name);
-		if (module_info.date[0] != '\0')
-			p_info.meta_set("date", module_info.date);
-	}
-
-	t_filestats get_file_stats(abort_callback &p_abort)
-	{
-		return m_file->get_stats(p_abort);
-	}
-
-	void decode_initialize(t_uint32 p_subsong, unsigned p_flags, abort_callback &p_abort)
-	{
-		int duration = module_info.durations[p_subsong];
-		if (duration < 0) {
-			if (silence_seconds > 0)
-				ASAP_DetectSilence(&asap, silence_seconds);
-			duration = 1000 * song_length;
-		}
-		if (play_loops && module_info.loops[p_subsong])
-			duration = 1000 * song_length;
-		ASAP_PlaySong(&asap, p_subsong, duration);
-		ASAP_MutePokeyChannels(&asap, mute_mask);
-	}
-
-	bool decode_run(audio_chunk &p_chunk, abort_callback &p_abort)
-	{
-		int channels = module_info.channels;
-		int buffered_bytes = BUFFERED_BLOCKS * channels * (BITS_PER_SAMPLE / 8);
-		static
-#if BITS_PER_SAMPLE == 8
-			byte
-#else
-			short
-#endif
-			buffer[BUFFERED_BLOCKS * 2];
-
-		buffered_bytes = ASAP_Generate(&asap, buffer, buffered_bytes,
-			(ASAP_SampleFormat) BITS_PER_SAMPLE);
-		if (buffered_bytes == 0)
-			return false;
-		p_chunk.set_data_fixedpoint(buffer, buffered_bytes, ASAP_SAMPLE_RATE,
-			channels, BITS_PER_SAMPLE,
-			channels == 2 ? audio_chunk::channel_config_stereo : audio_chunk::channel_config_mono);
-		return true;
-	}
-
-	void decode_seek(double p_seconds, abort_callback &p_abort)
-	{
-		ASAP_Seek(&asap, (int) (p_seconds * 1000));
-	}
-
-	bool decode_can_seek()
-	{
-		return true;
-	}
-
-	bool decode_get_dynamic_info(file_info &p_out, double &p_timestamp_delta)
-	{
-		return false;
-	}
-
-	bool decode_get_dynamic_info_track(file_info &p_out, double &p_timestamp_delta)
-	{
-		return false;
-	}
-
-	void decode_on_idle(abort_callback &p_abort)
-	{
-		m_file->on_idle(p_abort);
-	}
-
-	void retag_set_info(t_uint32 p_subsong, const file_info &p_info, abort_callback &p_abort)
-	{
-		copy_info(module_info.author, p_info, "composer");
-		copy_info(module_info.name, p_info, "title");
-		copy_info(module_info.date, p_info, "date");
-	}
-
-	void retag_commit(abort_callback &p_abort)
-	{
-		byte out_module[ASAP_MODULE_MAX];
-		int out_len = ASAP_SetModuleInfo(&module_info, module, module_len, out_module);
-		if (out_len <= 0)
-			throw exception_io_unsupported_format();
-		m_file.release();
-		filesystem::g_open(m_file, filename, filesystem::open_mode_write_new, p_abort);
-		m_file->write(out_module, out_len, p_abort);
-	}
-};
-
-input_asap *input_asap::head = NULL;
-static input_factory_t<input_asap> g_input_asap_factory;
-
-
-/* Configuration --------------------------------------------------------- */
-
-static void enable_time_input(HWND hDlg, BOOL enable)
-{
-	EnableWindow(GetDlgItem(hDlg, IDC_MINUTES), enable);
-	EnableWindow(GetDlgItem(hDlg, IDC_SECONDS), enable);
-}
-
-static void set_focus_and_select(HWND hDlg, int nID)
-{
-	HWND hWnd = GetDlgItem(hDlg, nID);
-	SetFocus(hWnd);
-	SendMessage(hWnd, EM_SETSEL, 0, -1);
-}
-
-static void get_time_input(HWND hDlg)
-{
-	BOOL minutesTranslated;
-	BOOL secondsTranslated;
-	UINT minutes = GetDlgItemInt(hDlg, IDC_MINUTES, &minutesTranslated, FALSE);
-	UINT seconds = GetDlgItemInt(hDlg, IDC_SECONDS, &secondsTranslated, FALSE);
-	if (minutesTranslated && secondsTranslated)
-		song_length = (int) (60 * minutes + seconds);
-}
-
-static void get_silence_input(HWND hDlg)
-{
-	BOOL translated;
-	UINT seconds = GetDlgItemInt(hDlg, IDC_SILSECONDS, &translated, FALSE);
-	if (translated)
-		silence_seconds = (int) seconds;
-}
-
-static INT_PTR CALLBACK settings_dialog_proc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
-	int i;
-	WORD wCtrl;
-	switch (uMsg) {
-	case WM_INITDIALOG:
-		if (song_length <= 0) {
-			CheckRadioButton(hDlg, IDC_UNLIMITED, IDC_LIMITED, IDC_UNLIMITED);
-			SetDlgItemInt(hDlg, IDC_MINUTES, DEFAULT_SONG_LENGTH / 60, FALSE);
-			SetDlgItemInt(hDlg, IDC_SECONDS, DEFAULT_SONG_LENGTH % 60, FALSE);
-			enable_time_input(hDlg, FALSE);
-		}
-		else {
-			CheckRadioButton(hDlg, IDC_UNLIMITED, IDC_LIMITED, IDC_LIMITED);
-			SetDlgItemInt(hDlg, IDC_MINUTES, (UINT) song_length / 60, FALSE);
-			SetDlgItemInt(hDlg, IDC_SECONDS, (UINT) song_length % 60, FALSE);
-			enable_time_input(hDlg, TRUE);
-		}
-		if (silence_seconds <= 0) {
-			CheckDlgButton(hDlg, IDC_SILENCE, BST_UNCHECKED);
-			SetDlgItemInt(hDlg, IDC_SILSECONDS, DEFAULT_SILENCE_SECONDS, FALSE);
-			EnableWindow(GetDlgItem(hDlg, IDC_SILSECONDS), FALSE);
-		}
-		else {
-			CheckDlgButton(hDlg, IDC_SILENCE, BST_CHECKED);
-			SetDlgItemInt(hDlg, IDC_SILSECONDS, (UINT) silence_seconds, FALSE);
-			EnableWindow(GetDlgItem(hDlg, IDC_SILSECONDS), TRUE);
-		}
-		CheckRadioButton(hDlg, IDC_LOOPS, IDC_NOLOOPS, play_loops ? IDC_LOOPS : IDC_NOLOOPS);
-		for (i = 0; i < 8; i++)
-			CheckDlgButton(hDlg, IDC_MUTE1 + i, ((mute_mask >> i) & 1) != 0 ? BST_CHECKED : BST_UNCHECKED);
-		return TRUE;
-	case WM_COMMAND:
-		wCtrl = LOWORD(wParam);
-		BOOL enabled;
-		switch (wCtrl) {
-		case IDC_UNLIMITED:
-		case IDC_LIMITED:
-			enabled = (wCtrl == IDC_LIMITED);
-			enable_time_input(hDlg, enabled);
-			if (!enabled)
-				song_length = -1;
-			else {
-				set_focus_and_select(hDlg, IDC_MINUTES);
-				get_time_input(hDlg);
-			}
-			return TRUE;
-		case IDC_SILENCE:
-			enabled = (IsDlgButtonChecked(hDlg, IDC_SILENCE) == BST_CHECKED);
-			EnableWindow(GetDlgItem(hDlg, IDC_SILSECONDS), enabled);
-			if (!enabled)
-				silence_seconds = -1;
-			else {
-				set_focus_and_select(hDlg, IDC_SILSECONDS);
-				get_silence_input(hDlg);
-			}
-			return TRUE;
-		case IDC_MINUTES:
-		case IDC_SECONDS:
-			if (HIWORD(wParam) == EN_CHANGE && IsDlgButtonChecked(hDlg, IDC_LIMITED) == BST_CHECKED)
-				get_time_input(hDlg);
-			return TRUE;
-		case IDC_SILSECONDS:
-			if (HIWORD(wParam) == EN_CHANGE && IsDlgButtonChecked(hDlg, IDC_SILENCE) == BST_CHECKED)
-				get_silence_input(hDlg);
-			return TRUE;
-		case IDC_LOOPS:
-		case IDC_NOLOOPS:
-			play_loops = (IsDlgButtonChecked(hDlg, IDC_LOOPS) == BST_CHECKED);
-			return TRUE;
-		case IDC_MUTE1:
-		case IDC_MUTE1 + 1:
-		case IDC_MUTE1 + 2:
-		case IDC_MUTE1 + 3:
-		case IDC_MUTE1 + 4:
-		case IDC_MUTE1 + 5:
-		case IDC_MUTE1 + 6:
-		case IDC_MUTE1 + 7:
-			i = 1 << (wCtrl - IDC_MUTE1);
-			if (IsDlgButtonChecked(hDlg, wCtrl) == BST_CHECKED)
-				mute_mask = mute_mask | i;
-			else
-				mute_mask = mute_mask & ~i;
-			input_asap::g_set_mute_mask(mute_mask);
-			return TRUE;
-		default:
-			break;
-		}
-	default:
-		break;
-	}
-	return FALSE;
-}
-
-class preferences_page_asap : public preferences_page
-{
-public:
-	virtual HWND create(HWND parent)
-	{
-		return CreateDialog(core_api::get_my_instance(), MAKEINTRESOURCE(IDD_SETTINGS), parent, ::settings_dialog_proc);
-	}
-
-	virtual const char *get_name()
-	{
-		return "ASAP";
-	}
-
-	virtual GUID get_guid()
-	{
-		static const GUID a_guid =
-			{ 0xf7c0a763, 0x7c20, 0x4b64, { 0x92, 0xbf, 0x11, 0xe5, 0x5d, 0x8, 0xe5, 0x53 } };
-		return a_guid;
-	}
-
-	virtual GUID get_parent_guid()
-	{
-		return guid_input;
-	}
-
-	virtual bool reset_query()
-	{
-		return true;
-	}
-
-	virtual void reset()
-	{
-		song_length = -1;
-		silence_seconds = -1;
-		play_loops = false;
-		mute_mask = 0;
-		input_asap::g_set_mute_mask(0);
-	}
-};
-
-static service_factory_single_t<preferences_page_asap> g_preferences_page_asap_factory;
-
-
-/* File types ------------------------------------------------------------ */
-
-static const char * const names_and_masks[][2] = {
-	{ "Slight Atari Player (*.sap)", "*.SAP" },
-	{ "Chaos Music Composer (*.cmc;*.cm3;*.cmr;*.cms;*.dmc)", "*.CMC;*.CM3;*.CMR;*.CMS;*.DMC" },
-	{ "Delta Music Composer (*.dlt)", "*.DLT" },
-	{ "Music ProTracker (*.mpt;*.mpd)", "*.MPT;*.MPD" },
-	{ "Raster Music Tracker (*.rmt)", "*.RMT" },
-	{ "Theta Music Composer 1.x (*.tmc;*.tm8)", "*.TMC;*.TM8" },
-	{ "Theta Music Composer 2.x (*.tm2)", "*.TM2" }
-};
-
-#define N_FILE_TYPES (sizeof(names_and_masks) / sizeof(names_and_masks[0]))
-
-class input_file_type_asap : public service_impl_single_t<input_file_type>
-{
-public:
-
-	virtual unsigned get_count()
-	{
-		return N_FILE_TYPES;
-	}
-
-	virtual bool get_name(unsigned idx, pfc::string_base &out)
-	{
-		if (idx < N_FILE_TYPES) {
-			out = ::names_and_masks[idx][0];
-			return true;
-		}
-		return false;
-	}
-
-	virtual bool get_mask(unsigned idx, pfc::string_base &out)
-	{
-		if (idx < N_FILE_TYPES) {
-			out = ::names_and_masks[idx][1];
-			return true;
-		}
-		return false;
-	}
-
-	virtual bool is_associatable(unsigned idx)
-	{
-		return true;
-	}
-};
-
-static service_factory_single_t<input_file_type_asap> g_input_file_type_asap_factory;
-
-DECLARE_COMPONENT_VERSION("ASAP", ASAP_VERSION, ASAP_CREDITS "\n" ASAP_COPYRIGHT);
diff --git a/lib/asap/win32/gui.c b/lib/asap/win32/gui.c
deleted file mode 100644
index 55a2592..0000000
--- a/lib/asap/win32/gui.c
+++ /dev/null
@@ -1,516 +0,0 @@
-/*
- * gui.c - settings and file information dialog boxes
- *
- * Copyright (C) 2007-2009  Piotr Fusik
- *
- * This file is part of ASAP (Another Slight Atari Player),
- * see http://asap.sourceforge.net
- *
- * ASAP 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.
- *
- * ASAP is distributed in the hope that 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 ASAP; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <windows.h>
-#include <string.h>
-#include <tchar.h>
-
-#include "asap.h"
-#include "gui.h"
-
-#ifndef WASAP
-
-int song_length = -1;
-int silence_seconds = -1;
-BOOL play_loops = FALSE;
-int mute_mask = 0;
-static int saved_mute_mask;
-#ifdef WINAMP
-BOOL playing_info = FALSE;
-#endif
-
-static void enableTimeInput(HWND hDlg, BOOL enable)
-{
-	EnableWindow(GetDlgItem(hDlg, IDC_MINUTES), enable);
-	EnableWindow(GetDlgItem(hDlg, IDC_SECONDS), enable);
-}
-
-static void setFocusAndSelect(HWND hDlg, int nID)
-{
-	HWND hWnd = GetDlgItem(hDlg, nID);
-	SetFocus(hWnd);
-	SendMessage(hWnd, EM_SETSEL, 0, -1);
-}
-
-static BOOL getDlgInt(HWND hDlg, int nID, int *result)
-{
-	BOOL translated;
-	UINT r = GetDlgItemInt(hDlg, nID, &translated, FALSE);
-	if (!translated) {
-		MessageBox(hDlg, _T("Invalid number"), _T("Error"), MB_OK | MB_ICONERROR);
-		return FALSE;
-	}
-	*result = (int) r;
-	return TRUE;
-}
-
-static INT_PTR CALLBACK settingsDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
-	int i;
-	switch (uMsg) {
-	case WM_INITDIALOG:
-		if (song_length <= 0) {
-			CheckRadioButton(hDlg, IDC_UNLIMITED, IDC_LIMITED, IDC_UNLIMITED);
-			SetDlgItemInt(hDlg, IDC_MINUTES, DEFAULT_SONG_LENGTH / 60, FALSE);
-			SetDlgItemInt(hDlg, IDC_SECONDS, DEFAULT_SONG_LENGTH % 60, FALSE);
-			enableTimeInput(hDlg, FALSE);
-		}
-		else {
-			CheckRadioButton(hDlg, IDC_UNLIMITED, IDC_LIMITED, IDC_LIMITED);
-			SetDlgItemInt(hDlg, IDC_MINUTES, (UINT) song_length / 60, FALSE);
-			SetDlgItemInt(hDlg, IDC_SECONDS, (UINT) song_length % 60, FALSE);
-			enableTimeInput(hDlg, TRUE);
-		}
-		if (silence_seconds <= 0) {
-			CheckDlgButton(hDlg, IDC_SILENCE, BST_UNCHECKED);
-			SetDlgItemInt(hDlg, IDC_SILSECONDS, DEFAULT_SILENCE_SECONDS, FALSE);
-			EnableWindow(GetDlgItem(hDlg, IDC_SILSECONDS), FALSE);
-		}
-		else {
-			CheckDlgButton(hDlg, IDC_SILENCE, BST_CHECKED);
-			SetDlgItemInt(hDlg, IDC_SILSECONDS, (UINT) silence_seconds, FALSE);
-			EnableWindow(GetDlgItem(hDlg, IDC_SILSECONDS), TRUE);
-		}
-		CheckRadioButton(hDlg, IDC_LOOPS, IDC_NOLOOPS, play_loops ? IDC_LOOPS : IDC_NOLOOPS);
-		saved_mute_mask = mute_mask;
-		for (i = 0; i < 8; i++)
-			CheckDlgButton(hDlg, IDC_MUTE1 + i, ((mute_mask >> i) & 1) != 0 ? BST_CHECKED : BST_UNCHECKED);
-		return TRUE;
-	case WM_COMMAND:
-		if (HIWORD(wParam) == BN_CLICKED) {
-			WORD wCtrl = LOWORD(wParam);
-			BOOL enabled;
-			switch (wCtrl) {
-			case IDC_UNLIMITED:
-			case IDC_LIMITED:
-				enabled = (wCtrl == IDC_LIMITED);
-				enableTimeInput(hDlg, enabled);
-				if (enabled)
-					setFocusAndSelect(hDlg, IDC_MINUTES);
-				return TRUE;
-			case IDC_SILENCE:
-				enabled = (IsDlgButtonChecked(hDlg, IDC_SILENCE) == BST_CHECKED);
-				EnableWindow(GetDlgItem(hDlg, IDC_SILSECONDS), enabled);
-				if (enabled)
-					setFocusAndSelect(hDlg, IDC_SILSECONDS);
-				return TRUE;
-			case IDC_LOOPS:
-			case IDC_NOLOOPS:
-				return TRUE;
-			case IDC_MUTE1:
-			case IDC_MUTE1 + 1:
-			case IDC_MUTE1 + 2:
-			case IDC_MUTE1 + 3:
-			case IDC_MUTE1 + 4:
-			case IDC_MUTE1 + 5:
-			case IDC_MUTE1 + 6:
-			case IDC_MUTE1 + 7:
-				i = 1 << (wCtrl - IDC_MUTE1);
-				if (IsDlgButtonChecked(hDlg, wCtrl) == BST_CHECKED)
-					mute_mask |= i;
-				else
-					mute_mask &= ~i;
-				ASAP_MutePokeyChannels(&asap, mute_mask);
-				return TRUE;
-			case IDOK:
-			{
-				int new_song_length;
-				if (IsDlgButtonChecked(hDlg, IDC_UNLIMITED) == BST_CHECKED)
-					new_song_length = -1;
-				else {
-					int minutes;
-					int seconds;
-					if (!getDlgInt(hDlg, IDC_MINUTES, &minutes)
-					 || !getDlgInt(hDlg, IDC_SECONDS, &seconds))
-						return TRUE;
-					new_song_length = 60 * minutes + seconds;
-				}
-				if (IsDlgButtonChecked(hDlg, IDC_SILENCE) != BST_CHECKED)
-					silence_seconds = -1;
-				else if (!getDlgInt(hDlg, IDC_SILSECONDS, &silence_seconds))
-					return TRUE;
-				song_length = new_song_length;
-				play_loops = (IsDlgButtonChecked(hDlg, IDC_LOOPS) == BST_CHECKED);
-			}
-				EndDialog(hDlg, IDOK);
-				return TRUE;
-			case IDCANCEL:
-				mute_mask = saved_mute_mask;
-				ASAP_MutePokeyChannels(&asap, mute_mask);
-				EndDialog(hDlg, IDCANCEL);
-				return TRUE;
-			}
-		}
-		break;
-	default:
-		break;
-	}
-	return FALSE;
-}
-
-BOOL settingsDialog(HINSTANCE hInstance, HWND hwndParent)
-{
-	return DialogBox(hInstance, MAKEINTRESOURCE(IDD_SETTINGS), hwndParent, settingsDialogProc) == IDOK;
-}
-
-int getSongDuration(const ASAP_ModuleInfo *module_info, int song)
-{
-	int duration = module_info->durations[song];
-	if (duration < 0)
-		return 1000 * song_length;
-	if (play_loops && module_info->loops[song])
-		return 1000 * song_length;
-	return duration;
-}
-
-int playSong(int song)
-{
-	int duration = asap.module_info.durations[song];
-	if (duration < 0) {
-		if (silence_seconds > 0)
-			ASAP_DetectSilence(&asap, silence_seconds);
-		duration = 1000 * song_length;
-	}
-	if (play_loops && asap.module_info.loops[song])
-		duration = 1000 * song_length;
-	ASAP_PlaySong(&asap, song, duration);
-	ASAP_MutePokeyChannels(&asap, mute_mask);
-	return duration;
-}
-
-#endif /* WASAP */
-
-#if defined(WASAP) || defined(WINAMP) || defined(APOLLO)
-
-HWND infoDialog = NULL;
-static byte saved_module[ASAP_MODULE_MAX];
-static int saved_module_len;
-static ASAP_ModuleInfo saved_module_info;
-static ASAP_ModuleInfo edited_module_info;
-static int edited_song;
-static BOOL can_save;
-static char convert_filename[MAX_PATH];
-static const char *convert_ext;
-
-char *appendString(char *dest, const char *src)
-{
-	while (*src != '\0')
-		*dest++ = *src++;
-	return dest;
-}
-
-char *appendInt(char *dest, int x)
-{
-	if (x < 0) {
-		*dest++ = '-';
-		x = -x;
-	}
-	if (x >= 10) {
-		dest = appendInt(dest, x / 10);
-		x %= 10;
-	}
-	*dest++ = '0' + x;
-	return dest;
-}
-
-BOOL loadModule(const char *filename, byte *module, int *module_len)
-{
-	HANDLE fh;
-	BOOL ok;
-	fh = CreateFile(filename, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL);
-	if (fh == INVALID_HANDLE_VALUE)
-		return FALSE;
-	ok = ReadFile(fh, module, ASAP_MODULE_MAX, (LPDWORD) module_len, NULL);
-	CloseHandle(fh);
-	return ok;
-}
-
-static void showSongTime(void)
-{
-	char str[ASAP_DURATION_CHARS];
-	ASAP_DurationToString(str, edited_module_info.durations[edited_song]);
-	SendDlgItemMessage(infoDialog, IDC_TIME, WM_SETTEXT, 0, (LPARAM) str);
-	CheckDlgButton(infoDialog, IDC_LOOP, edited_module_info.loops[edited_song] ? BST_CHECKED : BST_UNCHECKED);
-}
-
-static BOOL infoChanged(void)
-{
-	int i;
-	if (strcmp(saved_module_info.author, edited_module_info.author) != 0)
-		return TRUE;
-	if (strcmp(saved_module_info.name, edited_module_info.name) != 0)
-		return TRUE;
-	if (strcmp(saved_module_info.date, edited_module_info.date) != 0)
-		return TRUE;
-	for (i = 0; i < saved_module_info.songs; i++) {
-		if (saved_module_info.durations[i] != edited_module_info.durations[i])
-			return TRUE;
-		if (edited_module_info.durations[i] >= 0
-		 && saved_module_info.loops[i] != edited_module_info.loops[i])
-			return TRUE;
-	}
-	return FALSE;
-}
-
-static void updateSaveButton(void)
-{
-	if (can_save)
-		EnableWindow(GetDlgItem(infoDialog, IDC_SAVE), infoChanged());
-}
-
-static BOOL saveFile(const char *filename, const byte *data, int len)
-{
-	HANDLE fh;
-	DWORD written;
-	BOOL ok;
-	fh = CreateFile(filename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
-	if (fh == INVALID_HANDLE_VALUE)
-		return FALSE;
-	ok = WriteFile(fh, data, len, &written, NULL);
-	CloseHandle(fh);
-	return ok;
-}
-
-static BOOL doSaveInfo(void)
-{
-	char filename[MAX_PATH];
-	byte out_module[ASAP_MODULE_MAX];
-	int out_len;
-	out_len = ASAP_SetModuleInfo(&edited_module_info, saved_module, saved_module_len, out_module);
-	if (out_len <= 0)
-		return FALSE;
-	SendDlgItemMessage(infoDialog, IDC_FILENAME, WM_GETTEXT, MAX_PATH, (LPARAM) filename);
-	if (!saveFile(filename, out_module, out_len))
-		return FALSE;
-	saved_module_info = edited_module_info;
-	showSongTime();
-	EnableWindow(GetDlgItem(infoDialog, IDC_SAVE), FALSE);
-	return TRUE;
-}
-
-static BOOL saveInfo(void)
-{
-	int song = edited_module_info.songs;
-	while (--song >= 0 && edited_module_info.durations[song] < 0);
-	while (--song >= 0)
-		if (edited_module_info.durations[song] < 0) {
-			MessageBox(infoDialog, "Cannot save file because time not set for all songs", "Error", MB_OK | MB_ICONERROR);
-			return FALSE;
-		}
-	if (!doSaveInfo()) {
-		MessageBox(infoDialog, "Cannot save information to file", "Error", MB_OK | MB_ICONERROR);
-		return FALSE;
-	}
-	return TRUE;
-}
-
-static BOOL convert(void)
-{
-	char filename[MAX_PATH];
-	byte out_module[ASAP_MODULE_MAX];
-	int out_len;
-	static OPENFILENAME ofn = {
-		sizeof(OPENFILENAME),
-		NULL,
-		0,
-		NULL,
-		NULL,
-		0,
-		0,
-		convert_filename,
-		MAX_PATH,
-		NULL,
-		0,
-		NULL,
-		"Select output file",
-		OFN_ENABLESIZING | OFN_EXPLORER | OFN_OVERWRITEPROMPT,
-		0,
-		0,
-		NULL,
-		0,
-		NULL,
-		NULL
-	};
-	SendDlgItemMessage(infoDialog, IDC_FILENAME, WM_GETTEXT, MAX_PATH, (LPARAM) filename);
-	out_len = ASAP_Convert(filename, &edited_module_info, saved_module, saved_module_len, out_module);
-	if (out_len <= 0) {
-		MessageBox(infoDialog, "Cannot convert file", "Error", MB_OK | MB_ICONERROR);
-		return FALSE;
-	}
-	ofn.hwndOwner = infoDialog;
-	ofn.lpstrDefExt = convert_ext;
-	if (!GetSaveFileName(&ofn))
-		return FALSE;
-	if (!saveFile(convert_filename, out_module, out_len)) {
-		MessageBox(infoDialog, "Cannot save file", "Error", MB_OK | MB_ICONERROR);
-		return FALSE;
-	}
-	if (strcmp(convert_ext, "sap") == 0)
-		saved_module_info = edited_module_info;
-	return TRUE;
-}
-
-static INT_PTR CALLBACK infoDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
-	char str[ASAP_DURATION_CHARS];
-	switch (uMsg) {
-	case WM_INITDIALOG:
-#ifdef WINAMP
-		CheckDlgButton(hDlg, IDC_PLAYING, playing_info ? BST_CHECKED : BST_UNCHECKED);
-#endif
-		SendDlgItemMessage(hDlg, IDC_AUTHOR, EM_LIMITTEXT, sizeof(edited_module_info.author) - 1, 0);
-		SendDlgItemMessage(hDlg, IDC_NAME, EM_LIMITTEXT, sizeof(edited_module_info.name) - 1, 0);
-		SendDlgItemMessage(hDlg, IDC_DATE, EM_LIMITTEXT, sizeof(edited_module_info.date) - 1, 0);
-		SendDlgItemMessage(hDlg, IDC_TIME, EM_LIMITTEXT, 9, 0);
-		return TRUE;
-	case WM_COMMAND:
-		switch (wParam) {
-#ifdef WINAMP
-		case MAKEWPARAM(IDC_PLAYING, BN_CLICKED):
-			playing_info = (IsDlgButtonChecked(hDlg, IDC_PLAYING) == BST_CHECKED);
-			if (playing_info)
-				updateInfoDialog(current_filename, current_song);
-			return TRUE;
-#endif
-		case MAKEWPARAM(IDC_AUTHOR, EN_CHANGE):
-			SendDlgItemMessage(hDlg, IDC_AUTHOR, WM_GETTEXT, sizeof(edited_module_info.author), (LPARAM) edited_module_info.author);
-			updateSaveButton();
-			return TRUE;
-		case MAKEWPARAM(IDC_NAME, EN_CHANGE):
-			SendDlgItemMessage(hDlg, IDC_NAME, WM_GETTEXT, sizeof(edited_module_info.name), (LPARAM) edited_module_info.name);
-			updateSaveButton();
-			return TRUE;
-		case MAKEWPARAM(IDC_DATE, EN_CHANGE):
-			SendDlgItemMessage(hDlg, IDC_DATE, WM_GETTEXT, sizeof(edited_module_info.date), (LPARAM) edited_module_info.date);
-			updateSaveButton();
-			return TRUE;
-		case MAKEWPARAM(IDC_TIME, EN_CHANGE):
-			SendDlgItemMessage(hDlg, IDC_TIME, WM_GETTEXT, sizeof(str), (LPARAM) str);
-			edited_module_info.durations[edited_song] = ASAP_ParseDuration(str);
-			updateSaveButton();
-			return TRUE;
-		case MAKEWPARAM(IDC_LOOP, BN_CLICKED):
-			edited_module_info.loops[edited_song] = (IsDlgButtonChecked(hDlg, IDC_LOOP) == BST_CHECKED);
-			updateSaveButton();
-			return TRUE;
-		case MAKEWPARAM(IDC_SONGNO, CBN_SELCHANGE):
-			edited_song = SendDlgItemMessage(hDlg, IDC_SONGNO, CB_GETCURSEL, 0, 0);
-			showSongTime();
-			return TRUE;
-		case MAKEWPARAM(IDC_SAVE, BN_CLICKED):
-			saveInfo();
-			return TRUE;
-		case MAKEWPARAM(IDC_CONVERT, BN_CLICKED):
-			convert();
-			return TRUE;
-		case MAKEWPARAM(IDCANCEL, BN_CLICKED):
-			if (infoChanged()) {
-				BOOL ok;
-				switch (MessageBox(hDlg, can_save ? "Save changes?" : "Convert to SAP?", "ASAP", MB_YESNOCANCEL | MB_ICONQUESTION)) {
-				case IDYES:
-					ok = can_save ? saveInfo() : convert();
-					if (!ok)
-						return TRUE;
-					break;
-				case IDCANCEL:
-					return TRUE;
-				default:
-					break;
-				}
-			}
-			DestroyWindow(hDlg);
-			infoDialog = NULL;
-			return TRUE;
-		}
-		break;
-	default:
-		break;
-	}
-	return FALSE;
-}
-
-void showInfoDialog(HINSTANCE hInstance, HWND hwndParent, const char *filename, int song)
-{
-	if (infoDialog == NULL) {
-		edited_module_info = saved_module_info;
-		infoDialog = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_INFO), hwndParent, infoDialogProc);
-	}
-	updateInfoDialog(filename, song);
-}
-
-void updateInfoDialog(const char *filename, int song)
-{
-	BOOL can_edit;
-	int i;
-	if (infoDialog == NULL || infoChanged())
-		return;
-	if (!loadModule(filename, saved_module, &saved_module_len)
-	 || !ASAP_GetModuleInfo(&saved_module_info, filename, saved_module, saved_module_len)) {
-		DestroyWindow(infoDialog);
-		infoDialog = NULL;
-		return;
-	}
-	edited_module_info = saved_module_info;
-	can_save = ASAP_CanSetModuleInfo(filename);
-	convert_ext = ASAP_CanConvert(filename, &edited_module_info, saved_module, saved_module_len);
-	can_edit = can_save || convert_ext != NULL;
-	SendDlgItemMessage(infoDialog, IDC_AUTHOR, EM_SETREADONLY, !can_edit, 0);
-	SendDlgItemMessage(infoDialog, IDC_NAME, EM_SETREADONLY, !can_edit, 0);
-	SendDlgItemMessage(infoDialog, IDC_DATE, EM_SETREADONLY, !can_edit, 0);
-	SendDlgItemMessage(infoDialog, IDC_FILENAME, WM_SETTEXT, 0, (LPARAM) filename);
-	SendDlgItemMessage(infoDialog, IDC_AUTHOR, WM_SETTEXT, 0, (LPARAM) saved_module_info.author);
-	SendDlgItemMessage(infoDialog, IDC_NAME, WM_SETTEXT, 0, (LPARAM) saved_module_info.name);
-	SendDlgItemMessage(infoDialog, IDC_DATE, WM_SETTEXT, 0, (LPARAM) saved_module_info.date);
-	SendDlgItemMessage(infoDialog, IDC_SONGNO, CB_RESETCONTENT, 0, 0);
-	EnableWindow(GetDlgItem(infoDialog, IDC_SONGNO), saved_module_info.songs > 1);
-	for (i = 1; i <= saved_module_info.songs; i++) {
-		char str[16];
-		*appendInt(str, i) = '\0';
-		SendDlgItemMessage(infoDialog, IDC_SONGNO, CB_ADDSTRING, 0, (LPARAM) str);
-	}
-	if (song < 0)
-		song = saved_module_info.default_song;
-	SendDlgItemMessage(infoDialog, IDC_SONGNO, CB_SETCURSEL, song, 0);
-	edited_song = song;
-	showSongTime();
-	SendDlgItemMessage(infoDialog, IDC_TIME, EM_SETREADONLY, !can_edit, 0);
-	EnableWindow(GetDlgItem(infoDialog, IDC_LOOP), can_edit);
-	EnableWindow(GetDlgItem(infoDialog, IDC_SAVE), FALSE);
-	if (convert_ext != NULL) {
-		char convert_command[24] = "&Convert to ";
-		i = 0;
-		do
-			convert_command[12 + i] = convert_ext[i] >= 'a' ? convert_ext[i] - 'a' + 'A' : convert_ext[i];
-		while (convert_ext[i++] != '\0');
-		SendDlgItemMessage(infoDialog, IDC_CONVERT, WM_SETTEXT, 0, (LPARAM) convert_command);
-		strcpy(convert_filename, filename);
-		ASAP_ChangeExt(convert_filename, convert_ext);
-		EnableWindow(GetDlgItem(infoDialog, IDC_CONVERT), TRUE);
-	}
-	else {
-		SendDlgItemMessage(infoDialog, IDC_CONVERT, WM_SETTEXT, 0, (LPARAM) "&Convert");
-		EnableWindow(GetDlgItem(infoDialog, IDC_CONVERT), FALSE);
-	}
-}
-
-#endif
diff --git a/lib/asap/win32/gui.h b/lib/asap/win32/gui.h
deleted file mode 100644
index 97ca39f..0000000
--- a/lib/asap/win32/gui.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * gui.h - settings and file information dialog boxes
- *
- * Copyright (C) 2007-2008  Piotr Fusik
- *
- * This file is part of ASAP (Another Slight Atari Player),
- * see http://asap.sourceforge.net
- *
- * ASAP 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.
- *
- * ASAP is distributed in the hope that 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 ASAP; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define BITS_PER_SAMPLE          16
-
-#define IDC_STATIC     -1
-#define IDD_INFO       300
-#define IDC_PLAYING    301
-#define IDC_FILENAME   302
-#define IDC_AUTHOR     303
-#define IDC_NAME       304
-#define IDC_DATE       305
-#define IDC_SONGNO     306
-#define IDC_TIME       307
-#define IDC_LOOP       308
-#define IDC_SAVE       309
-#define IDC_CONVERT    310
-
-char *appendString(char *dest, const char *src);
-char *appendInt(char *dest, int x);
-BOOL loadModule(const char *filename, byte *module, int *module_len);
-
-extern HWND infoDialog;
-void showInfoDialog(HINSTANCE hInstance, HWND hwndParent, const char *filename, int song);
-void updateInfoDialog(const char *filename, int song);
-
-#ifdef WASAP
-
-#define IDI_APP        101
-#define IDI_STOP       102
-#define IDI_PLAY       103
-#define IDR_TRAYMENU   200
-#define IDM_OPEN       201
-#define IDM_STOP       202
-#define IDM_FILE_INFO  203
-#define IDM_SAVE_WAV   204
-#define IDM_ABOUT      205
-#define IDM_EXIT       206
-#define IDM_SONG1      211
-
-#else /* WASAP */
-
-/* config items */
-#define DEFAULT_SONG_LENGTH      180
-#define DEFAULT_SILENCE_SECONDS  2
-/* 576 is a magic number for Winamp, better do not modify it */
-#define BUFFERED_BLOCKS          576
-
-#ifndef FOOBAR2000
-extern ASAP_State asap;
-extern int song_length;
-extern int silence_seconds;
-extern BOOL play_loops;
-extern int mute_mask;
-#endif
-#ifdef WINAMP
-extern char current_filename[MAX_PATH];
-extern int current_song;
-extern BOOL playing_info;
-#endif
-
-/* resource identifiers */
-#define IDD_SETTINGS   400
-#define IDC_UNLIMITED  401
-#define IDC_LIMITED    402
-#define IDC_MINUTES    403
-#define IDC_SECONDS    404
-#define IDC_SILENCE    405
-#define IDC_SILSECONDS 406
-#define IDC_LOOPS      407
-#define IDC_NOLOOPS    408
-#define IDC_MUTE1      411
-#define IDD_PROGRESS   500
-#define IDC_PROGRESS   501
-
-/* functions */
-BOOL settingsDialog(HINSTANCE hInstance, HWND hwndParent);
-int getSongDuration(const ASAP_ModuleInfo *module_info, int song);
-int playSong(int song);
-
-#endif /* WASAP */
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/lib/asap/win32/gui.rc b/lib/asap/win32/gui.rc
deleted file mode 100644
index ab0075f..0000000
--- a/lib/asap/win32/gui.rc
+++ /dev/null
@@ -1,220 +0,0 @@
-#if defined(WASAP) || defined(WINAMP) || defined(FOOBAR2000) || defined(GSPLAYER) || defined(APOLLO)
-#include <windows.h>
-#include "gui.h"
-#endif
-#ifdef WINAMP
-#include <commctrl.h>
-#endif
-
-#include "..\asap.h"
-
-#ifdef WASAP
-
-#define FILE_DESCRIPTION "WASAP - Windows Another Slight Atari Player"
-#define INTERNAL_NAME "wasap"
-#define ORIGINAL_FILENAME "wasap.exe"
-
-IDI_APP ICON "wasap/wasap.ico"
-IDI_STOP ICON "wasap/stop.ico"
-IDI_PLAY ICON "wasap/play.ico"
-
-IDR_TRAYMENU MENU
-{
-	POPUP "WASAP"
-	{
-		MENUITEM "&Open...", IDM_OPEN
-		MENUITEM "&Stop", IDM_STOP
-		MENUITEM "File &information...", IDM_FILE_INFO
-		MENUITEM "Save as &WAV...", IDM_SAVE_WAV, GRAYED
-		MENUITEM "&About WASAP...", IDM_ABOUT
-		MENUITEM "&Exit", IDM_EXIT
-	}
-}
-
-1 24
-{
-	"<?xml version=\0421.0\042?>"
-	"<assembly xmlns=\042urn:schemas-microsoft-com:asm.v1\042 "
-		"manifestVersion=\0421.0\042>"
-	"<assemblyIdentity version=\0421.0.0.0\042 "
-		"processorArchitecture=\042X86\042 "
-		"name=\042WASAP\042 type=\042win32\042 />"
-	"<dependency><dependentAssembly>"
-	"<assemblyIdentity type=\042win32\042 "
-		"name=\042Microsoft.Windows.Common-Controls\042 "
-		"version=\0426.0.0.0\042 processorArchitecture=\042X86\042 "
-		"publicKeyToken=\0426595b64144ccf1df\042 language=\042*\042 />"
-	"</dependentAssembly></dependency>"
-	"</assembly>"
-}
-
-#else /* WASAP */
-
-#if defined(WINAMP)
-#  define APP_NAME "Winamp"
-#  define INTERNAL_NAME "in_asap"
-#elif defined(FOOBAR2000)
-#  define APP_NAME "foobar2000 0.9"
-#  define INTERNAL_NAME "foo_asap"
-#elif defined(GSPLAYER)
-#  define APP_NAME "GSPlayer"
-#  define INTERNAL_NAME "gspasap"
-#elif defined(DSHOW)
-#  define INTERNAL_NAME "asap_dsf"
-#  define FILE_DESCRIPTION "ASAP DirectShow source filter"
-#elif defined(APOLLO)
-#  define APP_NAME "Apollo"
-#  define INTERNAL_NAME "ASAP_Apollo"
-#elif defined(XBMC)
-#  define APP_NAME "XBMC"
-#  define INTERNAL_NAME "xbmc_asap"
-#elif defined(APOKEYSND)
-#  define INTERNAL_NAME "apokeysnd"
-#  define FILE_DESCRIPTION "Another POKEY sound emulator"
-#endif
-#ifndef FILE_DESCRIPTION
-#  define FILE_DESCRIPTION "ASAP " APP_NAME " plugin"
-#endif
-#define ORIGINAL_FILENAME INTERNAL_NAME ".dll"
-
-#if defined(WINAMP) || defined(FOOBAR2000) || defined(GSPLAYER) || defined(APOLLO)
-
-#ifndef _WIN32_WCE
-IDD_SETTINGS DIALOG 0, 0, 184, 216
-#else
-IDD_SETTINGS DIALOG 0, 0, 268, 142
-#endif
-#ifdef FOOBAR2000
-STYLE WS_CHILD
-#else
-#  ifdef _WIN32_WCE
-STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | WS_POPUP
-#  else
-STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW
-#  endif
-CAPTION "ASAP Settings"
-#endif
-FONT 8, "MS Sans Serif"
-{
-	AUTORADIOBUTTON "No time limit", IDC_UNLIMITED, 16, 16, 152, 12, BS_AUTORADIOBUTTON | WS_TABSTOP | WS_GROUP
-	AUTORADIOBUTTON "Finish after", IDC_LIMITED, 16, 30, 48, 12
-	EDITTEXT IDC_MINUTES, 68, 30, 16, 12, ES_NUMBER | ES_RIGHT | WS_BORDER | WS_TABSTOP
-	LTEXT "m", IDC_STATIC, 88, 32, 10, 12
-	EDITTEXT IDC_SECONDS, 100, 30, 16, 12, ES_NUMBER | ES_RIGHT | WS_BORDER | WS_TABSTOP
-	LTEXT "s", IDC_STATIC, 120, 32, 10, 12
-	AUTOCHECKBOX "Finish after", IDC_SILENCE, 16, 48, 48, 12
-	EDITTEXT IDC_SILSECONDS, 68, 48, 16, 12, ES_NUMBER | ES_RIGHT | WS_BORDER | WS_TABSTOP
-	LTEXT "seconds of silence", IDC_STATIC, 88, 50, 64, 12
-	AUTORADIOBUTTON "Same as songs with unspecified duration", IDC_LOOPS, 16, 84, 152, 12, BS_AUTORADIOBUTTON | WS_TABSTOP | WS_GROUP
-	AUTORADIOBUTTON "Finish when music starts repeating", IDC_NOLOOPS, 16, 98, 152, 12
-#ifndef _WIN32_WCE
-	AUTOCHECKBOX "Channel 1", IDC_MUTE1, 24, 132, 48, 12
-	AUTOCHECKBOX "Channel 2", IDC_MUTE1 + 1, 24, 144, 48, 12
-	AUTOCHECKBOX "Channel 3", IDC_MUTE1 + 2, 24, 156, 48, 12
-	AUTOCHECKBOX "Channel 4", IDC_MUTE1 + 3, 24, 168, 48, 12
-	AUTOCHECKBOX "Channel 1", IDC_MUTE1 + 4, 112, 132, 48, 12
-	AUTOCHECKBOX "Channel 2", IDC_MUTE1 + 5, 112, 144, 48, 12
-	AUTOCHECKBOX "Channel 3", IDC_MUTE1 + 6, 112, 156, 48, 12
-	AUTOCHECKBOX "Channel 4", IDC_MUTE1 + 7, 112, 168, 48, 12
-	GROUPBOX "Songs with unspecified duration", IDC_STATIC, 8, 4, 168, 64
-	GROUPBOX "Songs marked as looping", IDC_STATIC, 8, 72, 168, 46
-	GROUPBOX "Mute base POKEY", IDC_STATIC, 8, 122, 80, 64
-	GROUPBOX "Mute extra POKEY", IDC_STATIC, 96, 122, 80, 64
-#  ifndef FOOBAR2000
-	DEFPUSHBUTTON "OK", IDOK, 38, 194, 50, 14
-	PUSHBUTTON "Cancel", IDCANCEL, 96, 194, 50, 14
-#  endif
-#else
-	AUTOCHECKBOX "Channel 1", IDC_MUTE1, 196, 14, 48, 12
-	AUTOCHECKBOX "Channel 2", IDC_MUTE1 + 1, 196, 26, 48, 12
-	AUTOCHECKBOX "Channel 3", IDC_MUTE1 + 2, 196, 38, 48, 12
-	AUTOCHECKBOX "Channel 4", IDC_MUTE1 + 3, 196, 50, 48, 12
-	AUTOCHECKBOX "Channel 1", IDC_MUTE1 + 4, 196, 82, 48, 12
-	AUTOCHECKBOX "Channel 2", IDC_MUTE1 + 5, 196, 94, 48, 12
-	AUTOCHECKBOX "Channel 3", IDC_MUTE1 + 6, 196, 106, 48, 12
-	AUTOCHECKBOX "Channel 4", IDC_MUTE1 + 7, 196, 118, 48, 12
-	GROUPBOX "Songs with unspecified duration", IDC_STATIC, 8, 4, 168, 64
-	GROUPBOX "Songs marked as looping", IDC_STATIC, 8, 72, 168, 46
-	GROUPBOX "Mute base POKEY", IDC_STATIC, 180, 4, 80, 64
-	GROUPBOX "Mute extra POKEY", IDC_STATIC, 180, 72, 80, 64
-	DEFPUSHBUTTON "OK", IDOK, 38, 122, 50, 14
-	PUSHBUTTON "Cancel", IDCANCEL, 96, 122, 50, 14
-#endif
-}
-
-#endif /* defined(WINAMP) || defined(FOOBAR2000) || defined(GSPLAYER) || defined(APOLLO) */
-
-#ifdef WINAMP
-IDD_PROGRESS DIALOG 0, 0, 160, 48
-STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | WS_POPUP | WS_VISIBLE
-CAPTION "Please wait"
-FONT 8, "MS Sans Serif"
-{
-	CTEXT "Adding subsongs to the playlist", IDC_STATIC, 8, 8, 144, 12
-	CONTROL "", IDC_PROGRESS, PROGRESS_CLASS, 0, 8, 24, 144, 12
-}
-#endif
-
-#endif /* WASAP */
-
-#if defined(WASAP) || defined(WINAMP) || defined(APOLLO)
-#ifdef WINAMP
-#define INFO_Y  18
-#else
-#define INFO_Y  0
-#endif
-IDD_INFO DIALOG 0, 0, 300, 102+INFO_Y
-STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE
-CAPTION "File information"
-FONT 8, "MS Sans Serif"
-{
-#ifdef WINAMP
-	AUTOCHECKBOX "Show information about the currently &playing file", IDC_PLAYING, 46, 8, 284, 12
-#endif
-	RTEXT "&Filename:", IDC_STATIC, 8, 10+INFO_Y, 30, 12
-	EDITTEXT IDC_FILENAME, 46, 8+INFO_Y, 246, 12, ES_LEFT | ES_AUTOHSCROLL | ES_READONLY | WS_BORDER | WS_TABSTOP
-	RTEXT "&Author:", IDC_STATIC, 8, 24+INFO_Y, 30, 12
-	EDITTEXT IDC_AUTHOR, 46, 22+INFO_Y, 246, 12, ES_LEFT | ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
-	RTEXT "&Name:", IDC_STATIC, 8, 38+INFO_Y, 30, 12
-	EDITTEXT IDC_NAME, 46, 36+INFO_Y, 246, 12, ES_LEFT | ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
-	RTEXT "&Date:", IDC_STATIC, 8, 52+INFO_Y, 30, 12
-	EDITTEXT IDC_DATE, 46, 50+INFO_Y, 246, 12, ES_LEFT | ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
-	RTEXT "S&ong:", IDC_STATIC, 8, 66+INFO_Y, 30, 12
-	COMBOBOX IDC_SONGNO, 46, 64+INFO_Y, 26, 12, CBS_DROPDOWNLIST | WS_TABSTOP
-	RTEXT "&Time:", IDC_STATIC, 80, 66+INFO_Y, 20, 12
-	EDITTEXT IDC_TIME, 108, 64+INFO_Y, 40, 12
-	AUTOCHECKBOX "&Loop", IDC_LOOP, 156, 64+INFO_Y, 40, 12
-	DEFPUSHBUTTON "&Save", IDC_SAVE, 106, 82+INFO_Y, 50, 14
-	PUSHBUTTON "&Convert", IDC_CONVERT, 164, 82+INFO_Y, 70, 14
-	PUSHBUTTON "Close", IDCANCEL, 242, 82+INFO_Y, 50, 14
-}
-#endif /* defined(WASAP) || defined(WINAMP) || defined(APOLLO) */
-
-1 VERSIONINFO
-	FILEVERSION ASAP_VERSION_MAJOR, ASAP_VERSION_MINOR, ASAP_VERSION_MICRO, 0
-	PRODUCTVERSION ASAP_VERSION_MAJOR, ASAP_VERSION_MINOR, ASAP_VERSION_MICRO, 0
-	FILEFLAGSMASK 0x3fL
-	FILEFLAGS 0x0L
-	FILEOS 0x40004L
-	FILETYPE 0x1L
-	FILESUBTYPE 0x0L
-{
-	BLOCK "StringFileInfo"
-	{
-		BLOCK "040904b0"
-		{
-			VALUE "CompanyName", "Piotr Fusik\0"
-			VALUE "FileDescription", FILE_DESCRIPTION "\0"
-			VALUE "FileVersion", ASAP_VERSION "\0"
-			VALUE "InternalName", INTERNAL_NAME "\0"
-			VALUE "LegalCopyright", "Copyleft " ASAP_YEARS "\0"
-			VALUE "OriginalFilename", ORIGINAL_FILENAME "\0"
-			VALUE "ProductName", "ASAP\0"
-			VALUE "ProductVersion", ASAP_VERSION "\0"
-		}
-	}
-	BLOCK "VarFileInfo"
-	{
-		VALUE "Translation", 0x409, 1200
-	}
-}
diff --git a/lib/asap/win32/setup/Website.url b/lib/asap/win32/setup/Website.url
deleted file mode 100755
index 4a90ca4..0000000
--- a/lib/asap/win32/setup/Website.url
+++ /dev/null
@@ -1,2 +0,0 @@
-[InternetShortcut]
-URL=http://asap.sourceforge.net/
diff --git a/lib/asap/win32/setup/asap-banner.jpg b/lib/asap/win32/setup/asap-banner.jpg
deleted file mode 100755
index 88afb5e..0000000
Binary files a/lib/asap/win32/setup/asap-banner.jpg and /dev/null differ
diff --git a/lib/asap/win32/setup/asap-dialog.jpg b/lib/asap/win32/setup/asap-dialog.jpg
deleted file mode 100755
index 6d8846b..0000000
Binary files a/lib/asap/win32/setup/asap-dialog.jpg and /dev/null differ
diff --git a/lib/asap/win32/setup/asap.wxs b/lib/asap/win32/setup/asap.wxs
deleted file mode 100755
index 6343367..0000000
--- a/lib/asap/win32/setup/asap.wxs
+++ /dev/null
@@ -1,417 +0,0 @@
-<?xml version="1.0"?>
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
-	<Product Id="*" Name="ASAP - Another Slight Atari Player $(var.VERSION)" Language="1033"
-		Version="$(var.VERSION)" Manufacturer="Piotr Fusik"
-		UpgradeCode="4250B3CB-D4A1-4486-828C-AC26A84D00D9">
-
-		<Package Description="ASAP - Another Slight Atari Player"
-			Manufacturer="Piotr Fusik" InstallerVersion="200" Compressed="yes" />
-		<Upgrade Id="4250B3CB-D4A1-4486-828C-AC26A84D00D9">
-			<UpgradeVersion Property="NEWERVERSIONDETECTED" Minimum="$(var.VERSION)" OnlyDetect="yes" />
-			<UpgradeVersion Property="PREVIOUSVERSIONSINSTALLED" Maximum="$(var.VERSION)" IncludeMaximum="no" MigrateFeatures="yes" />
-		</Upgrade>
-		<Condition Message="Newer version of ASAP is already installed!">NOT NEWERVERSIONDETECTED</Condition>
-		<Media Id="1" Cabinet="asap.cab" EmbedCab="yes" CompressionLevel="high" />
-
-		<?define NATIVEEXTS=cmc;cm3;cmr;cms;dmc;dlt;mpt;mpd;rmt;tmc;tm8;tm2?>
-		<?define ASAPEXTS=sap;$(var.NATIVEEXTS)?>
-		<?define DOUBLECLICK=Double-click SAP, CMC, CM3, CMR, CMS, DMC, DLT, MPT, MPD, RMT, TMC, TM8 or TM2 file in Windows Explorer to play it in ?>
-
-		<Icon Id="wasap.ico" SourceFile="wasap/wasap.ico" />
-		<Property Id="ARPHELPLINK" Value="http://asap.sourceforge.net/" />
-		<Property Id="ARPPRODUCTICON" Value="wasap.ico" />
-		<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
-		<WixVariable Id="WixUIDialogBmp" Value="asap-dialog.jpg" />
-		<WixVariable Id="WixUIBannerBmp" Value="asap-banner.jpg" />
-
-		<UI Id="MyWixUI_FeatureTree">
-			<!-- customized WixUI_FeatureTree from Wix 3.0 - my changes commented -->
-			<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
-			<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
-			<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
-
-			<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
-			<Property Id="WixUI_Mode" Value="FeatureTree" />
-
-			<DialogRef Id="ErrorDlg" />
-			<DialogRef Id="FatalError" />
-			<DialogRef Id="FilesInUse" />
-			<DialogRef Id="MsiRMFilesInUse" />
-			<DialogRef Id="PrepareDlg" />
-			<DialogRef Id="ProgressDlg" />
-			<DialogRef Id="ResumeDlg" />
-			<DialogRef Id="UserExit" />
-
-			<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
-
-			<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="MyLicenseAgreementDlg">1</Publish>
-
-			<Publish Dialog="MyLicenseAgreementDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
-			<Publish Dialog="MyLicenseAgreementDlg" Control="Next" Event="NewDialog" Value="MyCustomizeDlg">1</Publish>
-
-			<Publish Dialog="MyCustomizeDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="1">Installed</Publish>
-			<Publish Dialog="MyCustomizeDlg" Control="Back" Event="NewDialog" Value="MyLicenseAgreementDlg" Order="2">NOT Installed</Publish>
-			<Publish Dialog="MyCustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
-
-			<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MyCustomizeDlg" Order="1">NOT Installed OR WixUI_InstallMode = "Change"</Publish>
-			<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed</Publish>
-
-			<Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
-
-			<Publish Dialog="MaintenanceTypeDlg" Control="ChangeButton" Event="NewDialog" Value="MyCustomizeDlg">1</Publish>
-			<Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
-			<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
-			<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
-
-			<Dialog Id="MyLicenseAgreementDlg" Width="370" Height="270" Title="!(loc.LicenseAgreementDlg_Title)">
-				<!-- removed checkbox and replaced Next button with I Accept -->
-				<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="I &Accept">
-					<Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg">CostingComplete = 1</Publish>
-				</Control>
-				<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
-				<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
-					<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
-				</Control>
-				<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.LicenseAgreementDlgBannerBitmap)" />
-				<!-- higher license box because of the removed checkbox -->
-				<Control Id="LicenseText" Type="ScrollableText" X="20" Y="60" Width="330" Height="155" Sunken="yes" TabSkip="no">
-					<Text SourceFile="!(wix.WixUILicenseRtf)" />
-				</Control>
-				<!-- removed Print button -->
-				<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
-				<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
-				<Control Id="Description" Type="Text" X="25" Y="23" Width="340" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.LicenseAgreementDlgDescription)" />
-				<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.LicenseAgreementDlgTitle)" />
-			</Dialog>
-
-			<Dialog Id="MyCustomizeDlg" Width="370" Height="270" Title="!(loc.CustomizeDlg_Title)" TrackDiskSpace="yes">
-				<!-- wider and higher selection tree so it doesn't need scrollbars -->
-				<Control Id="Tree" Type="SelectionTree" X="10" Y="75" Width="190" Height="125" Property="_BrowseProperty" Sunken="yes" TabSkip="no" Text="!(loc.CustomizeDlgTree)" />
-				<Control Id="Browse" Type="PushButton" X="294" Y="210" Width="66" Height="17" Text="!(loc.CustomizeDlgBrowse)">
-					<Publish Event="SelectionBrowse" Value="BrowseDlg">1</Publish>
-					<Condition Action="hide">Installed</Condition>
-					<Condition Action="disable">Installed</Condition>
-				</Control>
-				<!-- removed Reset and Disk Cost buttons, moved Back and Next buttons to their position in other dialogs -->
-				<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
-				<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)">
-					<Subscribe Event="SelectionNoItems" Attribute="Enabled" />
-				</Control>
-				<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
-					<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
-				</Control>
-				<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.CustomizeDlgBannerBitmap)" />
-				<Control Id="Text" Type="Text" X="25" Y="55" Width="320" Height="20" Text="!(loc.CustomizeDlgText)" />
-				<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
-				<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
-				<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.CustomizeDlgDescription)" />
-				<Control Id="Title" Type="Text" X="15" Y="6" Width="210" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.CustomizeDlgTitle)" />
-				<Control Id="Box" Type="GroupBox" X="210" Y="71" Width="150" Height="128" />
-				<Control Id="ItemDescription" Type="Text" X="215" Y="90" Width="131" Height="50" Text="!(loc.CustomizeDlgItemDescription)">
-					<Subscribe Event="SelectionDescription" Attribute="Text" />
-				</Control>
-				<Control Id="ItemSize" Type="Text" X="215" Y="140" Width="131" Height="50" Text="!(loc.CustomizeDlgItemSize)">
-					<Subscribe Event="SelectionSize" Attribute="Text" />
-				</Control>
-				<Control Id="Location" Type="Text" X="90" Y="210" Width="200" Height="20" Text="!(loc.CustomizeDlgLocation)">
-					<Subscribe Event="SelectionPath" Attribute="Text" />
-					<Subscribe Event="SelectionPathOn" Attribute="Visible" />
-					<Condition Action="hide">Installed</Condition>
-				</Control>
-				<Control Id="LocationLabel" Type="Text" X="25" Y="210" Width="65" Height="10" Text="!(loc.CustomizeDlgLocationLabel)">
-					<Subscribe Event="SelectionPathOn" Attribute="Visible" />
-					<Condition Action="hide">Installed</Condition>
-				</Control>
-			</Dialog>
-
-			<!-- handle mutually exclusive file associations, conditions generated with wix_mutex.pl -->
-			<?foreach MUTEXCOND in (($wasap.ext=3 OR ($wasap.ext=-1 AND ?wasap.ext=3)) AND ($asap_dsf.ext=3 OR ($asap_dsf.ext=-1 AND ?asap_dsf.ext=3) OR $in_asap.ext=3 OR ($in_asap.ext=-1 AND ?in_asap.ext=3)));
-(($wasap.ext=3 OR ($wasap.ext=-1 AND ?wasap.ext=3)) AND ($foo_asap.ext=3 OR ($foo_asap.ext=-1 AND ?foo_asap.ext=3) OR $ASAP_Apollo.ext=3 OR ($ASAP_Apollo.ext=-1 AND ?ASAP_Apollo.ext=3)));
-(($asap_dsf.ext=3 OR ($asap_dsf.ext=-1 AND ?asap_dsf.ext=3)) AND ($in_asap.ext=3 OR ($in_asap.ext=-1 AND ?in_asap.ext=3) OR $foo_asap.ext=3 OR ($foo_asap.ext=-1 AND ?foo_asap.ext=3)));
-(($asap_dsf.ext=3 OR ($asap_dsf.ext=-1 AND ?asap_dsf.ext=3)) AND ($ASAP_Apollo.ext=3 OR ($ASAP_Apollo.ext=-1 AND ?ASAP_Apollo.ext=3)));
-(($in_asap.ext=3 OR ($in_asap.ext=-1 AND ?in_asap.ext=3)) AND ($foo_asap.ext=3 OR ($foo_asap.ext=-1 AND ?foo_asap.ext=3) OR $ASAP_Apollo.ext=3 OR ($ASAP_Apollo.ext=-1 AND ?ASAP_Apollo.ext=3)));
-(($foo_asap.ext=3 OR ($foo_asap.ext=-1 AND ?foo_asap.ext=3)) AND ($ASAP_Apollo.ext=3 OR ($ASAP_Apollo.ext=-1 AND ?ASAP_Apollo.ext=3)))?>
-			<Publish Dialog="MyCustomizeDlg" Control="Next" Event="SpawnDialog" Value="MyManyAssociationsDlg" Order="3">
-				$(var.MUTEXCOND)
-			</Publish>
-			<?endforeach?>
-			<Dialog Id="MyManyAssociationsDlg" Width="270" Height="85" Title="!(loc.ErrorDlg_Title)">
-				<Control Id="ErrorText" Type="Text" X="48" Y="15" Width="205" Height="60" TabSkip="no" Text="You have selected "Associate file types" for many players. You may associate files with only one player." />
-				<Control Id="ErrorIcon" Type="Icon" X="15" Y="15" Width="24" Height="24" ToolTip="!(loc.ErrorDlgErrorIconTooltip)" FixedSize="yes" IconSize="32" Text="!(loc.ErrorDlgErrorIcon)" />
-				<Control Id="O" Type="PushButton" X="100" Y="60" Width="56" Height="17" TabSkip="yes" Text="!(loc.WixUIOK)">
-					<Publish Event="EndDialog" Value="Return">1</Publish>
-				</Control>
-			</Dialog>
-		</UI>
-		<UIRef Id="WixUI_Common" />
-
-		<Property Id="WMP.EXE">
-			<RegistrySearch Id="wmp.installdir" Root="HKLM" Key="SOFTWARE\Microsoft\MediaPlayer" Name="Installation Directory" Type="directory">
-				<FileSearch Id="wmp.exe" Name="wmplayer.exe" />
-			</RegistrySearch>
-		</Property>
-		<Property Id="WINAMP.DIR">
-			<RegistrySearch Id="winamp.installdir" Root="HKCU" Key="SOFTWARE\Winamp" Type="directory" />
-		</Property>
-		<Property Id="WINAMP.EXE">
-			<RegistrySearch Id="winamp.exe" Root="HKCU" Key="SOFTWARE\Winamp" Type="directory">
-				<FileSearch Name="winamp.exe" />
-			</RegistrySearch>
-		</Property>
-		<Property Id="FOO.DIR">
-			<RegistrySearch Id="foo.installdir" Root="HKLM" Key="SOFTWARE\foobar2000" Name="InstallDir" Type="directory" />
-		</Property>
-		<Property Id="FOO.EXE">
-			<RegistrySearch Id="foo.exe" Root="HKLM" Key="SOFTWARE\foobar2000" Name="InstallDir" Type="directory">
-				<FileSearch Name="foobar2000.exe" />
-			</RegistrySearch>
-		</Property>
-		<Property Id="XBMC.DIR">
-			<RegistrySearch Id="xbmc.installdir" Root="HKCU" Key="SOFTWARE\XBMC" Type="directory" />
-		</Property>
-		<Property Id="APOLLO.DIR">
-			<RegistrySearch Id="apollo.installdir" Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Apollo_is1" Name="InstallLocation" Type="directory" />
-		</Property>
-		<Property Id="APOLLO.EXE">
-			<RegistrySearch Id="apollo.exe" Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Apollo_is1" Name="InstallLocation" Type="directory">
-				<FileSearch Name="Apollo.exe" />
-			</RegistrySearch>
-		</Property>
-
-		<Directory Id="TARGETDIR" Name="SourceDir">
-			<Directory Id="ProgramFilesFolder">
-				<Directory Id="ASAP.DIR" Name="ASAP">
-					<Component Id="wasap.exe" Guid="*">
-						<File Id="wasap.exe" Name="wasap.exe" Source="wasap.exe" Checksum="yes" KeyPath="yes" />
-					</Component>
-					<Component Id="wasap.ext" Guid="*">
-						<RegistryValue Root="HKCR" Key="asap.file" Name="wasap" Type="integer" Value="1" KeyPath="yes" />
-						<ProgId Id="asap.file">
-							<Extension Id="sap">
-								<!-- nothing special about "sap", just Verb needs to be defined only once per ProgId -->
-								<Verb Id="open" TargetFile="wasap.exe" Argument='"%1"' />
-							</Extension>
-							<?foreach EXT in $(var.NATIVEEXTS)?>
-								<Extension Id="$(var.EXT)" />
-							<?endforeach?>
-						</ProgId>
-					</Component>
-					<Component Id="asap2wav.exe" Guid="*">
-						<File Id="asap2wav.exe" Name="asap2wav.exe" Source="asap2wav.exe" Checksum="yes" KeyPath="yes" />
-					</Component>
-					<Component Id="path" Guid="D7247D41-0B9A-42D3-9847-06C37F88E2ED">
-						<Environment Id="path" Action="set" Name="Path" Part="last" Permanent="no" System="yes" Value="[ASAP.DIR]" />
-						<CreateFolder />
-					</Component>
-					<Component Id="asap_dsf.dll" Guid="*">
-						<File Id="asap_dsf.dll" Name="asap_dsf.dll" Source="asap_dsf.dll" Checksum="yes" KeyPath="yes">
-							<Class Id="{8E6205A0-19E2-4037-AF32-B29A9B9D0C93}" Context="InprocServer32" Description="ASAP source filter" ThreadingModel="both" />
-						</File>
-						<RegistryValue Root="HKCR" Key="CLSID\{083863F1-70DE-11D0-BD40-00A0C911CE86}\Instance\{8E6205A0-19E2-4037-AF32-B29A9B9D0C93}" Name="FriendlyName" Value="ASAP source filter" Type="string" Action="write" />
-						<RegistryValue Root="HKCR" Key="CLSID\{083863F1-70DE-11D0-BD40-00A0C911CE86}\Instance\{8E6205A0-19E2-4037-AF32-B29A9B9D0C93}" Name="CLSID" Value="{8E6205A0-19E2-4037-AF32-B29A9B9D0C93}" Type="string" Action="write" />
-						<RegistryValue Root="HKCR" Key="CLSID\{083863F1-70DE-11D0-BD40-00A0C911CE86}\Instance\{8E6205A0-19E2-4037-AF32-B29A9B9D0C93}" Name="FilterData" Value="02000000000060000100000000000000307069330800000000000000010000000000000000000000307479330000000038000000480000006175647300001000800000AA00389B710100000000001000800000AA00389B71" Type="binary" Action="write" />
-						<?foreach EXT in $(var.ASAPEXTS)?>
-							<RegistryValue Root="HKCR" Key="Media Type\Extensions\.$(var.EXT)" Name="Source Filter" Value="{8E6205A0-19E2-4037-AF32-B29A9B9D0C93}" Type="string" Action="write" />
-						<?endforeach?>
-						<?foreach EXT in $(var.ASAPEXTS)?>
-							<RegistryValue Root="HKLM" Key="Software\Microsoft\Multimedia\WMPlayer\Extensions\.$(var.EXT)" Name="Permissions" Value="15" Type="integer" Action="write" />
-							<RegistryValue Root="HKLM" Key="Software\Microsoft\Multimedia\WMPlayer\Extensions\.$(var.EXT)" Name="Runtime" Value="7" Type="integer" Action="write" />
-						<?endforeach?>
-					</Component>
-					<Component Id="asap_dsf.ext" Guid="*">
-						<RegistryValue Root="HKCR" Key="asap.file" Name="asap_dsf" Type="integer" Value="1" KeyPath="yes" />
-						<ProgId Id="asap.file">
-							<Extension Id="sap">
-								<Verb Id="open" TargetProperty="WMP.EXE" Argument='"%1"' />
-							</Extension>
-							<?foreach EXT in $(var.NATIVEEXTS)?>
-								<Extension Id="$(var.EXT)" />
-							<?endforeach?>
-						</ProgId>
-					</Component>
-					<Component Id="README_WindowsSetup.html" Guid="*">
-						<File Id="README_WindowsSetup.html" Name="README_WindowsSetup.html" Source="README_WindowsSetup.html" KeyPath="yes" />
-					</Component>
-				</Directory>
-				<Directory Id="WINAMP.DIR" Name="Winamp">
-					<Directory Id="WINAMPPLUG.DIR" Name="Plugins">
-						<Component Id="in_asap.dll" Guid="*">
-							<File Id="in_asap.dll" Name="in_asap.dll" Source="in_asap.dll" Checksum="yes" KeyPath="yes" />
-						</Component>
-						<Component Id="in_asap.ext" Guid="*">
-							<RegistryValue Root="HKCR" Key="Winamp.File" Name="in_asap" Type="integer" Value="1" KeyPath="yes" />
-							<ProgId Id="Winamp.File">
-								<Extension Id="sap">
-									<Verb Id="open" TargetProperty="WINAMP.EXE" Argument='"%1"' />
-								</Extension>
-								<?foreach EXT in $(var.NATIVEEXTS)?>
-									<Extension Id="$(var.EXT)" />
-								<?endforeach?>
-							</ProgId>
-						</Component>
-					</Directory>
-				</Directory>
-				<Directory Id="FOO.DIR" Name="foobar2000">
-					<Directory Id="FOOCOMP.DIR" Name="components">
-						<Component Id="foo_asap.dll" Guid="*">
-							<File Id="foo_asap.dll" Name="foo_asap.dll" Source="foo_asap.dll" Checksum="yes" KeyPath="yes" />
-						</Component>
-						<Component Id="foo_asap.ext" Guid="*">
-							<RegistryValue Root="HKCR" Key="asap.file" Name="foo_asap" Type="integer" Value="1" KeyPath="yes" />
-							<?foreach EXT in $(var.NATIVEEXTS)?>
-								<ProgId Id="foobar2000.$(var.EXT)">
-									<Extension Id="$(var.EXT)">
-										<Verb Id="open" TargetProperty="FOO.EXE" Argument='"%1"' />
-									</Extension>
-								</ProgId>
-							<?endforeach?>
-						</Component>
-					</Directory>
-				</Directory>
-				<Directory Id="XBMC.DIR" Name="XBMC">
-					<Directory Id="XBMCSYS.DIR" Name="system">
-						<Directory Id="XBMCPLS.DIR" Name="players">
-							<Directory Id="XBMCPAPL.DIR" Name="paplayer">
-								<Component Id="xbmc_asap.dll" Guid="*">
-									<File Id="xbmc_asap.dll" Name="xbmc_asap.dll" Source="xbmc_asap.dll" Checksum="yes" KeyPath="yes" />
-								</Component>
-							</Directory>
-						</Directory>
-					</Directory>
-				</Directory>
-				<Directory Id="APOLLO.DIR" Name="Apollo">
-					<Directory Id="APOLLOPLUG.DIR" Name="Plug-ins">
-						<Component Id="ASAP_Apollo.dll" Guid="*">
-							<File Id="ASAP_Apollo.dll" Name="ASAP_Apollo.dll" Source="ASAP_Apollo.dll" Checksum="yes" KeyPath="yes" />
-						</Component>
-						<Component Id="ASAP_Apollo.ext" Guid="*">
-							<RegistryValue Root="HKCR" Key="Apollo.Track" Name="ASAP_Apollo" Type="integer" Value="1" KeyPath="yes" />
-							<ProgId Id="Apollo.Track">
-								<Extension Id="sap">
-									<Verb Id="Play" TargetProperty="APOLLO.EXE" Argument='"%1"' />
-								</Extension>
-								<?foreach EXT in $(var.NATIVEEXTS)?>
-									<Extension Id="$(var.EXT)" />
-								<?endforeach?>
-							</ProgId>
-						</Component>
-					</Directory>
-				</Directory>
-				<Directory Id="GSP.DIR" Name="GSPlayer">
-					<Component Id="gspasap.dll" Guid="*">
-						<File Id="gspasap.dll" Name="gspasap.dll" Source="gspasap.dll" Checksum="yes" KeyPath="yes" />
-					</Component>
-				</Directory>
-				<Directory Id="RMT.DIR" Name="RMT">
-					<Component Id="apokeysnd.dll" Guid="*">
-						<File Id="apokeysnd.dll" Name="apokeysnd.dll" Source="apokeysnd.dll" Checksum="yes" KeyPath="yes" />
-					</Component>
-				</Directory>
-			</Directory>
-			<Directory Id="ProgramMenuFolder" Name="Programs">
-				<Directory Id="menu.dir" Name="ASAP">
-					<Component Id="WASAP.lnk" Guid="*">
-						<RegistryValue Root="HKCU" Key="Software\ASAP" Name="ProgramsMenuWASAP" Type="integer" Value="1" KeyPath="yes" />
-						<Shortcut Id="WASAP.lnk" Name="WASAP" Target="[#wasap.exe]" />
-					</Component>
-					<Component Id="Documentation.lnk" Guid="*">
-						<RemoveFolder Id="menu.dir" On="uninstall" />
-						<RegistryValue Root="HKCU" Key="Software\ASAP" Name="ProgramsMenuDoc" Type="integer" Value="1" KeyPath="yes" />
-						<Shortcut Id="Documentation.lnk" Name="Documentation" Target="[#README_WindowsSetup.html]" />
-					</Component>
-					<Component Id="Website.url" Guid="07CB02BE-17AE-49AA-87B1-D0315CF2D47A">
-						<RegistryValue Root="HKCU" Key="Software\ASAP" Name="ProgramsMenuWebsite" Type="integer" Value="1" KeyPath="yes" />
-						<!-- <util:InternetShortcut Id="Website.url" Name="Website" Target="http://asap.sourceforge.net/" /> = 150 kB overhead on MSI -->
-						<!-- <IniFile Id="Website.url" Name="Website.url" Directory="menu.dir" Action="addLine" Section="InternetShortcut" Key="URL" Value="http://asap.sourceforge.net/" /> = 0.5 kB bigger MSI than with File -->
-						<File Id="Website.url" Name="Website.url" Source="Website.url" />
-					</Component>
-					<Component Id="uninstall.lnk" Guid="*">
-						<RegistryValue Root="HKCU" Key="Software\ASAP" Name="ProgramsMenuUninstall" Type="integer" Value="1" KeyPath="yes" />
-						<Shortcut Id="uninstall.lnk" Name="Uninstall" Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode]" />
-					</Component>
-				</Directory>
-			</Directory>
-			<Directory Id="DesktopFolder" Name="Desktop">
-				<Component Id="WASAP.desktop" Guid="*">
-					<RegistryValue Root="HKCU" Key="Software\ASAP" Name="DesktopWASAP" Type="integer" Value="1" KeyPath="yes" />
-					<Shortcut Id="WASAP.desktop" Name="WASAP" Target="[#wasap.exe]" />
-				</Component>
-			</Directory>
-		</Directory>
-
-		<Feature Id="wasap" Title="WASAP" Level="1" ConfigurableDirectory="ASAP.DIR" Description="Tiny player controlled by a tray icon." AllowAdvertise="no">
-			<ComponentRef Id="wasap.exe" />
-			<Feature Id="wasap.lnk" Title="Start menu shortcut" Level="1" Description="Adds WASAP to the Programs menu." AllowAdvertise="no">
-				<ComponentRef Id="WASAP.lnk" />
-			</Feature>
-			<Feature Id="wasap.desktop" Title="Desktop shortcut" Level="9" Description="Adds WASAP to the desktop." AllowAdvertise="no">
-				<ComponentRef Id="WASAP.desktop" />
-			</Feature>
-			<Feature Id="wasap.ext" Title="Associate file types" Level="9" Description="$(var.DOUBLECLICK) WASAP." AllowAdvertise="no">
-				<ComponentRef Id="wasap.ext" />
-			</Feature>
-		</Feature>
-		<Feature Id="asap2wav" Title="ASAP2WAV" Level="1" ConfigurableDirectory="ASAP.DIR" Description="Command-line converter to WAV files." AllowAdvertise="no">
-			<ComponentRef Id="asap2wav.exe" />
-			<Feature Id="path" Title="Add to Path" Level="1" Description="Add the directory to the Path environment variable so that you don't have to type the location of asap2wav at the command prompt." AllowAdvertise="no">
-				<ComponentRef Id="path" />
-			</Feature>
-		</Feature>
-		<Feature Id="asap_dsf" Title="Windows Media Player plugin" Level="1" ConfigurableDirectory="ASAP.DIR" Description="Plugin for Windows Media Player." AllowAdvertise="no">
-			<ComponentRef Id="asap_dsf.dll" />
-			<Feature Id="asap_dsf.ext" Title="Associate file types" Level="0" Description="$(var.DOUBLECLICK) Windows Media Player." AllowAdvertise="no">
-				<Condition Level="9">WMP.EXE</Condition>
-				<ComponentRef Id="asap_dsf.ext" />
-			</Feature>
-		</Feature>
-		<Feature Id="in_asap" Title="Winamp plugin" Level="9" ConfigurableDirectory="WINAMPPLUG.DIR" Description="Plugin for Winamp." AllowAdvertise="no">
-			<Condition Level="1">WINAMP.DIR</Condition>
-			<ComponentRef Id="in_asap.dll" />
-			<Feature Id="in_asap.ext" Title="Associate file types" Level="0" Description="$(var.DOUBLECLICK) Winamp." AllowAdvertise="no">
-				<Condition Level="9">WINAMP.EXE</Condition>
-				<ComponentRef Id="in_asap.ext" />
-			</Feature>
-		</Feature>
-		<Feature Id="foo_asap" Title="foobar2000 0.9 plugin" Level="9" ConfigurableDirectory="FOOCOMP.DIR" Description="Plugin for foobar2000 (version 0.9.x only)." AllowAdvertise="no">
-			<Condition Level="1">FOO.DIR</Condition>
-			<ComponentRef Id="foo_asap.dll" />
-			<Feature Id="foo_asap.ext" Title="Associate file types" Level="0" Description="$(var.DOUBLECLICK) foobar2000." AllowAdvertise="no">
-				<Condition Level="9">FOO.EXE</Condition>
-				<ComponentRef Id="foo_asap.ext" />
-			</Feature>
-		</Feature>
-		<Feature Id="xbmc_asap" Title="XBMC plugin" Level="9" ConfigurableDirectory="XBMCPAPL.DIR" Description="Plugin for XBMC (Windows and XBox)." AllowAdvertise="no">
-			<Condition Level="1">XBMC.DIR</Condition>
-			<ComponentRef Id="xbmc_asap.dll" />
-		</Feature>
-		<Feature Id="ASAP_Apollo" Title="Apollo plugin" Level="9" ConfigurableDirectory="APOLLOPLUG.DIR" Description="Plugin for Apollo." AllowAdvertise="no">
-			<Condition Level="1">APOLLO.DIR</Condition>
-			<ComponentRef Id="ASAP_Apollo.dll" />
-			<Feature Id="ASAP_Apollo.ext" Title="Associate file types" Level="0" Description="$(var.DOUBLECLICK) Apollo." AllowAdvertise="no">
-				<Condition Level="9">APOLLO.EXE</Condition>
-				<ComponentRef Id="ASAP_Apollo.ext" />
-			</Feature>
-		</Feature>
-		<Feature Id="gspasap" Title="GSPlayer plugin" Level="9" ConfigurableDirectory="GSP.DIR" Description="Plugin for GSPlayer (desktop Windows only)." AllowAdvertise="no">
-			<ComponentRef Id="gspasap.dll" />
-		</Feature>
-		<Feature Id="apokeysnd" Title="RMT sound emulator" Level="9" ConfigurableDirectory="RMT.DIR" Description="POKEY sound emulation engine for Raster Music Tracker." AllowAdvertise="no">
-			<ComponentRef Id="apokeysnd.dll" />
-		</Feature>
-		<Feature Id="docs" Title="Documentation" Level="1" ConfigurableDirectory="ASAP.DIR" Description="Documentation file." AllowAdvertise="no">
-			<ComponentRef Id="README_WindowsSetup.html" />
-			<Feature Id="docs.lnk" Title="Start menu shortcuts" Level="1" Description="Adds documentation and website links to the Programs menu." AllowAdvertise="no">
-				<ComponentRef Id="Documentation.lnk" />
-				<ComponentRef Id="Website.url" />
-			</Feature>
-		</Feature>
-		<Feature Id="uninstall" Title="Uninstall shortcut" Level="1" Description="Adds uninstall link to the Programs menu (in addition to the Control Panel which is always available)." AllowAdvertise="no">
-			<ComponentRef Id="uninstall.lnk" />
-		</Feature>
-
-		<InstallExecuteSequence>
-			<RemoveExistingProducts After="InstallFinalize" />
-		</InstallExecuteSequence>
-
-	</Product>
-</Wix>
diff --git a/lib/asap/win32/setup/license.rtf b/lib/asap/win32/setup/license.rtf
deleted file mode 100755
index a38e52e..0000000
--- a/lib/asap/win32/setup/license.rtf
+++ /dev/null
@@ -1,48 +0,0 @@
-{\rtf1\ansi\ansicpg1252
-{\fonttbl {\f0\fswiss\fcharset0 Arial;}}
-\f0\sa100\fs18\lang1033
-
-Copyright (C) 2005-2009 - Piotr Fusik
-
-\par\ql
-ASAP is free. You don't have to pay for it, and you can use it 
-any way you want. It is developed as an Open Source project under the 
-GNU General Public License (GPL). That means you have full access to 
-the source code of this program. You can find it on our website at 
-http://asap.sourceforge.net/
-
-\par
-Should you wish to modify or redistribute this program, or any part of it, 
-you should read the full terms and conditions set out in the license 
-agreement before doing so. A copy of the license is in the COPYING file 
-attached to the source code.
-
-\par
-If you simply wish to install and use this software, you need only be aware of 
-the disclaimer conditions in the license, which are set out below.
-
-\par\b
-NO WARRANTY
-
-\par\b0
-Because the program is licensed free of charge, there is no warranty 
-for the program, to the extent permitted by applicable law.  Except when 
-otherwise stated in writing the copyright holders and/or other parties 
-provide the program "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 program is with you.  Should the 
-program prove defective, you assume the cost of all necessary servicing, 
-repair or correction.
-
-\par
-In no event unless required by applicable law or agreed to in writing 
-will any copyright holder, or any other party who may modify and/or 
-redistribute the program as permitted above, be liable to you for damages, 
-including any general, special, incidental or consequential damages arising 
-out of the use or inability to use the program (including but not limited 
-to loss of data or data being rendered inaccurate or losses sustained by 
-you or third parties or a failure of the program to operate with any other 
-programs), even if such holder or other party has been advised of the 
-possibility of such damages.
-}
diff --git a/lib/asap/win32/setup/wix_mutex.pl b/lib/asap/win32/setup/wix_mutex.pl
deleted file mode 100755
index 97f7ac3..0000000
--- a/lib/asap/win32/setup/wix_mutex.pl
+++ /dev/null
@@ -1,16 +0,0 @@
-# Generate mutual exclusion conditions
- at c = qw(wasap.ext asap_dsf.ext in_asap.ext foo_asap.ext ASAP_Apollo.ext);
- at a = map "\$$_=3 OR (\$$_=-1 AND ?$_=3)", @c; # action is install or (action is nothing and already installed)
-for $a (@a[0 .. $#a - 1]) {
-	@b = @a[++$i .. $#a];
-	while (@b) {
-		$_ = "(($a) AND (" . shift @b;
-		while (@b) {
-			$t = "$_ OR $b[0]";
-			last if length($t) > 198;
-			$_ = $t;
-			shift @b;
-		}
-		print "$_));\n";
-	}
-}
diff --git a/lib/asap/win32/wasap/play.ico b/lib/asap/win32/wasap/play.ico
deleted file mode 100644
index 86195f2..0000000
Binary files a/lib/asap/win32/wasap/play.ico and /dev/null differ
diff --git a/lib/asap/win32/wasap/stop.ico b/lib/asap/win32/wasap/stop.ico
deleted file mode 100644
index 8d461ea..0000000
Binary files a/lib/asap/win32/wasap/stop.ico and /dev/null differ
diff --git a/lib/asap/win32/wasap/wasap.c b/lib/asap/win32/wasap/wasap.c
deleted file mode 100644
index 30a826f..0000000
--- a/lib/asap/win32/wasap/wasap.c
+++ /dev/null
@@ -1,577 +0,0 @@
-/*
- * wasap.c - Another Slight Atari Player for Win32 systems
- *
- * Copyright (C) 2005-2009  Piotr Fusik
- *
- * This file is part of ASAP (Another Slight Atari Player),
- * see http://asap.sourceforge.net
- *
- * ASAP 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.
- *
- * ASAP is distributed in the hope that 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 ASAP; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <windows.h>
-#include <shellapi.h>
-
-#include "asap.h"
-#include "gui.h"
-
-#define APP_TITLE        "WASAP"
-#define WND_CLASS_NAME   "WASAP"
-#define BUFFERED_BLOCKS  4096
-
-static ASAP_State asap;
-static int songs = 0;
-static char current_filename[MAX_PATH] = "";
-static int current_song;
-
-static HWND hWnd;
-
-
-/* WaveOut ---------------------------------------------------------------- */
-
-/* double-buffering, *2 for 16-bit, *2 for stereo */
-static byte buffer[2][BUFFERED_BLOCKS * 2 * 2];
-static HWAVEOUT hwo = INVALID_HANDLE_VALUE;
-static WAVEHDR wh[2] = {
-	{ buffer[0], 0, 0, 0, 0, 0, NULL, 0 },
-	{ buffer[1], 0, 0, 0, 0, 0, NULL, 0 },
-};
-static BOOL playing = FALSE;
-
-static void WaveOut_Stop(void)
-{
-	if (playing) {
-		playing = FALSE;
-		waveOutReset(hwo);
-	}
-}
-
-static void WaveOut_Write(LPWAVEHDR pwh)
-{
-	if (playing) {
-		int len = ASAP_Generate(&asap, pwh->lpData, pwh->dwBufferLength, BITS_PER_SAMPLE);
-		if (len < (int) pwh->dwBufferLength
-		 || waveOutWrite(hwo, pwh, sizeof(WAVEHDR)) != MMSYSERR_NOERROR) {
-			/* calling StopPlayback() here causes a deadlock */
-			PostMessage(hWnd, WM_COMMAND, IDM_STOP, 0);
-		}
-	}
-}
-
-static void CALLBACK WaveOut_Proc(HWAVEOUT hwo2, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2)
-{
-	if (uMsg == WOM_DONE)
-		WaveOut_Write((LPWAVEHDR) dwParam1);
-}
-
-static int WaveOut_Open(int channels)
-{
-	WAVEFORMATEX wfx;
-	wfx.wFormatTag = WAVE_FORMAT_PCM;
-	wfx.nChannels = channels;
-	wfx.nSamplesPerSec = ASAP_SAMPLE_RATE;
-	wfx.nBlockAlign = channels * (BITS_PER_SAMPLE / 8);
-	wfx.nAvgBytesPerSec = ASAP_SAMPLE_RATE * wfx.nBlockAlign;
-	wfx.wBitsPerSample = BITS_PER_SAMPLE;
-	wfx.cbSize = 0;
-	if (waveOutOpen(&hwo, WAVE_MAPPER, &wfx, (DWORD) WaveOut_Proc, 0, CALLBACK_FUNCTION) != MMSYSERR_NOERROR)
-		return FALSE;
-	wh[1].dwBufferLength = wh[0].dwBufferLength = BUFFERED_BLOCKS * wfx.nBlockAlign;
-	if (waveOutPrepareHeader(hwo, &wh[0], sizeof(wh[0])) != MMSYSERR_NOERROR
-	 || waveOutPrepareHeader(hwo, &wh[1], sizeof(wh[1])) != MMSYSERR_NOERROR)
-		return FALSE;
-	return TRUE;
-}
-
-static void WaveOut_Start(void)
-{
-	playing = TRUE;
-	WaveOut_Write(&wh[0]);
-	WaveOut_Write(&wh[1]);
-}
-
-static void WaveOut_Close(void)
-{
-	if (hwo == INVALID_HANDLE_VALUE)
-		return;
-	WaveOut_Stop();
-	if (wh[0].dwFlags & WHDR_PREPARED)
-		waveOutUnprepareHeader(hwo, &wh[0], sizeof(wh[0]));
-	if (wh[1].dwFlags & WHDR_PREPARED)
-		waveOutUnprepareHeader(hwo, &wh[1], sizeof(wh[1]));
-	waveOutClose(hwo);
-	hwo = INVALID_HANDLE_VALUE;
-}
-
-
-/* Tray ------------------------------------------------------------------- */
-
-#define MYWM_NOTIFYICON  (WM_APP + 1)
-static NOTIFYICONDATA nid = {
-	sizeof(NOTIFYICONDATA),
-	NULL,
-	0,
-	NIF_ICON | NIF_MESSAGE | NIF_TIP,
-	MYWM_NOTIFYICON,
-	NULL,
-	APP_TITLE
-};
-static UINT taskbarCreatedMessage;
-
-static void Tray_Modify(HICON hIcon)
-{
-	char *p;
-	nid.hIcon = hIcon;
-	/* we need to be careful because szTip is only 64 characters */
-	/* 5 */
-	p = appendString(nid.szTip, APP_TITLE);
-	if (songs > 0) {
-		const char *pb;
-		const char *pe;
-		for (pe = current_filename; *pe != '\0'; pe++);
-		for (pb = pe; pb > current_filename && pb[-1] != '\\' && pb[-1] != '/'; pb--);
-		/* 2 */
-		*p++ = ':';
-		*p++ = ' ';
-		/* max 33 */
-		if (pe - pb <= 33)
-			p = appendString(p, pb);
-		else {
-			memcpy(p, pb, 30);
-			p = appendString(p + 30, "...");
-		}
-		if (songs > 1) {
-			/* 7 */
-			p = appendString(p, " (song ");
-			/* max 3 */
-			p = appendInt(p, current_song + 1);
-			/* 4 */
-			p = appendString(p, " of ");
-			/* max 3 */
-			p = appendInt(p, songs);
-			/* 1 */
-			*p++ = ')';
-		}
-	}
-	/* 1 */
-	*p = '\0';
-	Shell_NotifyIcon(NIM_MODIFY, &nid);
-}
-
-
-/* GUI -------------------------------------------------------------------- */
-
-static BOOL errorShown = FALSE;
-static HINSTANCE hInst;
-static HICON hStopIcon;
-static HICON hPlayIcon;
-static HMENU hTrayMenu;
-static HMENU hSongMenu;
-
-static void ShowError(const char *message)
-{
-	errorShown = TRUE;
-	MessageBox(hWnd, message, APP_TITLE, MB_OK | MB_ICONERROR);
-	errorShown = FALSE;
-}
-
-static void ShowAbout(void)
-{
-	MSGBOXPARAMS mbp = {
-		sizeof(MSGBOXPARAMS),
-		hWnd,
-		hInst,
-		ASAP_CREDITS
-		"WASAP icons (C) 2005 Lukasz Sychowicz\n\n"
-		ASAP_COPYRIGHT,
-		APP_TITLE " " ASAP_VERSION,
-		MB_OK | MB_USERICON,
-		MAKEINTRESOURCE(IDI_APP),
-		0,
-		NULL,
-		LANG_NEUTRAL
-	};
-	MessageBoxIndirect(&mbp);
-}
-
-static void ClearSongsMenu(void)
-{
-	int n = GetMenuItemCount(hSongMenu);
-	while (--n >= 0)
-		DeleteMenu(hSongMenu, n, MF_BYPOSITION);
-}
-
-static void SetSongsMenu(int n)
-{
-	int i;
-	for (i = 1; i <= n; i++) {
-		char str[16];
-		*appendInt(str, i) = '\0';
-		AppendMenu(hSongMenu, MF_ENABLED | MF_STRING, IDM_SONG1 + i - 1, str);
-	}
-}
-
-static void StopPlayback(void)
-{
-	WaveOut_Stop();
-	Tray_Modify(hStopIcon);
-}
-
-static BOOL DoLoad(ASAP_State *asap, byte module[], int module_len)
-{
-	if (!ASAP_Load(asap, current_filename, module, module_len)) {
-		ShowError("Unsupported file format");
-		return FALSE;
-	}
-	return TRUE;
-}
-
-static void LoadAndPlay(int song)
-{
-	byte module[ASAP_MODULE_MAX];
-	int module_len;
-	int duration;
-	if (!loadModule(current_filename, module, &module_len))
-		return;
-	if (songs > 0) {
-		ClearSongsMenu();
-		StopPlayback();
-		songs = 0;
-		EnableMenuItem(hTrayMenu, IDM_SAVE_WAV, MF_BYCOMMAND | MF_GRAYED);
-	}
-	if (!DoLoad(&asap, module, module_len))
-		return;
-	if (!WaveOut_Open(asap.module_info.channels)) {
-		ShowError("Error initalizing WaveOut");
-		return;
-	}
-	if (song < 0)
-		song = asap.module_info.default_song;
-	songs = asap.module_info.songs;
-	EnableMenuItem(hTrayMenu, IDM_SAVE_WAV, MF_BYCOMMAND | MF_ENABLED);
-	updateInfoDialog(current_filename, song);
-	SetSongsMenu(songs);
-	CheckMenuRadioItem(hSongMenu, 0, songs - 1, song, MF_BYPOSITION);
-	current_song = song;
-	duration = asap.module_info.durations[song];
-	if (asap.module_info.loops[song])
-		duration = -1;
-	ASAP_PlaySong(&asap, song, duration);
-	Tray_Modify(hPlayIcon);
-	WaveOut_Start();
-}
-
-static int opening = FALSE;
-
-static void SelectAndLoadFile(void)
-{
-	static OPENFILENAME ofn = {
-		sizeof(OPENFILENAME),
-		NULL,
-		0,
-		"All supported\0"
-		"*.sap;*.cmc;*.cm3;*.cmr;*.cms;*.dmc;*.dlt;*.mpt;*.mpd;*.rmt;*.tmc;*.tm8;*.tm2\0"
-		"Slight Atari Player (*.sap)\0"
-		"*.sap\0"
-		"Chaos Music Composer (*.cmc;*.cm3;*.cmr;*.cms;*.dmc)\0"
-		"*.cmc;*.cm3;*.cmr;*.cms;*.dmc\0"
-		"Delta Music Composer (*.dlt)\0"
-		"*.dlt\0"
-		"Music ProTracker (*.mpt;*.mpd)\0"
-		"*.mpt;*.mpd\0"
-		"Raster Music Tracker (*.rmt)\0"
-		"*.rmt\0"
-		"Theta Music Composer 1.x (*.tmc;*.tm8)\0"
-		"*.tmc;*.tm8\0"
-		"Theta Music Composer 2.x (*.tm2)\0"
-		"*.tm2\0"
-		"\0",
-		NULL,
-		0,
-		1,
-		current_filename,
-		MAX_PATH,
-		NULL,
-		0,
-		NULL,
-		"Select 8-bit Atari music",
-		OFN_ENABLESIZING | OFN_EXPLORER | OFN_HIDEREADONLY
-			| OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST,
-		0,
-		0,
-		NULL,
-		0,
-		NULL,
-		NULL
-	};
-	opening = TRUE;
-	ofn.hwndOwner = hWnd;
-	if (GetOpenFileName(&ofn))
-		LoadAndPlay(-1);
-	opening = FALSE;
-}
-
-static char wav_filename[MAX_PATH];
-
-static BOOL DoSaveWav(ASAP_State *asap)
-{
-	HANDLE fh;
-	byte buffer[8192];
-	DWORD len;
-	fh = CreateFile(wav_filename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
-	if (fh == INVALID_HANDLE_VALUE)
-		return FALSE;
-	ASAP_GetWavHeader(asap, buffer, BITS_PER_SAMPLE);
-	len = ASAP_WAV_HEADER_BYTES;
-	while (len > 0) {
-		if (!WriteFile(fh, buffer, len, &len, NULL)) {
-			CloseHandle(fh);
-			return FALSE;
-		}
-		len = ASAP_Generate(asap, buffer, sizeof(buffer), BITS_PER_SAMPLE);
-	}
-	CloseHandle(fh);
-	return TRUE;
-}
-
-static void SaveWav(void)
-{
-	byte module[ASAP_MODULE_MAX];
-	int module_len;
-	ASAP_State asap;
-	int duration;
-	static OPENFILENAME ofn = {
-		sizeof(OPENFILENAME),
-		NULL,
-		0,
-		"WAV files (*.wav)\0*.wav\0\0",
-		NULL,
-		0,
-		0,
-		wav_filename,
-		MAX_PATH,
-		NULL,
-		0,
-		NULL,
-		"Select output file",
-		OFN_ENABLESIZING | OFN_EXPLORER | OFN_OVERWRITEPROMPT,
-		0,
-		0,
-		"wav",
-		0,
-		NULL,
-		NULL
-	};
-	if (!loadModule(current_filename, module, &module_len))
-		return;
-	if (!DoLoad(&asap, module, module_len))
-		return;
-	duration = asap.module_info.durations[current_song];
-	if (duration < 0) {
-		if (MessageBox(hWnd,
-			"This song has unknown duration.\n"
-			"Use \"File information\" to update the source file with the correct duration.\n"
-			"Do you want to save 3 minutes?",
-			"Unknown duration", MB_YESNO | MB_ICONWARNING) != IDYES)
-			return;
-		duration = 180000;
-	}
-	ASAP_PlaySong(&asap, current_song, duration);
-	strcpy(wav_filename, current_filename);
-	ASAP_ChangeExt(wav_filename, "wav");
-	ofn.hwndOwner = hWnd;
-	if (!GetSaveFileName(&ofn))
-		return;
-	if (!DoSaveWav(&asap))
-		ShowError("Cannot save file");
-}
-
-static LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-	int idc;
-	POINT pt;
-	PCOPYDATASTRUCT pcds;
-	switch (msg) {
-	case WM_COMMAND:
-		idc = LOWORD(wParam);
-		switch (idc) {
-		case IDM_OPEN:
-			SelectAndLoadFile();
-			break;
-		case IDM_STOP:
-			StopPlayback();
-			break;
-		case IDM_FILE_INFO:
-			showInfoDialog(hInst, hWnd, current_filename, current_song);
-			break;
-		case IDM_SAVE_WAV:
-			SaveWav();
-			break;
-		case IDM_ABOUT:
-			ShowAbout();
-			break;
-		case IDM_EXIT:
-			PostQuitMessage(0);
-			break;
-		default:
-			if (idc >= IDM_SONG1 && idc < IDM_SONG1 + songs)
-				LoadAndPlay(idc - IDM_SONG1);
-			break;
-		}
-		break;
-	case WM_DESTROY:
-		PostQuitMessage(0);
-		break;
-	case MYWM_NOTIFYICON:
-		if (opening) {
-			SetForegroundWindow(GetLastActivePopup(hWnd));
-			break;
-		}
-		switch (lParam) {
-		case WM_LBUTTONDOWN:
-			SelectAndLoadFile();
-			break;
-		case WM_MBUTTONDOWN:
-			if (songs <= 1)
-				break;
-			/* FALLTHROUGH */
-		case WM_RBUTTONUP:
-			GetCursorPos(&pt);
-			SetForegroundWindow(hWnd);
-			TrackPopupMenu(lParam == WM_MBUTTONDOWN ? hSongMenu : hTrayMenu,
-				TPM_RIGHTALIGN | TPM_BOTTOMALIGN | TPM_RIGHTBUTTON,
-				pt.x, pt.y, 0, hWnd, NULL);
-			PostMessage(hWnd, WM_NULL, 0, 0);
-			break;
-		default:
-			break;
-		}
-		break;
-	case WM_COPYDATA:
-		pcds = (PCOPYDATASTRUCT) lParam;
-		if (pcds->dwData == 'O' && pcds->cbData <= sizeof(current_filename)) {
-			if (errorShown) {
-				HWND hChild = GetLastActivePopup(hWnd);
-				if (hChild != hWnd)
-					SendMessage(hChild, WM_CLOSE, 0, 0);
-			}
-			memcpy(current_filename, pcds->lpData, pcds->cbData);
-			LoadAndPlay(-1);
-		}
-		break;
-	default:
-		if (msg == taskbarCreatedMessage)
-			Shell_NotifyIcon(NIM_ADD, &nid);
-		return DefWindowProc(hWnd, msg, wParam, lParam);
-	}
-	return 0;
-}
-
-int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
-{
-	char *pb;
-	char *pe;
-	WNDCLASS wc;
-	HMENU hMainMenu;
-	MSG msg;
-
-	for (pb = lpCmdLine; *pb == ' ' || *pb == '\t'; pb++);
-	for (pe = pb; *pe != '\0'; pe++);
-	while (--pe > pb && (*pe == ' ' || *pe == '\t'));
-	/* Now pb and pe point at respectively the first and last non-blank
-	   character in lpCmdLine. If pb > pe then the command line is blank. */
-	if (*pb == '"' && *pe == '"')
-		pb++;
-	else
-		pe++;
-	*pe = '\0';
-	/* Now pb contains the filename, if any, specified on the command line. */
-
-	hWnd = FindWindow(WND_CLASS_NAME, NULL);
-	if (hWnd != NULL) {
-		/* an instance of WASAP is already running */
-		if (*pb != '\0') {
-			/* pass the filename */
-			COPYDATASTRUCT cds = { 'O', (DWORD) (pe + 1 - pb), pb };
-			SendMessage(hWnd, WM_COPYDATA, (WPARAM) NULL, (LPARAM) &cds);
-		}
-		else {
-			/* bring the open dialog to top */
-			HWND hChild = GetLastActivePopup(hWnd);
-			if (hChild != hWnd)
-				SetForegroundWindow(hChild);
-		}
-		return 0;
-	}
-
-	hInst = hInstance;
-
-	wc.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW;
-	wc.lpfnWndProc = MainWndProc;
-	wc.cbClsExtra = 0;
-	wc.cbWndExtra = 0;
-	wc.hInstance = hInstance;
-	wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APP));
-	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
-	wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
-	wc.lpszMenuName = NULL;
-	wc.lpszClassName = WND_CLASS_NAME;
-	RegisterClass(&wc);
-
-	hWnd = CreateWindow(WND_CLASS_NAME,
-		APP_TITLE,
-		WS_OVERLAPPEDWINDOW,
-		CW_USEDEFAULT,
-		CW_USEDEFAULT,
-		CW_USEDEFAULT,
-		CW_USEDEFAULT,
-		NULL,
-		NULL,
-		hInstance,
-		NULL
-	);
-
-	hStopIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_STOP));
-	hPlayIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_PLAY));
-	hMainMenu = LoadMenu(hInstance, MAKEINTRESOURCE(IDR_TRAYMENU));
-	hTrayMenu = GetSubMenu(hMainMenu, 0);
-	hSongMenu = CreatePopupMenu();
-	InsertMenu(hTrayMenu, 1, MF_BYPOSITION | MF_ENABLED | MF_STRING | MF_POPUP,
-		(UINT_PTR) hSongMenu, "So&ng");
-	SetMenuDefaultItem(hTrayMenu, 0, TRUE);
-	nid.hWnd = hWnd;
-	nid.hIcon = hStopIcon;
-	Shell_NotifyIcon(NIM_ADD, &nid);
-	taskbarCreatedMessage = RegisterWindowMessage("TaskbarCreated");
-
-	if (*pb != '\0') {
-		memcpy(current_filename, pb, pe + 1 - pb);
-		LoadAndPlay(-1);
-	}
-	else
-		SelectAndLoadFile();
-
-	while (GetMessage(&msg, NULL, 0, 0)) {
-		if (infoDialog == NULL || !IsDialogMessage(infoDialog, &msg)) {
-			TranslateMessage(&msg);
-			DispatchMessage(&msg);
-		}
-	}
-
-	WaveOut_Close();
-	Shell_NotifyIcon(NIM_DELETE, &nid);
-	DestroyMenu(hMainMenu);
-	return 0;
-}
diff --git a/lib/asap/win32/wasap/wasap.ico b/lib/asap/win32/wasap/wasap.ico
deleted file mode 100644
index 15440a2..0000000
Binary files a/lib/asap/win32/wasap/wasap.ico and /dev/null differ
diff --git a/lib/asap/win32/winamp/in2.h b/lib/asap/win32/winamp/in2.h
deleted file mode 100644
index 802592f..0000000
--- a/lib/asap/win32/winamp/in2.h
+++ /dev/null
@@ -1,103 +0,0 @@
-#include "out.h"
-
-// note: exported symbol is now winampGetInModule2.
-
-#define IN_VER 0x100
-
-typedef struct 
-{
-	int version;				// module type (IN_VER)
-	char *description;			// description of module, with version string
-
-	HWND hMainWindow;			// winamp's main window (filled in by winamp)
-	HINSTANCE hDllInstance;		// DLL instance handle (Also filled in by winamp)
-
-	char *FileExtensions;		// "mp3\0Layer 3 MPEG\0mp2\0Layer 2 MPEG\0mpg\0Layer 1 MPEG\0"
-								// May be altered from Config, so the user can select what they want
-	
-	int is_seekable;			// is this stream seekable? 
-	int UsesOutputPlug;			// does this plug-in use the output plug-ins? (musn't ever change, ever :)
-
-	void (*Config)(HWND hwndParent); // configuration dialog
-	void (*About)(HWND hwndParent);  // about dialog
-
-	void (*Init)();				// called at program init
-	void (*Quit)();				// called at program quit
-
-	void (*GetFileInfo)(char *file, char *title, int *length_in_ms); // if file == NULL, current playing is used
-	int (*InfoBox)(char *file, HWND hwndParent);
-	
-	int (*IsOurFile)(char *fn);	// called before extension checks, to allow detection of mms://, etc
-	// playback stuff
-	int (*Play)(char *fn);		// return zero on success, -1 on file-not-found, some other value on other (stopping winamp) error
-	void (*Pause)();			// pause stream
-	void (*UnPause)();			// unpause stream
-	int (*IsPaused)();			// ispaused? return 1 if paused, 0 if not
-	void (*Stop)();				// stop (unload) stream
-
-	// time stuff
-	int (*GetLength)();			// get length in ms
-	int (*GetOutputTime)();		// returns current output time in ms. (usually returns outMod->GetOutputTime()
-	void (*SetOutputTime)(int time_in_ms);	// seeks to point in stream (in ms). Usually you signal yoru thread to seek, which seeks and calls outMod->Flush()..
-
-	// volume stuff
-	void (*SetVolume)(int volume);	// from 0 to 255.. usually just call outMod->SetVolume
-	void (*SetPan)(int pan);	// from -127 to 127.. usually just call outMod->SetPan
-	
-	// in-window builtin vis stuff
-
-	void (*SAVSAInit)(int maxlatency_in_ms, int srate);		// call once in Play(). maxlatency_in_ms should be the value returned from outMod->Open()
-	// call after opening audio device with max latency in ms and samplerate
-	void (*SAVSADeInit)();	// call in Stop()
-
-
-	// simple vis supplying mode
-	void (*SAAddPCMData)(void *PCMData, int nch, int bps, int timestamp); 
-											// sets the spec data directly from PCM data
-											// quick and easy way to get vis working :)
-											// needs at least 576 samples :)
-
-	// advanced vis supplying mode, only use if you're cool. Use SAAddPCMData for most stuff.
-	int (*SAGetMode)();		// gets csa (the current type (4=ws,2=osc,1=spec))
-							// use when calling SAAdd()
-	void (*SAAdd)(void *data, int timestamp, int csa); // sets the spec data, filled in by winamp
-
-
-	// vis stuff (plug-in)
-	// simple vis supplying mode
-	void (*VSAAddPCMData)(void *PCMData, int nch, int bps, int timestamp); // sets the vis data directly from PCM data
-											// quick and easy way to get vis working :)
-											// needs at least 576 samples :)
-
-	// advanced vis supplying mode, only use if you're cool. Use VSAAddPCMData for most stuff.
-	int (*VSAGetMode)(int *specNch, int *waveNch); // use to figure out what to give to VSAAdd
-	void (*VSAAdd)(void *data, int timestamp); // filled in by winamp, called by plug-in
-
-
-	// call this in Play() to tell the vis plug-ins the current output params. 
-	void (*VSASetInfo)(int nch, int srate);
-
-
-	// dsp plug-in processing: 
-	// (filled in by winamp, called by input plug)
-
-	// returns 1 if active (which means that the number of samples returned by dsp_dosamples
-	// could be greater than went in.. Use it to estimate if you'll have enough room in the
-	// output buffer
-	int (*dsp_isactive)(); 
-
-	// returns number of samples to output. This can be as much as twice numsamples. 
-	// be sure to allocate enough buffer for samples, then.
-	int (*dsp_dosamples)(short int *samples, int numsamples, int bps, int nch, int srate);
-
-
-	// eq stuff
-	void (*EQSet)(int on, char data[10], int preamp); // 0-64 each, 31 is +0, 0 is +12, 63 is -12. Do nothing to ignore.
-
-	// info setting (filled in by winamp)
-	void (*SetInfo)(int bitrate, int srate, int stereo, int synched); // if -1, changes ignored? :)
-
-	Out_Module *outMod; // filled in by winamp, optionally used :)
-} In_Module;
-
-
diff --git a/lib/asap/win32/winamp/in_asap.c b/lib/asap/win32/winamp/in_asap.c
deleted file mode 100644
index 1e48c5c..0000000
--- a/lib/asap/win32/winamp/in_asap.c
+++ /dev/null
@@ -1,435 +0,0 @@
-/*
- * in_asap.c - ASAP plugin for Winamp
- *
- * Copyright (C) 2005-2009  Piotr Fusik
- *
- * This file is part of ASAP (Another Slight Atari Player),
- * see http://asap.sourceforge.net
- *
- * ASAP 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.
- *
- * ASAP is distributed in the hope that 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 ASAP; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <windows.h>
-#include <commctrl.h>
-#include <string.h>
-
-#include "in2.h"
-#include "ipc_pe.h"
-#include "wa_ipc.h"
-
-#include "asap.h"
-#include "gui.h"
-
-// Winamp's equalizer works only with 16-bit samples
-#define SUPPORT_EQUALIZER  1
-
-static In_Module mod;
-
-// configuration
-#define INI_SECTION  "in_asap"
-static const char *ini_file;
-
-// current file
-ASAP_State asap;
-char current_filename[MAX_PATH] = "";
-static char current_filename_with_song[MAX_PATH + 3] = "";
-int current_song;
-static byte module[ASAP_MODULE_MAX];
-static int module_len;
-static int duration;
-#define channels  asap.module_info.channels
-
-static int playlistLength;
-
-static HANDLE thread_handle = NULL;
-static volatile int thread_run = FALSE;
-static int paused = 0;
-static int seek_needed;
-
-static void writeIniInt(const char *name, int value)
-{
-	char str[16];
-	*appendInt(str, value) = '\0';
-	WritePrivateProfileString(INI_SECTION, name, str, ini_file);
-}
-
-static void config(HWND hwndParent)
-{
-	if (settingsDialog(mod.hDllInstance, hwndParent)) {
-		writeIniInt("song_length", song_length);
-		writeIniInt("silence_seconds", silence_seconds);
-		writeIniInt("play_loops", play_loops);
-		writeIniInt("mute_mask", mute_mask);
-	}
-}
-
-static void about(HWND hwndParent)
-{
-	MessageBox(hwndParent, ASAP_CREDITS "\n" ASAP_COPYRIGHT,
-		"About ASAP Winamp plugin " ASAP_VERSION, MB_OK);
-}
-
-static int extractSongNumber(const char *s, char *filename)
-{
-	int i = strlen(s);
-	int song = -1;
-	if (i > 6 && s[i - 1] >= '0' && s[i - 1] <= '9') {
-		if (s[i - 2] == '#') {
-			song = s[i - 1] - '1';
-			i -= 2;
-		}
-		else if (s[i - 2] >= '0' && s[i - 2] <= '9' && s[i - 3] == '#') {
-			song = (s[i - 2] - '0') * 10 + s[i - 1] - '1';
-			i -= 3;
-		}
-	}
-	memcpy(filename, s, i);
-	filename[i] = '\0';
-	return song;
-}
-
-static void expandFileSongs(HWND playlistWnd, int index)
-{
-	const char *fn;
-	fileinfo fi;
-	int song;
-	ASAP_ModuleInfo module_info;
-	char *p;
-	int j;
-	fn = (const char *) SendMessage(mod.hMainWindow, WM_WA_IPC, index, IPC_GETPLAYLISTFILE);
-	song = extractSongNumber(fn, fi.file);
-	if (song >= 0 || !ASAP_IsOurFile(fi.file))
-		return;
-	if (!loadModule(fi.file, module, &module_len))
-		return;
-	if (!ASAP_GetModuleInfo(&module_info, fi.file, module, module_len))
-		return;
-	SendMessage(playlistWnd, WM_WA_IPC, IPC_PE_DELETEINDEX, index);
-	p = fi.file + strlen(fi.file);
-	for (j = 0; j < module_info.songs; j++) {
-		COPYDATASTRUCT cds;
-		*p = '#';
-		*appendInt(p + 1, j + 1) = '\0';
-		fi.index = index + j;
-		cds.dwData = IPC_PE_INSERTFILENAME;
-		cds.lpData = &fi;
-		cds.cbData = sizeof(fileinfo);
-		SendMessage(playlistWnd, WM_COPYDATA, 0, (LPARAM) &cds);
-	}
-}
-
-static INT_PTR CALLBACK progressDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
-	if (uMsg == WM_INITDIALOG)
-		SendDlgItemMessage(hDlg, IDC_PROGRESS, PBM_SETRANGE, 0, MAKELPARAM(0, playlistLength));
-	return FALSE;
-}
-
-static void expandPlaylistSongs(void)
-{
-	static BOOL processing = FALSE;
-	HWND playlistWnd;
-	HWND progressWnd;
-	int index;
-	if (processing)
-		return;
-	playlistWnd = (HWND) SendMessage(mod.hMainWindow, WM_WA_IPC, IPC_GETWND_PE, IPC_GETWND);
-	if (playlistWnd == NULL)
-		return;
-	processing = TRUE;
-	playlistLength = SendMessage(mod.hMainWindow, WM_WA_IPC, 0, IPC_GETLISTLENGTH);
-	progressWnd = CreateDialog(mod.hDllInstance, MAKEINTRESOURCE(IDD_PROGRESS), mod.hMainWindow, progressDialogProc);
-	index = playlistLength;
-	while (--index >= 0) {
-		if ((index & 15) == 0)
-			SendDlgItemMessage(progressWnd, IDC_PROGRESS, PBM_SETPOS, playlistLength - index, 0);
-		expandFileSongs(playlistWnd, index);
-	}
-	DestroyWindow(progressWnd);
-	processing = FALSE;
-}
-
-static void init(void)
-{
-	ini_file = (const char *) SendMessage(mod.hMainWindow, WM_WA_IPC, 0, IPC_GETINIFILE);
-	song_length = GetPrivateProfileInt(INI_SECTION, "song_length", song_length, ini_file);
-	silence_seconds = GetPrivateProfileInt(INI_SECTION, "silence_seconds", silence_seconds, ini_file);
-	play_loops = GetPrivateProfileInt(INI_SECTION, "play_loops", play_loops, ini_file);
-	mute_mask = GetPrivateProfileInt(INI_SECTION, "mute_mask", mute_mask, ini_file);
-}
-
-static void quit(void)
-{
-}
-
-static int title_song;
-static ASAP_ModuleInfo title_module_info;
-
-static void getTitle(char *title)
-{
-	char *p = appendString(title, title_module_info.name);
-	if (title_module_info.songs > 1) {
-		p = appendString(p, " (song ");
-		p = appendInt(p, title_song + 1);
-		*p++ = ')';
-	}
-	*p = '\0';
-}
-
-static char *tagFunc(char *tag, void *p)
-{
-	if (stricmp(tag, "artist") == 0 && title_module_info.author[0] != '\0')
-		return strdup(title_module_info.author);
-	if (stricmp(tag, "title") == 0) {
-		char *title = malloc(strlen(title_module_info.name) + 11);
-		if (title != NULL)
-			getTitle(title);
-		return title;
-	}
-	return NULL;
-}
-
-static void tagFreeFunc(char *tag, void *p)
-{
-	free(tag);
-}
-
-static void getFileInfo(char *file, char *title, int *length_in_ms)
-{
-	char filename[MAX_PATH];
-	if (file == NULL || file[0] == '\0')
-		file = current_filename_with_song;
-	title_song = extractSongNumber(file, filename);
-	if (title_song < 0)
-		expandPlaylistSongs();
-	if (!loadModule(filename, module, &module_len))
-		return;
-	if (!ASAP_GetModuleInfo(&title_module_info, filename, module, module_len))
-		return;
-	if (title_song < 0)
-		title_song = title_module_info.default_song;
-	if (title != NULL) {
-		waFormatTitle fmt_title = {
-			NULL, NULL, title, 512, tagFunc, tagFreeFunc
-		};
-		getTitle(title); // in case IPC_FORMAT_TITLE doesn't work...
-		SendMessage(mod.hMainWindow, WM_WA_IPC, (WPARAM) &fmt_title, IPC_FORMAT_TITLE);
-	}
-	if (length_in_ms != NULL)
-		*length_in_ms = getSongDuration(&title_module_info, title_song);
-}
-
-static int infoBox(char *file, HWND hwndParent)
-{
-	char filename[MAX_PATH];
-	int song;
-	song = extractSongNumber(file, filename);
-	showInfoDialog(mod.hDllInstance, hwndParent, filename, song);
-	return 0;
-}
-
-static int isOurFile(char *fn)
-{
-	char filename[MAX_PATH];
-	extractSongNumber(fn, filename);
-	return ASAP_IsOurFile(filename);
-}
-
-static DWORD WINAPI playThread(LPVOID dummy)
-{
-	while (thread_run) {
-		static
-#if BITS_PER_SAMPLE == 8
-			byte
-#else
-			short
-#endif
-			buffer[BUFFERED_BLOCKS * 2
-#if SUPPORT_EQUALIZER
-			* 2
-#endif
-			];
-		int buffered_bytes = BUFFERED_BLOCKS * channels * (BITS_PER_SAMPLE / 8);
-		if (seek_needed >= 0) {
-			mod.outMod->Flush(seek_needed);
-			ASAP_Seek(&asap, seek_needed);
-			seek_needed = -1;
-		}
-		if (mod.outMod->CanWrite() >= buffered_bytes
-#if SUPPORT_EQUALIZER
-			<< mod.dsp_isactive()
-#endif
-		) {
-			int t;
-			buffered_bytes = ASAP_Generate(&asap, buffer, buffered_bytes, BITS_PER_SAMPLE);
-			if (buffered_bytes <= 0) {
-				mod.outMod->CanWrite();
-				if (!mod.outMod->IsPlaying()) {
-					PostMessage(mod.hMainWindow, WM_WA_MPEG_EOF, 0, 0);
-					return 0;
-				}
-				Sleep(10);
-				continue;
-			}
-			t = mod.outMod->GetWrittenTime();
-			mod.SAAddPCMData(buffer, channels, BITS_PER_SAMPLE, t);
-			mod.VSAAddPCMData(buffer, channels, BITS_PER_SAMPLE, t);
-#if SUPPORT_EQUALIZER
-			t = buffered_bytes / (channels * (BITS_PER_SAMPLE / 8));
-			t = mod.dsp_dosamples((short *) buffer, t, BITS_PER_SAMPLE, channels, ASAP_SAMPLE_RATE);
-			t *= channels * (BITS_PER_SAMPLE / 8);
-			mod.outMod->Write((char *) buffer, t);
-#else
-			mod.outMod->Write((char *) buffer, buffered_bytes);
-#endif
-		}
-		else
-			Sleep(20);
-	}
-	return 0;
-}
-
-static int play(char *fn)
-{
-	int song;
-	int maxlatency;
-	DWORD threadId;
-	strcpy(current_filename_with_song, fn);
-	song = extractSongNumber(fn, current_filename);
-	if (!loadModule(current_filename, module, &module_len))
-		return -1;
-	if (!ASAP_Load(&asap, current_filename, module, module_len))
-		return 1;
-	if (song < 0)
-		song = asap.module_info.default_song;
-	duration = playSong(song);
-	maxlatency = mod.outMod->Open(ASAP_SAMPLE_RATE, channels, BITS_PER_SAMPLE, -1, -1);
-	if (maxlatency < 0)
-		return 1;
-	mod.SetInfo(BITS_PER_SAMPLE, ASAP_SAMPLE_RATE / 1000, channels, 1);
-	mod.SAVSAInit(maxlatency, ASAP_SAMPLE_RATE);
-	// the order of VSASetInfo's arguments in in2.h is wrong!
-	// http://forums.winamp.com/showthread.php?postid=1841035
-	mod.VSASetInfo(ASAP_SAMPLE_RATE, channels);
-	mod.outMod->SetVolume(-666);
-	seek_needed = -1;
-	thread_run = TRUE;
-	thread_handle = CreateThread(NULL, 0, playThread, NULL, 0, &threadId);
-	if (playing_info)
-		updateInfoDialog(current_filename, song);
-	return thread_handle != NULL ? 0 : 1;
-}
-
-static void pause(void)
-{
-	paused = 1;
-	mod.outMod->Pause(1);
-}
-
-static void unPause(void)
-{
-	paused = 0;
-	mod.outMod->Pause(0);
-}
-
-static int isPaused(void)
-{
-	return paused;
-}
-
-static void stop(void)
-{
-	if (thread_handle != NULL) {
-		thread_run = FALSE;
-		// wait max 10 seconds
-		if (WaitForSingleObject(thread_handle, 10 * 1000) == WAIT_TIMEOUT)
-			TerminateThread(thread_handle, 0);
-		CloseHandle(thread_handle);
-		thread_handle = NULL;
-	}
-	mod.outMod->Close();
-	mod.SAVSADeInit();
-}
-
-static int getLength(void)
-{
-	return duration;
-}
-
-static int getOutputTime(void)
-{
-	return mod.outMod->GetOutputTime();
-}
-
-static void setOutputTime(int time_in_ms)
-{
-	seek_needed = time_in_ms;
-}
-
-static void setVolume(int volume)
-{
-	mod.outMod->SetVolume(volume);
-}
-
-static void setPan(int pan)
-{
-	mod.outMod->SetPan(pan);
-}
-
-static void eqSet(int on, char data[10], int preamp)
-{
-}
-
-static In_Module mod = {
-	IN_VER,
-	"ASAP " ASAP_VERSION,
-	0, 0, // filled by Winamp
-	"SAP\0Slight Atari Player (*.SAP)\0"
-	"CMC;CM3;CMR;CMS;DMC\0Chaos Music Composer (*.CMC;*.CM3;*.CMR;*.CMS;*.DMC)\0"
-	"DLT\0Delta Music Composer (*.DLT)\0"
-	"MPT;MPD\0Music ProTracker (*.MPT;*.MPD)\0"
-	"RMT\0Raster Music Tracker (*.RMT)\0"
-	"TMC;TM8\0Theta Music Composer 1.x (*.TMC;*.TM8)\0"
-	"TM2\0Theta Music Composer 2.x (*.TM2)\0"
-	,
-	1,    // is_seekable
-	1,    // UsesOutputPlug
-	config,
-	about,
-	init,
-	quit,
-	getFileInfo,
-	infoBox,
-	isOurFile,
-	play,
-	pause,
-	unPause,
-	isPaused,
-	stop,
-	getLength,
-	getOutputTime,
-	setOutputTime,
-	setVolume,
-	setPan,
-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // filled by Winamp
-	eqSet,
-	NULL, // SetInfo
-	NULL  // filled by Winamp
-};
-
-__declspec(dllexport) In_Module *winampGetInModule2(void)
-{
-	return &mod;
-}
diff --git a/lib/asap/win32/winamp/ipc_pe.h b/lib/asap/win32/winamp/ipc_pe.h
deleted file mode 100644
index b3bc1ff..0000000
--- a/lib/asap/win32/winamp/ipc_pe.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef __IPC_PE_H
-#define __IPC_PE_H
-
-#define IPC_PE_GETCURINDEX        100 // returns current idx
-#define IPC_PE_GETINDEXTOTAL      101 // returns number of items 
-#define IPC_PE_GETINDEXINFO       102 // (copydata) lpData is of type callbackinfo, callback is called with copydata/fileinfo structure and msg IPC_PE_GETINDEXINFORESULT
-#define IPC_PE_GETINDEXINFORESULT 103 // callback message for IPC_PE_GETINDEXINFO
-#define IPC_PE_DELETEINDEX        104 // lParam = index
-#define IPC_PE_SWAPINDEX          105 // (lParam & 0xFFFF0000) >> 16 = from, (lParam & 0xFFFF) = to
-#define IPC_PE_INSERTFILENAME     106 // (copydata) lpData is of type fileinfo
-#define IPC_PE_GETDIRTY           107 // returns 1 if the playlist changed since the last IPC_PE_SETCLEAN
-#define IPC_PE_SETCLEAN	          108 // resets the dirty flag until next modification
-#define IPC_PE_GETIDXFROMPOINT    109 // pass a point parm, return a playlist index
-#define IPC_PE_SAVEEND            110 // pass index to save from
-#define IPC_PE_RESTOREEND         111 // no parm
-
-typedef struct {
-	char file[MAX_PATH];
-	int index;
-	} fileinfo;
-
-typedef struct {
-	HWND callback;
-	int index;
-	} callbackinfo;
-
-// the following messages are in_process ONLY
-
-#define IPC_PE_GETINDEXTITLE      200 // lParam = pointer to fileinfo2 struct
-
-typedef struct {
-  int fileindex;
-  char filetitle[256];
-  char filelength[16];
-  } fileinfo2;
-
-#endif
diff --git a/lib/asap/win32/winamp/out.h b/lib/asap/win32/winamp/out.h
deleted file mode 100644
index 547113f..0000000
--- a/lib/asap/win32/winamp/out.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#define OUT_VER 0x10
-
-typedef struct 
-{
-	int version;				// module version (OUT_VER)
-	char *description;			// description of module, with version string
-	int id;						// module id. each input module gets its own. non-nullsoft modules should
-								// be >= 65536. 
-
-	HWND hMainWindow;			// winamp's main window (filled in by winamp)
-	HINSTANCE hDllInstance;		// DLL instance handle (filled in by winamp)
-
-	void (*Config)(HWND hwndParent); // configuration dialog 
-	void (*About)(HWND hwndParent);  // about dialog
-
-	void (*Init)();				// called when loaded
-	void (*Quit)();				// called when unloaded
-
-	int (*Open)(int samplerate, int numchannels, int bitspersamp, int bufferlenms, int prebufferms); 
-					// returns >=0 on success, <0 on failure
-					// NOTENOTENOTE: bufferlenms and prebufferms are ignored in most if not all output plug-ins. 
-					//    ... so don't expect the max latency returned to be what you asked for.
-					// returns max latency in ms (0 for diskwriters, etc)
-					// bufferlenms and prebufferms must be in ms. 0 to use defaults. 
-					// prebufferms must be <= bufferlenms
-
-	void (*Close)();	// close the ol' output device.
-
-	int (*Write)(char *buf, int len);	
-					// 0 on success. Len == bytes to write (<= 8192 always). buf is straight audio data. 
-					// 1 returns not able to write (yet). Non-blocking, always.
-
-	int (*CanWrite)();	// returns number of bytes possible to write at a given time. 
-						// Never will decrease unless you call Write (or Close, heh)
-
-	int (*IsPlaying)(); // non0 if output is still going or if data in buffers waiting to be
-						// written (i.e. closing while IsPlaying() returns 1 would truncate the song
-
-	int (*Pause)(int pause); // returns previous pause state
-
-	void (*SetVolume)(int volume); // volume is 0-255
-	void (*SetPan)(int pan); // pan is -128 to 128
-
-	void (*Flush)(int t);	// flushes buffers and restarts output at time t (in ms) 
-							// (used for seeking)
-
-	int (*GetOutputTime)(); // returns played time in MS
-	int (*GetWrittenTime)(); // returns time written in MS (used for synching up vis stuff)
-
-} Out_Module;
-
-
diff --git a/lib/asap/win32/winamp/wa_ipc.h b/lib/asap/win32/winamp/wa_ipc.h
deleted file mode 100644
index c462228..0000000
--- a/lib/asap/win32/winamp/wa_ipc.h
+++ /dev/null
@@ -1,1022 +0,0 @@
-/*
-** Copyright (C) 2003 Nullsoft, Inc.
-**
-** 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.
-**
-*/
-
-#ifndef _WA_IPC_H_
-#define _WA_IPC_H_
-
-/*
-** This is the modern replacement for the classic 'frontend.h'. Most of these 
-** updates are designed for in-process use, i.e. from a plugin.
-**
-*/
-
-/* message used to sent many messages to winamp's main window. 
-** most all of the IPC_* messages involve sending the message in the form of:
-**   result = SendMessage(hwnd_winamp,WM_WA_IPC,(parameter),IPC_*);
-*/
-#define WM_WA_IPC WM_USER
-/* but some of them use WM_COPYDATA. be afraid.
-*/
-
-#define IPC_GETVERSION 0
-/* int version = SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GETVERSION);
-**
-** Version will be 0x20yx for winamp 2.yx. versions previous to Winamp 2.0
-** typically (but not always) use 0x1zyx for 1.zx versions. Weird, I know.
-*/
-
-#define IPC_GETREGISTEREDVERSION 770
-
-
-typedef struct {
-  char *filename;
-  char *title;
-  int length;
-} enqueueFileWithMetaStruct; // send this to a IPC_PLAYFILE in a non WM_COPYDATA, 
-// and you get the nice desired result. if title is NULL, it is treated as a "thing",
-// otherwise it's assumed to be a file (for speed)
-
-#define IPC_PLAYFILE 100  // dont be fooled, this is really the same as enqueufile
-#define IPC_ENQUEUEFILE 100 
-/* sent as a WM_COPYDATA, with IPC_PLAYFILE as the dwData, and the string to play
-** as the lpData. Just enqueues, does not clear the playlist or change the playback
-** state.
-*/
-
-
-#define IPC_DELETE 101
-#define IPC_DELETE_INT 1101 // don't use this, it's used internally by winamp when 
-                            // dealing with some lame explorer issues.
-/* SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_DELETE);
-** Use IPC_DELETE to clear Winamp's internal playlist.
-*/
-
-
-#define IPC_STARTPLAY 102   // starts playback. almost like hitting play in Winamp.
-#define IPC_STARTPLAY_INT 1102 // used internally, don't bother using it (won't be any fun)
-
-
-#define IPC_CHDIR 103
-/* sent as a WM_COPYDATA, with IPC_CHDIR as the dwData, and the directory to change to
-** as the lpData. 
-*/
-
-
-#define IPC_ISPLAYING 104
-/* int res = SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_ISPLAYING);
-** If it returns 1, it is playing. if it returns 3, it is paused, 
-** if it returns 0, it is not playing.
-*/
-
-
-#define IPC_GETOUTPUTTIME 105
-/* int res = SendMessage(hwnd_winamp,WM_WA_IPC,mode,IPC_GETOUTPUTTIME);
-** returns the position in milliseconds of the current track (mode = 0), 
-** or the track length, in seconds (mode = 1). Returns -1 if not playing or error.
-*/
-
-
-#define IPC_JUMPTOTIME 106
-/* (requires Winamp 1.60+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,ms,IPC_JUMPTOTIME);
-** IPC_JUMPTOTIME sets the position in milliseconds of the 
-** current song (approximately).
-** Returns -1 if not playing, 1 on eof, or 0 if successful
-*/
-
-#define IPC_GETMODULENAME 109
-#define IPC_EX_ISRIGHTEXE 666
-/* usually shouldnt bother using these, but here goes:
-** send a WM_COPYDATA with IPC_GETMODULENAME, and an internal
-** flag gets set, which if you send a normal WM_WA_IPC message with
-** IPC_EX_ISRIGHTEXE, it returns whether or not that filename
-** matches. lame, I know.
-*/
-
-#define IPC_WRITEPLAYLIST 120
-/* (requires Winamp 1.666+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_WRITEPLAYLIST);
-**
-** IPC_WRITEPLAYLIST writes the current playlist to <winampdir>\\Winamp.m3u,
-** and returns the current playlist position.
-** Kinda obsoleted by some of the 2.x new stuff, but still good for when
-** using a front-end (instead of a plug-in)
-*/
-
-
-#define IPC_SETPLAYLISTPOS 121
-/* (requires Winamp 2.0+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,position,IPC_SETPLAYLISTPOS)
-** IPC_SETPLAYLISTPOS sets the playlist position to 'position'. It
-** does not change playback or anything, it just sets position, and
-** updates the view if necessary
-*/
-
-
-#define IPC_SETVOLUME 122
-/* (requires Winamp 2.0+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,volume,IPC_SETVOLUME);
-** IPC_SETVOLUME sets the volume of Winamp (from 0-255).
-*/
-
-
-#define IPC_SETPANNING 123
-/* (requires Winamp 2.0+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,panning,IPC_SETPANNING);
-** IPC_SETPANNING sets the panning of Winamp (from 0 (left) to 255 (right)).
-*/
-
-
-#define IPC_GETLISTLENGTH 124
-/* (requires Winamp 2.0+)
-** int length = SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GETLISTLENGTH);
-** IPC_GETLISTLENGTH returns the length of the current playlist, in
-** tracks.
-*/
-
-
-#define IPC_GETLISTPOS 125
-/* (requires Winamp 2.05+)
-** int pos=SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GETLISTPOS);
-** IPC_GETLISTPOS returns the playlist position. A lot like IPC_WRITEPLAYLIST
-** only faster since it doesn't have to write out the list. Heh, silly me.
-*/
-
-
-#define IPC_GETINFO 126
-/* (requires Winamp 2.05+)
-** int inf=SendMessage(hwnd_winamp,WM_WA_IPC,mode,IPC_GETINFO);
-** IPC_GETINFO returns info about the current playing song. The value
-** it returns depends on the value of 'mode'.
-** Mode      Meaning
-** ------------------
-** 0         Samplerate (i.e. 44100)
-** 1         Bitrate  (i.e. 128)
-** 2         Channels (i.e. 2)
-** 3 (5+)    Video LOWORD=w HIWORD=h
-** 4 (5+)    > 65536, string (video description)
-*/
-
-
-#define IPC_GETEQDATA 127
-/* (requires Winamp 2.05+)
-** int data=SendMessage(hwnd_winamp,WM_WA_IPC,pos,IPC_GETEQDATA);
-** IPC_GETEQDATA queries the status of the EQ. 
-** The value returned depends on what 'pos' is set to:
-** Value      Meaning
-** ------------------
-** 0-9        The 10 bands of EQ data. 0-63 (+20db - -20db)
-** 10         The preamp value. 0-63 (+20db - -20db)
-** 11         Enabled. zero if disabled, nonzero if enabled.
-** 12         Autoload. zero if disabled, nonzero if enabled.
-*/
-
-
-#define IPC_SETEQDATA 128
-/* (requires Winamp 2.05+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,pos,IPC_GETEQDATA);
-** SendMessage(hwnd_winamp,WM_WA_IPC,value,IPC_SETEQDATA);
-** IPC_SETEQDATA sets the value of the last position retrieved
-** by IPC_GETEQDATA. This is pretty lame, and we should provide
-** an extended version that lets you do a MAKELPARAM(pos,value).
-** someday...
-
-  new (2.92+): 
-    if the high byte is set to 0xDB, then the third byte specifies
-    which band, and the bottom word specifies the value.
-*/
-
-#define IPC_ADDBOOKMARK 129
-/* (requires Winamp 2.4+)
-** Sent as a WM_COPYDATA, using IPC_ADDBOOKMARK, adds the specified
-** file/url to the Winamp bookmark list.
-*/
-/*
-In winamp 5+, we use this as a normal WM_WA_IPC and the string:
-
-  "filename\0title\0"
-
-  to notify the library/bookmark editor that a bookmark
-was added. Note that using this message in this context does not
-actually add the bookmark.
-do not use :)
-*/
-
-
-#define IPC_INSTALLPLUGIN 130
-/* not implemented, but if it was you could do a WM_COPYDATA with 
-** a path to a .wpz, and it would install it.
-*/
-
-
-#define IPC_RESTARTWINAMP 135
-/* (requires Winamp 2.2+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_RESTARTWINAMP);
-** IPC_RESTARTWINAMP will restart Winamp (isn't that obvious ? :)
-*/
-
-
-#define IPC_ISFULLSTOP 400
-/* (requires winamp 2.7+ I think)
-** ret=SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_ISFULLSTOP);
-** useful for when you're an output plugin, and you want to see
-** if the stop/close is a full stop, or just between tracks.
-** returns nonzero if it's full, zero if it's just a new track.
-*/
-
-
-#define IPC_INETAVAILABLE 242
-/* (requires Winamp 2.05+)
-** val=SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_INETAVAILABLE);
-** IPC_INETAVAILABLE will return 1 if the Internet connection is available for Winamp.
-*/
-
-
-#define IPC_UPDTITLE 243
-/* (requires Winamp 2.2+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_UPDTITLE);
-** IPC_UPDTITLE will ask Winamp to update the informations about the current title.
-*/
-
-
-#define IPC_REFRESHPLCACHE 247
-/* (requires Winamp 2.2+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_REFRESHPLCACHE);
-** IPC_REFRESHPLCACHE will flush the playlist cache buffer.
-** (send this if you want it to go refetch titles for tracks)
-*/
-
-
-#define IPC_GET_SHUFFLE 250
-/* (requires Winamp 2.4+)
-** val=SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GET_SHUFFLE);
-**
-** IPC_GET_SHUFFLE returns the status of the Shuffle option (1 if set)
-*/
-
-
-#define IPC_GET_REPEAT 251
-/* (requires Winamp 2.4+)
-** val=SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GET_REPEAT);
-**
-** IPC_GET_REPEAT returns the status of the Repeat option (1 if set)
-*/
-
-
-#define IPC_SET_SHUFFLE 252
-/* (requires Winamp 2.4+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,value,IPC_SET_SHUFFLE);
-**
-** IPC_SET_SHUFFLE sets the status of the Shuffle option (1 to turn it on)
-*/
-
-
-#define IPC_SET_REPEAT 253
-/* (requires Winamp 2.4+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,value,IPC_SET_REPEAT);
-**
-** IPC_SET_REPEAT sets the status of the Repeat option (1 to turn it on)
-*/
-
-
-#define IPC_ENABLEDISABLE_ALL_WINDOWS 259 // 0xdeadbeef to disable
-/* (requires Winamp 2.9+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,enable?0:0xdeadbeef,IPC_MBOPENREAL);
-** sending with 0xdeadbeef as the param disables all winamp windows, 
-** any other values will enable all winamp windows.
-*/
-
-
-#define IPC_GETWND 260
-/* (requires Winamp 2.9+)
-** HWND h=SendMessage(hwnd_winamp,WM_WA_IPC,IPC_GETWND_xxx,IPC_GETWND);
-** returns the HWND of the window specified.
-*/
-  #define IPC_GETWND_EQ 0 // use one of these for the param
-  #define IPC_GETWND_PE 1
-  #define IPC_GETWND_MB 2
-  #define IPC_GETWND_VIDEO 3
-#define IPC_ISWNDVISIBLE 261 // same param as IPC_GETWND
-
-
-
-
-/************************************************************************
-***************** in-process only (WE LOVE PLUGINS)
-************************************************************************/
-
-
-#define IPC_SETSKIN 200
-/* (requires Winamp 2.04+, only usable from plug-ins (not external apps))
-** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)"skinname",IPC_SETSKIN);
-** IPC_SETSKIN sets the current skin to "skinname". Note that skinname 
-** can be the name of a skin, a skin .zip file, with or without path. 
-** If path isn't specified, the default search path is the winamp skins 
-** directory.
-*/
-
-
-#define IPC_GETSKIN 201
-/* (requires Winamp 2.04+, only usable from plug-ins (not external apps))
-** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)skinname_buffer,IPC_GETSKIN);
-** IPC_GETSKIN puts the directory where skin bitmaps can be found 
-** into  skinname_buffer.
-** skinname_buffer must be MAX_PATH characters in length.
-** When using a .zip'd skin file, it'll return a temporary directory
-** where the ZIP was decompressed.
-*/
-
-
-#define IPC_EXECPLUG 202
-/* (requires Winamp 2.04+, only usable from plug-ins (not external apps))
-** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)"vis_file.dll",IPC_EXECPLUG);
-** IPC_EXECPLUG executes a visualization plug-in pointed to by WPARAM.
-** the format of this string can be:
-** "vis_whatever.dll"
-** "vis_whatever.dll,0" // (first mod, file in winamp plug-in dir)
-** "C:\\dir\\vis_whatever.dll,1" 
-*/
-
-
-#define IPC_GETPLAYLISTFILE 211
-/* (requires Winamp 2.04+, only usable from plug-ins (not external apps))
-** char *name=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE);
-** IPC_GETPLAYLISTFILE gets the filename of the playlist entry [index].
-** returns a pointer to it. returns NULL on error.
-*/
-
-
-#define IPC_GETPLAYLISTTITLE 212
-/* (requires Winamp 2.04+, only usable from plug-ins (not external apps))
-** char *name=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTTITLE);
-**
-** IPC_GETPLAYLISTTITLE gets the title of the playlist entry [index].
-** returns a pointer to it. returns NULL on error.
-*/
-
-
-#define IPC_GETHTTPGETTER 240
-/* retrieves a function pointer to a HTTP retrieval function.
-** if this is unsupported, returns 1 or 0.
-** the function should be:
-** int (*httpRetrieveFile)(HWND hwnd, char *url, char *file, char *dlgtitle);
-** if you call this function, with a parent window, a URL, an output file, and a dialog title,
-** it will return 0 on successful download, 1 on error.
-*/
-
-
-#define IPC_MBOPEN 241
-/* (requires Winamp 2.05+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_MBOPEN);
-** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)url,IPC_MBOPEN);
-** IPC_MBOPEN will open a new URL in the minibrowser. if url is NULL, it will open the Minibrowser window.
-*/
-
-
-
-#define IPC_CHANGECURRENTFILE 245
-/* (requires Winamp 2.05+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)file,IPC_CHANGECURRENTFILE);
-** IPC_CHANGECURRENTFILE will set the current playlist item.
-*/
-
-
-#define IPC_GETMBURL 246
-/* (requires Winamp 2.2+)
-** char buffer[4096]; // Urls can be VERY long
-** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)buffer,IPC_GETMBURL);
-** IPC_GETMBURL will retrieve the current Minibrowser URL into buffer.
-** buffer must be at least 4096 bytes long.
-*/
-
-
-#define IPC_MBBLOCK 248
-/* (requires Winamp 2.4+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,value,IPC_MBBLOCK);
-**
-** IPC_MBBLOCK will block the Minibrowser from updates if value is set to 1
-*/
-
-#define IPC_MBOPENREAL 249
-/* (requires Winamp 2.4+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)url,IPC_MBOPENREAL);
-**
-** IPC_MBOPENREAL works the same as IPC_MBOPEN except that it will works even if 
-** IPC_MBBLOCK has been set to 1
-*/
-
-#define IPC_ADJUST_OPTIONSMENUPOS 280
-/* (requires Winamp 2.9+)
-** int newpos=SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)adjust_offset,IPC_ADJUST_OPTIONSMENUPOS);
-** moves where winamp expects the Options menu in the main menu. Useful if you wish to insert a
-** menu item above the options/skins/vis menus.
-*/
-
-#define IPC_GET_HMENU 281
-/* (requires Winamp 2.9+)
-** HMENU hMenu=SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)0,IPC_GET_HMENU);
-** values for data:
-** 0 : main popup menu 
-** 1 : main menubar file menu
-** 2 : main menubar options menu
-** 3 : main menubar windows menu
-** 4 : main menubar help menu
-** other values will return NULL.
-*/
-
-#define IPC_GET_EXTENDED_FILE_INFO 290 //pass a pointer to the following struct in wParam
-#define IPC_GET_EXTENDED_FILE_INFO_HOOKABLE 296
-/* (requires Winamp 2.9+)
-** to use, create an extendedFileInfoStruct, point the values filename and metadata to the
-** filename and metadata field you wish to query, and ret to a buffer, with retlen to the
-** length of that buffer, and then SendMessage(hwnd_winamp,WM_WA_IPC,&struct,IPC_GET_EXTENDED_FILE_INFO);
-** the results should be in the buffer pointed to by ret.
-** returns 1 if the decoder supports a getExtendedFileInfo method
-*/
-typedef struct {
-  char *filename;
-  char *metadata;
-  char *ret;
-  int retlen;
-} extendedFileInfoStruct;
-
-#define IPC_GET_BASIC_FILE_INFO 291 //pass a pointer to the following struct in wParam
-typedef struct {
-  char *filename;
-
-  int quickCheck; // set to 0 to always get, 1 for quick, 2 for default (if 2, quickCheck will be set to 0 if quick wasnot used)
-
-  // filled in by winamp
-  int length;
-  char *title;
-  int titlelen;
-} basicFileInfoStruct;
-
-#define IPC_GET_EXTLIST 292 //returns doublenull delimited. GlobalFree() it when done. if data is 0, returns raw extlist, if 1, returns something suitable for getopenfilename
-
-#define IPC_INFOBOX 293
-typedef struct {
-  HWND parent;
-  char *filename;
-} infoBoxParam;
-
-#define IPC_SET_EXTENDED_FILE_INFO 294 //pass a pointer to the a extendedFileInfoStruct in wParam
-/* (requires Winamp 2.9+)
-** to use, create an extendedFileInfoStruct, point the values filename and metadata to the
-** filename and metadata field you wish to write in ret. (retlen is not used). and then 
-** SendMessage(hwnd_winamp,WM_WA_IPC,&struct,IPC_SET_EXTENDED_FILE_INFO);
-** returns 1 if the metadata is supported
-** Call IPC_WRITE_EXTENDED_FILE_INFO once you're done setting all the metadata you want to update
-*/
-
-#define IPC_WRITE_EXTENDED_FILE_INFO 295 
-/* (requires Winamp 2.9+)
-** writes all the metadata set thru IPC_SET_EXTENDED_FILE_INFO to the file
-** returns 1 if the file has been successfully updated, 0 if error
-*/
-
-#define IPC_FORMAT_TITLE 297
-typedef struct 
-{
-  char *spec; // NULL=default winamp spec
-  void *p;
-
-  char *out;
-  int out_len;
-
-  char * (*TAGFUNC)(char * tag, void * p); //return 0 if not found
-  void (*TAGFREEFUNC)(char * tag,void * p);
-} waFormatTitle;
-
-#define IPC_GETUNCOMPRESSINTERFACE 331
-/* returns a function pointer to uncompress().
-** int (*uncompress)(unsigned char *dest, unsigned long *destLen, const unsigned char *source, unsigned long sourceLen);
-** right out of zlib, useful for decompressing zlibbed data.
-** if you pass the parm of 0x10100000, it will return a wa_inflate_struct * to an inflate API.
-*/
-
-typedef struct {
-  int (*inflateReset)(void *strm);
-  int (*inflateInit_)(void *strm,const char *version, int stream_size);
-  int (*inflate)(void *strm, int flush);
-  int (*inflateEnd)(void *strm);
-  unsigned long (*crc32)(unsigned long crc, const unsigned  char *buf, unsigned int len);
-} wa_inflate_struct;
-
-
-#define IPC_ADD_PREFS_DLG 332
-#define IPC_REMOVE_PREFS_DLG 333
-/* (requires Winamp 2.9+)
-** to use, allocate a prefsDlgRec structure (either on the heap or some global
-** data, but NOT on the stack), initialze the members:
-** hInst to the DLL instance where the resource is located
-** dlgID to the ID of the dialog,
-** proc to the window procedure for the dialog
-** name to the name of the prefs page in the prefs.
-** where to 0 (eventually we may add more options)
-** then, SendMessage(hwnd_winamp,WM_WA_IPC,&prefsRec,IPC_ADD_PREFS_DLG);
-**
-** you can also IPC_REMOVE_PREFS_DLG with the address of the same prefsRec,
-** but you shouldn't really ever have to.
-**
-*/
-#define IPC_OPENPREFSTOPAGE 380 // pass an id of a builtin page, or a &prefsDlgRec of prefs page to open
-
-typedef struct _prefsDlgRec {
-  HINSTANCE hInst;
-  int dlgID;
-  void *proc;
-
-  char *name;
-  int where; // 0 for options, 1 for plugins, 2 for skins, 3 for bookmarks, 4 for prefs
-
-
-  int _id;
-  struct _prefsDlgRec *next;
-} prefsDlgRec;
-
-
-#define IPC_GETINIFILE 334 // returns a pointer to winamp.ini
-#define IPC_GETINIDIRECTORY 335 // returns a pointer to the directory to put config files in (if you dont want to use winamp.ini)
-
-#define IPC_SPAWNBUTTONPOPUP 361 // param =
-// 0 = eject
-// 1 = previous
-// 2 = next
-// 3 = pause
-// 4 = play
-// 5 = stop
-
-#define IPC_OPENURLBOX 360 // pass a HWND to a parent, returns a HGLOBAL that needs to be freed with GlobalFree(), if successful
-#define IPC_OPENFILEBOX 362 // pass a HWND to a parent
-#define IPC_OPENDIRBOX 363 // pass a HWND to a parent
-
-// pass an HWND to a parent. call this if you take over the whole UI so that the dialogs are not appearing on the
-// bottom right of the screen since the main winamp window is at 3000x3000, call again with NULL to reset
-#define IPC_SETDIALOGBOXPARENT 364 
-
-
-
-// pass 0 for a copy of the skin HBITMAP
-// pass 1 for name of font to use for playlist editor likeness
-// pass 2 for font charset
-// pass 3 for font size
-#define IPC_GET_GENSKINBITMAP 503
-
-
-#define IPC_GET_EMBEDIF 505 // pass an embedWindowState
-// returns an HWND embedWindow(embedWindowState *); if the data is NULL, otherwise returns the HWND directly
-typedef struct
-{
-  HWND me; //hwnd of the window
-
-  int flags;
-
-  RECT r;
-
-  void *user_ptr; // for application use
-
-  int extra_data[64]; // for internal winamp use
-} embedWindowState;
-
-#define EMBED_FLAGS_NORESIZE 1 // set this bit in embedWindowState.flags to keep window from being resizable
-#define EMBED_FLAGS_NOTRANSPARENCY 2 // set this bit in embedWindowState.flags to make gen_ff turn transparency off for this wnd
-
-
-#define IPC_EMBED_ENUM 532
-typedef struct embedEnumStruct
-{
-  int (*enumProc)(embedWindowState *ws, struct embedEnumStruct *param); // return 1 to abort
-  int user_data; // or more :)
-} embedEnumStruct;
-  // pass 
-
-#define IPC_EMBED_ISVALID 533
-
-#define IPC_CONVERTFILE 506
-/* (requires Winamp 2.92+)
-** Converts a given file to a different format (PCM, MP3, etc...)
-** To use, pass a pointer to a waFileConvertStruct struct
-** This struct can be either on the heap or some global
-** data, but NOT on the stack. At least, until the conversion is done.
-**
-** eg: SendMessage(hwnd_winamp,WM_WA_IPC,&myConvertStruct,IPC_CONVERTFILE);
-**
-** Return value:
-** 0: Can't start the conversion. Look at myConvertStruct->error for details.
-** 1: Conversion started. Status messages will be sent to the specified callbackhwnd.
-**    Be sure to call IPC_CONVERTFILE_END when your callback window receives the
-**    IPC_CB_CONVERT_DONE message.
-*/
-typedef struct 
-{
-  char *sourcefile;  // "c:\\source.mp3"
-  char *destfile;    // "c:\\dest.pcm"
-  int destformat[8]; // like 'PCM ',srate,nch,bps
-  HWND callbackhwnd; // window that will receive the IPC_CB_CONVERT notification messages
-  
-  //filled in by winamp.exe
-  char *error;        //if IPC_CONVERTFILE returns 0, the reason will be here
-
-  int bytes_done;     //you can look at both of these values for speed statistics
-  int bytes_total;
-  int bytes_out;
-
-  int killswitch;     // don't set it manually, use IPC_CONVERTFILE_END
-  int extra_data[64]; // for internal winamp use
-} convertFileStruct;
-
-#define IPC_CONVERTFILE_END 507
-/* (requires Winamp 2.92+)
-** Stop/ends a convert process started from IPC_CONVERTFILE
-** You need to call this when you receive the IPC_CB_CONVERTDONE message or when you
-** want to abort a conversion process
-**
-** eg: SendMessage(hwnd_winamp,WM_WA_IPC,&myConvertStruct,IPC_CONVERTFILE_END);
-**
-** No return value
-*/
-
-typedef struct {
-  HWND hwndParent;
-  int format;
-
-  //filled in by winamp.exe
-  HWND hwndConfig;
-  int extra_data[8];
-} convertConfigStruct;
-#define IPC_CONVERT_CONFIG 508
-#define IPC_CONVERT_CONFIG_END 509
-
-typedef struct
-{
-  void (*enumProc)(int user_data, const char *desc, int fourcc);
-  int user_data;
-} converterEnumFmtStruct;
-#define IPC_CONVERT_CONFIG_ENUMFMTS 510
-/* (requires Winamp 2.92+)
-*/
-
-
-typedef struct
-{
-  char cdletter;
-  char *playlist_file;
-  HWND callback_hwnd;
-
-  //filled in by winamp.exe
-  char *error;
-} burnCDStruct;
-#define IPC_BURN_CD 511
-/* (requires Winamp 5.0+)
-*/
-
-typedef struct
-{
-  convertFileStruct *cfs;
-  int priority;
-} convertSetPriority;
-#define IPC_CONVERT_SET_PRIORITY 512
-
-typedef struct
-{
-  char *filename;
-  char *title; // 2048 bytes
-  int length;
-  int force_useformatting; // can set this to 1 if you want to force a url to use title formatting shit
-} waHookTitleStruct;
-// return TRUE if you hook this
-#define IPC_HOOK_TITLES 850
-
-#define IPC_GETSADATAFUNC 800 
-// 0: returns a char *export_sa_get() that returns 150 bytes of data
-// 1: returns a export_sa_setreq(int want);
-
-#define IPC_ISMAINWNDVISIBLE 900
-
-
-#define IPC_SETPLEDITCOLORS 920
-typedef struct
-{
-  int numElems;
-  int *elems;
-  HBITMAP bm; // set if you want to override
-} waSetPlColorsStruct;
-
-
-// the following IPC use waSpawnMenuParms as parameter
-#define IPC_SPAWNEQPRESETMENU 933
-#define IPC_SPAWNFILEMENU 934 //menubar
-#define IPC_SPAWNOPTIONSMENU 935 //menubar
-#define IPC_SPAWNWINDOWSMENU 936 //menubar
-#define IPC_SPAWNHELPMENU 937 //menubar
-#define IPC_SPAWNPLAYMENU 938 //menubar
-#define IPC_SPAWNPEFILEMENU 939 //menubar
-#define IPC_SPAWNPEPLAYLISTMENU 940 //menubar
-#define IPC_SPAWNPESORTMENU 941 //menubar
-#define IPC_SPAWNPEHELPMENU 942 //menubar
-#define IPC_SPAWNMLFILEMENU 943 //menubar
-#define IPC_SPAWNMLVIEWMENU 944 //menubar
-#define IPC_SPAWNMLHELPMENU 945 //menubar
-#define IPC_SPAWNPELISTOFPLAYLISTS 946
-
-typedef struct
-{
-  HWND wnd;
-  int xpos; // in screen coordinates
-  int ypos;
-} waSpawnMenuParms;
-
-// waSpawnMenuParms2 is used by the menubar submenus
-typedef struct
-{
-  HWND wnd;
-  int xpos; // in screen coordinates
-  int ypos;
-  int width;
-  int height;
-} waSpawnMenuParms2;
-
-
-// system tray sends this (you might want to simulate it)
-#define WM_WA_SYSTRAY WM_USER+1
-
-// input plugins send this when they are done playing back
-#define WM_WA_MPEG_EOF WM_USER+2
-
-
-
-//// video stuff
-
-#define IPC_IS_PLAYING_VIDEO 501 // returns >1 if playing, 0 if not, 1 if old version (so who knows):)
-#define IPC_GET_IVIDEOOUTPUT 500 // see below for IVideoOutput interface
-#define VIDEO_MAKETYPE(A,B,C,D) ((A) | ((B)<<8) | ((C)<<16) | ((D)<<24))
-#define VIDUSER_SET_INFOSTRING 0x1000
-#define VIDUSER_GET_VIDEOHWND  0x1001
-#define VIDUSER_SET_VFLIP      0x1002
-
-#ifndef NO_IVIDEO_DECLARE
-#ifdef __cplusplus
-
-class VideoOutput;
-class SubsItem;
-
-typedef	struct {
-	unsigned char*	baseAddr;
-	long			rowBytes;
-} YV12_PLANE;
-
-typedef	struct {
-	YV12_PLANE	y;
-	YV12_PLANE	u;
-	YV12_PLANE	v;
-} YV12_PLANES;
-
-class IVideoOutput
-{
-  public:
-    virtual ~IVideoOutput() { }
-    virtual int open(int w, int h, int vflip, double aspectratio, unsigned int fmt)=0;
-    virtual void setcallback(LRESULT (*msgcallback)(void *token, HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam), void *token) { }
-    virtual void close()=0;
-    virtual void draw(void *frame)=0;
-    virtual void drawSubtitle(SubsItem *item) { }
-    virtual void showStatusMsg(const char *text) { }
-    virtual int get_latency() { return 0; }
-    virtual void notifyBufferState(int bufferstate) { } /* 0-255*/
-
-    virtual int extended(int param1, int param2, int param3) { return 0; } // Dispatchable, eat this!
-};
-#endif //cplusplus
-#endif//NO_IVIDEO_DECLARE
-
-// these messages are callbacks that you can grab by subclassing the winamp window
-
-// wParam = 
-#define IPC_CB_WND_EQ 0 // use one of these for the param
-#define IPC_CB_WND_PE 1
-#define IPC_CB_WND_MB 2
-#define IPC_CB_WND_VIDEO 3
-#define IPC_CB_WND_MAIN 4
-
-#define IPC_CB_ONSHOWWND 600 
-#define IPC_CB_ONHIDEWND 601 
-
-#define IPC_CB_GETTOOLTIP 602
-
-#define IPC_CB_MISC 603
-    #define IPC_CB_MISC_TITLE 0
-    #define IPC_CB_MISC_VOLUME 1 // volume/pan
-    #define IPC_CB_MISC_STATUS 2
-    #define IPC_CB_MISC_EQ 3
-    #define IPC_CB_MISC_INFO 4
-    #define IPC_CB_MISC_VIDEOINFO 5
-
-#define IPC_CB_CONVERT_STATUS 604 // param value goes from 0 to 100 (percent)
-#define IPC_CB_CONVERT_DONE   605
-
-#define IPC_ADJUST_FFWINDOWSMENUPOS 606
-/* (requires Winamp 2.9+)
-** int newpos=SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)adjust_offset,IPC_ADJUST_FFWINDOWSMENUPOS);
-** moves where winamp expects the freeform windows in the menubar windows main menu. Useful if you wish to insert a
-** menu item above extra freeform windows.
-*/
-
-#define IPC_ISDOUBLESIZE 608
-
-#define IPC_ADJUST_FFOPTIONSMENUPOS 609
-/* (requires Winamp 2.9+)
-** int newpos=SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)adjust_offset,IPC_ADJUST_FFOPTIONSMENUPOS);
-** moves where winamp expects the freeform preferences item in the menubar windows main menu. Useful if you wish to insert a
-** menu item above preferences item.
-*/
-
-#define IPC_GETTIMEDISPLAYMODE 610 // returns 0 if displaying elapsed time or 1 if displaying remaining time
-
-#define IPC_SETVISWND 611 // param is hwnd, setting this allows you to receive ID_VIS_NEXT/PREVOUS/RANDOM/FS wm_commands
-#define ID_VIS_NEXT                     40382
-#define ID_VIS_PREV                     40383
-#define ID_VIS_RANDOM                   40384
-#define ID_VIS_FS                       40389
-#define ID_VIS_CFG                      40390
-#define ID_VIS_MENU                     40391
-
-#define IPC_GETVISWND 612 // returns the vis cmd handler hwnd
-#define IPC_ISVISRUNNING 613
-#define IPC_CB_VISRANDOM 628 // param is status of random
-
-#define IPC_SETIDEALVIDEOSIZE 614 // sent by winamp to winamp, trap it if you need it. width=HIWORD(param), height=LOWORD(param)
-
-#define IPC_GETSTOPONVIDEOCLOSE 615
-#define IPC_SETSTOPONVIDEOCLOSE 616
-
-typedef struct {
-  HWND hwnd;
-  int uMsg;
-  int wParam;
-  int lParam;
-} transAccelStruct;
-
-#define IPC_TRANSLATEACCELERATOR 617
-
-typedef struct {
-  int cmd;
-  int x;
-  int y;
-  int align;
-} windowCommand; // send this as param to an IPC_PLCMD, IPC_MBCMD, IPC_VIDCMD
-
-#define IPC_CB_ONTOGGLEAOT 618 
-
-#define IPC_GETPREFSWND 619
-
-#define IPC_SET_PE_WIDTHHEIGHT 620 // data is a pointer to a POINT structure that holds width & height
-
-#define IPC_GETLANGUAGEPACKINSTANCE 621
-
-#define IPC_CB_PEINFOTEXT 622 // data is a string, ie: "04:21/45:02"
-
-#define IPC_CB_OUTPUTCHANGED 623 // output plugin was changed in config
-
-#define IPC_GETOUTPUTPLUGIN 625
-
-#define IPC_SETDRAWBORDERS 626
-#define IPC_DISABLESKINCURSORS 627
-#define IPC_CB_RESETFONT 629
-
-#define IPC_IS_FULLSCREEN 630 // returns 1 if video or vis is in fullscreen mode
-#define IPC_SET_VIS_FS_FLAG 631 // a vis should send this message with 1/as param to notify winamp that it has gone to or has come back from fullscreen mode
-
-#define IPC_SHOW_NOTIFICATION 632
-
-#define IPC_GETSKININFO 633
-
-// >>>>>>>>>>> Next is 634
-
-#define IPC_PLCMD  1000 
-
-#define PLCMD_ADD  0
-#define PLCMD_REM  1
-#define PLCMD_SEL  2
-#define PLCMD_MISC 3
-#define PLCMD_LIST 4
-
-#define IPC_MBCMD  1001 
-
-#define MBCMD_BACK    0
-#define MBCMD_FORWARD 1
-#define MBCMD_STOP    2
-#define MBCMD_RELOAD  3
-#define MBCMD_MISC  4
-
-#define IPC_VIDCMD 1002 
-
-#define VIDCMD_FULLSCREEN 0
-#define VIDCMD_1X         1
-#define VIDCMD_2X         2
-#define VIDCMD_LIB        3
-#define VIDPOPUP_MISC     4
-
-#define IPC_MBURL       1003 //sets the URL
-#define IPC_MBGETCURURL 1004 //copies the current URL into wParam (have a 4096 buffer ready)
-#define IPC_MBGETDESC   1005 //copies the current URL description into wParam (have a 4096 buffer ready)
-#define IPC_MBCHECKLOCFILE 1006 //checks that the link file is up to date (otherwise updates it). wParam=parent HWND
-#define IPC_MBREFRESH   1007 //refreshes the "now playing" view in the library
-#define IPC_MBGETDEFURL 1008 //copies the default URL into wParam (have a 4096 buffer ready)
-
-#define IPC_STATS_LIBRARY_ITEMCNT 1300 // updates library count status
-
-// IPC 2000-3000 reserved for freeform messages, see gen_ff/ff_ipc.h
-#define IPC_FF_FIRST 2000
-#define IPC_FF_LAST  3000
-
-#define IPC_GETDROPTARGET 3001
-
-#define IPC_PLAYLIST_MODIFIED 3002 // sent to main wnd whenever the playlist is modified
-
-#define IPC_PLAYING_FILE 3003 // sent to main wnd with the file as parm whenever a file is played
-#define IPC_FILE_TAG_MAY_HAVE_UPDATED 3004 // sent to main wnd with the file as parm whenever a file tag might be updated
-
-
-#define IPC_ALLOW_PLAYTRACKING 3007
-// send nonzero to allow, zero to disallow
-
-#define IPC_HOOK_OKTOQUIT 3010 // return 0 to abort a quit, nonzero if quit is OK
-
-#define IPC_WRITECONFIG 3011 // pass 2 to write all, 1 to write playlist + common, 0 to write common+less common
-
-// pass a string to be the name to register, and returns a value > 65536, which is a unique value you can use
-// for custom WM_WA_IPC messages. 
-#define IPC_REGISTER_WINAMP_IPCMESSAGE 65536 
-
-/**************************************************************************/
-
-/*
-** Finally there are some WM_COMMAND messages that you can use to send 
-** Winamp misc commands.
-** 
-** To send these, use:
-**
-** SendMessage(hwnd_winamp, WM_COMMAND,command_name,0);
-*/
-
-#define WINAMP_OPTIONS_EQ               40036 // toggles the EQ window
-#define WINAMP_OPTIONS_PLEDIT           40040 // toggles the playlist window
-#define WINAMP_VOLUMEUP                 40058 // turns the volume up a little
-#define WINAMP_VOLUMEDOWN               40059 // turns the volume down a little
-#define WINAMP_FFWD5S                   40060 // fast forwards 5 seconds
-#define WINAMP_REW5S                    40061 // rewinds 5 seconds
-
-// the following are the five main control buttons, with optionally shift 
-// or control pressed
-// (for the exact functions of each, just try it out)
-#define WINAMP_BUTTON1                  40044
-#define WINAMP_BUTTON2                  40045
-#define WINAMP_BUTTON3                  40046
-#define WINAMP_BUTTON4                  40047
-#define WINAMP_BUTTON5                  40048
-#define WINAMP_BUTTON1_SHIFT            40144
-#define WINAMP_BUTTON2_SHIFT            40145
-#define WINAMP_BUTTON3_SHIFT            40146
-#define WINAMP_BUTTON4_SHIFT            40147
-#define WINAMP_BUTTON5_SHIFT            40148
-#define WINAMP_BUTTON1_CTRL             40154
-#define WINAMP_BUTTON2_CTRL             40155
-#define WINAMP_BUTTON3_CTRL             40156
-#define WINAMP_BUTTON4_CTRL             40157
-#define WINAMP_BUTTON5_CTRL             40158
-
-#define WINAMP_FILE_PLAY                40029 // pops up the load file(s) box
-#define WINAMP_FILE_DIR                 40187 // pops up the load directory box
-#define WINAMP_OPTIONS_PREFS            40012 // pops up the preferences
-#define WINAMP_OPTIONS_AOT              40019 // toggles always on top
-#define WINAMP_HELP_ABOUT               40041 // pops up the about box :)
-
-#define ID_MAIN_PLAY_AUDIOCD1           40323 // starts playing the audio CD in the first CD reader
-#define ID_MAIN_PLAY_AUDIOCD2           40323 // plays the 2nd
-#define ID_MAIN_PLAY_AUDIOCD3           40323 // plays the 3nd
-#define ID_MAIN_PLAY_AUDIOCD4           40323 // plays the 4nd
-
-// IDs 42000 to 45000 are reserved for gen_ff
-// IDs from 45000 to 57000 are reserved for library 
-
-#endif//_WA_IPC_H_
-
-/*
-** EOF.. Enjoy.
-*/
diff --git a/lib/boost/uuid/sha1.hpp b/lib/boost/uuid/sha1.hpp
deleted file mode 100644
index f160e3f..0000000
--- a/lib/boost/uuid/sha1.hpp
+++ /dev/null
@@ -1,208 +0,0 @@
-// boost/uuid/sha1.hpp header file  ----------------------------------------------//
-
-// Copyright 2007 Andy Tompkins.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// Revision History
-//  29 May 2007 - Initial Revision
-//  25 Feb 2008 - moved to namespace boost::uuids::detail
-
-// This is a byte oriented implementation
-// Note: this implementation does not handle message longer than
-//       2^32 bytes.
-
-#ifndef BOOST_UUID_SHA1_H
-#define BOOST_UUID_SHA1_H
-
-#include <boost/static_assert.hpp>
-#include <cstddef>
-
-#ifdef BOOST_NO_STDC_NAMESPACE
-namespace std {
-    using ::size_t;
-} // namespace std
-#endif
-
-namespace boost {
-namespace uuids {
-namespace detail {
-
-BOOST_STATIC_ASSERT(sizeof(unsigned char)*8 == 8);
-BOOST_STATIC_ASSERT(sizeof(unsigned int)*8 == 32);
-
-inline unsigned int left_rotate(unsigned int x, std::size_t n)
-{
-    return (x<<n) ^ (x>> (32-n));
-}
-
-class sha1
-{
-public:
-    typedef unsigned int(&digest_type)[5];
-public:
-    sha1();
-
-    void reset();
-
-    void process_byte(unsigned char byte);
-    void process_block(void const* bytes_begin, void const* bytes_end);
-    void process_bytes(void const* buffer, std::size_t byte_count);
-
-    void get_digest(digest_type digest);
-
-private:
-    void process_block();
-
-private:
-    unsigned int h_[5];
-
-    unsigned char block_[64];
-
-    std::size_t block_byte_index_;
-    std::size_t byte_count_;
-};
-
-inline sha1::sha1()
-{
-    reset();
-}
-
-inline void sha1::reset()
-{
-    h_[0] = 0x67452301;
-    h_[1] = 0xEFCDAB89;
-    h_[2] = 0x98BADCFE;
-    h_[3] = 0x10325476;
-    h_[4] = 0xC3D2E1F0;
-
-    block_byte_index_ = 0;
-    byte_count_ = 0;
-}
-
-inline void sha1::process_byte(unsigned char byte)
-{
-    block_[block_byte_index_++] = byte;
-    ++byte_count_;
-    if (block_byte_index_ == 64) {
-        block_byte_index_ = 0;
-        process_block();
-    }
-}
-
-inline void sha1::process_block(void const* bytes_begin, void const* bytes_end)
-{
-    unsigned char const* begin = static_cast<unsigned char const*>(bytes_begin);
-    unsigned char const* end = static_cast<unsigned char const*>(bytes_end);
-    for(; begin != end; ++begin) {
-        process_byte(*begin);
-    }
-}
-
-inline void sha1::process_bytes(void const* buffer, std::size_t byte_count)
-{
-    unsigned char const* b = static_cast<unsigned char const*>(buffer);
-    process_block(b, b+byte_count);
-}
-
-inline void sha1::process_block()
-{
-    unsigned int w[80];
-    for (std::size_t i=0; i<16; ++i) {
-        w[i]  = (block_[i*4 + 0] << 24);
-        w[i] |= (block_[i*4 + 1] << 16);
-        w[i] |= (block_[i*4 + 2] << 8);
-        w[i] |= (block_[i*4 + 3]);
-    }
-    for (std::size_t i=16; i<80; ++i) {
-        w[i] = left_rotate((w[i-3] ^ w[i-8] ^ w[i-14] ^ w[i-16]), 1);
-    }
-
-    unsigned int a = h_[0];
-    unsigned int b = h_[1];
-    unsigned int c = h_[2];
-    unsigned int d = h_[3];
-    unsigned int e = h_[4];
-
-    for (std::size_t i=0; i<80; ++i) {
-        unsigned int f;
-        unsigned int k;
-
-        if (i<20) {
-            f = (b & c) | (~b & d);
-            k = 0x5A827999;
-        } else if (i<40) {
-            f = b ^ c ^ d;
-            k = 0x6ED9EBA1;
-        } else if (i<60) {
-            f = (b & c) | (b & d) | (c & d);
-            k = 0x8F1BBCDC;
-        } else {
-            f = b ^ c ^ d;
-            k = 0xCA62C1D6;
-        }
-
-        unsigned temp = left_rotate(a, 5) + f + e + k + w[i];
-        e = d;
-        d = c;
-        c = left_rotate(b, 30);
-        b = a;
-        a = temp;
-    }
-
-    h_[0] += a;
-    h_[1] += b;
-    h_[2] += c;
-    h_[3] += d;
-    h_[4] += e;
-}
-
-inline void sha1::get_digest(digest_type digest)
-{
-    std::size_t bit_count = byte_count_*8;
-
-    // append the bit '1' to the message
-    process_byte(0x80);
-
-    // append k bits '0', where k is the minimum number >= 0
-    // such that the resulting message length is congruent to 56 (mod 64)
-    // check if there is enough space for padding and bit_count
-    if (block_byte_index_ > 56) {
-        // finish this block
-        while (block_byte_index_ != 0) {
-            process_byte(0);
-        }
-
-        // one more block
-        while (block_byte_index_ < 56) {
-            process_byte(0);
-        }
-    } else {
-        while (block_byte_index_ < 56) {
-            process_byte(0);
-        }
-    }
-
-    // append length of message (before pre-processing) 
-    // as a 64-bit big-endian integer
-    process_byte(0);
-    process_byte(0);
-    process_byte(0);
-    process_byte(0);
-    process_byte( static_cast<unsigned char>((bit_count>>24) & 0xFF));
-    process_byte( static_cast<unsigned char>((bit_count>>16) & 0xFF));
-    process_byte( static_cast<unsigned char>((bit_count>>8 ) & 0xFF));
-    process_byte( static_cast<unsigned char>((bit_count)     & 0xFF));
-
-    // get final digest
-    digest[0] = h_[0];
-    digest[1] = h_[1];
-    digest[2] = h_[2];
-    digest[3] = h_[3];
-    digest[4] = h_[4];
-}
-
-}}} // namespace boost::uuids::detail
-
-#endif
\ No newline at end of file
diff --git a/lib/cpluff/kazlib/hash.c b/lib/cpluff/kazlib/hash.c
deleted file mode 100644
index 4cc281f..0000000
--- a/lib/cpluff/kazlib/hash.c
+++ /dev/null
@@ -1,1041 +0,0 @@
-/*
- * Hash Table Data Type
- * Copyright (C) 1997 Kaz Kylheku <kaz at ashi.footprints.net>
- *
- * Free Software License:
- *
- * All rights are reserved by the author, with the following exceptions:
- * Permission is granted to freely reproduce and distribute this software,
- * possibly in exchange for a fee, provided that this copyright notice appears
- * intact. Permission is also granted to adapt this software to produce
- * derivative works, as long as the modified versions carry this copyright
- * notice and additional notices stating that the work has been modified.
- * This source code may be translated into executable form and incorporated
- * into proprietary software; there is no requirement for such software to
- * contain a copyright notice related to this source.
- *
- * $Id: hash.c,v 1.36.2.11 2000/11/13 01:36:45 kaz Exp $
- * $Name: kazlib_1_20 $
- */
-
-/*
- * Modified by Johannes Lehtinen in 2006-2007.
- * Included the definition of CP_HIDDEN macro and used it in declarations and
- * definitions to hide Kazlib symbols when building a shared C-Pluff library.
- */
-
-#include <stdlib.h>
-#include <stddef.h>
-#include <assert.h>
-#include <string.h>
-#define HASH_IMPLEMENTATION
-#include "hash.h"
-
-#ifdef KAZLIB_RCSID
-static const char rcsid[] = "$Id: hash.c,v 1.36.2.11 2000/11/13 01:36:45 kaz Exp $";
-#endif
-
-#define INIT_BITS	6
-#define INIT_SIZE	(1UL << (INIT_BITS))	/* must be power of two		*/
-#define INIT_MASK	((INIT_SIZE) - 1)
-
-#define next hash_next
-#define key hash_key
-#define data hash_data
-#define hkey hash_hkey
-
-#define table hash_table
-#define nchains hash_nchains
-#define nodecount hash_nodecount
-#define maxcount hash_maxcount
-#define highmark hash_highmark
-#define lowmark hash_lowmark
-#define compare hash_compare
-#define function hash_function
-#define allocnode hash_allocnode
-#define freenode hash_freenode
-#define context hash_context
-#define mask hash_mask
-#define dynamic hash_dynamic
-
-#define table hash_table
-#define chain hash_chain
-
-static hnode_t *hnode_alloc(void *context);
-static void hnode_free(hnode_t *node, void *context);
-static hash_val_t hash_fun_default(const void *key);
-static int hash_comp_default(const void *key1, const void *key2);
-
-CP_HIDDEN int hash_val_t_bit;
-
-/*
- * Compute the number of bits in the hash_val_t type.  We know that hash_val_t
- * is an unsigned integral type. Thus the highest value it can hold is a
- * Mersenne number (power of two, less one). We initialize a hash_val_t
- * object with this value and then shift bits out one by one while counting.
- * Notes:
- * 1. HASH_VAL_T_MAX is a Mersenne number---one that is one less than a power
- *    of two. This means that its binary representation consists of all one
- *    bits, and hence ``val'' is initialized to all one bits.
- * 2. While bits remain in val, we increment the bit count and shift it to the
- *    right, replacing the topmost bit by zero.
- */
-
-static void compute_bits(void)
-{
-    hash_val_t val = HASH_VAL_T_MAX;	/* 1 */
-    int bits = 0;
-
-    while (val) {	/* 2 */
-	bits++;
-	val >>= 1;
-    }
-
-    hash_val_t_bit = bits;
-}
-
-/*
- * Verify whether the given argument is a power of two.
- */
-
-static int is_power_of_two(hash_val_t arg)
-{
-    if (arg == 0)
-	return 0;
-    while ((arg & 1) == 0)
-	arg >>= 1;
-    return (arg == 1);
-}
-
-/*
- * Compute a shift amount from a given table size 
- */
-
-static hash_val_t compute_mask(hashcount_t size)
-{
-    assert (is_power_of_two(size));
-    assert (size >= 2);
-
-    return size - 1;
-}
-
-/*
- * Initialize the table of pointers to null.
- */
-
-static void clear_table(hash_t *hash)
-{
-    hash_val_t i;
-
-    for (i = 0; i < hash->nchains; i++)
-	hash->table[i] = NULL;
-}
-
-/*
- * Double the size of a dynamic table. This works as follows. Each chain splits
- * into two adjacent chains.  The shift amount increases by one, exposing an
- * additional bit of each hashed key. For each node in the original chain, the
- * value of this newly exposed bit will decide which of the two new chains will
- * receive the node: if the bit is 1, the chain with the higher index will have
- * the node, otherwise the lower chain will receive the node. In this manner,
- * the hash table will continue to function exactly as before without having to
- * rehash any of the keys.
- * Notes:
- * 1.  Overflow check.
- * 2.  The new number of chains is twice the old number of chains.
- * 3.  The new mask is one bit wider than the previous, revealing a
- *     new bit in all hashed keys.
- * 4.  Allocate a new table of chain pointers that is twice as large as the
- *     previous one.
- * 5.  If the reallocation was successful, we perform the rest of the growth
- *     algorithm, otherwise we do nothing.
- * 6.  The exposed_bit variable holds a mask with which each hashed key can be
- *     AND-ed to test the value of its newly exposed bit.
- * 7.  Now loop over each chain in the table and sort its nodes into two
- *     chains based on the value of each node's newly exposed hash bit.
- * 8.  The low chain replaces the current chain.  The high chain goes
- *     into the corresponding sister chain in the upper half of the table.
- * 9.  We have finished dealing with the chains and nodes. We now update
- *     the various bookeeping fields of the hash structure.
- */
-
-static void grow_table(hash_t *hash)
-{
-    hnode_t **newtable;
-
-    assert (2 * hash->nchains > hash->nchains);	/* 1 */
-
-    newtable = realloc(hash->table,
-	    sizeof *newtable * hash->nchains * 2);	/* 4 */
-
-    if (newtable) {	/* 5 */
-	hash_val_t mask = (hash->mask << 1) | 1;	/* 3 */
-	hash_val_t exposed_bit = mask ^ hash->mask;	/* 6 */
-	hash_val_t chain;
-
-	assert (mask != hash->mask);
-
-	for (chain = 0; chain < hash->nchains; chain++) { /* 7 */
-	    hnode_t *low_chain = 0, *high_chain = 0, *hptr, *next;
-
-	    for (hptr = newtable[chain]; hptr != 0; hptr = next) {
-		next = hptr->next;
-
-		if (hptr->hkey & exposed_bit) {
-		    hptr->next = high_chain;
-		    high_chain = hptr;
-		} else {
-		    hptr->next = low_chain;
-		    low_chain = hptr;
-		}
-	    }
-
-	    newtable[chain] = low_chain; 	/* 8 */
-	    newtable[chain + hash->nchains] = high_chain;
-	}
-
-	hash->table = newtable;			/* 9 */
-	hash->mask = mask;
-	hash->nchains *= 2;
-	hash->lowmark *= 2;
-	hash->highmark *= 2;
-    }
-    assert (hash_verify(hash));
-}
-
-/*
- * Cut a table size in half. This is done by folding together adjacent chains
- * and populating the lower half of the table with these chains. The chains are
- * simply spliced together. Once this is done, the whole table is reallocated
- * to a smaller object.
- * Notes:
- * 1.  It is illegal to have a hash table with one slot. This would mean that
- *     hash->shift is equal to hash_val_t_bit, an illegal shift value.
- *     Also, other things could go wrong, such as hash->lowmark becoming zero.
- * 2.  Looping over each pair of sister chains, the low_chain is set to
- *     point to the head node of the chain in the lower half of the table, 
- *     and high_chain points to the head node of the sister in the upper half.
- * 3.  The intent here is to compute a pointer to the last node of the
- *     lower chain into the low_tail variable. If this chain is empty,
- *     low_tail ends up with a null value.
- * 4.  If the lower chain is not empty, we simply tack the upper chain onto it.
- *     If the upper chain is a null pointer, nothing happens.
- * 5.  Otherwise if the lower chain is empty but the upper one is not,
- *     If the low chain is empty, but the high chain is not, then the
- *     high chain is simply transferred to the lower half of the table.
- * 6.  Otherwise if both chains are empty, there is nothing to do.
- * 7.  All the chain pointers are in the lower half of the table now, so
- *     we reallocate it to a smaller object. This, of course, invalidates
- *     all pointer-to-pointers which reference into the table from the
- *     first node of each chain.
- * 8.  Though it's unlikely, the reallocation may fail. In this case we
- *     pretend that the table _was_ reallocated to a smaller object.
- * 9.  Finally, update the various table parameters to reflect the new size.
- */
-
-static void shrink_table(hash_t *hash)
-{
-    hash_val_t chain, nchains;
-    hnode_t **newtable, *low_tail, *low_chain, *high_chain;
-
-    assert (hash->nchains >= 2);			/* 1 */
-    nchains = hash->nchains / 2;
-
-    for (chain = 0; chain < nchains; chain++) {
-	low_chain = hash->table[chain];		/* 2 */
-	high_chain = hash->table[chain + nchains];
-	for (low_tail = low_chain; low_tail && low_tail->next; low_tail = low_tail->next)
-	    ;	/* 3 */
-	if (low_chain != 0)				/* 4 */
-	    low_tail->next = high_chain;
-	else if (high_chain != 0)			/* 5 */
-	    hash->table[chain] = high_chain;
-	else
-	    assert (hash->table[chain] == NULL);	/* 6 */
-    }
-    newtable = realloc(hash->table,
-	    sizeof *newtable * nchains);		/* 7 */
-    if (newtable)					/* 8 */
-	hash->table = newtable;
-    hash->mask >>= 1;			/* 9 */
-    hash->nchains = nchains;
-    hash->lowmark /= 2;
-    hash->highmark /= 2;
-    assert (hash_verify(hash));
-}
-
-
-/*
- * Create a dynamic hash table. Both the hash table structure and the table
- * itself are dynamically allocated. Furthermore, the table is extendible in
- * that it will automatically grow as its load factor increases beyond a
- * certain threshold.
- * Notes:
- * 1. If the number of bits in the hash_val_t type has not been computed yet,
- *    we do so here, because this is likely to be the first function that the
- *    user calls.
- * 2. Allocate a hash table control structure.
- * 3. If a hash table control structure is successfully allocated, we
- *    proceed to initialize it. Otherwise we return a null pointer.
- * 4. We try to allocate the table of hash chains.
- * 5. If we were able to allocate the hash chain table, we can finish
- *    initializing the hash structure and the table. Otherwise, we must
- *    backtrack by freeing the hash structure.
- * 6. INIT_SIZE should be a power of two. The high and low marks are always set
- *    to be twice the table size and half the table size respectively. When the
- *    number of nodes in the table grows beyond the high size (beyond load
- *    factor 2), it will double in size to cut the load factor down to about
- *    about 1. If the table shrinks down to or beneath load factor 0.5,
- *    it will shrink, bringing the load up to about 1. However, the table
- *    will never shrink beneath INIT_SIZE even if it's emptied.
- * 7. This indicates that the table is dynamically allocated and dynamically
- *    resized on the fly. A table that has this value set to zero is
- *    assumed to be statically allocated and will not be resized.
- * 8. The table of chains must be properly reset to all null pointers.
- */
-
-CP_HIDDEN hash_t *hash_create(hashcount_t maxcount, hash_comp_t compfun,
-	hash_fun_t hashfun)
-{
-    hash_t *hash;
-
-    if (hash_val_t_bit == 0)	/* 1 */
-	compute_bits();
-
-    hash = malloc(sizeof *hash);	/* 2 */
-
-    if (hash) {		/* 3 */
-	hash->table = malloc(sizeof *hash->table * INIT_SIZE);	/* 4 */
-	if (hash->table) {	/* 5 */
-	    hash->nchains = INIT_SIZE;		/* 6 */
-	    hash->highmark = INIT_SIZE * 2;
-	    hash->lowmark = INIT_SIZE / 2;
-	    hash->nodecount = 0;
-	    hash->maxcount = maxcount;
-	    hash->compare = compfun ? compfun : hash_comp_default;
-	    hash->function = hashfun ? hashfun : hash_fun_default;
-	    hash->allocnode = hnode_alloc;
-	    hash->freenode = hnode_free;
-	    hash->context = NULL;
-	    hash->mask = INIT_MASK;
-	    hash->dynamic = 1;			/* 7 */
-	    clear_table(hash);			/* 8 */
-	    assert (hash_verify(hash));
-	    return hash;
-	} 
-	free(hash);
-    }
-
-    return NULL;
-}
-
-/*
- * Select a different set of node allocator routines.
- */
-
-CP_HIDDEN void hash_set_allocator(hash_t *hash, hnode_alloc_t al,
-	hnode_free_t fr, void *context)
-{
-    assert (hash_count(hash) == 0);
-    assert ((al == 0 && fr == 0) || (al != 0 && fr != 0));
-
-    hash->allocnode = al ? al : hnode_alloc;
-    hash->freenode = fr ? fr : hnode_free;
-    hash->context = context;
-}
-
-/*
- * Free every node in the hash using the hash->freenode() function pointer, and
- * cause the hash to become empty.
- */
-
-CP_HIDDEN void hash_free_nodes(hash_t *hash)
-{
-    hscan_t hs;
-    hnode_t *node;
-    hash_scan_begin(&hs, hash);
-    while ((node = hash_scan_next(&hs))) {
-	hash_scan_delete(hash, node);
-	hash->freenode(node, hash->context);
-    }
-    hash->nodecount = 0;
-    clear_table(hash);
-}
-
-/*
- * Obsolescent function for removing all nodes from a table,
- * freeing them and then freeing the table all in one step.
- */
-
-CP_HIDDEN void hash_free(hash_t *hash)
-{
-#ifdef KAZLIB_OBSOLESCENT_DEBUG
-    assert ("call to obsolescent function hash_free()" && 0);
-#endif
-    hash_free_nodes(hash);
-    hash_destroy(hash);
-}
-
-/*
- * Free a dynamic hash table structure.
- */
-
-CP_HIDDEN void hash_destroy(hash_t *hash)
-{
-    assert (hash_val_t_bit != 0);
-    assert (hash_isempty(hash));
-    free(hash->table);
-    free(hash);
-}
-
-/*
- * Initialize a user supplied hash structure. The user also supplies a table of
- * chains which is assigned to the hash structure. The table is static---it
- * will not grow or shrink.
- * 1. See note 1. in hash_create().
- * 2. The user supplied array of pointers hopefully contains nchains nodes.
- * 3. See note 7. in hash_create().
- * 4. We must dynamically compute the mask from the given power of two table
- *    size. 
- * 5. The user supplied table can't be assumed to contain null pointers,
- *    so we reset it here.
- */
-
-CP_HIDDEN hash_t *hash_init(hash_t *hash, hashcount_t maxcount,
-	hash_comp_t compfun, hash_fun_t hashfun, hnode_t **table,
-	hashcount_t nchains)
-{
-    if (hash_val_t_bit == 0)	/* 1 */
-	compute_bits();
-
-    assert (is_power_of_two(nchains));
-
-    hash->table = table;	/* 2 */
-    hash->nchains = nchains;
-    hash->nodecount = 0;
-    hash->maxcount = maxcount;
-    hash->compare = compfun ? compfun : hash_comp_default;
-    hash->function = hashfun ? hashfun : hash_fun_default;
-    hash->dynamic = 0;		/* 3 */
-    hash->mask = compute_mask(nchains);	/* 4 */
-    clear_table(hash);		/* 5 */
-
-    assert (hash_verify(hash));
-
-    return hash;
-}
-
-/*
- * Reset the hash scanner so that the next element retrieved by
- * hash_scan_next() shall be the first element on the first non-empty chain. 
- * Notes:
- * 1. Locate the first non empty chain.
- * 2. If an empty chain is found, remember which one it is and set the next
- *    pointer to refer to its first element.
- * 3. Otherwise if a chain is not found, set the next pointer to NULL
- *    so that hash_scan_next() shall indicate failure.
- */
-
-CP_HIDDEN void hash_scan_begin(hscan_t *scan, hash_t *hash)
-{
-    hash_val_t nchains = hash->nchains;
-    hash_val_t chain;
-
-    scan->table = hash;
-
-    /* 1 */
-
-    for (chain = 0; chain < nchains && hash->table[chain] == 0; chain++)
-	;
-
-    if (chain < nchains) {	/* 2 */
-	scan->chain = chain;
-	scan->next = hash->table[chain];
-    } else {			/* 3 */
-	scan->next = NULL;
-    }
-}
-
-/*
- * Retrieve the next node from the hash table, and update the pointer
- * for the next invocation of hash_scan_next(). 
- * Notes:
- * 1. Remember the next pointer in a temporary value so that it can be
- *    returned.
- * 2. This assertion essentially checks whether the module has been properly
- *    initialized. The first point of interaction with the module should be
- *    either hash_create() or hash_init(), both of which set hash_val_t_bit to
- *    a non zero value.
- * 3. If the next pointer we are returning is not NULL, then the user is
- *    allowed to call hash_scan_next() again. We prepare the new next pointer
- *    for that call right now. That way the user is allowed to delete the node
- *    we are about to return, since we will no longer be needing it to locate
- *    the next node.
- * 4. If there is a next node in the chain (next->next), then that becomes the
- *    new next node, otherwise ...
- * 5. We have exhausted the current chain, and must locate the next subsequent
- *    non-empty chain in the table.
- * 6. If a non-empty chain is found, the first element of that chain becomes
- *    the new next node. Otherwise there is no new next node and we set the
- *    pointer to NULL so that the next time hash_scan_next() is called, a null
- *    pointer shall be immediately returned.
- */
-
-
-CP_HIDDEN hnode_t *hash_scan_next(hscan_t *scan)
-{
-    hnode_t *next = scan->next;		/* 1 */
-    hash_t *hash = scan->table;
-    hash_val_t chain = scan->chain + 1;
-    hash_val_t nchains = hash->nchains;
-
-    assert (hash_val_t_bit != 0);	/* 2 */
-
-    if (next) {			/* 3 */
-	if (next->next) {	/* 4 */
-	    scan->next = next->next;
-	} else {
-	    while (chain < nchains && hash->table[chain] == 0)	/* 5 */
-	    	chain++;
-	    if (chain < nchains) {	/* 6 */
-		scan->chain = chain;
-		scan->next = hash->table[chain];
-	    } else {
-		scan->next = NULL;
-	    }
-	}
-    }
-    return next;
-}
-
-/*
- * Insert a node into the hash table.
- * Notes:
- * 1. It's illegal to insert more than the maximum number of nodes. The client
- *    should verify that the hash table is not full before attempting an
- *    insertion.
- * 2. The same key may not be inserted into a table twice.
- * 3. If the table is dynamic and the load factor is already at >= 2,
- *    grow the table.
- * 4. We take the bottom N bits of the hash value to derive the chain index,
- *    where N is the base 2 logarithm of the size of the hash table. 
- */
-
-CP_HIDDEN void hash_insert(hash_t *hash, hnode_t *node, const void *key)
-{
-    hash_val_t hkey, chain;
-
-    assert (hash_val_t_bit != 0);
-    assert (node->next == NULL);
-    assert (hash->nodecount < hash->maxcount);	/* 1 */
-    assert (hash_lookup(hash, key) == NULL);	/* 2 */
-
-    if (hash->dynamic && hash->nodecount >= hash->highmark)	/* 3 */
-	grow_table(hash);
-
-    hkey = hash->function(key);
-    chain = hkey & hash->mask;	/* 4 */
-
-    node->key = key;
-    node->hkey = hkey;
-    node->next = hash->table[chain];
-    hash->table[chain] = node;
-    hash->nodecount++;
-
-    assert (hash_verify(hash));
-}
-
-/*
- * Find a node in the hash table and return a pointer to it.
- * Notes:
- * 1. We hash the key and keep the entire hash value. As an optimization, when
- *    we descend down the chain, we can compare hash values first and only if
- *    hash values match do we perform a full key comparison. 
- * 2. To locate the chain from among 2^N chains, we look at the lower N bits of
- *    the hash value by anding them with the current mask.
- * 3. Looping through the chain, we compare the stored hash value inside each
- *    node against our computed hash. If they match, then we do a full
- *    comparison between the unhashed keys. If these match, we have located the
- *    entry.
- */
-
-CP_HIDDEN hnode_t *hash_lookup(hash_t *hash, const void *key)
-{
-    hash_val_t hkey, chain;
-    hnode_t *nptr;
-
-    hkey = hash->function(key);		/* 1 */
-    chain = hkey & hash->mask;		/* 2 */
-
-    for (nptr = hash->table[chain]; nptr; nptr = nptr->next) {	/* 3 */
-	if (nptr->hkey == hkey && hash->compare(nptr->key, key) == 0)
-	    return nptr;
-    }
-
-    return NULL;
-}
-
-/*
- * Delete the given node from the hash table.  Since the chains
- * are singly linked, we must locate the start of the node's chain
- * and traverse.
- * Notes:
- * 1. The node must belong to this hash table, and its key must not have
- *    been tampered with.
- * 2. If this deletion will take the node count below the low mark, we
- *    shrink the table now. 
- * 3. Determine which chain the node belongs to, and fetch the pointer
- *    to the first node in this chain.
- * 4. If the node being deleted is the first node in the chain, then
- *    simply update the chain head pointer.
- * 5. Otherwise advance to the node's predecessor, and splice out
- *    by updating the predecessor's next pointer.
- * 6. Indicate that the node is no longer in a hash table.
- */
-
-CP_HIDDEN hnode_t *hash_delete(hash_t *hash, hnode_t *node)
-{
-    hash_val_t chain;
-    hnode_t *hptr;
-
-    assert (hash_lookup(hash, node->key) == node);	/* 1 */
-    assert (hash_val_t_bit != 0);
-
-    if (hash->dynamic && hash->nodecount <= hash->lowmark
-	    && hash->nodecount > INIT_SIZE)
-	shrink_table(hash);				/* 2 */
-
-    chain = node->hkey & hash->mask;			/* 3 */
-    hptr = hash->table[chain];
-
-    if (hptr == node) {					/* 4 */
-	hash->table[chain] = node->next;
-    } else {
-	while (hptr->next != node) {			/* 5 */
-	    assert (hptr != 0);
-	    hptr = hptr->next;
-	}
-	assert (hptr->next == node);
-	hptr->next = node->next;
-    }
-	
-    hash->nodecount--;
-    assert (hash_verify(hash));
-
-    node->next = NULL;					/* 6 */
-    return node;
-}
-
-CP_HIDDEN int hash_alloc_insert(hash_t *hash, const void *key, void *data)
-{
-    hnode_t *node = hash->allocnode(hash->context);
-
-    if (node) {
-	hnode_init(node, data);
-	hash_insert(hash, node, key);
-	return 1;
-    }
-    return 0;
-}
-
-CP_HIDDEN void hash_delete_free(hash_t *hash, hnode_t *node)
-{
-    hash_delete(hash, node);
-    hash->freenode(node, hash->context);
-}
-
-/*
- *  Exactly like hash_delete, except does not trigger table shrinkage. This is to be
- *  used from within a hash table scan operation. See notes for hash_delete.
- */
-
-CP_HIDDEN hnode_t *hash_scan_delete(hash_t *hash, hnode_t *node)
-{
-    hash_val_t chain;
-    hnode_t *hptr;
-
-    assert (hash_lookup(hash, node->key) == node);
-    assert (hash_val_t_bit != 0);
-
-    chain = node->hkey & hash->mask;
-    hptr = hash->table[chain];
-
-    if (hptr == node) {
-	hash->table[chain] = node->next;
-    } else {
-	while (hptr->next != node) 
-	    hptr = hptr->next;
-	hptr->next = node->next;
-    }
-	
-    hash->nodecount--;
-    assert (hash_verify(hash));
-    node->next = NULL;
-
-    return node;
-}
-
-/*
- * Like hash_delete_free but based on hash_scan_delete.
- */
-
-CP_HIDDEN void hash_scan_delfree(hash_t *hash, hnode_t *node)
-{
-    hash_scan_delete(hash, node);
-    hash->freenode(node, hash->context);
-}
-
-/*
- * Verify whether the given object is a valid hash table. This means
- * Notes:
- * 1. If the hash table is dynamic, verify whether the high and
- *    low expansion/shrinkage thresholds are powers of two.
- * 2. Count all nodes in the table, and test each hash value
- *    to see whether it is correct for the node's chain.
- */
-
-CP_HIDDEN int hash_verify(hash_t *hash)
-{
-    hashcount_t count = 0;
-    hash_val_t chain;
-    hnode_t *hptr;
-
-    if (hash->dynamic) {	/* 1 */
-	if (hash->lowmark >= hash->highmark)
-	    return 0;
-	if (!is_power_of_two(hash->highmark))
-	    return 0;
-	if (!is_power_of_two(hash->lowmark))
-	    return 0;
-    }
-
-    for (chain = 0; chain < hash->nchains; chain++) {	/* 2 */
-	for (hptr = hash->table[chain]; hptr != 0; hptr = hptr->next) {
-	    if ((hptr->hkey & hash->mask) != chain)
-		return 0;
-	    count++;
-	}
-    }
-
-    if (count != hash->nodecount)
-	return 0;
-
-    return 1;
-}
-
-/*
- * Test whether the hash table is full and return 1 if this is true,
- * 0 if it is false.
- */
-
-#undef hash_isfull
-CP_HIDDEN int hash_isfull(hash_t *hash)
-{
-    return hash->nodecount == hash->maxcount;
-}
-
-/*
- * Test whether the hash table is empty and return 1 if this is true,
- * 0 if it is false.
- */
-
-#undef hash_isempty
-CP_HIDDEN int hash_isempty(hash_t *hash)
-{
-    return hash->nodecount == 0;
-}
-
-static hnode_t *hnode_alloc(void *context)
-{
-    return malloc(sizeof *hnode_alloc(NULL));
-}
-
-static void hnode_free(hnode_t *node, void *context)
-{
-    free(node);
-}
-
-
-/*
- * Create a hash table node dynamically and assign it the given data.
- */
-
-CP_HIDDEN hnode_t *hnode_create(void *data)
-{
-    hnode_t *node = malloc(sizeof *node);
-    if (node) {
-	node->data = data;
-	node->next = NULL;
-    }
-    return node;
-}
-
-/*
- * Initialize a client-supplied node 
- */
-
-CP_HIDDEN hnode_t *hnode_init(hnode_t *hnode, void *data)
-{
-    hnode->data = data;
-    hnode->next = NULL;
-    return hnode;
-}
-
-/*
- * Destroy a dynamically allocated node.
- */
-
-CP_HIDDEN void hnode_destroy(hnode_t *hnode)
-{
-    free(hnode);
-}
-
-#undef hnode_put
-CP_HIDDEN void hnode_put(hnode_t *node, void *data)
-{
-    node->data = data;
-}
-
-#undef hnode_get
-CP_HIDDEN void *hnode_get(hnode_t *node)
-{
-    return node->data;
-}
-
-#undef hnode_getkey
-CP_HIDDEN const void *hnode_getkey(hnode_t *node)
-{
-    return node->key;
-}
-
-#undef hash_count
-CP_HIDDEN hashcount_t hash_count(hash_t *hash)
-{
-    return hash->nodecount;
-}
-
-#undef hash_size
-CP_HIDDEN hashcount_t hash_size(hash_t *hash)
-{
-    return hash->nchains;
-}
-
-static hash_val_t hash_fun_default(const void *key)
-{
-    static unsigned long randbox[] = {
-	0x49848f1bU, 0xe6255dbaU, 0x36da5bdcU, 0x47bf94e9U,
-	0x8cbcce22U, 0x559fc06aU, 0xd268f536U, 0xe10af79aU,
-	0xc1af4d69U, 0x1d2917b5U, 0xec4c304dU, 0x9ee5016cU,
-	0x69232f74U, 0xfead7bb3U, 0xe9089ab6U, 0xf012f6aeU,
-    };
-
-    const unsigned char *str = key;
-    hash_val_t acc = 0;
-
-    while (*str) {
-	acc ^= randbox[(*str + acc) & 0xf];
-	acc = (acc << 1) | (acc >> 31);
-	acc &= 0xffffffffU;
-	acc ^= randbox[((*str++ >> 4) + acc) & 0xf];
-	acc = (acc << 2) | (acc >> 30);
-	acc &= 0xffffffffU;
-    }
-    return acc;
-}
-
-static int hash_comp_default(const void *key1, const void *key2)
-{
-    return strcmp(key1, key2);
-}
-
-#ifdef KAZLIB_TEST_MAIN
-
-#include <stdio.h>
-#include <ctype.h>
-#include <stdarg.h>
-
-typedef char input_t[256];
-
-static int tokenize(char *string, ...)
-{
-    char **tokptr; 
-    va_list arglist;
-    int tokcount = 0;
-
-    va_start(arglist, string);
-    tokptr = va_arg(arglist, char **);
-    while (tokptr) {
-	while (*string && isspace((unsigned char) *string))
-	    string++;
-	if (!*string)
-	    break;
-	*tokptr = string;
-	while (*string && !isspace((unsigned char) *string))
-	    string++;
-	tokptr = va_arg(arglist, char **);
-	tokcount++;
-	if (!*string)
-	    break;
-	*string++ = 0;
-    }
-    va_end(arglist);
-
-    return tokcount;
-}
-
-static char *dupstring(char *str)
-{
-    int sz = strlen(str) + 1;
-    char *new = malloc(sz);
-    if (new)
-	memcpy(new, str, sz);
-    return new;
-}
-
-static hnode_t *new_node(void *c)
-{
-    static hnode_t few[5];
-    static int count;
-
-    if (count < 5)
-	return few + count++;
-
-    return NULL;
-}
-
-static void del_node(hnode_t *n, void *c)
-{
-}
-
-int main(void)
-{
-    input_t in;
-    hash_t *h = hash_create(HASHCOUNT_T_MAX, 0, 0);
-    hnode_t *hn;
-    hscan_t hs;
-    char *tok1, *tok2, *val;
-    const char *key;
-    int prompt = 0;
-
-    char *help =
-	"a <key> <val>          add value to hash table\n"
-	"d <key>                delete value from hash table\n"
-	"l <key>                lookup value in hash table\n"
-	"n                      show size of hash table\n"
-	"c                      show number of entries\n"
-	"t                      dump whole hash table\n"
-	"+                      increase hash table (private func)\n"
-	"-                      decrease hash table (private func)\n"
-	"b                      print hash_t_bit value\n"
-	"p                      turn prompt on\n"
-	"s                      switch to non-functioning allocator\n"
-	"q                      quit";
-
-    if (!h)
-	puts("hash_create failed");
-
-    for (;;) {
-	if (prompt)
-	    putchar('>');
-	fflush(stdout);
-
-	if (!fgets(in, sizeof(input_t), stdin))
-	    break;
-
-	switch(in[0]) {
-	    case '?':
-		puts(help);
-		break;
-	    case 'b':
-		printf("%d\n", hash_val_t_bit);
-		break;
-	    case 'a':
-		if (tokenize(in+1, &tok1, &tok2, (char **) 0) != 2) {
-		    puts("what?");
-		    break;
-		}
-		key = dupstring(tok1);
-		val = dupstring(tok2);
-
-		if (!key || !val) {
-		    puts("out of memory");
-		    free((void *) key);
-		    free(val);
-		}
-
-		if (!hash_alloc_insert(h, key, val)) {
-		    puts("hash_alloc_insert failed");
-		    free((void *) key);
-		    free(val);
-		    break;
-		}
-		break;
-	    case 'd':
-		if (tokenize(in+1, &tok1, (char **) 0) != 1) {
-		    puts("what?");
-		    break;
-		}
-		hn = hash_lookup(h, tok1);
-		if (!hn) {
-		    puts("hash_lookup failed");
-		    break;
-		}
-		val = hnode_get(hn);
-		key = hnode_getkey(hn);
-		hash_scan_delfree(h, hn);
-		free((void *) key);
-		free(val);
-		break;
-	    case 'l':
-		if (tokenize(in+1, &tok1, (char **) 0) != 1) {
-		    puts("what?");
-		    break;
-		}
-		hn = hash_lookup(h, tok1);
-		if (!hn) {
-		    puts("hash_lookup failed");
-		    break;
-		}
-		val = hnode_get(hn);
-		puts(val);
-		break;
-	    case 'n':
-		printf("%lu\n", (unsigned long) hash_size(h));
-		break;
-	    case 'c':
-		printf("%lu\n", (unsigned long) hash_count(h));
-		break;
-	    case 't':
-		hash_scan_begin(&hs, h);
-		while ((hn = hash_scan_next(&hs)))
-		    printf("%s\t%s\n", (char*) hnode_getkey(hn),
-			    (char*) hnode_get(hn));
-		break;
-	    case '+':
-		grow_table(h);		/* private function	*/
-		break;
-	    case '-':
-		shrink_table(h);	/* private function	*/
-		break;
-	    case 'q':
-		exit(0);
-		break;
-	    case '\0':
-		break;
-	    case 'p':
-		prompt = 1;
-		break;
-	    case 's':
-		hash_set_allocator(h, new_node, del_node, NULL);
-		break;
-	    default:
-		putchar('?');
-		putchar('\n');
-		break;
-	}
-    }
-
-    return 0;
-}
-
-#endif
diff --git a/lib/cpluff/kazlib/hash.h b/lib/cpluff/kazlib/hash.h
deleted file mode 100644
index 50297ee..0000000
--- a/lib/cpluff/kazlib/hash.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Hash Table Data Type
- * Copyright (C) 1997 Kaz Kylheku <kaz at ashi.footprints.net>
- *
- * Free Software License:
- *
- * All rights are reserved by the author, with the following exceptions:
- * Permission is granted to freely reproduce and distribute this software,
- * possibly in exchange for a fee, provided that this copyright notice appears
- * intact. Permission is also granted to adapt this software to produce
- * derivative works, as long as the modified versions carry this copyright
- * notice and additional notices stating that the work has been modified.
- * This source code may be translated into executable form and incorporated
- * into proprietary software; there is no requirement for such software to
- * contain a copyright notice related to this source.
- *
- * $Id: hash.h,v 1.22.2.7 2000/11/13 01:36:45 kaz Exp $
- * $Name: kazlib_1_20 $
- */
-
-/*
- * Modified by Johannes Lehtinen in 2006-2007.
- * Included the definition of CP_HIDDEN macro and used it in declarations and
- * definitions to hide Kazlib symbols when building a shared C-Pluff library.
- */
-
-#ifndef HASH_H
-#define HASH_H
-
-#ifdef _WIN32
-#include "../libcpluff/win32/cpluffdef.h"
-#else
-#include "../libcpluff/cpluffdef.h"
-#endif
-
-#include <limits.h>
-#ifdef KAZLIB_SIDEEFFECT_DEBUG
-#include "sfx.h"
-#endif
-
-/*
- * Blurb for inclusion into C++ translation units
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef unsigned long hashcount_t;
-#define HASHCOUNT_T_MAX ULONG_MAX
-
-typedef unsigned long hash_val_t;
-#define HASH_VAL_T_MAX ULONG_MAX
-
-CP_HIDDEN extern int hash_val_t_bit;
-
-#ifndef HASH_VAL_T_BIT
-#define HASH_VAL_T_BIT ((int) hash_val_t_bit)
-#endif
-
-/*
- * Hash chain node structure.
- * Notes:
- * 1. This preprocessing directive is for debugging purposes.  The effect is
- *    that if the preprocessor symbol KAZLIB_OPAQUE_DEBUG is defined prior to the
- *    inclusion of this header,  then the structure shall be declared as having
- *    the single member   int __OPAQUE__.   This way, any attempts by the
- *    client code to violate the principles of information hiding (by accessing
- *    the structure directly) can be diagnosed at translation time. However,
- *    note the resulting compiled unit is not suitable for linking.
- * 2. This is a pointer to the next node in the chain. In the last node of a
- *    chain, this pointer is null.
- * 3. The key is a pointer to some user supplied data that contains a unique
- *    identifier for each hash node in a given table. The interpretation of
- *    the data is up to the user. When creating or initializing a hash table,
- *    the user must supply a pointer to a function for comparing two keys,
- *    and a pointer to a function for hashing a key into a numeric value.
- * 4. The value is a user-supplied pointer to void which may refer to
- *    any data object. It is not interpreted in any way by the hashing
- *    module.
- * 5. The hashed key is stored in each node so that we don't have to rehash
- *    each key when the table must grow or shrink.
- */
-
-typedef struct hnode_t {
-    #if defined(HASH_IMPLEMENTATION) || !defined(KAZLIB_OPAQUE_DEBUG)	/* 1 */
-    struct hnode_t *hash_next;		/* 2 */
-    const void *hash_key;		/* 3 */
-    void *hash_data;			/* 4 */
-    hash_val_t hash_hkey;		/* 5 */
-    #else
-    int hash_dummy;
-    #endif
-} hnode_t;
-
-/*
- * The comparison function pointer type. A comparison function takes two keys
- * and produces a value of -1 if the left key is less than the right key, a
- * value of 0 if the keys are equal, and a value of 1 if the left key is
- * greater than the right key.
- */
-
-typedef int (*hash_comp_t)(const void *, const void *);
-
-/*
- * The hashing function performs some computation on a key and produces an
- * integral value of type hash_val_t based on that key. For best results, the
- * function should have a good randomness properties in *all* significant bits
- * over the set of keys that are being inserted into a given hash table. In
- * particular, the most significant bits of hash_val_t are most significant to
- * the hash module. Only as the hash table expands are less significant bits
- * examined. Thus a function that has good distribution in its upper bits but
- * not lower is preferrable to one that has poor distribution in the upper bits
- * but not the lower ones.
- */
-
-typedef hash_val_t (*hash_fun_t)(const void *);
-
-/*
- * allocator functions
- */
-
-typedef hnode_t *(*hnode_alloc_t)(void *);
-typedef void (*hnode_free_t)(hnode_t *, void *);
-
-/*
- * This is the hash table control structure. It keeps track of information
- * about a hash table, as well as the hash table itself.
- * Notes:
- * 1.  Pointer to the hash table proper. The table is an array of pointers to
- *     hash nodes (of type hnode_t). If the table is empty, every element of
- *     this table is a null pointer. A non-null entry points to the first
- *     element of a chain of nodes.
- * 2.  This member keeps track of the size of the hash table---that is, the
- *     number of chain pointers.
- * 3.  The count member maintains the number of elements that are presently
- *     in the hash table.
- * 4.  The maximum count is the greatest number of nodes that can populate this
- *     table. If the table contains this many nodes, no more can be inserted,
- *     and the hash_isfull() function returns true.
- * 5.  The high mark is a population threshold, measured as a number of nodes,
- *     which, if exceeded, will trigger a table expansion. Only dynamic hash
- *     tables are subject to this expansion.
- * 6.  The low mark is a minimum population threshold, measured as a number of
- *     nodes. If the table population drops below this value, a table shrinkage
- *     will occur. Only dynamic tables are subject to this reduction.  No table
- *     will shrink beneath a certain absolute minimum number of nodes.
- * 7.  This is the a pointer to the hash table's comparison function. The
- *     function is set once at initialization or creation time.
- * 8.  Pointer to the table's hashing function, set once at creation or
- *     initialization time.
- * 9.  The current hash table mask. If the size of the hash table is 2^N,
- *     this value has its low N bits set to 1, and the others clear. It is used
- *     to select bits from the result of the hashing function to compute an
- *     index into the table.
- * 10. A flag which indicates whether the table is to be dynamically resized. It
- *     is set to 1 in dynamically allocated tables, 0 in tables that are
- *     statically allocated.
- */
-
-typedef struct hash_t {
-    #if defined(HASH_IMPLEMENTATION) || !defined(KAZLIB_OPAQUE_DEBUG)
-    struct hnode_t **hash_table;		/* 1 */
-    hashcount_t hash_nchains;			/* 2 */
-    hashcount_t hash_nodecount;			/* 3 */
-    hashcount_t hash_maxcount;			/* 4 */
-    hashcount_t hash_highmark;			/* 5 */
-    hashcount_t hash_lowmark;			/* 6 */
-    hash_comp_t hash_compare;			/* 7 */
-    hash_fun_t hash_function;			/* 8 */
-    hnode_alloc_t hash_allocnode;
-    hnode_free_t hash_freenode;
-    void *hash_context;
-    hash_val_t hash_mask;			/* 9 */
-    int hash_dynamic;				/* 10 */
-    #else
-    int hash_dummy;
-    #endif
-} hash_t;
-
-/*
- * Hash scanner structure, used for traversals of the data structure.
- * Notes:
- * 1. Pointer to the hash table that is being traversed.
- * 2. Reference to the current chain in the table being traversed (the chain
- *    that contains the next node that shall be retrieved).
- * 3. Pointer to the node that will be retrieved by the subsequent call to
- *    hash_scan_next().
- */
-
-typedef struct hscan_t {
-    #if defined(HASH_IMPLEMENTATION) || !defined(KAZLIB_OPAQUE_DEBUG)
-    hash_t *hash_table;		/* 1 */
-    hash_val_t hash_chain;	/* 2 */
-    hnode_t *hash_next;		/* 3 */
-    #else
-    int hash_dummy;
-    #endif
-} hscan_t;
-
-CP_HIDDEN extern hash_t *hash_create(hashcount_t, hash_comp_t, hash_fun_t);
-CP_HIDDEN extern void hash_set_allocator(hash_t *, hnode_alloc_t, hnode_free_t, void *);
-CP_HIDDEN extern void hash_destroy(hash_t *);
-CP_HIDDEN extern void hash_free_nodes(hash_t *);
-CP_HIDDEN extern void hash_free(hash_t *);
-CP_HIDDEN extern hash_t *hash_init(hash_t *, hashcount_t, hash_comp_t,
-	hash_fun_t, hnode_t **, hashcount_t);
-CP_HIDDEN extern void hash_insert(hash_t *, hnode_t *, const void *);
-CP_HIDDEN extern hnode_t *hash_lookup(hash_t *, const void *);
-CP_HIDDEN extern hnode_t *hash_delete(hash_t *, hnode_t *);
-CP_HIDDEN extern int hash_alloc_insert(hash_t *, const void *, void *);
-CP_HIDDEN extern void hash_delete_free(hash_t *, hnode_t *);
-
-CP_HIDDEN extern void hnode_put(hnode_t *, void *);
-CP_HIDDEN extern void *hnode_get(hnode_t *);
-CP_HIDDEN extern const void *hnode_getkey(hnode_t *);
-CP_HIDDEN extern hashcount_t hash_count(hash_t *);
-CP_HIDDEN extern hashcount_t hash_size(hash_t *);
-
-CP_HIDDEN extern int hash_isfull(hash_t *);
-CP_HIDDEN extern int hash_isempty(hash_t *);
-
-CP_HIDDEN extern void hash_scan_begin(hscan_t *, hash_t *);
-CP_HIDDEN extern hnode_t *hash_scan_next(hscan_t *);
-CP_HIDDEN extern hnode_t *hash_scan_delete(hash_t *, hnode_t *);
-CP_HIDDEN extern void hash_scan_delfree(hash_t *, hnode_t *);
-
-CP_HIDDEN extern int hash_verify(hash_t *);
-
-CP_HIDDEN extern hnode_t *hnode_create(void *);
-CP_HIDDEN extern hnode_t *hnode_init(hnode_t *, void *);
-CP_HIDDEN extern void hnode_destroy(hnode_t *);
-
-#if defined(HASH_IMPLEMENTATION) || !defined(KAZLIB_OPAQUE_DEBUG)
-#ifdef KAZLIB_SIDEEFFECT_DEBUG
-#define hash_isfull(H) (SFX_CHECK(H)->hash_nodecount == (H)->hash_maxcount)
-#else
-#define hash_isfull(H) ((H)->hash_nodecount == (H)->hash_maxcount)
-#endif
-#define hash_isempty(H) ((H)->hash_nodecount == 0)
-#define hash_count(H) ((H)->hash_nodecount)
-#define hash_size(H) ((H)->hash_nchains)
-#define hnode_get(N) ((N)->hash_data)
-#define hnode_getkey(N) ((N)->hash_key)
-#define hnode_put(N, V) ((N)->hash_data = (V))
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/lib/cpluff/kazlib/list.c b/lib/cpluff/kazlib/list.c
deleted file mode 100644
index dc8eed0..0000000
--- a/lib/cpluff/kazlib/list.c
+++ /dev/null
@@ -1,935 +0,0 @@
-/*
- * List Abstract Data Type
- * Copyright (C) 1997 Kaz Kylheku <kaz at ashi.footprints.net>
- *
- * Free Software License:
- *
- * All rights are reserved by the author, with the following exceptions:
- * Permission is granted to freely reproduce and distribute this software,
- * possibly in exchange for a fee, provided that this copyright notice appears
- * intact. Permission is also granted to adapt this software to produce
- * derivative works, as long as the modified versions carry this copyright
- * notice and additional notices stating that the work has been modified.
- * This source code may be translated into executable form and incorporated
- * into proprietary software; there is no requirement for such software to
- * contain a copyright notice related to this source.
- *
- * $Id: list.c,v 1.19.2.1 2000/04/17 01:07:21 kaz Exp $
- * $Name: kazlib_1_20 $
- */
-
-/*
- * Modified by Johannes Lehtinen in 2006-2007.
- * Included the definition of CP_HIDDEN macro and used it in declarations and
- * definitions to hide Kazlib symbols when building a shared C-Pluff library.
- */
-
-
-#include <stdlib.h>
-#include <stddef.h>
-#include <assert.h>
-#define LIST_IMPLEMENTATION
-#include "list.h"
-
-#define next list_next
-#define prev list_prev
-#define data list_data
-
-#define pool list_pool
-#define fre list_free
-#define size list_size
-
-#define nilnode list_nilnode
-#define nodecount list_nodecount
-#define maxcount list_maxcount
-
-#define list_nil(L)		(&(L)->nilnode)
-#define list_first_priv(L)	((L)->nilnode.next)
-#define list_last_priv(L)	((L)->nilnode.prev)
-#define lnode_next(N)		((N)->next)
-#define lnode_prev(N)		((N)->prev)
-
-#ifdef KAZLIB_RCSID
-static const char rcsid[] = "$Id: list.c,v 1.19.2.1 2000/04/17 01:07:21 kaz Exp $";
-#endif
-
-/*
- * Initialize a list object supplied by the client such that it becomes a valid
- * empty list. If the list is to be ``unbounded'', the maxcount should be
- * specified as LISTCOUNT_T_MAX, or, alternately, as -1. The value zero
- * is not permitted.
- */
-
-CP_HIDDEN list_t *list_init(list_t *list, listcount_t maxcount)
-{
-    assert (maxcount != 0);
-    list->nilnode.next = &list->nilnode;
-    list->nilnode.prev = &list->nilnode;
-    list->nodecount = 0;
-    list->maxcount = maxcount;
-    return list;
-}
-
-/*
- * Dynamically allocate a list object using malloc(), and initialize it so that
- * it is a valid empty list. If the list is to be ``unbounded'', the maxcount
- * should be specified as LISTCOUNT_T_MAX, or, alternately, as -1.
- */
-
-CP_HIDDEN list_t *list_create(listcount_t maxcount)
-{
-    list_t *new = malloc(sizeof *new);
-    if (new) {
-	assert (maxcount != 0);
-	new->nilnode.next = &new->nilnode;
-	new->nilnode.prev = &new->nilnode;
-	new->nodecount = 0;
-	new->maxcount = maxcount;
-    }
-    return new;
-}
-
-/*
- * Destroy a dynamically allocated list object.
- * The client must remove the nodes first.
- */
-
-CP_HIDDEN void list_destroy(list_t *list)
-{
-    assert (list_isempty(list));
-    free(list);
-}
-
-/*
- * Free all of the nodes of a list. The list must contain only 
- * dynamically allocated nodes. After this call, the list
- * is empty.
- */
-
-CP_HIDDEN void list_destroy_nodes(list_t *list)
-{
-    lnode_t *lnode = list_first_priv(list), *nil = list_nil(list), *tmp;
-
-    while (lnode != nil) {
-	tmp = lnode->next;
-	lnode->next = NULL;
-	lnode->prev = NULL;
-	lnode_destroy(lnode);
-	lnode = tmp;
-    }
-
-    list_init(list, list->maxcount);
-}
-
-/*
- * Return all of the nodes of a list to a node pool. The nodes in
- * the list must all have come from the same pool.
- */
-
-CP_HIDDEN void list_return_nodes(list_t *list, lnodepool_t *pool)
-{
-    lnode_t *lnode = list_first_priv(list), *tmp, *nil = list_nil(list);
-
-    while (lnode != nil) {
-	tmp = lnode->next;
-	lnode->next = NULL;
-	lnode->prev = NULL;
-	lnode_return(pool, lnode);
-	lnode = tmp;
-    }
-
-    list_init(list, list->maxcount);
-}
-
-/*
- * Insert the node ``new'' into the list immediately after ``this'' node.
- */
-
-CP_HIDDEN void list_ins_after(list_t *list, lnode_t *new, lnode_t *this)
-{
-    lnode_t *that = this->next;
-
-    assert (new != NULL);
-    assert (!list_contains(list, new));
-    assert (!lnode_is_in_a_list(new));
-    assert (this == list_nil(list) || list_contains(list, this));
-    assert (list->nodecount + 1 > list->nodecount);
-
-    new->prev = this;
-    new->next = that;
-    that->prev = new;
-    this->next = new;
-    list->nodecount++;
-
-    assert (list->nodecount <= list->maxcount);
-}
-
-/*
- * Insert the node ``new'' into the list immediately before ``this'' node.
- */
-
-CP_HIDDEN void list_ins_before(list_t *list, lnode_t *new, lnode_t *this)
-{
-    lnode_t *that = this->prev;
-
-    assert (new != NULL);
-    assert (!list_contains(list, new));
-    assert (!lnode_is_in_a_list(new));
-    assert (this == list_nil(list) || list_contains(list, this));
-    assert (list->nodecount + 1 > list->nodecount);
-
-    new->next = this;
-    new->prev = that;
-    that->next = new;
-    this->prev = new;
-    list->nodecount++;
-
-    assert (list->nodecount <= list->maxcount);
-}
-
-/*
- * Delete the given node from the list.
- */
-
-CP_HIDDEN lnode_t *list_delete(list_t *list, lnode_t *del)
-{
-    lnode_t *next = del->next;
-    lnode_t *prev = del->prev;
-
-    assert (list_contains(list, del));
-
-    prev->next = next;
-    next->prev = prev;
-    list->nodecount--;
-
-    del->next = del->prev = NULL;
-
-    return del;
-}
-
-/*
- * For each node in the list, execute the given function. The list,
- * current node and the given context pointer are passed on each
- * call to the function.
- */
-
-CP_HIDDEN void list_process(list_t *list, void *context,
-	void (* function)(list_t *list, lnode_t *lnode, void *context))
-{
-    lnode_t *node = list_first_priv(list), *next, *nil = list_nil(list);
-
-    while (node != nil) {
-	/* check for callback function deleting	*/
-	/* the next node from under us		*/
-	assert (list_contains(list, node));
-	next = node->next;
-	function(list, node, context);
-	node = next;
-    }
-}
-
-/*
- * Dynamically allocate a list node and assign it the given piece of data.
- */
-
-CP_HIDDEN lnode_t *lnode_create(void *data)
-{
-    lnode_t *new = malloc(sizeof *new);
-    if (new) {
-	new->data = data;
-	new->next = NULL;
-	new->prev = NULL;
-    }
-    return new;
-}
-
-/*
- * Initialize a user-supplied lnode.
- */
-
-CP_HIDDEN lnode_t *lnode_init(lnode_t *lnode, void *data)
-{
-    lnode->data = data;
-    lnode->next = NULL;
-    lnode->prev = NULL;
-    return lnode;
-}
-
-/*
- * Destroy a dynamically allocated node.
- */
-
-CP_HIDDEN void lnode_destroy(lnode_t *lnode)
-{
-    assert (!lnode_is_in_a_list(lnode));
-    free(lnode);
-}
-
-/*
- * Initialize a node pool object to use a user-supplied set of nodes.
- * The ``nodes'' pointer refers to an array of lnode_t objects, containing
- * ``n'' elements.
- */
-
-CP_HIDDEN lnodepool_t *lnode_pool_init(lnodepool_t *pool, lnode_t *nodes, listcount_t n)
-{
-    listcount_t i;
-
-    assert (n != 0);
-
-    pool->pool = nodes;
-    pool->fre = nodes;
-    pool->size = n;
-    for (i = 0; i < n - 1; i++) {
-	nodes[i].next = nodes + i + 1;
-    }
-    nodes[i].next = NULL;
-    nodes[i].prev = nodes;	/* to make sure node is marked ``on list'' */
-    return pool;
-}
-
-/*
- * Create a dynamically allocated pool of n nodes.
- */
-
-CP_HIDDEN lnodepool_t *lnode_pool_create(listcount_t n)
-{
-    lnodepool_t *pool;
-    lnode_t *nodes;
-
-    assert (n != 0);
-
-    pool = malloc(sizeof *pool);
-    if (!pool)
-	return NULL;
-    nodes = malloc(n * sizeof *nodes);
-    if (!nodes) {
-	free(pool);
-	return NULL;
-    }
-    lnode_pool_init(pool, nodes, n);
-    return pool;
-}
-
-/*
- * Determine whether the given pool is from this pool.
- */
-
-CP_HIDDEN int lnode_pool_isfrom(lnodepool_t *pool, lnode_t *node)
-{
-    listcount_t i;
-
-    /* this is carefully coded this way because ANSI C forbids pointers
-       to different objects from being subtracted or compared other
-       than for exact equality */
-
-    for (i = 0; i < pool->size; i++) {
-	if (pool->pool + i == node)
-	    return 1;
-    }
-    return 0;
-}
-
-/*
- * Destroy a dynamically allocated pool of nodes.
- */
-
-CP_HIDDEN void lnode_pool_destroy(lnodepool_t *p)
-{
-    free(p->pool);
-    free(p);
-}
-
-/*
- * Borrow a node from a node pool. Returns a null pointer if the pool
- * is exhausted. 
- */
-
-CP_HIDDEN lnode_t *lnode_borrow(lnodepool_t *pool, void *data)
-{
-    lnode_t *new = pool->fre;
-    if (new) {
-	pool->fre = new->next;
-	new->data = data;
-	new->next = NULL;
-	new->prev = NULL;
-    }
-    return new;
-}
-
-/*
- * Return a node to a node pool. A node must be returned to the pool
- * from which it came.
- */
-
-CP_HIDDEN void lnode_return(lnodepool_t *pool, lnode_t *node)
-{
-    assert (lnode_pool_isfrom(pool, node));
-    assert (!lnode_is_in_a_list(node));
-
-    node->next = pool->fre;
-    node->prev = node;
-    pool->fre = node;
-}
-
-/*
- * Determine whether the given list contains the given node.
- * According to this function, a list does not contain its nilnode.
- */
-
-CP_HIDDEN int list_contains(list_t *list, lnode_t *node)
-{
-    lnode_t *n, *nil = list_nil(list);
-
-    for (n = list_first_priv(list); n != nil; n = lnode_next(n)) {
-	if (node == n)
-	    return 1;
-    }
-
-    return 0;
-}
-
-/*
- * A more generalized variant of list_transfer. This one removes a
- * ``slice'' from the source list and appends it to the destination
- * list.
- */
-
-CP_HIDDEN void list_extract(list_t *dest, list_t *source, lnode_t *first, lnode_t *last)
-{
-    listcount_t moved = 1;
-
-    assert (first == NULL || list_contains(source, first));
-    assert (last == NULL || list_contains(source, last));
-
-    if (first == NULL || last == NULL)
-	return;
-
-    /* adjust the destination list so that the slice is spliced out */
-
-    first->prev->next = last->next;
-    last->next->prev = first->prev;
-
-    /* graft the splice at the end of the dest list */
-
-    last->next = &dest->nilnode;
-    first->prev = dest->nilnode.prev;
-    dest->nilnode.prev->next = first;
-    dest->nilnode.prev = last;
-
-    while (first != last) {
-	first = first->next;
-	assert (first != list_nil(source));	/* oops, last before first! */
-	moved++;
-    }
-    
-    /* assert no overflows */
-    assert (source->nodecount - moved <= source->nodecount);
-    assert (dest->nodecount + moved >= dest->nodecount);
-
-    /* assert no weirdness */
-    assert (moved <= source->nodecount);
-
-    source->nodecount -= moved;
-    dest->nodecount += moved;
-
-    /* assert list sanity */
-    assert (list_verify(source));
-    assert (list_verify(dest));
-}
-
-
-/*
- * Split off a trailing sequence of nodes from the source list and relocate
- * them to the tail of the destination list. The trailing sequence begins
- * with node ``first'' and terminates with the last node of the source
- * list. The nodes are added to the end of the new list in their original
- * order.
- */
-
-CP_HIDDEN void list_transfer(list_t *dest, list_t *source, lnode_t *first)
-{
-    listcount_t moved = 1;
-    lnode_t *last;
-
-    assert (first == NULL || list_contains(source, first));
-
-    if (first == NULL)
-	return;
-
-    last = source->nilnode.prev;
-
-    source->nilnode.prev = first->prev;
-    first->prev->next = &source->nilnode;
-
-    last->next = &dest->nilnode;
-    first->prev = dest->nilnode.prev;
-    dest->nilnode.prev->next = first;
-    dest->nilnode.prev = last;
-
-    while (first != last) {
-	first = first->next;
-	moved++;
-    }
-    
-    /* assert no overflows */
-    assert (source->nodecount - moved <= source->nodecount);
-    assert (dest->nodecount + moved >= dest->nodecount);
-
-    /* assert no weirdness */
-    assert (moved <= source->nodecount);
-
-    source->nodecount -= moved;
-    dest->nodecount += moved;
-
-    /* assert list sanity */
-    assert (list_verify(source));
-    assert (list_verify(dest));
-}
-
-CP_HIDDEN void list_merge(list_t *dest, list_t *sour,
-	int compare (const void *, const void *))
-{
-    lnode_t *dn, *sn, *tn;
-    lnode_t *d_nil = list_nil(dest), *s_nil = list_nil(sour);
-
-    /* Nothing to do if source and destination list are the same. */
-    if (dest == sour)
-	return;
-
-    /* overflow check */
-    assert (list_count(sour) + list_count(dest) >= list_count(sour));
-
-    /* lists must be sorted */
-    assert (list_is_sorted(sour, compare));
-    assert (list_is_sorted(dest, compare));
-
-    dn = list_first_priv(dest);
-    sn = list_first_priv(sour);
-
-    while (dn != d_nil && sn != s_nil) {
-	if (compare(lnode_get(dn), lnode_get(sn)) >= 0) {
-	    tn = lnode_next(sn);
-	    list_delete(sour, sn);
-	    list_ins_before(dest, sn, dn);
-	    sn = tn;
-	} else {
-	    dn = lnode_next(dn);
-	}
-    }
-
-    if (dn != d_nil)
-	return;
-
-    if (sn != s_nil)
-	list_transfer(dest, sour, sn);
-}
-
-CP_HIDDEN void list_sort(list_t *list, int compare(const void *, const void *))
-{
-    list_t extra;
-    listcount_t middle;
-    lnode_t *node;
-
-    if (list_count(list) > 1) {
-	middle = list_count(list) / 2;
-	node = list_first_priv(list);
-
-	list_init(&extra, list_count(list) - middle);
-
-	while (middle--)
-	    node = lnode_next(node);
-	
-	list_transfer(&extra, list, node);
-	list_sort(list, compare);
-	list_sort(&extra, compare);
-	list_merge(list, &extra, compare);
-    } 
-    assert (list_is_sorted(list, compare));
-}
-
-CP_HIDDEN lnode_t *list_find(list_t *list, const void *key, int compare(const void *, const void *))
-{
-    lnode_t *node;
-
-    for (node = list_first_priv(list); node != list_nil(list); node = node->next) {
-	if (compare(lnode_get(node), key) == 0)
-	    return node;
-    }
-    
-    return 0;
-}
-
-
-/*
- * Return 1 if the list is in sorted order, 0 otherwise
- */
-
-CP_HIDDEN int list_is_sorted(list_t *list, int compare(const void *, const void *))
-{
-    lnode_t *node, *next, *nil;
-
-    next = nil = list_nil(list);
-    node = list_first_priv(list);
-
-    if (node != nil)
-	next = lnode_next(node);
-
-    for (; next != nil; node = next, next = lnode_next(next)) {
-	if (compare(lnode_get(node), lnode_get(next)) > 0)
-	    return 0;
-    }
-
-    return 1;
-}
-
-/*
- * Get rid of macro functions definitions so they don't interfere
- * with the actual definitions
- */
-
-#undef list_isempty
-#undef list_isfull
-#undef lnode_pool_isempty
-#undef list_append
-#undef list_prepend
-#undef list_first
-#undef list_last
-#undef list_next
-#undef list_prev
-#undef list_count
-#undef list_del_first
-#undef list_del_last
-#undef lnode_put
-#undef lnode_get
-
-/*
- * Return 1 if the list is empty, 0 otherwise
- */
-
-CP_HIDDEN int list_isempty(list_t *list)
-{
-    return list->nodecount == 0;
-}
-
-/*
- * Return 1 if the list is full, 0 otherwise
- * Permitted only on bounded lists. 
- */
-
-CP_HIDDEN int list_isfull(list_t *list)
-{
-    return list->nodecount == list->maxcount;
-}
-
-/*
- * Check if the node pool is empty.
- */
-
-CP_HIDDEN int lnode_pool_isempty(lnodepool_t *pool)
-{
-    return (pool->fre == NULL);
-}
-
-/*
- * Add the given node at the end of the list
- */
-
-CP_HIDDEN void list_append(list_t *list, lnode_t *node)
-{
-    list_ins_before(list, node, &list->nilnode);
-}
-
-/*
- * Add the given node at the beginning of the list.
- */
-
-CP_HIDDEN void list_prepend(list_t *list, lnode_t *node)
-{
-    list_ins_after(list, node, &list->nilnode);
-}
-
-/*
- * Retrieve the first node of the list
- */
-
-CP_HIDDEN lnode_t *list_first(list_t *list)
-{
-    if (list->nilnode.next == &list->nilnode)
-	return NULL;
-    return list->nilnode.next;
-}
-
-/*
- * Retrieve the last node of the list
- */
-
-CP_HIDDEN lnode_t *list_last(list_t *list)
-{
-    if (list->nilnode.prev == &list->nilnode)
-	return NULL;
-    return list->nilnode.prev;
-}
-
-/*
- * Retrieve the count of nodes in the list
- */
-
-CP_HIDDEN listcount_t list_count(list_t *list)
-{
-    return list->nodecount;
-}
-
-/*
- * Remove the first node from the list and return it.
- */
-
-CP_HIDDEN lnode_t *list_del_first(list_t *list)
-{
-    return list_delete(list, list->nilnode.next);
-}
-
-/*
- * Remove the last node from the list and return it.
- */
-
-CP_HIDDEN lnode_t *list_del_last(list_t *list)
-{
-    return list_delete(list, list->nilnode.prev);
-}
-
-
-/*
- * Associate a data item with the given node.
- */
-
-CP_HIDDEN void lnode_put(lnode_t *lnode, void *data)
-{
-    lnode->data = data;
-}
-
-/*
- * Retrieve the data item associated with the node.
- */
-
-CP_HIDDEN void *lnode_get(lnode_t *lnode)
-{
-    return lnode->data;
-}
-
-/*
- * Retrieve the node's successor. If there is no successor, 
- * NULL is returned.
- */
-
-CP_HIDDEN lnode_t *list_next(list_t *list, lnode_t *lnode)
-{
-    assert (list_contains(list, lnode));
-
-    if (lnode->next == list_nil(list))
-	return NULL;
-    return lnode->next;
-}
-
-/*
- * Retrieve the node's predecessor. See comment for lnode_next().
- */
-
-CP_HIDDEN lnode_t *list_prev(list_t *list, lnode_t *lnode)
-{
-    assert (list_contains(list, lnode));
-
-    if (lnode->prev == list_nil(list))
-	return NULL;
-    return lnode->prev;
-}
-
-/*
- * Return 1 if the lnode is in some list, otherwise return 0.
- */
-
-CP_HIDDEN int lnode_is_in_a_list(lnode_t *lnode)
-{
-    return (lnode->next != NULL || lnode->prev != NULL);
-}
-
-
-CP_HIDDEN int list_verify(list_t *list)
-{
-    lnode_t *node = list_first_priv(list), *nil = list_nil(list);
-    listcount_t count = list_count(list);
-
-    if (node->prev != nil)
-	return 0;
-
-    if (count > list->maxcount)
-	return 0;
-
-    while (node != nil && count--) {
-	if (node->next->prev != node)
-	    return 0;
-	node = node->next;
-    }
-
-    if (count != 0 || node != nil)
-	return 0;
-    
-    return 1;
-}
-
-#ifdef KAZLIB_TEST_MAIN
-
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdarg.h>
-
-typedef char input_t[256];
-
-static int tokenize(char *string, ...)
-{
-    char **tokptr; 
-    va_list arglist;
-    int tokcount = 0;
-
-    va_start(arglist, string);
-    tokptr = va_arg(arglist, char **);
-    while (tokptr) {
-	while (*string && isspace((unsigned char) *string))
-	    string++;
-	if (!*string)
-	    break;
-	*tokptr = string;
-	while (*string && !isspace((unsigned char) *string))
-	    string++;
-	tokptr = va_arg(arglist, char **);
-	tokcount++;
-	if (!*string)
-	    break;
-	*string++ = 0;
-    }
-    va_end(arglist);
-
-    return tokcount;
-}
-
-static int comparef(const void *key1, const void *key2)
-{
-    return strcmp(key1, key2);
-}
-
-static char *dupstring(char *str)
-{
-    int sz = strlen(str) + 1;
-    char *new = malloc(sz);
-    if (new)
-	memcpy(new, str, sz);
-    return new;
-}
-
-int main(void)
-{
-    input_t in;
-    list_t *l = list_create(LISTCOUNT_T_MAX);
-    lnode_t *ln;
-    char *tok1, *val;
-    int prompt = 0;
-
-    char *help =
-	"a <val>                append value to list\n"
-	"d <val>                delete value from list\n"
-	"l <val>                lookup value in list\n"
-	"s                      sort list\n"
-	"c                      show number of entries\n"
-	"t                      dump whole list\n"
-	"p                      turn prompt on\n"
-	"q                      quit";
-
-    if (!l)
-	puts("list_create failed");
-
-    for (;;) {
-	if (prompt)
-	    putchar('>');
-	fflush(stdout);
-
-	if (!fgets(in, sizeof(input_t), stdin))
-	    break;
-
-	switch(in[0]) {
-	    case '?':
-		puts(help);
-		break;
-	    case 'a':
-		if (tokenize(in+1, &tok1, (char **) 0) != 1) {
-		    puts("what?");
-		    break;
-		}
-		val = dupstring(tok1);
-		ln = lnode_create(val);
-	
-		if (!val || !ln) {
-		    puts("allocation failure");
-		    if (ln)
-			lnode_destroy(ln);
-		    free(val);
-		    break;
-		}
-    
-		list_append(l, ln);
-		break;
-	    case 'd':
-		if (tokenize(in+1, &tok1, (char **) 0) != 1) {
-		    puts("what?");
-		    break;
-		}
-		ln = list_find(l, tok1, comparef);
-		if (!ln) {
-		    puts("list_find failed");
-		    break;
-		}
-		list_delete(l, ln);
-		val = lnode_get(ln);
-		lnode_destroy(ln);
-		free(val);
-		break;
-	    case 'l':
-		if (tokenize(in+1, &tok1, (char **) 0) != 1) {
-		    puts("what?");
-		    break;
-		}
-		ln = list_find(l, tok1, comparef);
-		if (!ln)
-		    puts("list_find failed");
-		else
-		    puts("found");
-		break;
-	    case 's':
-		list_sort(l, comparef);
-		break;
-	    case 'c':
-		printf("%lu\n", (unsigned long) list_count(l));
-		break;
-	    case 't':
-		for (ln = list_first(l); ln != 0; ln = list_next(l, ln))
-		    puts(lnode_get(ln));
-		break;
-	    case 'q':
-		exit(0);
-		break;
-	    case '\0':
-		break;
-	    case 'p':
-		prompt = 1;
-		break;
-	    default:
-		putchar('?');
-		putchar('\n');
-		break;
-	}
-    }
-
-    return 0;
-}
-
-#endif	/* defined TEST_MAIN */
diff --git a/lib/cpluff/kazlib/list.h b/lib/cpluff/kazlib/list.h
deleted file mode 100644
index ccad262..0000000
--- a/lib/cpluff/kazlib/list.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * List Abstract Data Type
- * Copyright (C) 1997 Kaz Kylheku <kaz at ashi.footprints.net>
- *
- * Free Software License:
- *
- * All rights are reserved by the author, with the following exceptions:
- * Permission is granted to freely reproduce and distribute this software,
- * possibly in exchange for a fee, provided that this copyright notice appears
- * intact. Permission is also granted to adapt this software to produce
- * derivative works, as long as the modified versions carry this copyright
- * notice and additional notices stating that the work has been modified.
- * This source code may be translated into executable form and incorporated
- * into proprietary software; there is no requirement for such software to
- * contain a copyright notice related to this source.
- *
- * $Id: list.h,v 1.19 1999/11/14 20:46:19 kaz Exp $
- * $Name: kazlib_1_20 $
- */
-
-/*
- * Modified by Johannes Lehtinen in 2006-2007.
- * Included the definition of CP_HIDDEN macro and used it in declarations and
- * definitions to hide Kazlib symbols when building a shared C-Pluff library.
- */
-
-#ifndef LIST_H
-#define LIST_H
-
-#ifdef _WIN32
-#include "../libcpluff/win32/cpluffdef.h"
-#else
-#include "../libcpluff/cpluffdef.h"
-#endif
-
-#include <limits.h>
-
-#ifdef KAZLIB_SIDEEFFECT_DEBUG
-#include "sfx.h"
-#define LIST_SFX_CHECK(E) SFX_CHECK(E)
-#else
-#define LIST_SFX_CHECK(E) (E)
-#endif
-
-/*
- * Blurb for inclusion into C++ translation units
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef unsigned long listcount_t;
-#define LISTCOUNT_T_MAX ULONG_MAX
-
-typedef struct lnode_t {
-    #if defined(LIST_IMPLEMENTATION) || !defined(KAZLIB_OPAQUE_DEBUG)
-    struct lnode_t *list_next;
-    struct lnode_t *list_prev;
-    void *list_data;
-    #else
-    int list_dummy;
-    #endif
-} lnode_t;
-
-typedef struct lnodepool_t {
-    #if defined(LIST_IMPLEMENTATION) || !defined(KAZLIB_OPAQUE_DEBUG)
-    struct lnode_t *list_pool;
-    struct lnode_t *list_free;
-    listcount_t list_size;
-    #else
-    int list_dummy;
-    #endif
-} lnodepool_t;
-
-typedef struct list_t {
-    #if defined(LIST_IMPLEMENTATION) || !defined(KAZLIB_OPAQUE_DEBUG)
-    lnode_t list_nilnode;
-    listcount_t list_nodecount;
-    listcount_t list_maxcount;
-    #else
-    int list_dummy;
-    #endif
-} list_t;
-
-CP_HIDDEN lnode_t *lnode_create(void *);
-CP_HIDDEN lnode_t *lnode_init(lnode_t *, void *);
-CP_HIDDEN void lnode_destroy(lnode_t *);
-CP_HIDDEN void lnode_put(lnode_t *, void *);
-CP_HIDDEN void *lnode_get(lnode_t *);
-CP_HIDDEN int lnode_is_in_a_list(lnode_t *);
-
-#if defined(LIST_IMPLEMENTATION) || !defined(KAZLIB_OPAQUE_DEBUG)
-#define lnode_put(N, D)		((N)->list_data = (D))
-#define lnode_get(N)		((N)->list_data)
-#endif
-
-CP_HIDDEN lnodepool_t *lnode_pool_init(lnodepool_t *, lnode_t *, listcount_t);
-CP_HIDDEN lnodepool_t *lnode_pool_create(listcount_t);
-CP_HIDDEN void lnode_pool_destroy(lnodepool_t *);
-CP_HIDDEN lnode_t *lnode_borrow(lnodepool_t *, void *);
-CP_HIDDEN void lnode_return(lnodepool_t *, lnode_t *);
-CP_HIDDEN int lnode_pool_isempty(lnodepool_t *);
-CP_HIDDEN int lnode_pool_isfrom(lnodepool_t *, lnode_t *);
-
-CP_HIDDEN list_t *list_init(list_t *, listcount_t);
-CP_HIDDEN list_t *list_create(listcount_t);
-CP_HIDDEN void list_destroy(list_t *);
-CP_HIDDEN void list_destroy_nodes(list_t *);
-CP_HIDDEN void list_return_nodes(list_t *, lnodepool_t *);
-
-CP_HIDDEN listcount_t list_count(list_t *);
-CP_HIDDEN int list_isempty(list_t *);
-CP_HIDDEN int list_isfull(list_t *);
-CP_HIDDEN int list_contains(list_t *, lnode_t *);
-
-CP_HIDDEN void list_append(list_t *, lnode_t *);
-CP_HIDDEN void list_prepend(list_t *, lnode_t *);
-CP_HIDDEN void list_ins_before(list_t *, lnode_t *, lnode_t *);
-CP_HIDDEN void list_ins_after(list_t *, lnode_t *, lnode_t *);
-
-CP_HIDDEN lnode_t *list_first(list_t *);
-CP_HIDDEN lnode_t *list_last(list_t *);
-CP_HIDDEN lnode_t *list_next(list_t *, lnode_t *);
-CP_HIDDEN lnode_t *list_prev(list_t *, lnode_t *);
-
-CP_HIDDEN lnode_t *list_del_first(list_t *);
-CP_HIDDEN lnode_t *list_del_last(list_t *);
-CP_HIDDEN lnode_t *list_delete(list_t *, lnode_t *);
-
-CP_HIDDEN void list_process(list_t *, void *, void (*)(list_t *, lnode_t *, void *));
-
-CP_HIDDEN int list_verify(list_t *);
-
-#if defined(LIST_IMPLEMENTATION) || !defined(KAZLIB_OPAQUE_DEBUG)
-#define lnode_pool_isempty(P)	((P)->list_free == 0)
-#define list_count(L)		((L)->list_nodecount)
-#define list_isempty(L)		((L)->list_nodecount == 0)
-#define list_isfull(L)		(LIST_SFX_CHECK(L)->list_nodecount == (L)->list_maxcount)
-#define list_next(L, N)		(LIST_SFX_CHECK(N)->list_next == &(L)->list_nilnode ? NULL : (N)->list_next)
-#define list_prev(L, N)		(LIST_SFX_CHECK(N)->list_prev == &(L)->list_nilnode ? NULL : (N)->list_prev)
-#define list_first(L)		list_next(LIST_SFX_CHECK(L), &(L)->list_nilnode)
-#define list_last(L)		list_prev(LIST_SFX_CHECK(L), &(L)->list_nilnode)
-#endif
-
-#if defined(LIST_IMPLEMENTATION) || !defined(KAZLIB_OPAQUE_DEBUG)
-#define list_append(L, N)	list_ins_before(LIST_SFX_CHECK(L), N, &(L)->list_nilnode)
-#define list_prepend(L, N)	list_ins_after(LIST_SFX_CHECK(L), N, &(L)->list_nilnode)
-#define list_del_first(L)	list_delete(LIST_SFX_CHECK(L), list_first(L))
-#define list_del_last(L)	list_delete(LIST_SFX_CHECK(L), list_last(L))
-#endif
-
-/* destination list on the left, source on the right */
-
-CP_HIDDEN void list_extract(list_t *, list_t *, lnode_t *, lnode_t *);
-CP_HIDDEN void list_transfer(list_t *, list_t *, lnode_t *first);
-CP_HIDDEN void list_merge(list_t *, list_t *, int (const void *, const void *));
-CP_HIDDEN void list_sort(list_t *, int (const void *, const void *));
-CP_HIDDEN lnode_t *list_find(list_t *, const void *, int (const void *, const void *));
-CP_HIDDEN int list_is_sorted(list_t *, int (const void *, const void *));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/lib/cpluff/libcpluff/win32/cpluff.vcxproj b/lib/cpluff/libcpluff/win32/cpluff.vcxproj
deleted file mode 100644
index ffc1b58..0000000
--- a/lib/cpluff/libcpluff/win32/cpluff.vcxproj
+++ /dev/null
@@ -1,131 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{88968763-3D6B-48A8-B495-CC8C187FAC02}</ProjectGuid>
-    <RootNamespace>cpluff</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-  </PropertyGroup>
-  <Import Project="$(SolutionDir)\XBMC.core-defaults.props" />
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)libs\$(TargetName)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)objs\$(TargetName)\$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)libs\$(TargetName)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)objs\$(TargetName)\$(Configuration)\</IntDir>
-    <CustomBuildAfterTargets Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Build</CustomBuildAfterTargets>
-    <CustomBuildAfterTargets Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Build</CustomBuildAfterTargets>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_USRDLL;CP_C_API=CP_EXPORT;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>libexpat.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
-      <ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
-      <ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
-    </Link>
-    <CustomBuildStep>
-      <Command>copy /B /Y "$(TargetPath)" "$(SolutionDir)..\..\system\$(TargetFileName)"</Command>
-      <Message>Copy Output</Message>
-      <Outputs>$(SolutionDir)..\..\system\$(TargetFileName)</Outputs>
-      <Inputs>$(TargetPath)</Inputs>
-    </CustomBuildStep>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <Optimization>Full</Optimization>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_USRDLL;CP_C_API=CP_EXPORT;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>libexpat.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
-      <ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
-      <ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
-    </Link>
-    <CustomBuildStep>
-      <Command>copy /B /Y "$(TargetPath)" "$(SolutionDir)..\..\system\$(TargetFileName)"</Command>
-      <Message>Copy Output</Message>
-      <Outputs>$(SolutionDir)..\..\system\$(TargetFileName)</Outputs>
-      <Inputs>$(TargetPath)</Inputs>
-    </CustomBuildStep>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\context.c" />
-    <ClCompile Include="..\cpluff.c" />
-    <ClCompile Include="dirent.c" />
-    <ClCompile Include="..\..\kazlib\hash.c" />
-    <ClCompile Include="..\..\kazlib\list.c" />
-    <ClCompile Include="..\logging.c" />
-    <ClCompile Include="..\pcontrol.c" />
-    <ClCompile Include="..\pinfo.c" />
-    <ClCompile Include="..\ploader.c" />
-    <ClCompile Include="..\pscan.c" />
-    <ClCompile Include="..\psymbol.c" />
-    <ClCompile Include="..\serial.c" />
-    <ClCompile Include="..\thread_windows.c" />
-    <ClCompile Include="..\util.c" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\cpluff.h" />
-    <ClInclude Include="cpluffdef.h" />
-    <ClInclude Include="..\defines.h" />
-    <ClInclude Include="dirent.h" />
-    <ClInclude Include="..\..\kazlib\hash.h" />
-    <ClInclude Include="..\internal.h" />
-    <ClInclude Include="..\..\kazlib\list.h" />
-    <ClInclude Include="..\thread.h" />
-    <ClInclude Include="..\util.h" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/lib/cpluff/libcpluff/win32/cpluffdef.h b/lib/cpluff/libcpluff/win32/cpluffdef.h
deleted file mode 100644
index 026cfcb..0000000
--- a/lib/cpluff/libcpluff/win32/cpluffdef.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/*-------------------------------------------------------------------------
- * C-Pluff, a plug-in framework for C
- * Copyright 2007 Johannes Lehtinen
- * 
- * 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.
- *-----------------------------------------------------------------------*/
-
-/** @file
- * Common defines shared by C-Pluff C and C++ APIs.
- * This file is automatically included by the top level C and C++
- * API header files. There should be no need to include it explicitly.
- */
-
-#ifndef CPLUFFDEF_H_
-#define CPLUFFDEF_H_
-
-
-/* ------------------------------------------------------------------------
- * Version information
- * ----------------------------------------------------------------------*/
-
-/**
- * @defgroup versionInfo Version information
- * @ingroup cDefines cxxDefines
- *
- * C-Pluff version information. Notice that this version information
- * is static version information included in header files. The
- * macros introduced here can be used for compile time checks.
- */
-/*@{*/
-
-/**
- * The C-Pluff release version string. This string identifies a specific
- * version of the C-Pluff distribution. Compile time software compatibility
- * checks should use #CP_VERSION_MAJOR and #CP_VERSION_MINOR instead.
- */
-#define CP_VERSION "0.1.3"
-
-/**
- * The major version number component of the release version. This is an
- * integer.
- */
-#define CP_VERSION_MAJOR 0
-
-/**
- * The minor version number component of the release version. This is an
- * integer.
- */
-#define CP_VERSION_MINOR 1
-
-/*@}*/
-
-
-/* ------------------------------------------------------------------------
- * Symbol visibility
- * ----------------------------------------------------------------------*/
-
-/**
- * @defgroup symbolVisibility Symbol visibility
- * @ingroup cDefines cxxDefines
- *
- * Macros for controlling inter-module symbol visibility and linkage. These
- * macros have platform specific values. #CP_EXPORT, #CP_IMPORT and #CP_HIDDEN
- * can be reused by plug-in implementations for better portability. The
- * complexity is mostly due to Windows DLL exports and imports.
- *
- * @anchor symbolVisibilityExample
- * Each module should usually define its own macro to declare API symbols with
- * #CP_EXPORT and #CP_IMPORT as necessary. For example, a mobule could define
- * a macro @c MY_API in the API header file as follows.
- *
- * @code
- * #ifndef MY_API
- * #  define MY_API CP_IMPORT
- * #endif
- * @endcode
- *
- * By default the API symbols would then be marked for import which is correct
- * when client modules are including the API header file. When compiling the
- * module itself the option @c -DMY_API=CP_EXPORT would be passed to the compiler to
- * override the API header file and to mark the API symbols for export.
- * The overriding definition could also be included in module source files or
- * in an internal header file before including the API header file.
- */
-/*@{*/
-
-/**
- * @def CP_EXPORT
- *
- * Declares a symbol to be exported for inter-module usage. When compiling the
- * module which defines the symbol this macro should be placed
- * at the start of the symbol declaration to ensure that the symbol is exported
- * to other modules. However, when compiling other modules the declaration of
- * the symbol should start with #CP_IMPORT.
- * See @ref symbolVisibilityExample "the example" of how to do this.
- */
-
-/**
- * @def CP_IMPORT
- *
- * Declares a symbol to be imported from another module. When compiling a
- * module which uses the symbol this macro should be placed at the start of
- * the symbol declaration to ensure that the symbol is imported from the
- * defining module. However, when compiling the defining module the declaration
- * of the symbol should start with #CP_EXPORT.
- * See @ref symbolVisibilityExample "the example" of how to do this.
- */
-
-/**
- * @def CP_HIDDEN
- *
- * Declares a symbol hidden from other modules. This macro should be
- * placed at the start of the symbol declaration to hide the symbol from other
- * modules (if supported by the platform). This macro is not intended to be
- * used with symbols declared as "static" which are already internal to the
- * object file. Some platforms do not support hiding of symbols and therefore
- * unique prefixes should be used for global symbols internal to the module
- * even when they are declared using this macro.
- */
-
-#if defined(_WIN32)
-#  define CP_EXPORT __declspec(dllexport)
-#  define CP_IMPORT extern __declspec(dllimport)
-#  define CP_HIDDEN
-#elif defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
-#  define CP_EXPORT
-#  define CP_IMPORT extern
-#  define CP_HIDDEN __attribute__ ((visibility ("hidden")))
-#else
-#  define CP_EXPORT
-#  define CP_IMPORT extern
-#  define CP_HIDDEN
-#endif
-/*@}*/
-
-
-/* ------------------------------------------------------------------------
- * GCC attributes
- * ----------------------------------------------------------------------*/
-
-/**
- * @defgroup cDefinesGCCAttributes GCC attributes
- * @ingroup cDefines cxxDefines
- *
- * These macros conditionally define GCC attributes for declarations.
- * They are used in C-Pluff API declarations to enable better optimization
- * and error checking when using GCC. In non-GCC platforms they have
- * empty values.
- */
-/*@{*/
-
-/**
- * @def CP_GCC_PURE
- *
- * Declares a function as pure function having no side effects.
- * This attribute is supported in GCC since version 2.96.
- * Such functions can be subject to common subexpression elimination
- * and loop optimization.
- */
-
-/**
- * @def CP_GCC_NONNULL
- *
- * Specifies that some pointer arguments to a function should have
- * non-NULL values. Takes a variable length list of argument indexes as
- * arguments. This attribute is supported in GCC since version 3.3.
- * It can be used for enhanced error checking and some optimizations.
- */
-
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
-#define CP_GCC_PURE __attribute__((pure))
-#else
-#define CP_GCC_PURE
-#endif
-#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
-#define CP_GCC_NONNULL(...) __attribute__((nonnull (__VA_ARGS__)))
-#else
-#define CP_GCC_NONNULL(...)
-#endif
-
-/*@}*/
-
-#ifdef _WIN32
-#ifndef __func__
-#  define __func__ __FUNCTION__
-#endif
-#ifndef snprintf
-#define snprintf _snprintf
-#endif
-#define CP_HOST "win32"
-#define CP_SHREXT ".dll"
-#define CP_FNAMESEP_CHAR '\\' // If we switch back to special:// paths then this can be '/' instead
-#define CP_THREADS
-#endif
-#endif /*CPLUFFDEF_H_*/
diff --git a/lib/cpluff/libcpluff/win32/dirent.c b/lib/cpluff/libcpluff/win32/dirent.c
deleted file mode 100644
index 3254b22..0000000
--- a/lib/cpluff/libcpluff/win32/dirent.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
-
-    Implementation of POSIX directory browsing functions and types for Win32.
-
-    Author:  Kevlin Henney (kevlin at acm.org, kevlin at curbralan.com)
-    History: Created March 1997. Updated June 2003.
-    Rights:  See end of file.
-
-*/
-
-#include "dirent.h"
-#include <errno.h>
-#include <io.h> /* _findfirst and _findnext set errno iff they return -1 */
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-struct DIR
-{
-    long                handle; /* -1 for failed rewind */
-    struct _finddata_t  info;
-    struct dirent       result; /* d_name null iff first time */
-    char                *name;  /* null-terminated char string */
-};
-
-DIR *opendir(const char *name)
-{
-    DIR *dir = 0;
-
-    if(name && name[0])
-    {
-        size_t base_length = strlen(name);
-        const char *all = /* search pattern must end with suitable wildcard */
-            strchr("/\\", name[base_length - 1]) ? "*" : "/*";
-
-        if((dir = (DIR *) malloc(sizeof *dir)) != 0 &&
-           (dir->name = (char *) malloc(base_length + strlen(all) + 1)) != 0)
-        {
-            strcat(strcpy(dir->name, name), all);
-
-            if((dir->handle = (long) _findfirst(dir->name, &dir->info)) != -1)
-            {
-                dir->result.d_name = 0;
-            }
-            else /* rollback */
-            {
-                free(dir->name);
-                free(dir);
-                dir = 0;
-            }
-        }
-        else /* rollback */
-        {
-            free(dir);
-            dir   = 0;
-            errno = ENOMEM;
-        }
-    }
-    else
-    {
-        errno = EINVAL;
-    }
-
-    return dir;
-}
-
-int closedir(DIR *dir)
-{
-    int result = -1;
-
-    if(dir)
-    {
-        if(dir->handle != -1)
-        {
-            result = _findclose(dir->handle);
-        }
-
-        free(dir->name);
-        free(dir);
-    }
-
-    if(result == -1) /* map all errors to EBADF */
-    {
-        errno = EBADF;
-    }
-
-    return result;
-}
-
-struct dirent *readdir(DIR *dir)
-{
-    struct dirent *result = 0;
-
-    if(dir && dir->handle != -1)
-    {
-        if(!dir->result.d_name || _findnext(dir->handle, &dir->info) != -1)
-        {
-            result         = &dir->result;
-            result->d_name = dir->info.name;
-        }
-    }
-    else
-    {
-        errno = EBADF;
-    }
-
-    return result;
-}
-
-void rewinddir(DIR *dir)
-{
-    if(dir && dir->handle != -1)
-    {
-        _findclose(dir->handle);
-        dir->handle = (long) _findfirst(dir->name, &dir->info);
-        dir->result.d_name = 0;
-    }
-    else
-    {
-        errno = EBADF;
-    }
-}
-
-// helper for scandir below
-static void scandir_free_dir_entries(struct dirent*** namelist, int entries) {
-	int i;
-	if (!*namelist) return;
-	for (i = 0; i < entries; ++i) {
-		free((*namelist)[i]);
-	}
-	free(*namelist);
-	*namelist = 0;
-}
-
-// returns the number of directory entries select or -1 if an error occurs
-int scandir(
-	const char* dir,
-	struct dirent*** namelist,
-	int(*filter)(const struct dirent*),
-	int(*compar)(const void*, const void*)
-) {
-	int entries = 0;
-	int max_entries = 1024; // assume 2*512 = 1024 entries (used for allocation)
-	DIR* d;
-
-	*namelist = 0;
-
-	// open directory
-	d = opendir(dir);
-	if (!d) return -1;
-
-	// iterate
-	while (1) {
-		struct dirent* ent = readdir(d);
-		if (!ent) break;
-
-		// add if no filter or filter returns non-zero
-		if (filter && (0 == filter(ent))) continue;
-
-		// resize our buffer if there is not enough room
-		if (!*namelist || entries >= max_entries) {
-			struct dirent** new_entries;
-
-			max_entries *= 2;
-			new_entries = (struct dirent **)realloc(*namelist, max_entries);
-			if (!new_entries) {
-				scandir_free_dir_entries(namelist, entries);
-				closedir(d);
-				errno = ENOMEM;
-				return -1;
-			}
-
-			*namelist = new_entries;
-		}
-
-		// allocate new entry
-		(*namelist)[entries] = (struct dirent *)malloc(sizeof(struct dirent) + strlen(ent->d_name) + 1);
-		if (!(*namelist)[entries]) {
-			scandir_free_dir_entries(namelist, entries);
-			closedir(d);
-			errno = ENOMEM;
-			return -1;
-		}
-
-		// copy entry info
-		*(*namelist)[entries] = *ent;
-
-		// and then we tack the string onto the end
-		{
-			char* dest = (char*)((*namelist)[entries]) + sizeof(struct dirent);
-			strcpy(dest, ent->d_name);
-			(*namelist)[entries]->d_name = dest;
-		}
-
-		++entries;
-	}
-
-	closedir(d);
-
-	// sort
-	if (*namelist && compar) qsort(*namelist, entries, sizeof((*namelist)[0]), compar);
-
-	return entries;
-}
-
-int alphasort(const void* lhs, const void* rhs) {
-	const struct dirent* lhs_ent = *(struct dirent**)lhs;
-	const struct dirent* rhs_ent = *(struct dirent**)rhs;
-	return _strcmpi(lhs_ent->d_name, rhs_ent->d_name);
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-/*
-
-    Copyright Kevlin Henney, 1997, 2003. All rights reserved.
-
-    Permission to use, copy, modify, and distribute this software and its
-    documentation for any purpose is hereby granted without fee, provided
-    that this copyright and permissions notice appear in all copies and
-    derivatives.
-
-    This software is supplied "as is" without express or implied warranty.
-
-    But that said, if there are any problems please get in touch.
-
-*/
diff --git a/lib/cpluff/libcpluff/win32/dirent.h b/lib/cpluff/libcpluff/win32/dirent.h
deleted file mode 100644
index b41998c..0000000
--- a/lib/cpluff/libcpluff/win32/dirent.h
+++ /dev/null
@@ -1,61 +0,0 @@
-
-#ifndef DIRENT_INCLUDED
-#define DIRENT_INCLUDED
-
-/*
-
-    Declaration of POSIX directory browsing functions and types for Win32.
-
-    Author:  Kevlin Henney (kevlin at acm.org, kevlin at curbralan.com)
-    History: Created March 1997. Updated June 2003.
-    Rights:  See end of file.
-
-*/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-typedef struct DIR DIR;
-
-#ifndef WIN32
-static int errno;
-#endif
-
-struct dirent
-{
-    char *d_name;
-};
-
-DIR           *opendir(const char *);
-int           closedir(DIR *);
-struct dirent *readdir(DIR *);
-void          rewinddir(DIR *);
-int scandir(
-	const char* dir,
-	struct dirent*** namelist,
-	int(*filter)(const struct dirent*),
-	int(*compar)(const void*, const void*) );
-int alphasort(const void* lhs, const void* rhs);
-
-/*
-
-    Copyright Kevlin Henney, 1997, 2003. All rights reserved.
-
-    Permission to use, copy, modify, and distribute this software and its
-    documentation for any purpose is hereby granted without fee, provided
-    that this copyright and permissions notice appear in all copies and
-    derivatives.
-
-    This software is supplied "as is" without express or implied warranty.
-
-    But that said, if there are any problems please get in touch.
-
-*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/README b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/README
deleted file mode 100644
index 5ca9d12..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/README
+++ /dev/null
@@ -1,115 +0,0 @@
-ZLIB DATA COMPRESSION LIBRARY
-
-zlib 1.2.8 is a general purpose data compression library.  All the code is
-thread safe.  The data format used by the zlib library is described by RFCs
-(Request for Comments) 1950 to 1952 in the files
-http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and
-rfc1952 (gzip format).
-
-All functions of the compression library are documented in the file zlib.h
-(volunteer to write man pages welcome, contact zlib at gzip.org).  A usage example
-of the library is given in the file test/example.c which also tests that
-the library is working correctly.  Another example is given in the file
-test/minigzip.c.  The compression library itself is composed of all source
-files in the root directory.
-
-To compile all files and run the test program, follow the instructions given at
-the top of Makefile.in.  In short "./configure; make test", and if that goes
-well, "make install" should work for most flavors of Unix.  For Windows, use
-one of the special makefiles in win32/ or contrib/vstudio/ .  For VMS, use
-make_vms.com.
-
-Questions about zlib should be sent to <zlib at gzip.org>, or to Gilles Vollant
-<info at winimage.com> for the Windows DLL version.  The zlib home page is
-http://zlib.net/ .  Before reporting a problem, please check this site to
-verify that you have the latest version of zlib; otherwise get the latest
-version and check whether the problem still exists or not.
-
-PLEASE read the zlib FAQ http://zlib.net/zlib_faq.html before asking for help.
-
-Mark Nelson <markn at ieee.org> wrote an article about zlib for the Jan.  1997
-issue of Dr.  Dobb's Journal; a copy of the article is available at
-http://marknelson.us/1997/01/01/zlib-engine/ .
-
-The changes made in version 1.2.8 are documented in the file ChangeLog.
-
-Unsupported third party contributions are provided in directory contrib/ .
-
-zlib is available in Java using the java.util.zip package, documented at
-http://java.sun.com/developer/technicalArticles/Programming/compression/ .
-
-A Perl interface to zlib written by Paul Marquess <pmqs at cpan.org> is available
-at CPAN (Comprehensive Perl Archive Network) sites, including
-http://search.cpan.org/~pmqs/IO-Compress-Zlib/ .
-
-A Python interface to zlib written by A.M. Kuchling <amk at amk.ca> is
-available in Python 1.5 and later versions, see
-http://docs.python.org/library/zlib.html .
-
-zlib is built into tcl: http://wiki.tcl.tk/4610 .
-
-An experimental package to read and write files in .zip format, written on top
-of zlib by Gilles Vollant <info at winimage.com>, is available in the
-contrib/minizip directory of zlib.
-
-
-Notes for some targets:
-
-- For Windows DLL versions, please see win32/DLL_FAQ.txt
-
-- For 64-bit Irix, deflate.c must be compiled without any optimization. With
-  -O, one libpng test fails. The test works in 32 bit mode (with the -n32
-  compiler flag). The compiler bug has been reported to SGI.
-
-- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 it works
-  when compiled with cc.
-
-- On Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 is
-  necessary to get gzprintf working correctly. This is done by configure.
-
-- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with
-  other compilers. Use "make test" to check your compiler.
-
-- gzdopen is not supported on RISCOS or BEOS.
-
-- For PalmOs, see http://palmzlib.sourceforge.net/
-
-
-Acknowledgments:
-
-  The deflate format used by zlib was defined by Phil Katz.  The deflate and
-  zlib specifications were written by L.  Peter Deutsch.  Thanks to all the
-  people who reported problems and suggested various improvements in zlib; they
-  are too numerous to cite here.
-
-Copyright notice:
-
- (C) 1995-2013 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.
-
-  Jean-loup Gailly        Mark Adler
-  jloup at gzip.org          madler at alumni.caltech.edu
-
-If you use the zlib library in a product, we would appreciate *not* receiving
-lengthy legal documents to sign.  The sources are provided for free but without
-warranty of any kind.  The library has been entirely written by Jean-loup
-Gailly and Mark Adler; it does not include third-party code.
-
-If you redistribute modified sources, we would appreciate that you include in
-the file ChangeLog history information documenting your changes.  Please read
-the FAQ for more information on the distribution of modified source versions.
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/adler32.c b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/adler32.c
deleted file mode 100644
index a868f07..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/adler32.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/* adler32.c -- compute the Adler-32 checksum of a data stream
- * Copyright (C) 1995-2011 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#include "zutil.h"
-
-#define local static
-
-local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2));
-
-#define BASE 65521      /* largest prime smaller than 65536 */
-#define NMAX 5552
-/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
-
-#define DO1(buf,i)  {adler += (buf)[i]; sum2 += adler;}
-#define DO2(buf,i)  DO1(buf,i); DO1(buf,i+1);
-#define DO4(buf,i)  DO2(buf,i); DO2(buf,i+2);
-#define DO8(buf,i)  DO4(buf,i); DO4(buf,i+4);
-#define DO16(buf)   DO8(buf,0); DO8(buf,8);
-
-/* use NO_DIVIDE if your processor does not do division in hardware --
-   try it both ways to see which is faster */
-#ifdef NO_DIVIDE
-/* note that this assumes BASE is 65521, where 65536 % 65521 == 15
-   (thank you to John Reiser for pointing this out) */
-#  define CHOP(a) \
-    do { \
-        unsigned long tmp = a >> 16; \
-        a &= 0xffffUL; \
-        a += (tmp << 4) - tmp; \
-    } while (0)
-#  define MOD28(a) \
-    do { \
-        CHOP(a); \
-        if (a >= BASE) a -= BASE; \
-    } while (0)
-#  define MOD(a) \
-    do { \
-        CHOP(a); \
-        MOD28(a); \
-    } while (0)
-#  define MOD63(a) \
-    do { /* this assumes a is not negative */ \
-        z_off64_t tmp = a >> 32; \
-        a &= 0xffffffffL; \
-        a += (tmp << 8) - (tmp << 5) + tmp; \
-        tmp = a >> 16; \
-        a &= 0xffffL; \
-        a += (tmp << 4) - tmp; \
-        tmp = a >> 16; \
-        a &= 0xffffL; \
-        a += (tmp << 4) - tmp; \
-        if (a >= BASE) a -= BASE; \
-    } while (0)
-#else
-#  define MOD(a) a %= BASE
-#  define MOD28(a) a %= BASE
-#  define MOD63(a) a %= BASE
-#endif
-
-/* ========================================================================= */
-uLong ZEXPORT adler32(adler, buf, len)
-    uLong adler;
-    const Bytef *buf;
-    uInt len;
-{
-    unsigned long sum2;
-    unsigned n;
-
-    /* split Adler-32 into component sums */
-    sum2 = (adler >> 16) & 0xffff;
-    adler &= 0xffff;
-
-    /* in case user likes doing a byte at a time, keep it fast */
-    if (len == 1) {
-        adler += buf[0];
-        if (adler >= BASE)
-            adler -= BASE;
-        sum2 += adler;
-        if (sum2 >= BASE)
-            sum2 -= BASE;
-        return adler | (sum2 << 16);
-    }
-
-    /* initial Adler-32 value (deferred check for len == 1 speed) */
-    if (buf == Z_NULL)
-        return 1L;
-
-    /* in case short lengths are provided, keep it somewhat fast */
-    if (len < 16) {
-        while (len--) {
-            adler += *buf++;
-            sum2 += adler;
-        }
-        if (adler >= BASE)
-            adler -= BASE;
-        MOD28(sum2);            /* only added so many BASE's */
-        return adler | (sum2 << 16);
-    }
-
-    /* do length NMAX blocks -- requires just one modulo operation */
-    while (len >= NMAX) {
-        len -= NMAX;
-        n = NMAX / 16;          /* NMAX is divisible by 16 */
-        do {
-            DO16(buf);          /* 16 sums unrolled */
-            buf += 16;
-        } while (--n);
-        MOD(adler);
-        MOD(sum2);
-    }
-
-    /* do remaining bytes (less than NMAX, still just one modulo) */
-    if (len) {                  /* avoid modulos if none remaining */
-        while (len >= 16) {
-            len -= 16;
-            DO16(buf);
-            buf += 16;
-        }
-        while (len--) {
-            adler += *buf++;
-            sum2 += adler;
-        }
-        MOD(adler);
-        MOD(sum2);
-    }
-
-    /* return recombined sums */
-    return adler | (sum2 << 16);
-}
-
-/* ========================================================================= */
-local uLong adler32_combine_(adler1, adler2, len2)
-    uLong adler1;
-    uLong adler2;
-    z_off64_t len2;
-{
-    unsigned long sum1;
-    unsigned long sum2;
-    unsigned rem;
-
-    /* for negative len, return invalid adler32 as a clue for debugging */
-    if (len2 < 0)
-        return 0xffffffffUL;
-
-    /* the derivation of this formula is left as an exercise for the reader */
-    MOD63(len2);                /* assumes len2 >= 0 */
-    rem = (unsigned)len2;
-    sum1 = adler1 & 0xffff;
-    sum2 = rem * sum1;
-    MOD(sum2);
-    sum1 += (adler2 & 0xffff) + BASE - 1;
-    sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem;
-    if (sum1 >= BASE) sum1 -= BASE;
-    if (sum1 >= BASE) sum1 -= BASE;
-    if (sum2 >= (BASE << 1)) sum2 -= (BASE << 1);
-    if (sum2 >= BASE) sum2 -= BASE;
-    return sum1 | (sum2 << 16);
-}
-
-/* ========================================================================= */
-uLong ZEXPORT adler32_combine(adler1, adler2, len2)
-    uLong adler1;
-    uLong adler2;
-    z_off_t len2;
-{
-    return adler32_combine_(adler1, adler2, len2);
-}
-
-uLong ZEXPORT adler32_combine64(adler1, adler2, len2)
-    uLong adler1;
-    uLong adler2;
-    z_off64_t len2;
-{
-    return adler32_combine_(adler1, adler2, len2);
-}
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/compress.c b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/compress.c
deleted file mode 100644
index 6e97626..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/compress.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* compress.c -- compress a memory buffer
- * Copyright (C) 1995-2005 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#define ZLIB_INTERNAL
-#include "zlib.h"
-
-/* ===========================================================================
-     Compresses the source buffer into the destination buffer. The level
-   parameter has the same meaning as in deflateInit.  sourceLen is the byte
-   length of the source buffer. Upon entry, destLen is the total size of the
-   destination buffer, which must be at least 0.1% larger than sourceLen plus
-   12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
-
-     compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_BUF_ERROR if there was not enough room in the output buffer,
-   Z_STREAM_ERROR if the level parameter is invalid.
-*/
-int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
-    Bytef *dest;
-    uLongf *destLen;
-    const Bytef *source;
-    uLong sourceLen;
-    int level;
-{
-    z_stream stream;
-    int err;
-
-    stream.next_in = (z_const Bytef *)source;
-    stream.avail_in = (uInt)sourceLen;
-#ifdef MAXSEG_64K
-    /* Check for source > 64K on 16-bit machine: */
-    if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
-#endif
-    stream.next_out = dest;
-    stream.avail_out = (uInt)*destLen;
-    if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
-
-    stream.zalloc = (alloc_func)0;
-    stream.zfree = (free_func)0;
-    stream.opaque = (voidpf)0;
-
-    err = deflateInit(&stream, level);
-    if (err != Z_OK) return err;
-
-    err = deflate(&stream, Z_FINISH);
-    if (err != Z_STREAM_END) {
-        deflateEnd(&stream);
-        return err == Z_OK ? Z_BUF_ERROR : err;
-    }
-    *destLen = stream.total_out;
-
-    err = deflateEnd(&stream);
-    return err;
-}
-
-/* ===========================================================================
- */
-int ZEXPORT compress (dest, destLen, source, sourceLen)
-    Bytef *dest;
-    uLongf *destLen;
-    const Bytef *source;
-    uLong sourceLen;
-{
-    return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION);
-}
-
-/* ===========================================================================
-     If the default memLevel or windowBits for deflateInit() is changed, then
-   this function needs to be updated.
- */
-uLong ZEXPORT compressBound (sourceLen)
-    uLong sourceLen;
-{
-    return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
-           (sourceLen >> 25) + 13;
-}
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/crc32.c b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/crc32.c
deleted file mode 100644
index 979a719..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/crc32.c
+++ /dev/null
@@ -1,425 +0,0 @@
-/* crc32.c -- compute the CRC-32 of a data stream
- * Copyright (C) 1995-2006, 2010, 2011, 2012 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- *
- * Thanks to Rodney Brown <rbrown64 at csc.com.au> for his contribution of faster
- * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing
- * tables for updating the shift register in one step with three exclusive-ors
- * instead of four steps with four exclusive-ors.  This results in about a
- * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3.
- */
-
-/* @(#) $Id$ */
-
-/*
-  Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore
-  protection on the static variables used to control the first-use generation
-  of the crc tables.  Therefore, if you #define DYNAMIC_CRC_TABLE, you should
-  first call get_crc_table() to initialize the tables before allowing more than
-  one thread to use crc32().
-
-  DYNAMIC_CRC_TABLE and MAKECRCH can be #defined to write out crc32.h.
- */
-
-#ifdef MAKECRCH
-#  include <stdio.h>
-#  ifndef DYNAMIC_CRC_TABLE
-#    define DYNAMIC_CRC_TABLE
-#  endif /* !DYNAMIC_CRC_TABLE */
-#endif /* MAKECRCH */
-
-#include "zutil.h"      /* for STDC and FAR definitions */
-
-#define local static
-
-/* Definitions for doing the crc four data bytes at a time. */
-#if !defined(NOBYFOUR) && defined(Z_U4)
-#  define BYFOUR
-#endif
-#ifdef BYFOUR
-   local unsigned long crc32_little OF((unsigned long,
-                        const unsigned char FAR *, unsigned));
-   local unsigned long crc32_big OF((unsigned long,
-                        const unsigned char FAR *, unsigned));
-#  define TBLS 8
-#else
-#  define TBLS 1
-#endif /* BYFOUR */
-
-/* Local functions for crc concatenation */
-local unsigned long gf2_matrix_times OF((unsigned long *mat,
-                                         unsigned long vec));
-local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat));
-local uLong crc32_combine_ OF((uLong crc1, uLong crc2, z_off64_t len2));
-
-
-#ifdef DYNAMIC_CRC_TABLE
-
-local volatile int crc_table_empty = 1;
-local z_crc_t FAR crc_table[TBLS][256];
-local void make_crc_table OF((void));
-#ifdef MAKECRCH
-   local void write_table OF((FILE *, const z_crc_t FAR *));
-#endif /* MAKECRCH */
-/*
-  Generate tables for a byte-wise 32-bit CRC calculation on the polynomial:
-  x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1.
-
-  Polynomials over GF(2) are represented in binary, one bit per coefficient,
-  with the lowest powers in the most significant bit.  Then adding polynomials
-  is just exclusive-or, and multiplying a polynomial by x is a right shift by
-  one.  If we call the above polynomial p, and represent a byte as the
-  polynomial q, also with the lowest power in the most significant bit (so the
-  byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p,
-  where a mod b means the remainder after dividing a by b.
-
-  This calculation is done using the shift-register method of multiplying and
-  taking the remainder.  The register is initialized to zero, and for each
-  incoming bit, x^32 is added mod p to the register if the bit is a one (where
-  x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by
-  x (which is shifting right by one and adding x^32 mod p if the bit shifted
-  out is a one).  We start with the highest power (least significant bit) of
-  q and repeat for all eight bits of q.
-
-  The first table is simply the CRC of all possible eight bit values.  This is
-  all the information needed to generate CRCs on data a byte at a time for all
-  combinations of CRC register values and incoming bytes.  The remaining tables
-  allow for word-at-a-time CRC calculation for both big-endian and little-
-  endian machines, where a word is four bytes.
-*/
-local void make_crc_table()
-{
-    z_crc_t c;
-    int n, k;
-    z_crc_t poly;                       /* polynomial exclusive-or pattern */
-    /* terms of polynomial defining this crc (except x^32): */
-    static volatile int first = 1;      /* flag to limit concurrent making */
-    static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26};
-
-    /* See if another task is already doing this (not thread-safe, but better
-       than nothing -- significantly reduces duration of vulnerability in
-       case the advice about DYNAMIC_CRC_TABLE is ignored) */
-    if (first) {
-        first = 0;
-
-        /* make exclusive-or pattern from polynomial (0xedb88320UL) */
-        poly = 0;
-        for (n = 0; n < (int)(sizeof(p)/sizeof(unsigned char)); n++)
-            poly |= (z_crc_t)1 << (31 - p[n]);
-
-        /* generate a crc for every 8-bit value */
-        for (n = 0; n < 256; n++) {
-            c = (z_crc_t)n;
-            for (k = 0; k < 8; k++)
-                c = c & 1 ? poly ^ (c >> 1) : c >> 1;
-            crc_table[0][n] = c;
-        }
-
-#ifdef BYFOUR
-        /* generate crc for each value followed by one, two, and three zeros,
-           and then the byte reversal of those as well as the first table */
-        for (n = 0; n < 256; n++) {
-            c = crc_table[0][n];
-            crc_table[4][n] = ZSWAP32(c);
-            for (k = 1; k < 4; k++) {
-                c = crc_table[0][c & 0xff] ^ (c >> 8);
-                crc_table[k][n] = c;
-                crc_table[k + 4][n] = ZSWAP32(c);
-            }
-        }
-#endif /* BYFOUR */
-
-        crc_table_empty = 0;
-    }
-    else {      /* not first */
-        /* wait for the other guy to finish (not efficient, but rare) */
-        while (crc_table_empty)
-            ;
-    }
-
-#ifdef MAKECRCH
-    /* write out CRC tables to crc32.h */
-    {
-        FILE *out;
-
-        out = fopen("crc32.h", "w");
-        if (out == NULL) return;
-        fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n");
-        fprintf(out, " * Generated automatically by crc32.c\n */\n\n");
-        fprintf(out, "local const z_crc_t FAR ");
-        fprintf(out, "crc_table[TBLS][256] =\n{\n  {\n");
-        write_table(out, crc_table[0]);
-#  ifdef BYFOUR
-        fprintf(out, "#ifdef BYFOUR\n");
-        for (k = 1; k < 8; k++) {
-            fprintf(out, "  },\n  {\n");
-            write_table(out, crc_table[k]);
-        }
-        fprintf(out, "#endif\n");
-#  endif /* BYFOUR */
-        fprintf(out, "  }\n};\n");
-        fclose(out);
-    }
-#endif /* MAKECRCH */
-}
-
-#ifdef MAKECRCH
-local void write_table(out, table)
-    FILE *out;
-    const z_crc_t FAR *table;
-{
-    int n;
-
-    for (n = 0; n < 256; n++)
-        fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : "    ",
-                (unsigned long)(table[n]),
-                n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", "));
-}
-#endif /* MAKECRCH */
-
-#else /* !DYNAMIC_CRC_TABLE */
-/* ========================================================================
- * Tables of CRC-32s of all single-byte values, made by make_crc_table().
- */
-#include "crc32.h"
-#endif /* DYNAMIC_CRC_TABLE */
-
-/* =========================================================================
- * This function can be used by asm versions of crc32()
- */
-const z_crc_t FAR * ZEXPORT get_crc_table()
-{
-#ifdef DYNAMIC_CRC_TABLE
-    if (crc_table_empty)
-        make_crc_table();
-#endif /* DYNAMIC_CRC_TABLE */
-    return (const z_crc_t FAR *)crc_table;
-}
-
-/* ========================================================================= */
-#define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8)
-#define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1
-
-/* ========================================================================= */
-unsigned long ZEXPORT crc32(crc, buf, len)
-    unsigned long crc;
-    const unsigned char FAR *buf;
-    uInt len;
-{
-    if (buf == Z_NULL) return 0UL;
-
-#ifdef DYNAMIC_CRC_TABLE
-    if (crc_table_empty)
-        make_crc_table();
-#endif /* DYNAMIC_CRC_TABLE */
-
-#ifdef BYFOUR
-    if (sizeof(void *) == sizeof(ptrdiff_t)) {
-        z_crc_t endian;
-
-        endian = 1;
-        if (*((unsigned char *)(&endian)))
-            return crc32_little(crc, buf, len);
-        else
-            return crc32_big(crc, buf, len);
-    }
-#endif /* BYFOUR */
-    crc = crc ^ 0xffffffffUL;
-    while (len >= 8) {
-        DO8;
-        len -= 8;
-    }
-    if (len) do {
-        DO1;
-    } while (--len);
-    return crc ^ 0xffffffffUL;
-}
-
-#ifdef BYFOUR
-
-/* ========================================================================= */
-#define DOLIT4 c ^= *buf4++; \
-        c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \
-            crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24]
-#define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4
-
-/* ========================================================================= */
-local unsigned long crc32_little(crc, buf, len)
-    unsigned long crc;
-    const unsigned char FAR *buf;
-    unsigned len;
-{
-    register z_crc_t c;
-    register const z_crc_t FAR *buf4;
-
-    c = (z_crc_t)crc;
-    c = ~c;
-    while (len && ((ptrdiff_t)buf & 3)) {
-        c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8);
-        len--;
-    }
-
-    buf4 = (const z_crc_t FAR *)(const void FAR *)buf;
-    while (len >= 32) {
-        DOLIT32;
-        len -= 32;
-    }
-    while (len >= 4) {
-        DOLIT4;
-        len -= 4;
-    }
-    buf = (const unsigned char FAR *)buf4;
-
-    if (len) do {
-        c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8);
-    } while (--len);
-    c = ~c;
-    return (unsigned long)c;
-}
-
-/* ========================================================================= */
-#define DOBIG4 c ^= *++buf4; \
-        c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \
-            crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24]
-#define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4
-
-/* ========================================================================= */
-local unsigned long crc32_big(crc, buf, len)
-    unsigned long crc;
-    const unsigned char FAR *buf;
-    unsigned len;
-{
-    register z_crc_t c;
-    register const z_crc_t FAR *buf4;
-
-    c = ZSWAP32((z_crc_t)crc);
-    c = ~c;
-    while (len && ((ptrdiff_t)buf & 3)) {
-        c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8);
-        len--;
-    }
-
-    buf4 = (const z_crc_t FAR *)(const void FAR *)buf;
-    buf4--;
-    while (len >= 32) {
-        DOBIG32;
-        len -= 32;
-    }
-    while (len >= 4) {
-        DOBIG4;
-        len -= 4;
-    }
-    buf4++;
-    buf = (const unsigned char FAR *)buf4;
-
-    if (len) do {
-        c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8);
-    } while (--len);
-    c = ~c;
-    return (unsigned long)(ZSWAP32(c));
-}
-
-#endif /* BYFOUR */
-
-#define GF2_DIM 32      /* dimension of GF(2) vectors (length of CRC) */
-
-/* ========================================================================= */
-local unsigned long gf2_matrix_times(mat, vec)
-    unsigned long *mat;
-    unsigned long vec;
-{
-    unsigned long sum;
-
-    sum = 0;
-    while (vec) {
-        if (vec & 1)
-            sum ^= *mat;
-        vec >>= 1;
-        mat++;
-    }
-    return sum;
-}
-
-/* ========================================================================= */
-local void gf2_matrix_square(square, mat)
-    unsigned long *square;
-    unsigned long *mat;
-{
-    int n;
-
-    for (n = 0; n < GF2_DIM; n++)
-        square[n] = gf2_matrix_times(mat, mat[n]);
-}
-
-/* ========================================================================= */
-local uLong crc32_combine_(crc1, crc2, len2)
-    uLong crc1;
-    uLong crc2;
-    z_off64_t len2;
-{
-    int n;
-    unsigned long row;
-    unsigned long even[GF2_DIM];    /* even-power-of-two zeros operator */
-    unsigned long odd[GF2_DIM];     /* odd-power-of-two zeros operator */
-
-    /* degenerate case (also disallow negative lengths) */
-    if (len2 <= 0)
-        return crc1;
-
-    /* put operator for one zero bit in odd */
-    odd[0] = 0xedb88320UL;          /* CRC-32 polynomial */
-    row = 1;
-    for (n = 1; n < GF2_DIM; n++) {
-        odd[n] = row;
-        row <<= 1;
-    }
-
-    /* put operator for two zero bits in even */
-    gf2_matrix_square(even, odd);
-
-    /* put operator for four zero bits in odd */
-    gf2_matrix_square(odd, even);
-
-    /* apply len2 zeros to crc1 (first square will put the operator for one
-       zero byte, eight zero bits, in even) */
-    do {
-        /* apply zeros operator for this bit of len2 */
-        gf2_matrix_square(even, odd);
-        if (len2 & 1)
-            crc1 = gf2_matrix_times(even, crc1);
-        len2 >>= 1;
-
-        /* if no more bits set, then done */
-        if (len2 == 0)
-            break;
-
-        /* another iteration of the loop with odd and even swapped */
-        gf2_matrix_square(odd, even);
-        if (len2 & 1)
-            crc1 = gf2_matrix_times(odd, crc1);
-        len2 >>= 1;
-
-        /* if no more bits set, then done */
-    } while (len2 != 0);
-
-    /* return combined crc */
-    crc1 ^= crc2;
-    return crc1;
-}
-
-/* ========================================================================= */
-uLong ZEXPORT crc32_combine(crc1, crc2, len2)
-    uLong crc1;
-    uLong crc2;
-    z_off_t len2;
-{
-    return crc32_combine_(crc1, crc2, len2);
-}
-
-uLong ZEXPORT crc32_combine64(crc1, crc2, len2)
-    uLong crc1;
-    uLong crc2;
-    z_off64_t len2;
-{
-    return crc32_combine_(crc1, crc2, len2);
-}
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/crc32.h b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/crc32.h
deleted file mode 100644
index 9e0c778..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/crc32.h
+++ /dev/null
@@ -1,441 +0,0 @@
-/* crc32.h -- tables for rapid CRC calculation
- * Generated automatically by crc32.c
- */
-
-local const z_crc_t FAR crc_table[TBLS][256] =
-{
-  {
-    0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL,
-    0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL,
-    0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL,
-    0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL,
-    0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL,
-    0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL,
-    0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL,
-    0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL,
-    0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL,
-    0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL,
-    0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL,
-    0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL,
-    0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL,
-    0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL,
-    0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL,
-    0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL,
-    0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL,
-    0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL,
-    0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL,
-    0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL,
-    0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL,
-    0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL,
-    0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL,
-    0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL,
-    0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL,
-    0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL,
-    0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL,
-    0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL,
-    0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL,
-    0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL,
-    0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL,
-    0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL,
-    0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL,
-    0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL,
-    0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL,
-    0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL,
-    0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL,
-    0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL,
-    0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL,
-    0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL,
-    0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL,
-    0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL,
-    0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL,
-    0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL,
-    0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL,
-    0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL,
-    0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL,
-    0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL,
-    0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL,
-    0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL,
-    0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL,
-    0x2d02ef8dUL
-#ifdef BYFOUR
-  },
-  {
-    0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL,
-    0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL,
-    0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL,
-    0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL,
-    0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL,
-    0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL,
-    0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL,
-    0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL,
-    0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL,
-    0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL,
-    0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL,
-    0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL,
-    0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL,
-    0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL,
-    0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL,
-    0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL,
-    0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL,
-    0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL,
-    0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL,
-    0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL,
-    0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL,
-    0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL,
-    0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL,
-    0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL,
-    0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL,
-    0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL,
-    0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL,
-    0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL,
-    0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL,
-    0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL,
-    0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL,
-    0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL,
-    0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL,
-    0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL,
-    0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL,
-    0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL,
-    0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL,
-    0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL,
-    0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL,
-    0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL,
-    0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL,
-    0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL,
-    0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL,
-    0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL,
-    0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL,
-    0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL,
-    0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL,
-    0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL,
-    0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL,
-    0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL,
-    0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL,
-    0x9324fd72UL
-  },
-  {
-    0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL,
-    0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL,
-    0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL,
-    0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL,
-    0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL,
-    0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL,
-    0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL,
-    0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL,
-    0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL,
-    0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL,
-    0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL,
-    0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL,
-    0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL,
-    0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL,
-    0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL,
-    0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL,
-    0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL,
-    0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL,
-    0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL,
-    0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL,
-    0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL,
-    0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL,
-    0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL,
-    0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL,
-    0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL,
-    0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL,
-    0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL,
-    0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL,
-    0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL,
-    0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL,
-    0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL,
-    0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL,
-    0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL,
-    0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL,
-    0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL,
-    0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL,
-    0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL,
-    0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL,
-    0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL,
-    0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL,
-    0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL,
-    0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL,
-    0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL,
-    0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL,
-    0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL,
-    0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL,
-    0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL,
-    0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL,
-    0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL,
-    0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL,
-    0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL,
-    0xbe9834edUL
-  },
-  {
-    0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL,
-    0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL,
-    0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL,
-    0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL,
-    0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL,
-    0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL,
-    0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL,
-    0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL,
-    0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL,
-    0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL,
-    0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL,
-    0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL,
-    0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL,
-    0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL,
-    0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL,
-    0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL,
-    0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL,
-    0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL,
-    0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL,
-    0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL,
-    0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL,
-    0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL,
-    0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL,
-    0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL,
-    0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL,
-    0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL,
-    0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL,
-    0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL,
-    0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL,
-    0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL,
-    0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL,
-    0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL,
-    0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL,
-    0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL,
-    0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL,
-    0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL,
-    0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL,
-    0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL,
-    0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL,
-    0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL,
-    0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL,
-    0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL,
-    0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL,
-    0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL,
-    0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL,
-    0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL,
-    0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL,
-    0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL,
-    0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL,
-    0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL,
-    0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL,
-    0xde0506f1UL
-  },
-  {
-    0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL,
-    0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL,
-    0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL,
-    0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL,
-    0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL,
-    0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL,
-    0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL,
-    0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL,
-    0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL,
-    0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL,
-    0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL,
-    0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL,
-    0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL,
-    0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL,
-    0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL,
-    0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL,
-    0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL,
-    0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL,
-    0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL,
-    0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL,
-    0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL,
-    0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL,
-    0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL,
-    0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL,
-    0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL,
-    0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL,
-    0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL,
-    0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL,
-    0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL,
-    0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL,
-    0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL,
-    0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL,
-    0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL,
-    0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL,
-    0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL,
-    0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL,
-    0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL,
-    0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL,
-    0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL,
-    0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL,
-    0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL,
-    0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL,
-    0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL,
-    0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL,
-    0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL,
-    0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL,
-    0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL,
-    0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL,
-    0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL,
-    0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL,
-    0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL,
-    0x8def022dUL
-  },
-  {
-    0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL,
-    0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL,
-    0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL,
-    0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL,
-    0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL,
-    0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL,
-    0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL,
-    0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL,
-    0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL,
-    0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL,
-    0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL,
-    0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL,
-    0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL,
-    0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL,
-    0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL,
-    0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL,
-    0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL,
-    0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL,
-    0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL,
-    0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL,
-    0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL,
-    0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL,
-    0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL,
-    0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL,
-    0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL,
-    0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL,
-    0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL,
-    0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL,
-    0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL,
-    0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL,
-    0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL,
-    0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL,
-    0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL,
-    0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL,
-    0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL,
-    0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL,
-    0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL,
-    0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL,
-    0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL,
-    0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL,
-    0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL,
-    0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL,
-    0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL,
-    0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL,
-    0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL,
-    0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL,
-    0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL,
-    0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL,
-    0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL,
-    0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL,
-    0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL,
-    0x72fd2493UL
-  },
-  {
-    0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL,
-    0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL,
-    0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL,
-    0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL,
-    0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL,
-    0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL,
-    0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL,
-    0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL,
-    0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL,
-    0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL,
-    0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL,
-    0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL,
-    0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL,
-    0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL,
-    0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL,
-    0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL,
-    0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL,
-    0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL,
-    0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL,
-    0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL,
-    0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL,
-    0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL,
-    0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL,
-    0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL,
-    0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL,
-    0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL,
-    0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL,
-    0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL,
-    0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL,
-    0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL,
-    0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL,
-    0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL,
-    0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL,
-    0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL,
-    0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL,
-    0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL,
-    0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL,
-    0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL,
-    0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL,
-    0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL,
-    0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL,
-    0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL,
-    0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL,
-    0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL,
-    0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL,
-    0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL,
-    0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL,
-    0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL,
-    0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL,
-    0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL,
-    0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL,
-    0xed3498beUL
-  },
-  {
-    0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL,
-    0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL,
-    0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL,
-    0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL,
-    0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL,
-    0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL,
-    0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL,
-    0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL,
-    0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL,
-    0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL,
-    0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL,
-    0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL,
-    0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL,
-    0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL,
-    0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL,
-    0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL,
-    0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL,
-    0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL,
-    0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL,
-    0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL,
-    0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL,
-    0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL,
-    0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL,
-    0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL,
-    0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL,
-    0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL,
-    0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL,
-    0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL,
-    0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL,
-    0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL,
-    0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL,
-    0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL,
-    0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL,
-    0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL,
-    0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL,
-    0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL,
-    0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL,
-    0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL,
-    0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL,
-    0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL,
-    0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL,
-    0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL,
-    0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL,
-    0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL,
-    0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL,
-    0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL,
-    0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL,
-    0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL,
-    0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL,
-    0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL,
-    0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL,
-    0xf10605deUL
-#endif
-  }
-};
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/deflate.c b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/deflate.c
deleted file mode 100644
index 6969577..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/deflate.c
+++ /dev/null
@@ -1,1967 +0,0 @@
-/* deflate.c -- compress data using the deflation algorithm
- * Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- *  ALGORITHM
- *
- *      The "deflation" process depends on being able to identify portions
- *      of the input text which are identical to earlier input (within a
- *      sliding window trailing behind the input currently being processed).
- *
- *      The most straightforward technique turns out to be the fastest for
- *      most input files: try all possible matches and select the longest.
- *      The key feature of this algorithm is that insertions into the string
- *      dictionary are very simple and thus fast, and deletions are avoided
- *      completely. Insertions are performed at each input character, whereas
- *      string matches are performed only when the previous match ends. So it
- *      is preferable to spend more time in matches to allow very fast string
- *      insertions and avoid deletions. The matching algorithm for small
- *      strings is inspired from that of Rabin & Karp. A brute force approach
- *      is used to find longer strings when a small match has been found.
- *      A similar algorithm is used in comic (by Jan-Mark Wams) and freeze
- *      (by Leonid Broukhis).
- *         A previous version of this file used a more sophisticated algorithm
- *      (by Fiala and Greene) which is guaranteed to run in linear amortized
- *      time, but has a larger average cost, uses more memory and is patented.
- *      However the F&G algorithm may be faster for some highly redundant
- *      files if the parameter max_chain_length (described below) is too large.
- *
- *  ACKNOWLEDGEMENTS
- *
- *      The idea of lazy evaluation of matches is due to Jan-Mark Wams, and
- *      I found it in 'freeze' written by Leonid Broukhis.
- *      Thanks to many people for bug reports and testing.
- *
- *  REFERENCES
- *
- *      Deutsch, L.P.,"DEFLATE Compressed Data Format Specification".
- *      Available in http://tools.ietf.org/html/rfc1951
- *
- *      A description of the Rabin and Karp algorithm is given in the book
- *         "Algorithms" by R. Sedgewick, Addison-Wesley, p252.
- *
- *      Fiala,E.R., and Greene,D.H.
- *         Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595
- *
- */
-
-/* @(#) $Id$ */
-
-#include "deflate.h"
-
-const char deflate_copyright[] =
-   " deflate 1.2.8 Copyright 1995-2013 Jean-loup Gailly and Mark Adler ";
-/*
-  If you use the zlib library in a product, an acknowledgment is welcome
-  in the documentation of your product. If for some reason you cannot
-  include such an acknowledgment, I would appreciate that you keep this
-  copyright string in the executable of your product.
- */
-
-/* ===========================================================================
- *  Function prototypes.
- */
-typedef enum {
-    need_more,      /* block not completed, need more input or more output */
-    block_done,     /* block flush performed */
-    finish_started, /* finish started, need only more output at next deflate */
-    finish_done     /* finish done, accept no more input or output */
-} block_state;
-
-typedef block_state (*compress_func) OF((deflate_state *s, int flush));
-/* Compression function. Returns the block state after the call. */
-
-local void fill_window    OF((deflate_state *s));
-local block_state deflate_stored OF((deflate_state *s, int flush));
-local block_state deflate_fast   OF((deflate_state *s, int flush));
-#ifndef FASTEST
-local block_state deflate_slow   OF((deflate_state *s, int flush));
-#endif
-local block_state deflate_rle    OF((deflate_state *s, int flush));
-local block_state deflate_huff   OF((deflate_state *s, int flush));
-local void lm_init        OF((deflate_state *s));
-local void putShortMSB    OF((deflate_state *s, uInt b));
-local void flush_pending  OF((z_streamp strm));
-local int read_buf        OF((z_streamp strm, Bytef *buf, unsigned size));
-#ifdef ASMV
-      void match_init OF((void)); /* asm code initialization */
-      uInt longest_match  OF((deflate_state *s, IPos cur_match));
-#else
-local uInt longest_match  OF((deflate_state *s, IPos cur_match));
-#endif
-
-#ifdef DEBUG
-local  void check_match OF((deflate_state *s, IPos start, IPos match,
-                            int length));
-#endif
-
-/* ===========================================================================
- * Local data
- */
-
-#define NIL 0
-/* Tail of hash chains */
-
-#ifndef TOO_FAR
-#  define TOO_FAR 4096
-#endif
-/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
-
-/* Values for max_lazy_match, good_match and max_chain_length, depending on
- * the desired pack level (0..9). The values given below have been tuned to
- * exclude worst case performance for pathological files. Better values may be
- * found for specific files.
- */
-typedef struct config_s {
-   ush good_length; /* reduce lazy search above this match length */
-   ush max_lazy;    /* do not perform lazy search above this match length */
-   ush nice_length; /* quit search above this match length */
-   ush max_chain;
-   compress_func func;
-} config;
-
-#ifdef FASTEST
-local const config configuration_table[2] = {
-/*      good lazy nice chain */
-/* 0 */ {0,    0,  0,    0, deflate_stored},  /* store only */
-/* 1 */ {4,    4,  8,    4, deflate_fast}}; /* max speed, no lazy matches */
-#else
-local const config configuration_table[10] = {
-/*      good lazy nice chain */
-/* 0 */ {0,    0,  0,    0, deflate_stored},  /* store only */
-/* 1 */ {4,    4,  8,    4, deflate_fast}, /* max speed, no lazy matches */
-/* 2 */ {4,    5, 16,    8, deflate_fast},
-/* 3 */ {4,    6, 32,   32, deflate_fast},
-
-/* 4 */ {4,    4, 16,   16, deflate_slow},  /* lazy matches */
-/* 5 */ {8,   16, 32,   32, deflate_slow},
-/* 6 */ {8,   16, 128, 128, deflate_slow},
-/* 7 */ {8,   32, 128, 256, deflate_slow},
-/* 8 */ {32, 128, 258, 1024, deflate_slow},
-/* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* max compression */
-#endif
-
-/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
- * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
- * meaning.
- */
-
-#define EQUAL 0
-/* result of memcmp for equal strings */
-
-#ifndef NO_DUMMY_DECL
-struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
-#endif
-
-/* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
-#define RANK(f) (((f) << 1) - ((f) > 4 ? 9 : 0))
-
-/* ===========================================================================
- * Update a hash value with the given input byte
- * IN  assertion: all calls to to UPDATE_HASH are made with consecutive
- *    input characters, so that a running hash key can be computed from the
- *    previous key instead of complete recalculation each time.
- */
-#define UPDATE_HASH(s,h,c) (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
-
-
-/* ===========================================================================
- * Insert string str in the dictionary and set match_head to the previous head
- * of the hash chain (the most recent string with same hash key). Return
- * the previous length of the hash chain.
- * If this file is compiled with -DFASTEST, the compression level is forced
- * to 1, and no hash chains are maintained.
- * IN  assertion: all calls to to INSERT_STRING are made with consecutive
- *    input characters and the first MIN_MATCH bytes of str are valid
- *    (except for the last MIN_MATCH-1 bytes of the input file).
- */
-#ifdef FASTEST
-#define INSERT_STRING(s, str, match_head) \
-   (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
-    match_head = s->head[s->ins_h], \
-    s->head[s->ins_h] = (Pos)(str))
-#else
-#define INSERT_STRING(s, str, match_head) \
-   (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
-    match_head = s->prev[(str) & s->w_mask] = s->head[s->ins_h], \
-    s->head[s->ins_h] = (Pos)(str))
-#endif
-
-/* ===========================================================================
- * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
- * prev[] will be initialized on the fly.
- */
-#define CLEAR_HASH(s) \
-    s->head[s->hash_size-1] = NIL; \
-    zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head));
-
-/* ========================================================================= */
-int ZEXPORT deflateInit_(strm, level, version, stream_size)
-    z_streamp strm;
-    int level;
-    const char *version;
-    int stream_size;
-{
-    return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL,
-                         Z_DEFAULT_STRATEGY, version, stream_size);
-    /* To do: ignore strm->next_in if we use it as window */
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
-                  version, stream_size)
-    z_streamp strm;
-    int  level;
-    int  method;
-    int  windowBits;
-    int  memLevel;
-    int  strategy;
-    const char *version;
-    int stream_size;
-{
-    deflate_state *s;
-    int wrap = 1;
-    static const char my_version[] = ZLIB_VERSION;
-
-    ushf *overlay;
-    /* We overlay pending_buf and d_buf+l_buf. This works since the average
-     * output size for (length,distance) codes is <= 24 bits.
-     */
-
-    if (version == Z_NULL || version[0] != my_version[0] ||
-        stream_size != sizeof(z_stream)) {
-        return Z_VERSION_ERROR;
-    }
-    if (strm == Z_NULL) return Z_STREAM_ERROR;
-
-    strm->msg = Z_NULL;
-    if (strm->zalloc == (alloc_func)0) {
-#ifdef Z_SOLO
-        return Z_STREAM_ERROR;
-#else
-        strm->zalloc = zcalloc;
-        strm->opaque = (voidpf)0;
-#endif
-    }
-    if (strm->zfree == (free_func)0)
-#ifdef Z_SOLO
-        return Z_STREAM_ERROR;
-#else
-        strm->zfree = zcfree;
-#endif
-
-#ifdef FASTEST
-    if (level != 0) level = 1;
-#else
-    if (level == Z_DEFAULT_COMPRESSION) level = 6;
-#endif
-
-    if (windowBits < 0) { /* suppress zlib wrapper */
-        wrap = 0;
-        windowBits = -windowBits;
-    }
-#ifdef GZIP
-    else if (windowBits > 15) {
-        wrap = 2;       /* write gzip wrapper instead */
-        windowBits -= 16;
-    }
-#endif
-    if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED ||
-        windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
-        strategy < 0 || strategy > Z_FIXED) {
-        return Z_STREAM_ERROR;
-    }
-    if (windowBits == 8) windowBits = 9;  /* until 256-byte window bug fixed */
-    s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state));
-    if (s == Z_NULL) return Z_MEM_ERROR;
-    strm->state = (struct internal_state FAR *)s;
-    s->strm = strm;
-
-    s->wrap = wrap;
-    s->gzhead = Z_NULL;
-    s->w_bits = windowBits;
-    s->w_size = 1 << s->w_bits;
-    s->w_mask = s->w_size - 1;
-
-    s->hash_bits = memLevel + 7;
-    s->hash_size = 1 << s->hash_bits;
-    s->hash_mask = s->hash_size - 1;
-    s->hash_shift =  ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
-
-    s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte));
-    s->prev   = (Posf *)  ZALLOC(strm, s->w_size, sizeof(Pos));
-    s->head   = (Posf *)  ZALLOC(strm, s->hash_size, sizeof(Pos));
-
-    s->high_water = 0;      /* nothing written to s->window yet */
-
-    s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
-
-    overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
-    s->pending_buf = (uchf *) overlay;
-    s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L);
-
-    if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL ||
-        s->pending_buf == Z_NULL) {
-        s->status = FINISH_STATE;
-        strm->msg = ERR_MSG(Z_MEM_ERROR);
-        deflateEnd (strm);
-        return Z_MEM_ERROR;
-    }
-    s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
-    s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
-
-    s->level = level;
-    s->strategy = strategy;
-    s->method = (Byte)method;
-
-    return deflateReset(strm);
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength)
-    z_streamp strm;
-    const Bytef *dictionary;
-    uInt  dictLength;
-{
-    deflate_state *s;
-    uInt str, n;
-    int wrap;
-    unsigned avail;
-    z_const unsigned char *next;
-
-    if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL)
-        return Z_STREAM_ERROR;
-    s = strm->state;
-    wrap = s->wrap;
-    if (wrap == 2 || (wrap == 1 && s->status != INIT_STATE) || s->lookahead)
-        return Z_STREAM_ERROR;
-
-    /* when using zlib wrappers, compute Adler-32 for provided dictionary */
-    if (wrap == 1)
-        strm->adler = adler32(strm->adler, dictionary, dictLength);
-    s->wrap = 0;                    /* avoid computing Adler-32 in read_buf */
-
-    /* if dictionary would fill window, just replace the history */
-    if (dictLength >= s->w_size) {
-        if (wrap == 0) {            /* already empty otherwise */
-            CLEAR_HASH(s);
-            s->strstart = 0;
-            s->block_start = 0L;
-            s->insert = 0;
-        }
-        dictionary += dictLength - s->w_size;  /* use the tail */
-        dictLength = s->w_size;
-    }
-
-    /* insert dictionary into window and hash */
-    avail = strm->avail_in;
-    next = strm->next_in;
-    strm->avail_in = dictLength;
-    strm->next_in = (z_const Bytef *)dictionary;
-    fill_window(s);
-    while (s->lookahead >= MIN_MATCH) {
-        str = s->strstart;
-        n = s->lookahead - (MIN_MATCH-1);
-        do {
-            UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]);
-#ifndef FASTEST
-            s->prev[str & s->w_mask] = s->head[s->ins_h];
-#endif
-            s->head[s->ins_h] = (Pos)str;
-            str++;
-        } while (--n);
-        s->strstart = str;
-        s->lookahead = MIN_MATCH-1;
-        fill_window(s);
-    }
-    s->strstart += s->lookahead;
-    s->block_start = (long)s->strstart;
-    s->insert = s->lookahead;
-    s->lookahead = 0;
-    s->match_length = s->prev_length = MIN_MATCH-1;
-    s->match_available = 0;
-    strm->next_in = next;
-    strm->avail_in = avail;
-    s->wrap = wrap;
-    return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateResetKeep (strm)
-    z_streamp strm;
-{
-    deflate_state *s;
-
-    if (strm == Z_NULL || strm->state == Z_NULL ||
-        strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) {
-        return Z_STREAM_ERROR;
-    }
-
-    strm->total_in = strm->total_out = 0;
-    strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */
-    strm->data_type = Z_UNKNOWN;
-
-    s = (deflate_state *)strm->state;
-    s->pending = 0;
-    s->pending_out = s->pending_buf;
-
-    if (s->wrap < 0) {
-        s->wrap = -s->wrap; /* was made negative by deflate(..., Z_FINISH); */
-    }
-    s->status = s->wrap ? INIT_STATE : BUSY_STATE;
-    strm->adler =
-#ifdef GZIP
-        s->wrap == 2 ? crc32(0L, Z_NULL, 0) :
-#endif
-        adler32(0L, Z_NULL, 0);
-    s->last_flush = Z_NO_FLUSH;
-
-    _tr_init(s);
-
-    return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateReset (strm)
-    z_streamp strm;
-{
-    int ret;
-
-    ret = deflateResetKeep(strm);
-    if (ret == Z_OK)
-        lm_init(strm->state);
-    return ret;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateSetHeader (strm, head)
-    z_streamp strm;
-    gz_headerp head;
-{
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    if (strm->state->wrap != 2) return Z_STREAM_ERROR;
-    strm->state->gzhead = head;
-    return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflatePending (strm, pending, bits)
-    unsigned *pending;
-    int *bits;
-    z_streamp strm;
-{
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    if (pending != Z_NULL)
-        *pending = strm->state->pending;
-    if (bits != Z_NULL)
-        *bits = strm->state->bi_valid;
-    return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflatePrime (strm, bits, value)
-    z_streamp strm;
-    int bits;
-    int value;
-{
-    deflate_state *s;
-    int put;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    s = strm->state;
-    if ((Bytef *)(s->d_buf) < s->pending_out + ((Buf_size + 7) >> 3))
-        return Z_BUF_ERROR;
-    do {
-        put = Buf_size - s->bi_valid;
-        if (put > bits)
-            put = bits;
-        s->bi_buf |= (ush)((value & ((1 << put) - 1)) << s->bi_valid);
-        s->bi_valid += put;
-        _tr_flush_bits(s);
-        value >>= put;
-        bits -= put;
-    } while (bits);
-    return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateParams(strm, level, strategy)
-    z_streamp strm;
-    int level;
-    int strategy;
-{
-    deflate_state *s;
-    compress_func func;
-    int err = Z_OK;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    s = strm->state;
-
-#ifdef FASTEST
-    if (level != 0) level = 1;
-#else
-    if (level == Z_DEFAULT_COMPRESSION) level = 6;
-#endif
-    if (level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) {
-        return Z_STREAM_ERROR;
-    }
-    func = configuration_table[s->level].func;
-
-    if ((strategy != s->strategy || func != configuration_table[level].func) &&
-        strm->total_in != 0) {
-        /* Flush the last buffer: */
-        err = deflate(strm, Z_BLOCK);
-        if (err == Z_BUF_ERROR && s->pending == 0)
-            err = Z_OK;
-    }
-    if (s->level != level) {
-        s->level = level;
-        s->max_lazy_match   = configuration_table[level].max_lazy;
-        s->good_match       = configuration_table[level].good_length;
-        s->nice_match       = configuration_table[level].nice_length;
-        s->max_chain_length = configuration_table[level].max_chain;
-    }
-    s->strategy = strategy;
-    return err;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateTune(strm, good_length, max_lazy, nice_length, max_chain)
-    z_streamp strm;
-    int good_length;
-    int max_lazy;
-    int nice_length;
-    int max_chain;
-{
-    deflate_state *s;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    s = strm->state;
-    s->good_match = good_length;
-    s->max_lazy_match = max_lazy;
-    s->nice_match = nice_length;
-    s->max_chain_length = max_chain;
-    return Z_OK;
-}
-
-/* =========================================================================
- * For the default windowBits of 15 and memLevel of 8, this function returns
- * a close to exact, as well as small, upper bound on the compressed size.
- * They are coded as constants here for a reason--if the #define's are
- * changed, then this function needs to be changed as well.  The return
- * value for 15 and 8 only works for those exact settings.
- *
- * For any setting other than those defaults for windowBits and memLevel,
- * the value returned is a conservative worst case for the maximum expansion
- * resulting from using fixed blocks instead of stored blocks, which deflate
- * can emit on compressed data for some combinations of the parameters.
- *
- * This function could be more sophisticated to provide closer upper bounds for
- * every combination of windowBits and memLevel.  But even the conservative
- * upper bound of about 14% expansion does not seem onerous for output buffer
- * allocation.
- */
-uLong ZEXPORT deflateBound(strm, sourceLen)
-    z_streamp strm;
-    uLong sourceLen;
-{
-    deflate_state *s;
-    uLong complen, wraplen;
-    Bytef *str;
-
-    /* conservative upper bound for compressed data */
-    complen = sourceLen +
-              ((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 5;
-
-    /* if can't get parameters, return conservative bound plus zlib wrapper */
-    if (strm == Z_NULL || strm->state == Z_NULL)
-        return complen + 6;
-
-    /* compute wrapper length */
-    s = strm->state;
-    switch (s->wrap) {
-    case 0:                                 /* raw deflate */
-        wraplen = 0;
-        break;
-    case 1:                                 /* zlib wrapper */
-        wraplen = 6 + (s->strstart ? 4 : 0);
-        break;
-    case 2:                                 /* gzip wrapper */
-        wraplen = 18;
-        if (s->gzhead != Z_NULL) {          /* user-supplied gzip header */
-            if (s->gzhead->extra != Z_NULL)
-                wraplen += 2 + s->gzhead->extra_len;
-            str = s->gzhead->name;
-            if (str != Z_NULL)
-                do {
-                    wraplen++;
-                } while (*str++);
-            str = s->gzhead->comment;
-            if (str != Z_NULL)
-                do {
-                    wraplen++;
-                } while (*str++);
-            if (s->gzhead->hcrc)
-                wraplen += 2;
-        }
-        break;
-    default:                                /* for compiler happiness */
-        wraplen = 6;
-    }
-
-    /* if not default parameters, return conservative bound */
-    if (s->w_bits != 15 || s->hash_bits != 8 + 7)
-        return complen + wraplen;
-
-    /* default settings: return tight bound for that case */
-    return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
-           (sourceLen >> 25) + 13 - 6 + wraplen;
-}
-
-/* =========================================================================
- * Put a short in the pending buffer. The 16-bit value is put in MSB order.
- * IN assertion: the stream state is correct and there is enough room in
- * pending_buf.
- */
-local void putShortMSB (s, b)
-    deflate_state *s;
-    uInt b;
-{
-    put_byte(s, (Byte)(b >> 8));
-    put_byte(s, (Byte)(b & 0xff));
-}
-
-/* =========================================================================
- * Flush as much pending output as possible. All deflate() output goes
- * through this function so some applications may wish to modify it
- * to avoid allocating a large strm->next_out buffer and copying into it.
- * (See also read_buf()).
- */
-local void flush_pending(strm)
-    z_streamp strm;
-{
-    unsigned len;
-    deflate_state *s = strm->state;
-
-    _tr_flush_bits(s);
-    len = s->pending;
-    if (len > strm->avail_out) len = strm->avail_out;
-    if (len == 0) return;
-
-    zmemcpy(strm->next_out, s->pending_out, len);
-    strm->next_out  += len;
-    s->pending_out  += len;
-    strm->total_out += len;
-    strm->avail_out  -= len;
-    s->pending -= len;
-    if (s->pending == 0) {
-        s->pending_out = s->pending_buf;
-    }
-}
-
-/* ========================================================================= */
-int ZEXPORT deflate (strm, flush)
-    z_streamp strm;
-    int flush;
-{
-    int old_flush; /* value of flush param for previous deflate call */
-    deflate_state *s;
-
-    if (strm == Z_NULL || strm->state == Z_NULL ||
-        flush > Z_BLOCK || flush < 0) {
-        return Z_STREAM_ERROR;
-    }
-    s = strm->state;
-
-    if (strm->next_out == Z_NULL ||
-        (strm->next_in == Z_NULL && strm->avail_in != 0) ||
-        (s->status == FINISH_STATE && flush != Z_FINISH)) {
-        ERR_RETURN(strm, Z_STREAM_ERROR);
-    }
-    if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR);
-
-    s->strm = strm; /* just in case */
-    old_flush = s->last_flush;
-    s->last_flush = flush;
-
-    /* Write the header */
-    if (s->status == INIT_STATE) {
-#ifdef GZIP
-        if (s->wrap == 2) {
-            strm->adler = crc32(0L, Z_NULL, 0);
-            put_byte(s, 31);
-            put_byte(s, 139);
-            put_byte(s, 8);
-            if (s->gzhead == Z_NULL) {
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, s->level == 9 ? 2 :
-                            (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
-                             4 : 0));
-                put_byte(s, OS_CODE);
-                s->status = BUSY_STATE;
-            }
-            else {
-                put_byte(s, (s->gzhead->text ? 1 : 0) +
-                            (s->gzhead->hcrc ? 2 : 0) +
-                            (s->gzhead->extra == Z_NULL ? 0 : 4) +
-                            (s->gzhead->name == Z_NULL ? 0 : 8) +
-                            (s->gzhead->comment == Z_NULL ? 0 : 16)
-                        );
-                put_byte(s, (Byte)(s->gzhead->time & 0xff));
-                put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff));
-                put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff));
-                put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff));
-                put_byte(s, s->level == 9 ? 2 :
-                            (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
-                             4 : 0));
-                put_byte(s, s->gzhead->os & 0xff);
-                if (s->gzhead->extra != Z_NULL) {
-                    put_byte(s, s->gzhead->extra_len & 0xff);
-                    put_byte(s, (s->gzhead->extra_len >> 8) & 0xff);
-                }
-                if (s->gzhead->hcrc)
-                    strm->adler = crc32(strm->adler, s->pending_buf,
-                                        s->pending);
-                s->gzindex = 0;
-                s->status = EXTRA_STATE;
-            }
-        }
-        else
-#endif
-        {
-            uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
-            uInt level_flags;
-
-            if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2)
-                level_flags = 0;
-            else if (s->level < 6)
-                level_flags = 1;
-            else if (s->level == 6)
-                level_flags = 2;
-            else
-                level_flags = 3;
-            header |= (level_flags << 6);
-            if (s->strstart != 0) header |= PRESET_DICT;
-            header += 31 - (header % 31);
-
-            s->status = BUSY_STATE;
-            putShortMSB(s, header);
-
-            /* Save the adler32 of the preset dictionary: */
-            if (s->strstart != 0) {
-                putShortMSB(s, (uInt)(strm->adler >> 16));
-                putShortMSB(s, (uInt)(strm->adler & 0xffff));
-            }
-            strm->adler = adler32(0L, Z_NULL, 0);
-        }
-    }
-#ifdef GZIP
-    if (s->status == EXTRA_STATE) {
-        if (s->gzhead->extra != Z_NULL) {
-            uInt beg = s->pending;  /* start of bytes to update crc */
-
-            while (s->gzindex < (s->gzhead->extra_len & 0xffff)) {
-                if (s->pending == s->pending_buf_size) {
-                    if (s->gzhead->hcrc && s->pending > beg)
-                        strm->adler = crc32(strm->adler, s->pending_buf + beg,
-                                            s->pending - beg);
-                    flush_pending(strm);
-                    beg = s->pending;
-                    if (s->pending == s->pending_buf_size)
-                        break;
-                }
-                put_byte(s, s->gzhead->extra[s->gzindex]);
-                s->gzindex++;
-            }
-            if (s->gzhead->hcrc && s->pending > beg)
-                strm->adler = crc32(strm->adler, s->pending_buf + beg,
-                                    s->pending - beg);
-            if (s->gzindex == s->gzhead->extra_len) {
-                s->gzindex = 0;
-                s->status = NAME_STATE;
-            }
-        }
-        else
-            s->status = NAME_STATE;
-    }
-    if (s->status == NAME_STATE) {
-        if (s->gzhead->name != Z_NULL) {
-            uInt beg = s->pending;  /* start of bytes to update crc */
-            int val;
-
-            do {
-                if (s->pending == s->pending_buf_size) {
-                    if (s->gzhead->hcrc && s->pending > beg)
-                        strm->adler = crc32(strm->adler, s->pending_buf + beg,
-                                            s->pending - beg);
-                    flush_pending(strm);
-                    beg = s->pending;
-                    if (s->pending == s->pending_buf_size) {
-                        val = 1;
-                        break;
-                    }
-                }
-                val = s->gzhead->name[s->gzindex++];
-                put_byte(s, val);
-            } while (val != 0);
-            if (s->gzhead->hcrc && s->pending > beg)
-                strm->adler = crc32(strm->adler, s->pending_buf + beg,
-                                    s->pending - beg);
-            if (val == 0) {
-                s->gzindex = 0;
-                s->status = COMMENT_STATE;
-            }
-        }
-        else
-            s->status = COMMENT_STATE;
-    }
-    if (s->status == COMMENT_STATE) {
-        if (s->gzhead->comment != Z_NULL) {
-            uInt beg = s->pending;  /* start of bytes to update crc */
-            int val;
-
-            do {
-                if (s->pending == s->pending_buf_size) {
-                    if (s->gzhead->hcrc && s->pending > beg)
-                        strm->adler = crc32(strm->adler, s->pending_buf + beg,
-                                            s->pending - beg);
-                    flush_pending(strm);
-                    beg = s->pending;
-                    if (s->pending == s->pending_buf_size) {
-                        val = 1;
-                        break;
-                    }
-                }
-                val = s->gzhead->comment[s->gzindex++];
-                put_byte(s, val);
-            } while (val != 0);
-            if (s->gzhead->hcrc && s->pending > beg)
-                strm->adler = crc32(strm->adler, s->pending_buf + beg,
-                                    s->pending - beg);
-            if (val == 0)
-                s->status = HCRC_STATE;
-        }
-        else
-            s->status = HCRC_STATE;
-    }
-    if (s->status == HCRC_STATE) {
-        if (s->gzhead->hcrc) {
-            if (s->pending + 2 > s->pending_buf_size)
-                flush_pending(strm);
-            if (s->pending + 2 <= s->pending_buf_size) {
-                put_byte(s, (Byte)(strm->adler & 0xff));
-                put_byte(s, (Byte)((strm->adler >> 8) & 0xff));
-                strm->adler = crc32(0L, Z_NULL, 0);
-                s->status = BUSY_STATE;
-            }
-        }
-        else
-            s->status = BUSY_STATE;
-    }
-#endif
-
-    /* Flush as much pending output as possible */
-    if (s->pending != 0) {
-        flush_pending(strm);
-        if (strm->avail_out == 0) {
-            /* Since avail_out is 0, deflate will be called again with
-             * more output space, but possibly with both pending and
-             * avail_in equal to zero. There won't be anything to do,
-             * but this is not an error situation so make sure we
-             * return OK instead of BUF_ERROR at next call of deflate:
-             */
-            s->last_flush = -1;
-            return Z_OK;
-        }
-
-    /* Make sure there is something to do and avoid duplicate consecutive
-     * flushes. For repeated and useless calls with Z_FINISH, we keep
-     * returning Z_STREAM_END instead of Z_BUF_ERROR.
-     */
-    } else if (strm->avail_in == 0 && RANK(flush) <= RANK(old_flush) &&
-               flush != Z_FINISH) {
-        ERR_RETURN(strm, Z_BUF_ERROR);
-    }
-
-    /* User must not provide more input after the first FINISH: */
-    if (s->status == FINISH_STATE && strm->avail_in != 0) {
-        ERR_RETURN(strm, Z_BUF_ERROR);
-    }
-
-    /* Start a new block or continue the current one.
-     */
-    if (strm->avail_in != 0 || s->lookahead != 0 ||
-        (flush != Z_NO_FLUSH && s->status != FINISH_STATE)) {
-        block_state bstate;
-
-        bstate = s->strategy == Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :
-                    (s->strategy == Z_RLE ? deflate_rle(s, flush) :
-                        (*(configuration_table[s->level].func))(s, flush));
-
-        if (bstate == finish_started || bstate == finish_done) {
-            s->status = FINISH_STATE;
-        }
-        if (bstate == need_more || bstate == finish_started) {
-            if (strm->avail_out == 0) {
-                s->last_flush = -1; /* avoid BUF_ERROR next call, see above */
-            }
-            return Z_OK;
-            /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
-             * of deflate should use the same flush parameter to make sure
-             * that the flush is complete. So we don't have to output an
-             * empty block here, this will be done at next call. This also
-             * ensures that for a very small output buffer, we emit at most
-             * one empty block.
-             */
-        }
-        if (bstate == block_done) {
-            if (flush == Z_PARTIAL_FLUSH) {
-                _tr_align(s);
-            } else if (flush != Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
-                _tr_stored_block(s, (char*)0, 0L, 0);
-                /* For a full flush, this empty block will be recognized
-                 * as a special marker by inflate_sync().
-                 */
-                if (flush == Z_FULL_FLUSH) {
-                    CLEAR_HASH(s);             /* forget history */
-                    if (s->lookahead == 0) {
-                        s->strstart = 0;
-                        s->block_start = 0L;
-                        s->insert = 0;
-                    }
-                }
-            }
-            flush_pending(strm);
-            if (strm->avail_out == 0) {
-              s->last_flush = -1; /* avoid BUF_ERROR at next call, see above */
-              return Z_OK;
-            }
-        }
-    }
-    Assert(strm->avail_out > 0, "bug2");
-
-    if (flush != Z_FINISH) return Z_OK;
-    if (s->wrap <= 0) return Z_STREAM_END;
-
-    /* Write the trailer */
-#ifdef GZIP
-    if (s->wrap == 2) {
-        put_byte(s, (Byte)(strm->adler & 0xff));
-        put_byte(s, (Byte)((strm->adler >> 8) & 0xff));
-        put_byte(s, (Byte)((strm->adler >> 16) & 0xff));
-        put_byte(s, (Byte)((strm->adler >> 24) & 0xff));
-        put_byte(s, (Byte)(strm->total_in & 0xff));
-        put_byte(s, (Byte)((strm->total_in >> 8) & 0xff));
-        put_byte(s, (Byte)((strm->total_in >> 16) & 0xff));
-        put_byte(s, (Byte)((strm->total_in >> 24) & 0xff));
-    }
-    else
-#endif
-    {
-        putShortMSB(s, (uInt)(strm->adler >> 16));
-        putShortMSB(s, (uInt)(strm->adler & 0xffff));
-    }
-    flush_pending(strm);
-    /* If avail_out is zero, the application will call deflate again
-     * to flush the rest.
-     */
-    if (s->wrap > 0) s->wrap = -s->wrap; /* write the trailer only once! */
-    return s->pending != 0 ? Z_OK : Z_STREAM_END;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateEnd (strm)
-    z_streamp strm;
-{
-    int status;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-
-    status = strm->state->status;
-    if (status != INIT_STATE &&
-        status != EXTRA_STATE &&
-        status != NAME_STATE &&
-        status != COMMENT_STATE &&
-        status != HCRC_STATE &&
-        status != BUSY_STATE &&
-        status != FINISH_STATE) {
-      return Z_STREAM_ERROR;
-    }
-
-    /* Deallocate in reverse order of allocations: */
-    TRY_FREE(strm, strm->state->pending_buf);
-    TRY_FREE(strm, strm->state->head);
-    TRY_FREE(strm, strm->state->prev);
-    TRY_FREE(strm, strm->state->window);
-
-    ZFREE(strm, strm->state);
-    strm->state = Z_NULL;
-
-    return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK;
-}
-
-/* =========================================================================
- * Copy the source state to the destination state.
- * To simplify the source, this is not supported for 16-bit MSDOS (which
- * doesn't have enough memory anyway to duplicate compression states).
- */
-int ZEXPORT deflateCopy (dest, source)
-    z_streamp dest;
-    z_streamp source;
-{
-#ifdef MAXSEG_64K
-    return Z_STREAM_ERROR;
-#else
-    deflate_state *ds;
-    deflate_state *ss;
-    ushf *overlay;
-
-
-    if (source == Z_NULL || dest == Z_NULL || source->state == Z_NULL) {
-        return Z_STREAM_ERROR;
-    }
-
-    ss = source->state;
-
-    zmemcpy((voidpf)dest, (voidpf)source, sizeof(z_stream));
-
-    ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state));
-    if (ds == Z_NULL) return Z_MEM_ERROR;
-    dest->state = (struct internal_state FAR *) ds;
-    zmemcpy((voidpf)ds, (voidpf)ss, sizeof(deflate_state));
-    ds->strm = dest;
-
-    ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte));
-    ds->prev   = (Posf *)  ZALLOC(dest, ds->w_size, sizeof(Pos));
-    ds->head   = (Posf *)  ZALLOC(dest, ds->hash_size, sizeof(Pos));
-    overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2);
-    ds->pending_buf = (uchf *) overlay;
-
-    if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL ||
-        ds->pending_buf == Z_NULL) {
-        deflateEnd (dest);
-        return Z_MEM_ERROR;
-    }
-    /* following zmemcpy do not work for 16-bit MSDOS */
-    zmemcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte));
-    zmemcpy((voidpf)ds->prev, (voidpf)ss->prev, ds->w_size * sizeof(Pos));
-    zmemcpy((voidpf)ds->head, (voidpf)ss->head, ds->hash_size * sizeof(Pos));
-    zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size);
-
-    ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf);
-    ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush);
-    ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize;
-
-    ds->l_desc.dyn_tree = ds->dyn_ltree;
-    ds->d_desc.dyn_tree = ds->dyn_dtree;
-    ds->bl_desc.dyn_tree = ds->bl_tree;
-
-    return Z_OK;
-#endif /* MAXSEG_64K */
-}
-
-/* ===========================================================================
- * Read a new buffer from the current input stream, update the adler32
- * and total number of bytes read.  All deflate() input goes through
- * this function so some applications may wish to modify it to avoid
- * allocating a large strm->next_in buffer and copying from it.
- * (See also flush_pending()).
- */
-local int read_buf(strm, buf, size)
-    z_streamp strm;
-    Bytef *buf;
-    unsigned size;
-{
-    unsigned len = strm->avail_in;
-
-    if (len > size) len = size;
-    if (len == 0) return 0;
-
-    strm->avail_in  -= len;
-
-    zmemcpy(buf, strm->next_in, len);
-    if (strm->state->wrap == 1) {
-        strm->adler = adler32(strm->adler, buf, len);
-    }
-#ifdef GZIP
-    else if (strm->state->wrap == 2) {
-        strm->adler = crc32(strm->adler, buf, len);
-    }
-#endif
-    strm->next_in  += len;
-    strm->total_in += len;
-
-    return (int)len;
-}
-
-/* ===========================================================================
- * Initialize the "longest match" routines for a new zlib stream
- */
-local void lm_init (s)
-    deflate_state *s;
-{
-    s->window_size = (ulg)2L*s->w_size;
-
-    CLEAR_HASH(s);
-
-    /* Set the default configuration parameters:
-     */
-    s->max_lazy_match   = configuration_table[s->level].max_lazy;
-    s->good_match       = configuration_table[s->level].good_length;
-    s->nice_match       = configuration_table[s->level].nice_length;
-    s->max_chain_length = configuration_table[s->level].max_chain;
-
-    s->strstart = 0;
-    s->block_start = 0L;
-    s->lookahead = 0;
-    s->insert = 0;
-    s->match_length = s->prev_length = MIN_MATCH-1;
-    s->match_available = 0;
-    s->ins_h = 0;
-#ifndef FASTEST
-#ifdef ASMV
-    match_init(); /* initialize the asm code */
-#endif
-#endif
-}
-
-#ifndef FASTEST
-/* ===========================================================================
- * Set match_start to the longest match starting at the given string and
- * return its length. Matches shorter or equal to prev_length are discarded,
- * in which case the result is equal to prev_length and match_start is
- * garbage.
- * IN assertions: cur_match is the head of the hash chain for the current
- *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
- * OUT assertion: the match length is not greater than s->lookahead.
- */
-#ifndef ASMV
-/* For 80x86 and 680x0, an optimized version will be provided in match.asm or
- * match.S. The code will be functionally equivalent.
- */
-local uInt longest_match(s, cur_match)
-    deflate_state *s;
-    IPos cur_match;                             /* current match */
-{
-    unsigned chain_length = s->max_chain_length;/* max hash chain length */
-    register Bytef *scan = s->window + s->strstart; /* current string */
-    register Bytef *match;                       /* matched string */
-    register int len;                           /* length of current match */
-    int best_len = s->prev_length;              /* best match length so far */
-    int nice_match = s->nice_match;             /* stop if match long enough */
-    IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
-        s->strstart - (IPos)MAX_DIST(s) : NIL;
-    /* Stop when cur_match becomes <= limit. To simplify the code,
-     * we prevent matches with the string of window index 0.
-     */
-    Posf *prev = s->prev;
-    uInt wmask = s->w_mask;
-
-#ifdef UNALIGNED_OK
-    /* Compare two bytes at a time. Note: this is not always beneficial.
-     * Try with and without -DUNALIGNED_OK to check.
-     */
-    register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1;
-    register ush scan_start = *(ushf*)scan;
-    register ush scan_end   = *(ushf*)(scan+best_len-1);
-#else
-    register Bytef *strend = s->window + s->strstart + MAX_MATCH;
-    register Byte scan_end1  = scan[best_len-1];
-    register Byte scan_end   = scan[best_len];
-#endif
-
-    /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
-     * It is easy to get rid of this optimization if necessary.
-     */
-    Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
-
-    /* Do not waste too much time if we already have a good match: */
-    if (s->prev_length >= s->good_match) {
-        chain_length >>= 2;
-    }
-    /* Do not look for matches beyond the end of the input. This is necessary
-     * to make deflate deterministic.
-     */
-    if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
-
-    Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
-
-    do {
-        Assert(cur_match < s->strstart, "no future");
-        match = s->window + cur_match;
-
-        /* Skip to next match if the match length cannot increase
-         * or if the match length is less than 2.  Note that the checks below
-         * for insufficient lookahead only occur occasionally for performance
-         * reasons.  Therefore uninitialized memory will be accessed, and
-         * conditional jumps will be made that depend on those values.
-         * However the length of the match is limited to the lookahead, so
-         * the output of deflate is not affected by the uninitialized values.
-         */
-#if (defined(UNALIGNED_OK) && MAX_MATCH == 258)
-        /* This code assumes sizeof(unsigned short) == 2. Do not use
-         * UNALIGNED_OK if your compiler uses a different size.
-         */
-        if (*(ushf*)(match+best_len-1) != scan_end ||
-            *(ushf*)match != scan_start) continue;
-
-        /* It is not necessary to compare scan[2] and match[2] since they are
-         * always equal when the other bytes match, given that the hash keys
-         * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at
-         * strstart+3, +5, ... up to strstart+257. We check for insufficient
-         * lookahead only every 4th comparison; the 128th check will be made
-         * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is
-         * necessary to put more guard bytes at the end of the window, or
-         * to check more often for insufficient lookahead.
-         */
-        Assert(scan[2] == match[2], "scan[2]?");
-        scan++, match++;
-        do {
-        } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 scan < strend);
-        /* The funny "do {}" generates better code on most compilers */
-
-        /* Here, scan <= window+strstart+257 */
-        Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-        if (*scan == *match) scan++;
-
-        len = (MAX_MATCH - 1) - (int)(strend-scan);
-        scan = strend - (MAX_MATCH-1);
-
-#else /* UNALIGNED_OK */
-
-        if (match[best_len]   != scan_end  ||
-            match[best_len-1] != scan_end1 ||
-            *match            != *scan     ||
-            *++match          != scan[1])      continue;
-
-        /* The check at best_len-1 can be removed because it will be made
-         * again later. (This heuristic is not always a win.)
-         * It is not necessary to compare scan[2] and match[2] since they
-         * are always equal when the other bytes match, given that
-         * the hash keys are equal and that HASH_BITS >= 8.
-         */
-        scan += 2, match++;
-        Assert(*scan == *match, "match[2]?");
-
-        /* We check for insufficient lookahead only every 8th comparison;
-         * the 256th check will be made at strstart+258.
-         */
-        do {
-        } while (*++scan == *++match && *++scan == *++match &&
-                 *++scan == *++match && *++scan == *++match &&
-                 *++scan == *++match && *++scan == *++match &&
-                 *++scan == *++match && *++scan == *++match &&
-                 scan < strend);
-
-        Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-
-        len = MAX_MATCH - (int)(strend - scan);
-        scan = strend - MAX_MATCH;
-
-#endif /* UNALIGNED_OK */
-
-        if (len > best_len) {
-            s->match_start = cur_match;
-            best_len = len;
-            if (len >= nice_match) break;
-#ifdef UNALIGNED_OK
-            scan_end = *(ushf*)(scan+best_len-1);
-#else
-            scan_end1  = scan[best_len-1];
-            scan_end   = scan[best_len];
-#endif
-        }
-    } while ((cur_match = prev[cur_match & wmask]) > limit
-             && --chain_length != 0);
-
-    if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
-    return s->lookahead;
-}
-#endif /* ASMV */
-
-#else /* FASTEST */
-
-/* ---------------------------------------------------------------------------
- * Optimized version for FASTEST only
- */
-local uInt longest_match(s, cur_match)
-    deflate_state *s;
-    IPos cur_match;                             /* current match */
-{
-    register Bytef *scan = s->window + s->strstart; /* current string */
-    register Bytef *match;                       /* matched string */
-    register int len;                           /* length of current match */
-    register Bytef *strend = s->window + s->strstart + MAX_MATCH;
-
-    /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
-     * It is easy to get rid of this optimization if necessary.
-     */
-    Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
-
-    Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
-
-    Assert(cur_match < s->strstart, "no future");
-
-    match = s->window + cur_match;
-
-    /* Return failure if the match length is less than 2:
-     */
-    if (match[0] != scan[0] || match[1] != scan[1]) return MIN_MATCH-1;
-
-    /* The check at best_len-1 can be removed because it will be made
-     * again later. (This heuristic is not always a win.)
-     * It is not necessary to compare scan[2] and match[2] since they
-     * are always equal when the other bytes match, given that
-     * the hash keys are equal and that HASH_BITS >= 8.
-     */
-    scan += 2, match += 2;
-    Assert(*scan == *match, "match[2]?");
-
-    /* We check for insufficient lookahead only every 8th comparison;
-     * the 256th check will be made at strstart+258.
-     */
-    do {
-    } while (*++scan == *++match && *++scan == *++match &&
-             *++scan == *++match && *++scan == *++match &&
-             *++scan == *++match && *++scan == *++match &&
-             *++scan == *++match && *++scan == *++match &&
-             scan < strend);
-
-    Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-
-    len = MAX_MATCH - (int)(strend - scan);
-
-    if (len < MIN_MATCH) return MIN_MATCH - 1;
-
-    s->match_start = cur_match;
-    return (uInt)len <= s->lookahead ? (uInt)len : s->lookahead;
-}
-
-#endif /* FASTEST */
-
-#ifdef DEBUG
-/* ===========================================================================
- * Check that the match at match_start is indeed a match.
- */
-local void check_match(s, start, match, length)
-    deflate_state *s;
-    IPos start, match;
-    int length;
-{
-    /* check that the match is indeed a match */
-    if (zmemcmp(s->window + match,
-                s->window + start, length) != EQUAL) {
-        fprintf(stderr, " start %u, match %u, length %d\n",
-                start, match, length);
-        do {
-            fprintf(stderr, "%c%c", s->window[match++], s->window[start++]);
-        } while (--length != 0);
-        z_error("invalid match");
-    }
-    if (z_verbose > 1) {
-        fprintf(stderr,"\\[%d,%d]", start-match, length);
-        do { putc(s->window[start++], stderr); } while (--length != 0);
-    }
-}
-#else
-#  define check_match(s, start, match, length)
-#endif /* DEBUG */
-
-/* ===========================================================================
- * Fill the window when the lookahead becomes insufficient.
- * Updates strstart and lookahead.
- *
- * IN assertion: lookahead < MIN_LOOKAHEAD
- * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
- *    At least one byte has been read, or avail_in == 0; reads are
- *    performed for at least two bytes (required for the zip translate_eol
- *    option -- not supported here).
- */
-local void fill_window(s)
-    deflate_state *s;
-{
-    register unsigned n, m;
-    register Posf *p;
-    unsigned more;    /* Amount of free space at the end of the window. */
-    uInt wsize = s->w_size;
-
-    Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead");
-
-    do {
-        more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart);
-
-        /* Deal with !@#$% 64K limit: */
-        if (sizeof(int) <= 2) {
-            if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
-                more = wsize;
-
-            } else if (more == (unsigned)(-1)) {
-                /* Very unlikely, but possible on 16 bit machine if
-                 * strstart == 0 && lookahead == 1 (input done a byte at time)
-                 */
-                more--;
-            }
-        }
-
-        /* If the window is almost full and there is insufficient lookahead,
-         * move the upper half to the lower one to make room in the upper half.
-         */
-        if (s->strstart >= wsize+MAX_DIST(s)) {
-
-            zmemcpy(s->window, s->window+wsize, (unsigned)wsize);
-            s->match_start -= wsize;
-            s->strstart    -= wsize; /* we now have strstart >= MAX_DIST */
-            s->block_start -= (long) wsize;
-
-            /* Slide the hash table (could be avoided with 32 bit values
-               at the expense of memory usage). We slide even when level == 0
-               to keep the hash table consistent if we switch back to level > 0
-               later. (Using level 0 permanently is not an optimal usage of
-               zlib, so we don't care about this pathological case.)
-             */
-            n = s->hash_size;
-            p = &s->head[n];
-            do {
-                m = *--p;
-                *p = (Pos)(m >= wsize ? m-wsize : NIL);
-            } while (--n);
-
-            n = wsize;
-#ifndef FASTEST
-            p = &s->prev[n];
-            do {
-                m = *--p;
-                *p = (Pos)(m >= wsize ? m-wsize : NIL);
-                /* If n is not on any hash chain, prev[n] is garbage but
-                 * its value will never be used.
-                 */
-            } while (--n);
-#endif
-            more += wsize;
-        }
-        if (s->strm->avail_in == 0) break;
-
-        /* If there was no sliding:
-         *    strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
-         *    more == window_size - lookahead - strstart
-         * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
-         * => more >= window_size - 2*WSIZE + 2
-         * In the BIG_MEM or MMAP case (not yet supported),
-         *   window_size == input_size + MIN_LOOKAHEAD  &&
-         *   strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
-         * Otherwise, window_size == 2*WSIZE so more >= 2.
-         * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
-         */
-        Assert(more >= 2, "more < 2");
-
-        n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more);
-        s->lookahead += n;
-
-        /* Initialize the hash value now that we have some input: */
-        if (s->lookahead + s->insert >= MIN_MATCH) {
-            uInt str = s->strstart - s->insert;
-            s->ins_h = s->window[str];
-            UPDATE_HASH(s, s->ins_h, s->window[str + 1]);
-#if MIN_MATCH != 3
-            Call UPDATE_HASH() MIN_MATCH-3 more times
-#endif
-            while (s->insert) {
-                UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]);
-#ifndef FASTEST
-                s->prev[str & s->w_mask] = s->head[s->ins_h];
-#endif
-                s->head[s->ins_h] = (Pos)str;
-                str++;
-                s->insert--;
-                if (s->lookahead + s->insert < MIN_MATCH)
-                    break;
-            }
-        }
-        /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
-         * but this is not important since only literal bytes will be emitted.
-         */
-
-    } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0);
-
-    /* If the WIN_INIT bytes after the end of the current data have never been
-     * written, then zero those bytes in order to avoid memory check reports of
-     * the use of uninitialized (or uninitialised as Julian writes) bytes by
-     * the longest match routines.  Update the high water mark for the next
-     * time through here.  WIN_INIT is set to MAX_MATCH since the longest match
-     * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
-     */
-    if (s->high_water < s->window_size) {
-        ulg curr = s->strstart + (ulg)(s->lookahead);
-        ulg init;
-
-        if (s->high_water < curr) {
-            /* Previous high water mark below current data -- zero WIN_INIT
-             * bytes or up to end of window, whichever is less.
-             */
-            init = s->window_size - curr;
-            if (init > WIN_INIT)
-                init = WIN_INIT;
-            zmemzero(s->window + curr, (unsigned)init);
-            s->high_water = curr + init;
-        }
-        else if (s->high_water < (ulg)curr + WIN_INIT) {
-            /* High water mark at or above current data, but below current data
-             * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
-             * to end of window, whichever is less.
-             */
-            init = (ulg)curr + WIN_INIT - s->high_water;
-            if (init > s->window_size - s->high_water)
-                init = s->window_size - s->high_water;
-            zmemzero(s->window + s->high_water, (unsigned)init);
-            s->high_water += init;
-        }
-    }
-
-    Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,
-           "not enough room for search");
-}
-
-/* ===========================================================================
- * Flush the current block, with given end-of-file flag.
- * IN assertion: strstart is set to the end of the current match.
- */
-#define FLUSH_BLOCK_ONLY(s, last) { \
-   _tr_flush_block(s, (s->block_start >= 0L ? \
-                   (charf *)&s->window[(unsigned)s->block_start] : \
-                   (charf *)Z_NULL), \
-                (ulg)((long)s->strstart - s->block_start), \
-                (last)); \
-   s->block_start = s->strstart; \
-   flush_pending(s->strm); \
-   Tracev((stderr,"[FLUSH]")); \
-}
-
-/* Same but force premature exit if necessary. */
-#define FLUSH_BLOCK(s, last) { \
-   FLUSH_BLOCK_ONLY(s, last); \
-   if (s->strm->avail_out == 0) return (last) ? finish_started : need_more; \
-}
-
-/* ===========================================================================
- * Copy without compression as much as possible from the input stream, return
- * the current block state.
- * This function does not insert new strings in the dictionary since
- * uncompressible data is probably not useful. This function is used
- * only for the level=0 compression option.
- * NOTE: this function should be optimized to avoid extra copying from
- * window to pending_buf.
- */
-local block_state deflate_stored(s, flush)
-    deflate_state *s;
-    int flush;
-{
-    /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
-     * to pending_buf_size, and each stored block has a 5 byte header:
-     */
-    ulg max_block_size = 0xffff;
-    ulg max_start;
-
-    if (max_block_size > s->pending_buf_size - 5) {
-        max_block_size = s->pending_buf_size - 5;
-    }
-
-    /* Copy as much as possible from input to output: */
-    for (;;) {
-        /* Fill the window as much as possible: */
-        if (s->lookahead <= 1) {
-
-            Assert(s->strstart < s->w_size+MAX_DIST(s) ||
-                   s->block_start >= (long)s->w_size, "slide too late");
-
-            fill_window(s);
-            if (s->lookahead == 0 && flush == Z_NO_FLUSH) return need_more;
-
-            if (s->lookahead == 0) break; /* flush the current block */
-        }
-        Assert(s->block_start >= 0L, "block gone");
-
-        s->strstart += s->lookahead;
-        s->lookahead = 0;
-
-        /* Emit a stored block if pending_buf will be full: */
-        max_start = s->block_start + max_block_size;
-        if (s->strstart == 0 || (ulg)s->strstart >= max_start) {
-            /* strstart == 0 is possible when wraparound on 16-bit machine */
-            s->lookahead = (uInt)(s->strstart - max_start);
-            s->strstart = (uInt)max_start;
-            FLUSH_BLOCK(s, 0);
-        }
-        /* Flush if we may have to slide, otherwise block_start may become
-         * negative and the data will be gone:
-         */
-        if (s->strstart - (uInt)s->block_start >= MAX_DIST(s)) {
-            FLUSH_BLOCK(s, 0);
-        }
-    }
-    s->insert = 0;
-    if (flush == Z_FINISH) {
-        FLUSH_BLOCK(s, 1);
-        return finish_done;
-    }
-    if ((long)s->strstart > s->block_start)
-        FLUSH_BLOCK(s, 0);
-    return block_done;
-}
-
-/* ===========================================================================
- * Compress as much as possible from the input stream, return the current
- * block state.
- * This function does not perform lazy evaluation of matches and inserts
- * new strings in the dictionary only for unmatched strings or for short
- * matches. It is used only for the fast compression options.
- */
-local block_state deflate_fast(s, flush)
-    deflate_state *s;
-    int flush;
-{
-    IPos hash_head;       /* head of the hash chain */
-    int bflush;           /* set if current block must be flushed */
-
-    for (;;) {
-        /* Make sure that we always have enough lookahead, except
-         * at the end of the input file. We need MAX_MATCH bytes
-         * for the next match, plus MIN_MATCH bytes to insert the
-         * string following the next match.
-         */
-        if (s->lookahead < MIN_LOOKAHEAD) {
-            fill_window(s);
-            if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
-                return need_more;
-            }
-            if (s->lookahead == 0) break; /* flush the current block */
-        }
-
-        /* Insert the string window[strstart .. strstart+2] in the
-         * dictionary, and set hash_head to the head of the hash chain:
-         */
-        hash_head = NIL;
-        if (s->lookahead >= MIN_MATCH) {
-            INSERT_STRING(s, s->strstart, hash_head);
-        }
-
-        /* Find the longest match, discarding those <= prev_length.
-         * At this point we have always match_length < MIN_MATCH
-         */
-        if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) {
-            /* To simplify the code, we prevent matches with the string
-             * of window index 0 (in particular we have to avoid a match
-             * of the string with itself at the start of the input file).
-             */
-            s->match_length = longest_match (s, hash_head);
-            /* longest_match() sets match_start */
-        }
-        if (s->match_length >= MIN_MATCH) {
-            check_match(s, s->strstart, s->match_start, s->match_length);
-
-            _tr_tally_dist(s, s->strstart - s->match_start,
-                           s->match_length - MIN_MATCH, bflush);
-
-            s->lookahead -= s->match_length;
-
-            /* Insert new strings in the hash table only if the match length
-             * is not too large. This saves time but degrades compression.
-             */
-#ifndef FASTEST
-            if (s->match_length <= s->max_insert_length &&
-                s->lookahead >= MIN_MATCH) {
-                s->match_length--; /* string at strstart already in table */
-                do {
-                    s->strstart++;
-                    INSERT_STRING(s, s->strstart, hash_head);
-                    /* strstart never exceeds WSIZE-MAX_MATCH, so there are
-                     * always MIN_MATCH bytes ahead.
-                     */
-                } while (--s->match_length != 0);
-                s->strstart++;
-            } else
-#endif
-            {
-                s->strstart += s->match_length;
-                s->match_length = 0;
-                s->ins_h = s->window[s->strstart];
-                UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]);
-#if MIN_MATCH != 3
-                Call UPDATE_HASH() MIN_MATCH-3 more times
-#endif
-                /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
-                 * matter since it will be recomputed at next deflate call.
-                 */
-            }
-        } else {
-            /* No match, output a literal byte */
-            Tracevv((stderr,"%c", s->window[s->strstart]));
-            _tr_tally_lit (s, s->window[s->strstart], bflush);
-            s->lookahead--;
-            s->strstart++;
-        }
-        if (bflush) FLUSH_BLOCK(s, 0);
-    }
-    s->insert = s->strstart < MIN_MATCH-1 ? s->strstart : MIN_MATCH-1;
-    if (flush == Z_FINISH) {
-        FLUSH_BLOCK(s, 1);
-        return finish_done;
-    }
-    if (s->last_lit)
-        FLUSH_BLOCK(s, 0);
-    return block_done;
-}
-
-#ifndef FASTEST
-/* ===========================================================================
- * Same as above, but achieves better compression. We use a lazy
- * evaluation for matches: a match is finally adopted only if there is
- * no better match at the next window position.
- */
-local block_state deflate_slow(s, flush)
-    deflate_state *s;
-    int flush;
-{
-    IPos hash_head;          /* head of hash chain */
-    int bflush;              /* set if current block must be flushed */
-
-    /* Process the input block. */
-    for (;;) {
-        /* Make sure that we always have enough lookahead, except
-         * at the end of the input file. We need MAX_MATCH bytes
-         * for the next match, plus MIN_MATCH bytes to insert the
-         * string following the next match.
-         */
-        if (s->lookahead < MIN_LOOKAHEAD) {
-            fill_window(s);
-            if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
-                return need_more;
-            }
-            if (s->lookahead == 0) break; /* flush the current block */
-        }
-
-        /* Insert the string window[strstart .. strstart+2] in the
-         * dictionary, and set hash_head to the head of the hash chain:
-         */
-        hash_head = NIL;
-        if (s->lookahead >= MIN_MATCH) {
-            INSERT_STRING(s, s->strstart, hash_head);
-        }
-
-        /* Find the longest match, discarding those <= prev_length.
-         */
-        s->prev_length = s->match_length, s->prev_match = s->match_start;
-        s->match_length = MIN_MATCH-1;
-
-        if (hash_head != NIL && s->prev_length < s->max_lazy_match &&
-            s->strstart - hash_head <= MAX_DIST(s)) {
-            /* To simplify the code, we prevent matches with the string
-             * of window index 0 (in particular we have to avoid a match
-             * of the string with itself at the start of the input file).
-             */
-            s->match_length = longest_match (s, hash_head);
-            /* longest_match() sets match_start */
-
-            if (s->match_length <= 5 && (s->strategy == Z_FILTERED
-#if TOO_FAR <= 32767
-                || (s->match_length == MIN_MATCH &&
-                    s->strstart - s->match_start > TOO_FAR)
-#endif
-                )) {
-
-                /* If prev_match is also MIN_MATCH, match_start is garbage
-                 * but we will ignore the current match anyway.
-                 */
-                s->match_length = MIN_MATCH-1;
-            }
-        }
-        /* If there was a match at the previous step and the current
-         * match is not better, output the previous match:
-         */
-        if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) {
-            uInt max_insert = s->strstart + s->lookahead - MIN_MATCH;
-            /* Do not insert strings in hash table beyond this. */
-
-            check_match(s, s->strstart-1, s->prev_match, s->prev_length);
-
-            _tr_tally_dist(s, s->strstart -1 - s->prev_match,
-                           s->prev_length - MIN_MATCH, bflush);
-
-            /* Insert in hash table all strings up to the end of the match.
-             * strstart-1 and strstart are already inserted. If there is not
-             * enough lookahead, the last two strings are not inserted in
-             * the hash table.
-             */
-            s->lookahead -= s->prev_length-1;
-            s->prev_length -= 2;
-            do {
-                if (++s->strstart <= max_insert) {
-                    INSERT_STRING(s, s->strstart, hash_head);
-                }
-            } while (--s->prev_length != 0);
-            s->match_available = 0;
-            s->match_length = MIN_MATCH-1;
-            s->strstart++;
-
-            if (bflush) FLUSH_BLOCK(s, 0);
-
-        } else if (s->match_available) {
-            /* If there was no match at the previous position, output a
-             * single literal. If there was a match but the current match
-             * is longer, truncate the previous match to a single literal.
-             */
-            Tracevv((stderr,"%c", s->window[s->strstart-1]));
-            _tr_tally_lit(s, s->window[s->strstart-1], bflush);
-            if (bflush) {
-                FLUSH_BLOCK_ONLY(s, 0);
-            }
-            s->strstart++;
-            s->lookahead--;
-            if (s->strm->avail_out == 0) return need_more;
-        } else {
-            /* There is no previous match to compare with, wait for
-             * the next step to decide.
-             */
-            s->match_available = 1;
-            s->strstart++;
-            s->lookahead--;
-        }
-    }
-    Assert (flush != Z_NO_FLUSH, "no flush?");
-    if (s->match_available) {
-        Tracevv((stderr,"%c", s->window[s->strstart-1]));
-        _tr_tally_lit(s, s->window[s->strstart-1], bflush);
-        s->match_available = 0;
-    }
-    s->insert = s->strstart < MIN_MATCH-1 ? s->strstart : MIN_MATCH-1;
-    if (flush == Z_FINISH) {
-        FLUSH_BLOCK(s, 1);
-        return finish_done;
-    }
-    if (s->last_lit)
-        FLUSH_BLOCK(s, 0);
-    return block_done;
-}
-#endif /* FASTEST */
-
-/* ===========================================================================
- * For Z_RLE, simply look for runs of bytes, generate matches only of distance
- * one.  Do not maintain a hash table.  (It will be regenerated if this run of
- * deflate switches away from Z_RLE.)
- */
-local block_state deflate_rle(s, flush)
-    deflate_state *s;
-    int flush;
-{
-    int bflush;             /* set if current block must be flushed */
-    uInt prev;              /* byte at distance one to match */
-    Bytef *scan, *strend;   /* scan goes up to strend for length of run */
-
-    for (;;) {
-        /* Make sure that we always have enough lookahead, except
-         * at the end of the input file. We need MAX_MATCH bytes
-         * for the longest run, plus one for the unrolled loop.
-         */
-        if (s->lookahead <= MAX_MATCH) {
-            fill_window(s);
-            if (s->lookahead <= MAX_MATCH && flush == Z_NO_FLUSH) {
-                return need_more;
-            }
-            if (s->lookahead == 0) break; /* flush the current block */
-        }
-
-        /* See how many times the previous byte repeats */
-        s->match_length = 0;
-        if (s->lookahead >= MIN_MATCH && s->strstart > 0) {
-            scan = s->window + s->strstart - 1;
-            prev = *scan;
-            if (prev == *++scan && prev == *++scan && prev == *++scan) {
-                strend = s->window + s->strstart + MAX_MATCH;
-                do {
-                } while (prev == *++scan && prev == *++scan &&
-                         prev == *++scan && prev == *++scan &&
-                         prev == *++scan && prev == *++scan &&
-                         prev == *++scan && prev == *++scan &&
-                         scan < strend);
-                s->match_length = MAX_MATCH - (int)(strend - scan);
-                if (s->match_length > s->lookahead)
-                    s->match_length = s->lookahead;
-            }
-            Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan");
-        }
-
-        /* Emit match if have run of MIN_MATCH or longer, else emit literal */
-        if (s->match_length >= MIN_MATCH) {
-            check_match(s, s->strstart, s->strstart - 1, s->match_length);
-
-            _tr_tally_dist(s, 1, s->match_length - MIN_MATCH, bflush);
-
-            s->lookahead -= s->match_length;
-            s->strstart += s->match_length;
-            s->match_length = 0;
-        } else {
-            /* No match, output a literal byte */
-            Tracevv((stderr,"%c", s->window[s->strstart]));
-            _tr_tally_lit (s, s->window[s->strstart], bflush);
-            s->lookahead--;
-            s->strstart++;
-        }
-        if (bflush) FLUSH_BLOCK(s, 0);
-    }
-    s->insert = 0;
-    if (flush == Z_FINISH) {
-        FLUSH_BLOCK(s, 1);
-        return finish_done;
-    }
-    if (s->last_lit)
-        FLUSH_BLOCK(s, 0);
-    return block_done;
-}
-
-/* ===========================================================================
- * For Z_HUFFMAN_ONLY, do not look for matches.  Do not maintain a hash table.
- * (It will be regenerated if this run of deflate switches away from Huffman.)
- */
-local block_state deflate_huff(s, flush)
-    deflate_state *s;
-    int flush;
-{
-    int bflush;             /* set if current block must be flushed */
-
-    for (;;) {
-        /* Make sure that we have a literal to write. */
-        if (s->lookahead == 0) {
-            fill_window(s);
-            if (s->lookahead == 0) {
-                if (flush == Z_NO_FLUSH)
-                    return need_more;
-                break;      /* flush the current block */
-            }
-        }
-
-        /* Output a literal byte */
-        s->match_length = 0;
-        Tracevv((stderr,"%c", s->window[s->strstart]));
-        _tr_tally_lit (s, s->window[s->strstart], bflush);
-        s->lookahead--;
-        s->strstart++;
-        if (bflush) FLUSH_BLOCK(s, 0);
-    }
-    s->insert = 0;
-    if (flush == Z_FINISH) {
-        FLUSH_BLOCK(s, 1);
-        return finish_done;
-    }
-    if (s->last_lit)
-        FLUSH_BLOCK(s, 0);
-    return block_done;
-}
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/deflate.h b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/deflate.h
deleted file mode 100644
index ce0299e..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/deflate.h
+++ /dev/null
@@ -1,346 +0,0 @@
-/* deflate.h -- internal compression state
- * Copyright (C) 1995-2012 Jean-loup Gailly
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* @(#) $Id$ */
-
-#ifndef DEFLATE_H
-#define DEFLATE_H
-
-#include "zutil.h"
-
-/* define NO_GZIP when compiling if you want to disable gzip header and
-   trailer creation by deflate().  NO_GZIP would be used to avoid linking in
-   the crc code when it is not needed.  For shared libraries, gzip encoding
-   should be left enabled. */
-#ifndef NO_GZIP
-#  define GZIP
-#endif
-
-/* ===========================================================================
- * Internal compression state.
- */
-
-#define LENGTH_CODES 29
-/* number of length codes, not counting the special END_BLOCK code */
-
-#define LITERALS  256
-/* number of literal bytes 0..255 */
-
-#define L_CODES (LITERALS+1+LENGTH_CODES)
-/* number of Literal or Length codes, including the END_BLOCK code */
-
-#define D_CODES   30
-/* number of distance codes */
-
-#define BL_CODES  19
-/* number of codes used to transfer the bit lengths */
-
-#define HEAP_SIZE (2*L_CODES+1)
-/* maximum heap size */
-
-#define MAX_BITS 15
-/* All codes must not exceed MAX_BITS bits */
-
-#define Buf_size 16
-/* size of bit buffer in bi_buf */
-
-#define INIT_STATE    42
-#define EXTRA_STATE   69
-#define NAME_STATE    73
-#define COMMENT_STATE 91
-#define HCRC_STATE   103
-#define BUSY_STATE   113
-#define FINISH_STATE 666
-/* Stream status */
-
-
-/* Data structure describing a single value and its code string. */
-typedef struct ct_data_s {
-    union {
-        ush  freq;       /* frequency count */
-        ush  code;       /* bit string */
-    } fc;
-    union {
-        ush  dad;        /* father node in Huffman tree */
-        ush  len;        /* length of bit string */
-    } dl;
-} FAR ct_data;
-
-#define Freq fc.freq
-#define Code fc.code
-#define Dad  dl.dad
-#define Len  dl.len
-
-typedef struct static_tree_desc_s  static_tree_desc;
-
-typedef struct tree_desc_s {
-    ct_data *dyn_tree;           /* the dynamic tree */
-    int     max_code;            /* largest code with non zero frequency */
-    static_tree_desc *stat_desc; /* the corresponding static tree */
-} FAR tree_desc;
-
-typedef ush Pos;
-typedef Pos FAR Posf;
-typedef unsigned IPos;
-
-/* A Pos is an index in the character window. We use short instead of int to
- * save space in the various tables. IPos is used only for parameter passing.
- */
-
-typedef struct internal_state {
-    z_streamp strm;      /* pointer back to this zlib stream */
-    int   status;        /* as the name implies */
-    Bytef *pending_buf;  /* output still pending */
-    ulg   pending_buf_size; /* size of pending_buf */
-    Bytef *pending_out;  /* next pending byte to output to the stream */
-    uInt   pending;      /* nb of bytes in the pending buffer */
-    int   wrap;          /* bit 0 true for zlib, bit 1 true for gzip */
-    gz_headerp  gzhead;  /* gzip header information to write */
-    uInt   gzindex;      /* where in extra, name, or comment */
-    Byte  method;        /* can only be DEFLATED */
-    int   last_flush;    /* value of flush param for previous deflate call */
-
-                /* used by deflate.c: */
-
-    uInt  w_size;        /* LZ77 window size (32K by default) */
-    uInt  w_bits;        /* log2(w_size)  (8..16) */
-    uInt  w_mask;        /* w_size - 1 */
-
-    Bytef *window;
-    /* Sliding window. Input bytes are read into the second half of the window,
-     * and move to the first half later to keep a dictionary of at least wSize
-     * bytes. With this organization, matches are limited to a distance of
-     * wSize-MAX_MATCH bytes, but this ensures that IO is always
-     * performed with a length multiple of the block size. Also, it limits
-     * the window size to 64K, which is quite useful on MSDOS.
-     * To do: use the user input buffer as sliding window.
-     */
-
-    ulg window_size;
-    /* Actual size of window: 2*wSize, except when the user input buffer
-     * is directly used as sliding window.
-     */
-
-    Posf *prev;
-    /* Link to older string with same hash index. To limit the size of this
-     * array to 64K, this link is maintained only for the last 32K strings.
-     * An index in this array is thus a window index modulo 32K.
-     */
-
-    Posf *head; /* Heads of the hash chains or NIL. */
-
-    uInt  ins_h;          /* hash index of string to be inserted */
-    uInt  hash_size;      /* number of elements in hash table */
-    uInt  hash_bits;      /* log2(hash_size) */
-    uInt  hash_mask;      /* hash_size-1 */
-
-    uInt  hash_shift;
-    /* Number of bits by which ins_h must be shifted at each input
-     * step. It must be such that after MIN_MATCH steps, the oldest
-     * byte no longer takes part in the hash key, that is:
-     *   hash_shift * MIN_MATCH >= hash_bits
-     */
-
-    long block_start;
-    /* Window position at the beginning of the current output block. Gets
-     * negative when the window is moved backwards.
-     */
-
-    uInt match_length;           /* length of best match */
-    IPos prev_match;             /* previous match */
-    int match_available;         /* set if previous match exists */
-    uInt strstart;               /* start of string to insert */
-    uInt match_start;            /* start of matching string */
-    uInt lookahead;              /* number of valid bytes ahead in window */
-
-    uInt prev_length;
-    /* Length of the best match at previous step. Matches not greater than this
-     * are discarded. This is used in the lazy match evaluation.
-     */
-
-    uInt max_chain_length;
-    /* To speed up deflation, hash chains are never searched beyond this
-     * length.  A higher limit improves compression ratio but degrades the
-     * speed.
-     */
-
-    uInt max_lazy_match;
-    /* Attempt to find a better match only when the current match is strictly
-     * smaller than this value. This mechanism is used only for compression
-     * levels >= 4.
-     */
-#   define max_insert_length  max_lazy_match
-    /* Insert new strings in the hash table only if the match length is not
-     * greater than this length. This saves time but degrades compression.
-     * max_insert_length is used only for compression levels <= 3.
-     */
-
-    int level;    /* compression level (1..9) */
-    int strategy; /* favor or force Huffman coding*/
-
-    uInt good_match;
-    /* Use a faster search when the previous match is longer than this */
-
-    int nice_match; /* Stop searching when current match exceeds this */
-
-                /* used by trees.c: */
-    /* Didn't use ct_data typedef below to suppress compiler warning */
-    struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */
-    struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
-    struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */
-
-    struct tree_desc_s l_desc;               /* desc. for literal tree */
-    struct tree_desc_s d_desc;               /* desc. for distance tree */
-    struct tree_desc_s bl_desc;              /* desc. for bit length tree */
-
-    ush bl_count[MAX_BITS+1];
-    /* number of codes at each bit length for an optimal tree */
-
-    int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */
-    int heap_len;               /* number of elements in the heap */
-    int heap_max;               /* element of largest frequency */
-    /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
-     * The same heap array is used to build all trees.
-     */
-
-    uch depth[2*L_CODES+1];
-    /* Depth of each subtree used as tie breaker for trees of equal frequency
-     */
-
-    uchf *l_buf;          /* buffer for literals or lengths */
-
-    uInt  lit_bufsize;
-    /* Size of match buffer for literals/lengths.  There are 4 reasons for
-     * limiting lit_bufsize to 64K:
-     *   - frequencies can be kept in 16 bit counters
-     *   - if compression is not successful for the first block, all input
-     *     data is still in the window so we can still emit a stored block even
-     *     when input comes from standard input.  (This can also be done for
-     *     all blocks if lit_bufsize is not greater than 32K.)
-     *   - if compression is not successful for a file smaller than 64K, we can
-     *     even emit a stored file instead of a stored block (saving 5 bytes).
-     *     This is applicable only for zip (not gzip or zlib).
-     *   - creating new Huffman trees less frequently may not provide fast
-     *     adaptation to changes in the input data statistics. (Take for
-     *     example a binary file with poorly compressible code followed by
-     *     a highly compressible string table.) Smaller buffer sizes give
-     *     fast adaptation but have of course the overhead of transmitting
-     *     trees more frequently.
-     *   - I can't count above 4
-     */
-
-    uInt last_lit;      /* running index in l_buf */
-
-    ushf *d_buf;
-    /* Buffer for distances. To simplify the code, d_buf and l_buf have
-     * the same number of elements. To use different lengths, an extra flag
-     * array would be necessary.
-     */
-
-    ulg opt_len;        /* bit length of current block with optimal trees */
-    ulg static_len;     /* bit length of current block with static trees */
-    uInt matches;       /* number of string matches in current block */
-    uInt insert;        /* bytes at end of window left to insert */
-
-#ifdef DEBUG
-    ulg compressed_len; /* total bit length of compressed file mod 2^32 */
-    ulg bits_sent;      /* bit length of compressed data sent mod 2^32 */
-#endif
-
-    ush bi_buf;
-    /* Output buffer. bits are inserted starting at the bottom (least
-     * significant bits).
-     */
-    int bi_valid;
-    /* Number of valid bits in bi_buf.  All bits above the last valid bit
-     * are always zero.
-     */
-
-    ulg high_water;
-    /* High water mark offset in window for initialized bytes -- bytes above
-     * this are set to zero in order to avoid memory check warnings when
-     * longest match routines access bytes past the input.  This is then
-     * updated to the new high water mark.
-     */
-
-} FAR deflate_state;
-
-/* Output a byte on the stream.
- * IN assertion: there is enough room in pending_buf.
- */
-#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);}
-
-
-#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
-/* Minimum amount of lookahead, except at the end of the input file.
- * See deflate.c for comments about the MIN_MATCH+1.
- */
-
-#define MAX_DIST(s)  ((s)->w_size-MIN_LOOKAHEAD)
-/* In order to simplify the code, particularly on 16 bit machines, match
- * distances are limited to MAX_DIST instead of WSIZE.
- */
-
-#define WIN_INIT MAX_MATCH
-/* Number of bytes after end of data in window to initialize in order to avoid
-   memory checker errors from longest match routines */
-
-        /* in trees.c */
-void ZLIB_INTERNAL _tr_init OF((deflate_state *s));
-int ZLIB_INTERNAL _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc));
-void ZLIB_INTERNAL _tr_flush_block OF((deflate_state *s, charf *buf,
-                        ulg stored_len, int last));
-void ZLIB_INTERNAL _tr_flush_bits OF((deflate_state *s));
-void ZLIB_INTERNAL _tr_align OF((deflate_state *s));
-void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf,
-                        ulg stored_len, int last));
-
-#define d_code(dist) \
-   ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)])
-/* Mapping from a distance to a distance code. dist is the distance - 1 and
- * must not have side effects. _dist_code[256] and _dist_code[257] are never
- * used.
- */
-
-#ifndef DEBUG
-/* Inline versions of _tr_tally for speed: */
-
-#if defined(GEN_TREES_H) || !defined(STDC)
-  extern uch ZLIB_INTERNAL _length_code[];
-  extern uch ZLIB_INTERNAL _dist_code[];
-#else
-  extern const uch ZLIB_INTERNAL _length_code[];
-  extern const uch ZLIB_INTERNAL _dist_code[];
-#endif
-
-# define _tr_tally_lit(s, c, flush) \
-  { uch cc = (c); \
-    s->d_buf[s->last_lit] = 0; \
-    s->l_buf[s->last_lit++] = cc; \
-    s->dyn_ltree[cc].Freq++; \
-    flush = (s->last_lit == s->lit_bufsize-1); \
-   }
-# define _tr_tally_dist(s, distance, length, flush) \
-  { uch len = (length); \
-    ush dist = (distance); \
-    s->d_buf[s->last_lit] = dist; \
-    s->l_buf[s->last_lit++] = len; \
-    dist--; \
-    s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
-    s->dyn_dtree[d_code(dist)].Freq++; \
-    flush = (s->last_lit == s->lit_bufsize-1); \
-  }
-#else
-# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c)
-# define _tr_tally_dist(s, distance, length, flush) \
-              flush = _tr_tally(s, distance, length)
-#endif
-
-#endif /* DEFLATE_H */
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/gzguts.h b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/gzguts.h
deleted file mode 100644
index d87659d..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/gzguts.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/* gzguts.h -- zlib internal header definitions for gz* operations
- * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#ifdef _LARGEFILE64_SOURCE
-#  ifndef _LARGEFILE_SOURCE
-#    define _LARGEFILE_SOURCE 1
-#  endif
-#  ifdef _FILE_OFFSET_BITS
-#    undef _FILE_OFFSET_BITS
-#  endif
-#endif
-
-#ifdef HAVE_HIDDEN
-#  define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
-#else
-#  define ZLIB_INTERNAL
-#endif
-
-#include <stdio.h>
-#include "zlib.h"
-#ifdef STDC
-#  include <string.h>
-#  include <stdlib.h>
-#  include <limits.h>
-#endif
-#include <fcntl.h>
-
-#ifdef _WIN32
-#  include <stddef.h>
-#endif
-
-#if defined(__TURBOC__) || defined(_MSC_VER) || defined(_WIN32)
-#  include <io.h>
-#endif
-
-#ifdef WINAPI_FAMILY
-#  define open _open
-#  define read _read
-#  define write _write
-#  define close _close
-#endif
-
-#ifdef NO_DEFLATE       /* for compatibility with old definition */
-#  define NO_GZCOMPRESS
-#endif
-
-#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550)
-#  ifndef HAVE_VSNPRINTF
-#    define HAVE_VSNPRINTF
-#  endif
-#endif
-
-#if defined(__CYGWIN__)
-#  ifndef HAVE_VSNPRINTF
-#    define HAVE_VSNPRINTF
-#  endif
-#endif
-
-#if defined(MSDOS) && defined(__BORLANDC__) && (BORLANDC > 0x410)
-#  ifndef HAVE_VSNPRINTF
-#    define HAVE_VSNPRINTF
-#  endif
-#endif
-
-#ifndef HAVE_VSNPRINTF
-#  ifdef MSDOS
-/* vsnprintf may exist on some MS-DOS compilers (DJGPP?),
-   but for now we just assume it doesn't. */
-#    define NO_vsnprintf
-#  endif
-#  ifdef __TURBOC__
-#    define NO_vsnprintf
-#  endif
-#  ifdef WIN32
-/* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */
-#    if !defined(vsnprintf) && !defined(NO_vsnprintf)
-#      if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 )
-#         define vsnprintf _vsnprintf
-#      endif
-#    endif
-#  endif
-#  ifdef __SASC
-#    define NO_vsnprintf
-#  endif
-#  ifdef VMS
-#    define NO_vsnprintf
-#  endif
-#  ifdef __OS400__
-#    define NO_vsnprintf
-#  endif
-#  ifdef __MVS__
-#    define NO_vsnprintf
-#  endif
-#endif
-
-/* unlike snprintf (which is required in C99, yet still not supported by
-   Microsoft more than a decade later!), _snprintf does not guarantee null
-   termination of the result -- however this is only used in gzlib.c where
-   the result is assured to fit in the space provided */
-#ifdef _MSC_VER
-#  define snprintf _snprintf
-#endif
-
-#ifndef local
-#  define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-/* gz* functions always use library allocation functions */
-#ifndef STDC
-  extern voidp  malloc OF((uInt size));
-  extern void   free   OF((voidpf ptr));
-#endif
-
-/* get errno and strerror definition */
-#if defined UNDER_CE
-#  include <windows.h>
-#  define zstrerror() gz_strwinerror((DWORD)GetLastError())
-#else
-#  ifndef NO_STRERROR
-#    include <errno.h>
-#    define zstrerror() strerror(errno)
-#  else
-#    define zstrerror() "stdio error (consult errno)"
-#  endif
-#endif
-
-/* provide prototypes for these when building zlib without LFS */
-#if !defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0
-    ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
-    ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int));
-    ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile));
-    ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile));
-#endif
-
-/* default memLevel */
-#if MAX_MEM_LEVEL >= 8
-#  define DEF_MEM_LEVEL 8
-#else
-#  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
-#endif
-
-/* default i/o buffer size -- double this for output when reading (this and
-   twice this must be able to fit in an unsigned type) */
-#define GZBUFSIZE 8192
-
-/* gzip modes, also provide a little integrity check on the passed structure */
-#define GZ_NONE 0
-#define GZ_READ 7247
-#define GZ_WRITE 31153
-#define GZ_APPEND 1     /* mode set to GZ_WRITE after the file is opened */
-
-/* values for gz_state how */
-#define LOOK 0      /* look for a gzip header */
-#define COPY 1      /* copy input directly */
-#define GZIP 2      /* decompress a gzip stream */
-
-/* internal gzip file state data structure */
-typedef struct {
-        /* exposed contents for gzgetc() macro */
-    struct gzFile_s x;      /* "x" for exposed */
-                            /* x.have: number of bytes available at x.next */
-                            /* x.next: next output data to deliver or write */
-                            /* x.pos: current position in uncompressed data */
-        /* used for both reading and writing */
-    int mode;               /* see gzip modes above */
-    int fd;                 /* file descriptor */
-    char *path;             /* path or fd for error messages */
-    unsigned size;          /* buffer size, zero if not allocated yet */
-    unsigned want;          /* requested buffer size, default is GZBUFSIZE */
-    unsigned char *in;      /* input buffer */
-    unsigned char *out;     /* output buffer (double-sized when reading) */
-    int direct;             /* 0 if processing gzip, 1 if transparent */
-        /* just for reading */
-    int how;                /* 0: get header, 1: copy, 2: decompress */
-    z_off64_t start;        /* where the gzip data started, for rewinding */
-    int eof;                /* true if end of input file reached */
-    int past;               /* true if read requested past end */
-        /* just for writing */
-    int level;              /* compression level */
-    int strategy;           /* compression strategy */
-        /* seek request */
-    z_off64_t skip;         /* amount to skip (already rewound if backwards) */
-    int seek;               /* true if seek request pending */
-        /* error information */
-    int err;                /* error code */
-    char *msg;              /* error message */
-        /* zlib inflate or deflate stream */
-    z_stream strm;          /* stream structure in-place (not a pointer) */
-} gz_state;
-typedef gz_state FAR *gz_statep;
-
-/* shared functions */
-void ZLIB_INTERNAL gz_error OF((gz_statep, int, const char *));
-#if defined UNDER_CE
-char ZLIB_INTERNAL *gz_strwinerror OF((DWORD error));
-#endif
-
-/* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
-   value -- needed when comparing unsigned to z_off64_t, which is signed
-   (possible z_off64_t types off_t, off64_t, and long are all signed) */
-#ifdef INT_MAX
-#  define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > INT_MAX)
-#else
-unsigned ZLIB_INTERNAL gz_intmax OF((void));
-#  define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > gz_intmax())
-#endif
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/infback.c b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/infback.c
deleted file mode 100644
index f3833c2..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/infback.c
+++ /dev/null
@@ -1,640 +0,0 @@
-/* infback.c -- inflate using a call-back interface
- * Copyright (C) 1995-2011 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
-   This code is largely copied from inflate.c.  Normally either infback.o or
-   inflate.o would be linked into an application--not both.  The interface
-   with inffast.c is retained so that optimized assembler-coded versions of
-   inflate_fast() can be used with either inflate.c or infback.c.
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-#include "inflate.h"
-#include "inffast.h"
-
-/* function prototypes */
-local void fixedtables OF((struct inflate_state FAR *state));
-
-/*
-   strm provides memory allocation functions in zalloc and zfree, or
-   Z_NULL to use the library memory allocation functions.
-
-   windowBits is in the range 8..15, and window is a user-supplied
-   window and output buffer that is 2**windowBits bytes.
- */
-int ZEXPORT inflateBackInit_(strm, windowBits, window, version, stream_size)
-z_streamp strm;
-int windowBits;
-unsigned char FAR *window;
-const char *version;
-int stream_size;
-{
-    struct inflate_state FAR *state;
-
-    if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||
-        stream_size != (int)(sizeof(z_stream)))
-        return Z_VERSION_ERROR;
-    if (strm == Z_NULL || window == Z_NULL ||
-        windowBits < 8 || windowBits > 15)
-        return Z_STREAM_ERROR;
-    strm->msg = Z_NULL;                 /* in case we return an error */
-    if (strm->zalloc == (alloc_func)0) {
-#ifdef Z_SOLO
-        return Z_STREAM_ERROR;
-#else
-        strm->zalloc = zcalloc;
-        strm->opaque = (voidpf)0;
-#endif
-    }
-    if (strm->zfree == (free_func)0)
-#ifdef Z_SOLO
-        return Z_STREAM_ERROR;
-#else
-    strm->zfree = zcfree;
-#endif
-    state = (struct inflate_state FAR *)ZALLOC(strm, 1,
-                                               sizeof(struct inflate_state));
-    if (state == Z_NULL) return Z_MEM_ERROR;
-    Tracev((stderr, "inflate: allocated\n"));
-    strm->state = (struct internal_state FAR *)state;
-    state->dmax = 32768U;
-    state->wbits = windowBits;
-    state->wsize = 1U << windowBits;
-    state->window = window;
-    state->wnext = 0;
-    state->whave = 0;
-    return Z_OK;
-}
-
-/*
-   Return state with length and distance decoding tables and index sizes set to
-   fixed code decoding.  Normally this returns fixed tables from inffixed.h.
-   If BUILDFIXED is defined, then instead this routine builds the tables the
-   first time it's called, and returns those tables the first time and
-   thereafter.  This reduces the size of the code by about 2K bytes, in
-   exchange for a little execution time.  However, BUILDFIXED should not be
-   used for threaded applications, since the rewriting of the tables and virgin
-   may not be thread-safe.
- */
-local void fixedtables(state)
-struct inflate_state FAR *state;
-{
-#ifdef BUILDFIXED
-    static int virgin = 1;
-    static code *lenfix, *distfix;
-    static code fixed[544];
-
-    /* build fixed huffman tables if first call (may not be thread safe) */
-    if (virgin) {
-        unsigned sym, bits;
-        static code *next;
-
-        /* literal/length table */
-        sym = 0;
-        while (sym < 144) state->lens[sym++] = 8;
-        while (sym < 256) state->lens[sym++] = 9;
-        while (sym < 280) state->lens[sym++] = 7;
-        while (sym < 288) state->lens[sym++] = 8;
-        next = fixed;
-        lenfix = next;
-        bits = 9;
-        inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work);
-
-        /* distance table */
-        sym = 0;
-        while (sym < 32) state->lens[sym++] = 5;
-        distfix = next;
-        bits = 5;
-        inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work);
-
-        /* do this just once */
-        virgin = 0;
-    }
-#else /* !BUILDFIXED */
-#   include "inffixed.h"
-#endif /* BUILDFIXED */
-    state->lencode = lenfix;
-    state->lenbits = 9;
-    state->distcode = distfix;
-    state->distbits = 5;
-}
-
-/* Macros for inflateBack(): */
-
-/* Load returned state from inflate_fast() */
-#define LOAD() \
-    do { \
-        put = strm->next_out; \
-        left = strm->avail_out; \
-        next = strm->next_in; \
-        have = strm->avail_in; \
-        hold = state->hold; \
-        bits = state->bits; \
-    } while (0)
-
-/* Set state from registers for inflate_fast() */
-#define RESTORE() \
-    do { \
-        strm->next_out = put; \
-        strm->avail_out = left; \
-        strm->next_in = next; \
-        strm->avail_in = have; \
-        state->hold = hold; \
-        state->bits = bits; \
-    } while (0)
-
-/* Clear the input bit accumulator */
-#define INITBITS() \
-    do { \
-        hold = 0; \
-        bits = 0; \
-    } while (0)
-
-/* Assure that some input is available.  If input is requested, but denied,
-   then return a Z_BUF_ERROR from inflateBack(). */
-#define PULL() \
-    do { \
-        if (have == 0) { \
-            have = in(in_desc, &next); \
-            if (have == 0) { \
-                next = Z_NULL; \
-                ret = Z_BUF_ERROR; \
-                goto inf_leave; \
-            } \
-        } \
-    } while (0)
-
-/* Get a byte of input into the bit accumulator, or return from inflateBack()
-   with an error if there is no input available. */
-#define PULLBYTE() \
-    do { \
-        PULL(); \
-        have--; \
-        hold += (unsigned long)(*next++) << bits; \
-        bits += 8; \
-    } while (0)
-
-/* Assure that there are at least n bits in the bit accumulator.  If there is
-   not enough available input to do that, then return from inflateBack() with
-   an error. */
-#define NEEDBITS(n) \
-    do { \
-        while (bits < (unsigned)(n)) \
-            PULLBYTE(); \
-    } while (0)
-
-/* Return the low n bits of the bit accumulator (n < 16) */
-#define BITS(n) \
-    ((unsigned)hold & ((1U << (n)) - 1))
-
-/* Remove n bits from the bit accumulator */
-#define DROPBITS(n) \
-    do { \
-        hold >>= (n); \
-        bits -= (unsigned)(n); \
-    } while (0)
-
-/* Remove zero to seven bits as needed to go to a byte boundary */
-#define BYTEBITS() \
-    do { \
-        hold >>= bits & 7; \
-        bits -= bits & 7; \
-    } while (0)
-
-/* Assure that some output space is available, by writing out the window
-   if it's full.  If the write fails, return from inflateBack() with a
-   Z_BUF_ERROR. */
-#define ROOM() \
-    do { \
-        if (left == 0) { \
-            put = state->window; \
-            left = state->wsize; \
-            state->whave = left; \
-            if (out(out_desc, put, left)) { \
-                ret = Z_BUF_ERROR; \
-                goto inf_leave; \
-            } \
-        } \
-    } while (0)
-
-/*
-   strm provides the memory allocation functions and window buffer on input,
-   and provides information on the unused input on return.  For Z_DATA_ERROR
-   returns, strm will also provide an error message.
-
-   in() and out() are the call-back input and output functions.  When
-   inflateBack() needs more input, it calls in().  When inflateBack() has
-   filled the window with output, or when it completes with data in the
-   window, it calls out() to write out the data.  The application must not
-   change the provided input until in() is called again or inflateBack()
-   returns.  The application must not change the window/output buffer until
-   inflateBack() returns.
-
-   in() and out() are called with a descriptor parameter provided in the
-   inflateBack() call.  This parameter can be a structure that provides the
-   information required to do the read or write, as well as accumulated
-   information on the input and output such as totals and check values.
-
-   in() should return zero on failure.  out() should return non-zero on
-   failure.  If either in() or out() fails, than inflateBack() returns a
-   Z_BUF_ERROR.  strm->next_in can be checked for Z_NULL to see whether it
-   was in() or out() that caused in the error.  Otherwise,  inflateBack()
-   returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format
-   error, or Z_MEM_ERROR if it could not allocate memory for the state.
-   inflateBack() can also return Z_STREAM_ERROR if the input parameters
-   are not correct, i.e. strm is Z_NULL or the state was not initialized.
- */
-int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc)
-z_streamp strm;
-in_func in;
-void FAR *in_desc;
-out_func out;
-void FAR *out_desc;
-{
-    struct inflate_state FAR *state;
-    z_const unsigned char FAR *next;    /* next input */
-    unsigned char FAR *put;     /* next output */
-    unsigned have, left;        /* available input and output */
-    unsigned long hold;         /* bit buffer */
-    unsigned bits;              /* bits in bit buffer */
-    unsigned copy;              /* number of stored or match bytes to copy */
-    unsigned char FAR *from;    /* where to copy match bytes from */
-    code here;                  /* current decoding table entry */
-    code last;                  /* parent table entry */
-    unsigned len;               /* length to copy for repeats, bits to drop */
-    int ret;                    /* return code */
-    static const unsigned short order[19] = /* permutation of code lengths */
-        {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
-
-    /* Check that the strm exists and that the state was initialized */
-    if (strm == Z_NULL || strm->state == Z_NULL)
-        return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-
-    /* Reset the state */
-    strm->msg = Z_NULL;
-    state->mode = TYPE;
-    state->last = 0;
-    state->whave = 0;
-    next = strm->next_in;
-    have = next != Z_NULL ? strm->avail_in : 0;
-    hold = 0;
-    bits = 0;
-    put = state->window;
-    left = state->wsize;
-
-    /* Inflate until end of block marked as last */
-    for (;;)
-        switch (state->mode) {
-        case TYPE:
-            /* determine and dispatch block type */
-            if (state->last) {
-                BYTEBITS();
-                state->mode = DONE;
-                break;
-            }
-            NEEDBITS(3);
-            state->last = BITS(1);
-            DROPBITS(1);
-            switch (BITS(2)) {
-            case 0:                             /* stored block */
-                Tracev((stderr, "inflate:     stored block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = STORED;
-                break;
-            case 1:                             /* fixed block */
-                fixedtables(state);
-                Tracev((stderr, "inflate:     fixed codes block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = LEN;              /* decode codes */
-                break;
-            case 2:                             /* dynamic block */
-                Tracev((stderr, "inflate:     dynamic codes block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = TABLE;
-                break;
-            case 3:
-                strm->msg = (char *)"invalid block type";
-                state->mode = BAD;
-            }
-            DROPBITS(2);
-            break;
-
-        case STORED:
-            /* get and verify stored block length */
-            BYTEBITS();                         /* go to byte boundary */
-            NEEDBITS(32);
-            if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {
-                strm->msg = (char *)"invalid stored block lengths";
-                state->mode = BAD;
-                break;
-            }
-            state->length = (unsigned)hold & 0xffff;
-            Tracev((stderr, "inflate:       stored length %u\n",
-                    state->length));
-            INITBITS();
-
-            /* copy stored block from input to output */
-            while (state->length != 0) {
-                copy = state->length;
-                PULL();
-                ROOM();
-                if (copy > have) copy = have;
-                if (copy > left) copy = left;
-                zmemcpy(put, next, copy);
-                have -= copy;
-                next += copy;
-                left -= copy;
-                put += copy;
-                state->length -= copy;
-            }
-            Tracev((stderr, "inflate:       stored end\n"));
-            state->mode = TYPE;
-            break;
-
-        case TABLE:
-            /* get dynamic table entries descriptor */
-            NEEDBITS(14);
-            state->nlen = BITS(5) + 257;
-            DROPBITS(5);
-            state->ndist = BITS(5) + 1;
-            DROPBITS(5);
-            state->ncode = BITS(4) + 4;
-            DROPBITS(4);
-#ifndef PKZIP_BUG_WORKAROUND
-            if (state->nlen > 286 || state->ndist > 30) {
-                strm->msg = (char *)"too many length or distance symbols";
-                state->mode = BAD;
-                break;
-            }
-#endif
-            Tracev((stderr, "inflate:       table sizes ok\n"));
-
-            /* get code length code lengths (not a typo) */
-            state->have = 0;
-            while (state->have < state->ncode) {
-                NEEDBITS(3);
-                state->lens[order[state->have++]] = (unsigned short)BITS(3);
-                DROPBITS(3);
-            }
-            while (state->have < 19)
-                state->lens[order[state->have++]] = 0;
-            state->next = state->codes;
-            state->lencode = (code const FAR *)(state->next);
-            state->lenbits = 7;
-            ret = inflate_table(CODES, state->lens, 19, &(state->next),
-                                &(state->lenbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid code lengths set";
-                state->mode = BAD;
-                break;
-            }
-            Tracev((stderr, "inflate:       code lengths ok\n"));
-
-            /* get length and distance code code lengths */
-            state->have = 0;
-            while (state->have < state->nlen + state->ndist) {
-                for (;;) {
-                    here = state->lencode[BITS(state->lenbits)];
-                    if ((unsigned)(here.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                if (here.val < 16) {
-                    DROPBITS(here.bits);
-                    state->lens[state->have++] = here.val;
-                }
-                else {
-                    if (here.val == 16) {
-                        NEEDBITS(here.bits + 2);
-                        DROPBITS(here.bits);
-                        if (state->have == 0) {
-                            strm->msg = (char *)"invalid bit length repeat";
-                            state->mode = BAD;
-                            break;
-                        }
-                        len = (unsigned)(state->lens[state->have - 1]);
-                        copy = 3 + BITS(2);
-                        DROPBITS(2);
-                    }
-                    else if (here.val == 17) {
-                        NEEDBITS(here.bits + 3);
-                        DROPBITS(here.bits);
-                        len = 0;
-                        copy = 3 + BITS(3);
-                        DROPBITS(3);
-                    }
-                    else {
-                        NEEDBITS(here.bits + 7);
-                        DROPBITS(here.bits);
-                        len = 0;
-                        copy = 11 + BITS(7);
-                        DROPBITS(7);
-                    }
-                    if (state->have + copy > state->nlen + state->ndist) {
-                        strm->msg = (char *)"invalid bit length repeat";
-                        state->mode = BAD;
-                        break;
-                    }
-                    while (copy--)
-                        state->lens[state->have++] = (unsigned short)len;
-                }
-            }
-
-            /* handle error breaks in while */
-            if (state->mode == BAD) break;
-
-            /* check for end-of-block code (better have one) */
-            if (state->lens[256] == 0) {
-                strm->msg = (char *)"invalid code -- missing end-of-block";
-                state->mode = BAD;
-                break;
-            }
-
-            /* build code tables -- note: do not change the lenbits or distbits
-               values here (9 and 6) without reading the comments in inftrees.h
-               concerning the ENOUGH constants, which depend on those values */
-            state->next = state->codes;
-            state->lencode = (code const FAR *)(state->next);
-            state->lenbits = 9;
-            ret = inflate_table(LENS, state->lens, state->nlen, &(state->next),
-                                &(state->lenbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid literal/lengths set";
-                state->mode = BAD;
-                break;
-            }
-            state->distcode = (code const FAR *)(state->next);
-            state->distbits = 6;
-            ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist,
-                            &(state->next), &(state->distbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid distances set";
-                state->mode = BAD;
-                break;
-            }
-            Tracev((stderr, "inflate:       codes ok\n"));
-            state->mode = LEN;
-
-        case LEN:
-            /* use inflate_fast() if we have enough input and output */
-            if (have >= 6 && left >= 258) {
-                RESTORE();
-                if (state->whave < state->wsize)
-                    state->whave = state->wsize - left;
-                inflate_fast(strm, state->wsize);
-                LOAD();
-                break;
-            }
-
-            /* get a literal, length, or end-of-block code */
-            for (;;) {
-                here = state->lencode[BITS(state->lenbits)];
-                if ((unsigned)(here.bits) <= bits) break;
-                PULLBYTE();
-            }
-            if (here.op && (here.op & 0xf0) == 0) {
-                last = here;
-                for (;;) {
-                    here = state->lencode[last.val +
-                            (BITS(last.bits + last.op) >> last.bits)];
-                    if ((unsigned)(last.bits + here.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                DROPBITS(last.bits);
-            }
-            DROPBITS(here.bits);
-            state->length = (unsigned)here.val;
-
-            /* process literal */
-            if (here.op == 0) {
-                Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
-                        "inflate:         literal '%c'\n" :
-                        "inflate:         literal 0x%02x\n", here.val));
-                ROOM();
-                *put++ = (unsigned char)(state->length);
-                left--;
-                state->mode = LEN;
-                break;
-            }
-
-            /* process end of block */
-            if (here.op & 32) {
-                Tracevv((stderr, "inflate:         end of block\n"));
-                state->mode = TYPE;
-                break;
-            }
-
-            /* invalid code */
-            if (here.op & 64) {
-                strm->msg = (char *)"invalid literal/length code";
-                state->mode = BAD;
-                break;
-            }
-
-            /* length code -- get extra bits, if any */
-            state->extra = (unsigned)(here.op) & 15;
-            if (state->extra != 0) {
-                NEEDBITS(state->extra);
-                state->length += BITS(state->extra);
-                DROPBITS(state->extra);
-            }
-            Tracevv((stderr, "inflate:         length %u\n", state->length));
-
-            /* get distance code */
-            for (;;) {
-                here = state->distcode[BITS(state->distbits)];
-                if ((unsigned)(here.bits) <= bits) break;
-                PULLBYTE();
-            }
-            if ((here.op & 0xf0) == 0) {
-                last = here;
-                for (;;) {
-                    here = state->distcode[last.val +
-                            (BITS(last.bits + last.op) >> last.bits)];
-                    if ((unsigned)(last.bits + here.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                DROPBITS(last.bits);
-            }
-            DROPBITS(here.bits);
-            if (here.op & 64) {
-                strm->msg = (char *)"invalid distance code";
-                state->mode = BAD;
-                break;
-            }
-            state->offset = (unsigned)here.val;
-
-            /* get distance extra bits, if any */
-            state->extra = (unsigned)(here.op) & 15;
-            if (state->extra != 0) {
-                NEEDBITS(state->extra);
-                state->offset += BITS(state->extra);
-                DROPBITS(state->extra);
-            }
-            if (state->offset > state->wsize - (state->whave < state->wsize ?
-                                                left : 0)) {
-                strm->msg = (char *)"invalid distance too far back";
-                state->mode = BAD;
-                break;
-            }
-            Tracevv((stderr, "inflate:         distance %u\n", state->offset));
-
-            /* copy match from window to output */
-            do {
-                ROOM();
-                copy = state->wsize - state->offset;
-                if (copy < left) {
-                    from = put + copy;
-                    copy = left - copy;
-                }
-                else {
-                    from = put - state->offset;
-                    copy = left;
-                }
-                if (copy > state->length) copy = state->length;
-                state->length -= copy;
-                left -= copy;
-                do {
-                    *put++ = *from++;
-                } while (--copy);
-            } while (state->length != 0);
-            break;
-
-        case DONE:
-            /* inflate stream terminated properly -- write leftover output */
-            ret = Z_STREAM_END;
-            if (left < state->wsize) {
-                if (out(out_desc, state->window, state->wsize - left))
-                    ret = Z_BUF_ERROR;
-            }
-            goto inf_leave;
-
-        case BAD:
-            ret = Z_DATA_ERROR;
-            goto inf_leave;
-
-        default:                /* can't happen, but makes compilers happy */
-            ret = Z_STREAM_ERROR;
-            goto inf_leave;
-        }
-
-    /* Return unused input */
-  inf_leave:
-    strm->next_in = next;
-    strm->avail_in = have;
-    return ret;
-}
-
-int ZEXPORT inflateBackEnd(strm)
-z_streamp strm;
-{
-    if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
-        return Z_STREAM_ERROR;
-    ZFREE(strm, strm->state);
-    strm->state = Z_NULL;
-    Tracev((stderr, "inflate: end\n"));
-    return Z_OK;
-}
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inffast.c b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inffast.c
deleted file mode 100644
index bda59ce..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inffast.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/* inffast.c -- fast decoding
- * Copyright (C) 1995-2008, 2010, 2013 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-#include "inflate.h"
-#include "inffast.h"
-
-#ifndef ASMINF
-
-/* Allow machine dependent optimization for post-increment or pre-increment.
-   Based on testing to date,
-   Pre-increment preferred for:
-   - PowerPC G3 (Adler)
-   - MIPS R5000 (Randers-Pehrson)
-   Post-increment preferred for:
-   - none
-   No measurable difference:
-   - Pentium III (Anderson)
-   - M68060 (Nikl)
- */
-#ifdef POSTINC
-#  define OFF 0
-#  define PUP(a) *(a)++
-#else
-#  define OFF 1
-#  define PUP(a) *++(a)
-#endif
-
-/*
-   Decode literal, length, and distance codes and write out the resulting
-   literal and match bytes until either not enough input or output is
-   available, an end-of-block is encountered, or a data error is encountered.
-   When large enough input and output buffers are supplied to inflate(), for
-   example, a 16K input buffer and a 64K output buffer, more than 95% of the
-   inflate execution time is spent in this routine.
-
-   Entry assumptions:
-
-        state->mode == LEN
-        strm->avail_in >= 6
-        strm->avail_out >= 258
-        start >= strm->avail_out
-        state->bits < 8
-
-   On return, state->mode is one of:
-
-        LEN -- ran out of enough output space or enough available input
-        TYPE -- reached end of block code, inflate() to interpret next block
-        BAD -- error in block data
-
-   Notes:
-
-    - The maximum input bits used by a length/distance pair is 15 bits for the
-      length code, 5 bits for the length extra, 15 bits for the distance code,
-      and 13 bits for the distance extra.  This totals 48 bits, or six bytes.
-      Therefore if strm->avail_in >= 6, then there is enough input to avoid
-      checking for available input while decoding.
-
-    - The maximum bytes that a single length/distance pair can output is 258
-      bytes, which is the maximum length that can be coded.  inflate_fast()
-      requires strm->avail_out >= 258 for each loop to avoid checking for
-      output space.
- */
-void ZLIB_INTERNAL inflate_fast(strm, start)
-z_streamp strm;
-unsigned start;         /* inflate()'s starting value for strm->avail_out */
-{
-    struct inflate_state FAR *state;
-    z_const unsigned char FAR *in;      /* local strm->next_in */
-    z_const unsigned char FAR *last;    /* have enough input while in < last */
-    unsigned char FAR *out;     /* local strm->next_out */
-    unsigned char FAR *beg;     /* inflate()'s initial strm->next_out */
-    unsigned char FAR *end;     /* while out < end, enough space available */
-#ifdef INFLATE_STRICT
-    unsigned dmax;              /* maximum distance from zlib header */
-#endif
-    unsigned wsize;             /* window size or zero if not using window */
-    unsigned whave;             /* valid bytes in the window */
-    unsigned wnext;             /* window write index */
-    unsigned char FAR *window;  /* allocated sliding window, if wsize != 0 */
-    unsigned long hold;         /* local strm->hold */
-    unsigned bits;              /* local strm->bits */
-    code const FAR *lcode;      /* local strm->lencode */
-    code const FAR *dcode;      /* local strm->distcode */
-    unsigned lmask;             /* mask for first level of length codes */
-    unsigned dmask;             /* mask for first level of distance codes */
-    code here;                  /* retrieved table entry */
-    unsigned op;                /* code bits, operation, extra bits, or */
-                                /*  window position, window bytes to copy */
-    unsigned len;               /* match length, unused bytes */
-    unsigned dist;              /* match distance */
-    unsigned char FAR *from;    /* where to copy match from */
-
-    /* copy state to local variables */
-    state = (struct inflate_state FAR *)strm->state;
-    in = strm->next_in - OFF;
-    last = in + (strm->avail_in - 5);
-    out = strm->next_out - OFF;
-    beg = out - (start - strm->avail_out);
-    end = out + (strm->avail_out - 257);
-#ifdef INFLATE_STRICT
-    dmax = state->dmax;
-#endif
-    wsize = state->wsize;
-    whave = state->whave;
-    wnext = state->wnext;
-    window = state->window;
-    hold = state->hold;
-    bits = state->bits;
-    lcode = state->lencode;
-    dcode = state->distcode;
-    lmask = (1U << state->lenbits) - 1;
-    dmask = (1U << state->distbits) - 1;
-
-    /* decode literals and length/distances until end-of-block or not enough
-       input data or output space */
-    do {
-        if (bits < 15) {
-            hold += (unsigned long)(PUP(in)) << bits;
-            bits += 8;
-            hold += (unsigned long)(PUP(in)) << bits;
-            bits += 8;
-        }
-        here = lcode[hold & lmask];
-      dolen:
-        op = (unsigned)(here.bits);
-        hold >>= op;
-        bits -= op;
-        op = (unsigned)(here.op);
-        if (op == 0) {                          /* literal */
-            Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
-                    "inflate:         literal '%c'\n" :
-                    "inflate:         literal 0x%02x\n", here.val));
-            PUP(out) = (unsigned char)(here.val);
-        }
-        else if (op & 16) {                     /* length base */
-            len = (unsigned)(here.val);
-            op &= 15;                           /* number of extra bits */
-            if (op) {
-                if (bits < op) {
-                    hold += (unsigned long)(PUP(in)) << bits;
-                    bits += 8;
-                }
-                len += (unsigned)hold & ((1U << op) - 1);
-                hold >>= op;
-                bits -= op;
-            }
-            Tracevv((stderr, "inflate:         length %u\n", len));
-            if (bits < 15) {
-                hold += (unsigned long)(PUP(in)) << bits;
-                bits += 8;
-                hold += (unsigned long)(PUP(in)) << bits;
-                bits += 8;
-            }
-            here = dcode[hold & dmask];
-          dodist:
-            op = (unsigned)(here.bits);
-            hold >>= op;
-            bits -= op;
-            op = (unsigned)(here.op);
-            if (op & 16) {                      /* distance base */
-                dist = (unsigned)(here.val);
-                op &= 15;                       /* number of extra bits */
-                if (bits < op) {
-                    hold += (unsigned long)(PUP(in)) << bits;
-                    bits += 8;
-                    if (bits < op) {
-                        hold += (unsigned long)(PUP(in)) << bits;
-                        bits += 8;
-                    }
-                }
-                dist += (unsigned)hold & ((1U << op) - 1);
-#ifdef INFLATE_STRICT
-                if (dist > dmax) {
-                    strm->msg = (char *)"invalid distance too far back";
-                    state->mode = BAD;
-                    break;
-                }
-#endif
-                hold >>= op;
-                bits -= op;
-                Tracevv((stderr, "inflate:         distance %u\n", dist));
-                op = (unsigned)(out - beg);     /* max distance in output */
-                if (dist > op) {                /* see if copy from window */
-                    op = dist - op;             /* distance back in window */
-                    if (op > whave) {
-                        if (state->sane) {
-                            strm->msg =
-                                (char *)"invalid distance too far back";
-                            state->mode = BAD;
-                            break;
-                        }
-#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
-                        if (len <= op - whave) {
-                            do {
-                                PUP(out) = 0;
-                            } while (--len);
-                            continue;
-                        }
-                        len -= op - whave;
-                        do {
-                            PUP(out) = 0;
-                        } while (--op > whave);
-                        if (op == 0) {
-                            from = out - dist;
-                            do {
-                                PUP(out) = PUP(from);
-                            } while (--len);
-                            continue;
-                        }
-#endif
-                    }
-                    from = window - OFF;
-                    if (wnext == 0) {           /* very common case */
-                        from += wsize - op;
-                        if (op < len) {         /* some from window */
-                            len -= op;
-                            do {
-                                PUP(out) = PUP(from);
-                            } while (--op);
-                            from = out - dist;  /* rest from output */
-                        }
-                    }
-                    else if (wnext < op) {      /* wrap around window */
-                        from += wsize + wnext - op;
-                        op -= wnext;
-                        if (op < len) {         /* some from end of window */
-                            len -= op;
-                            do {
-                                PUP(out) = PUP(from);
-                            } while (--op);
-                            from = window - OFF;
-                            if (wnext < len) {  /* some from start of window */
-                                op = wnext;
-                                len -= op;
-                                do {
-                                    PUP(out) = PUP(from);
-                                } while (--op);
-                                from = out - dist;      /* rest from output */
-                            }
-                        }
-                    }
-                    else {                      /* contiguous in window */
-                        from += wnext - op;
-                        if (op < len) {         /* some from window */
-                            len -= op;
-                            do {
-                                PUP(out) = PUP(from);
-                            } while (--op);
-                            from = out - dist;  /* rest from output */
-                        }
-                    }
-                    while (len > 2) {
-                        PUP(out) = PUP(from);
-                        PUP(out) = PUP(from);
-                        PUP(out) = PUP(from);
-                        len -= 3;
-                    }
-                    if (len) {
-                        PUP(out) = PUP(from);
-                        if (len > 1)
-                            PUP(out) = PUP(from);
-                    }
-                }
-                else {
-                    from = out - dist;          /* copy direct from output */
-                    do {                        /* minimum length is three */
-                        PUP(out) = PUP(from);
-                        PUP(out) = PUP(from);
-                        PUP(out) = PUP(from);
-                        len -= 3;
-                    } while (len > 2);
-                    if (len) {
-                        PUP(out) = PUP(from);
-                        if (len > 1)
-                            PUP(out) = PUP(from);
-                    }
-                }
-            }
-            else if ((op & 64) == 0) {          /* 2nd level distance code */
-                here = dcode[here.val + (hold & ((1U << op) - 1))];
-                goto dodist;
-            }
-            else {
-                strm->msg = (char *)"invalid distance code";
-                state->mode = BAD;
-                break;
-            }
-        }
-        else if ((op & 64) == 0) {              /* 2nd level length code */
-            here = lcode[here.val + (hold & ((1U << op) - 1))];
-            goto dolen;
-        }
-        else if (op & 32) {                     /* end-of-block */
-            Tracevv((stderr, "inflate:         end of block\n"));
-            state->mode = TYPE;
-            break;
-        }
-        else {
-            strm->msg = (char *)"invalid literal/length code";
-            state->mode = BAD;
-            break;
-        }
-    } while (in < last && out < end);
-
-    /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
-    len = bits >> 3;
-    in -= len;
-    bits -= len << 3;
-    hold &= (1U << bits) - 1;
-
-    /* update state and return */
-    strm->next_in = in + OFF;
-    strm->next_out = out + OFF;
-    strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last));
-    strm->avail_out = (unsigned)(out < end ?
-                                 257 + (end - out) : 257 - (out - end));
-    state->hold = hold;
-    state->bits = bits;
-    return;
-}
-
-/*
-   inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe):
-   - Using bit fields for code structure
-   - Different op definition to avoid & for extra bits (do & for table bits)
-   - Three separate decoding do-loops for direct, window, and wnext == 0
-   - Special case for distance > 1 copies to do overlapped load and store copy
-   - Explicit branch predictions (based on measured branch probabilities)
-   - Deferring match copy and interspersed it with decoding subsequent codes
-   - Swapping literal/length else
-   - Swapping window/direct else
-   - Larger unrolled copy loops (three is about right)
-   - Moving len -= 3 statement into middle of loop
- */
-
-#endif /* !ASMINF */
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inffast.h b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inffast.h
deleted file mode 100644
index e5c1aa4..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inffast.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* inffast.h -- header to use inffast.c
- * Copyright (C) 1995-2003, 2010 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start));
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inffixed.h b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inffixed.h
deleted file mode 100644
index d628327..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inffixed.h
+++ /dev/null
@@ -1,94 +0,0 @@
-    /* inffixed.h -- table for decoding fixed codes
-     * Generated automatically by makefixed().
-     */
-
-    /* WARNING: this file should *not* be used by applications.
-       It is part of the implementation of this library and is
-       subject to change. Applications should only use zlib.h.
-     */
-
-    static const code lenfix[512] = {
-        {96,7,0},{0,8,80},{0,8,16},{20,8,115},{18,7,31},{0,8,112},{0,8,48},
-        {0,9,192},{16,7,10},{0,8,96},{0,8,32},{0,9,160},{0,8,0},{0,8,128},
-        {0,8,64},{0,9,224},{16,7,6},{0,8,88},{0,8,24},{0,9,144},{19,7,59},
-        {0,8,120},{0,8,56},{0,9,208},{17,7,17},{0,8,104},{0,8,40},{0,9,176},
-        {0,8,8},{0,8,136},{0,8,72},{0,9,240},{16,7,4},{0,8,84},{0,8,20},
-        {21,8,227},{19,7,43},{0,8,116},{0,8,52},{0,9,200},{17,7,13},{0,8,100},
-        {0,8,36},{0,9,168},{0,8,4},{0,8,132},{0,8,68},{0,9,232},{16,7,8},
-        {0,8,92},{0,8,28},{0,9,152},{20,7,83},{0,8,124},{0,8,60},{0,9,216},
-        {18,7,23},{0,8,108},{0,8,44},{0,9,184},{0,8,12},{0,8,140},{0,8,76},
-        {0,9,248},{16,7,3},{0,8,82},{0,8,18},{21,8,163},{19,7,35},{0,8,114},
-        {0,8,50},{0,9,196},{17,7,11},{0,8,98},{0,8,34},{0,9,164},{0,8,2},
-        {0,8,130},{0,8,66},{0,9,228},{16,7,7},{0,8,90},{0,8,26},{0,9,148},
-        {20,7,67},{0,8,122},{0,8,58},{0,9,212},{18,7,19},{0,8,106},{0,8,42},
-        {0,9,180},{0,8,10},{0,8,138},{0,8,74},{0,9,244},{16,7,5},{0,8,86},
-        {0,8,22},{64,8,0},{19,7,51},{0,8,118},{0,8,54},{0,9,204},{17,7,15},
-        {0,8,102},{0,8,38},{0,9,172},{0,8,6},{0,8,134},{0,8,70},{0,9,236},
-        {16,7,9},{0,8,94},{0,8,30},{0,9,156},{20,7,99},{0,8,126},{0,8,62},
-        {0,9,220},{18,7,27},{0,8,110},{0,8,46},{0,9,188},{0,8,14},{0,8,142},
-        {0,8,78},{0,9,252},{96,7,0},{0,8,81},{0,8,17},{21,8,131},{18,7,31},
-        {0,8,113},{0,8,49},{0,9,194},{16,7,10},{0,8,97},{0,8,33},{0,9,162},
-        {0,8,1},{0,8,129},{0,8,65},{0,9,226},{16,7,6},{0,8,89},{0,8,25},
-        {0,9,146},{19,7,59},{0,8,121},{0,8,57},{0,9,210},{17,7,17},{0,8,105},
-        {0,8,41},{0,9,178},{0,8,9},{0,8,137},{0,8,73},{0,9,242},{16,7,4},
-        {0,8,85},{0,8,21},{16,8,258},{19,7,43},{0,8,117},{0,8,53},{0,9,202},
-        {17,7,13},{0,8,101},{0,8,37},{0,9,170},{0,8,5},{0,8,133},{0,8,69},
-        {0,9,234},{16,7,8},{0,8,93},{0,8,29},{0,9,154},{20,7,83},{0,8,125},
-        {0,8,61},{0,9,218},{18,7,23},{0,8,109},{0,8,45},{0,9,186},{0,8,13},
-        {0,8,141},{0,8,77},{0,9,250},{16,7,3},{0,8,83},{0,8,19},{21,8,195},
-        {19,7,35},{0,8,115},{0,8,51},{0,9,198},{17,7,11},{0,8,99},{0,8,35},
-        {0,9,166},{0,8,3},{0,8,131},{0,8,67},{0,9,230},{16,7,7},{0,8,91},
-        {0,8,27},{0,9,150},{20,7,67},{0,8,123},{0,8,59},{0,9,214},{18,7,19},
-        {0,8,107},{0,8,43},{0,9,182},{0,8,11},{0,8,139},{0,8,75},{0,9,246},
-        {16,7,5},{0,8,87},{0,8,23},{64,8,0},{19,7,51},{0,8,119},{0,8,55},
-        {0,9,206},{17,7,15},{0,8,103},{0,8,39},{0,9,174},{0,8,7},{0,8,135},
-        {0,8,71},{0,9,238},{16,7,9},{0,8,95},{0,8,31},{0,9,158},{20,7,99},
-        {0,8,127},{0,8,63},{0,9,222},{18,7,27},{0,8,111},{0,8,47},{0,9,190},
-        {0,8,15},{0,8,143},{0,8,79},{0,9,254},{96,7,0},{0,8,80},{0,8,16},
-        {20,8,115},{18,7,31},{0,8,112},{0,8,48},{0,9,193},{16,7,10},{0,8,96},
-        {0,8,32},{0,9,161},{0,8,0},{0,8,128},{0,8,64},{0,9,225},{16,7,6},
-        {0,8,88},{0,8,24},{0,9,145},{19,7,59},{0,8,120},{0,8,56},{0,9,209},
-        {17,7,17},{0,8,104},{0,8,40},{0,9,177},{0,8,8},{0,8,136},{0,8,72},
-        {0,9,241},{16,7,4},{0,8,84},{0,8,20},{21,8,227},{19,7,43},{0,8,116},
-        {0,8,52},{0,9,201},{17,7,13},{0,8,100},{0,8,36},{0,9,169},{0,8,4},
-        {0,8,132},{0,8,68},{0,9,233},{16,7,8},{0,8,92},{0,8,28},{0,9,153},
-        {20,7,83},{0,8,124},{0,8,60},{0,9,217},{18,7,23},{0,8,108},{0,8,44},
-        {0,9,185},{0,8,12},{0,8,140},{0,8,76},{0,9,249},{16,7,3},{0,8,82},
-        {0,8,18},{21,8,163},{19,7,35},{0,8,114},{0,8,50},{0,9,197},{17,7,11},
-        {0,8,98},{0,8,34},{0,9,165},{0,8,2},{0,8,130},{0,8,66},{0,9,229},
-        {16,7,7},{0,8,90},{0,8,26},{0,9,149},{20,7,67},{0,8,122},{0,8,58},
-        {0,9,213},{18,7,19},{0,8,106},{0,8,42},{0,9,181},{0,8,10},{0,8,138},
-        {0,8,74},{0,9,245},{16,7,5},{0,8,86},{0,8,22},{64,8,0},{19,7,51},
-        {0,8,118},{0,8,54},{0,9,205},{17,7,15},{0,8,102},{0,8,38},{0,9,173},
-        {0,8,6},{0,8,134},{0,8,70},{0,9,237},{16,7,9},{0,8,94},{0,8,30},
-        {0,9,157},{20,7,99},{0,8,126},{0,8,62},{0,9,221},{18,7,27},{0,8,110},
-        {0,8,46},{0,9,189},{0,8,14},{0,8,142},{0,8,78},{0,9,253},{96,7,0},
-        {0,8,81},{0,8,17},{21,8,131},{18,7,31},{0,8,113},{0,8,49},{0,9,195},
-        {16,7,10},{0,8,97},{0,8,33},{0,9,163},{0,8,1},{0,8,129},{0,8,65},
-        {0,9,227},{16,7,6},{0,8,89},{0,8,25},{0,9,147},{19,7,59},{0,8,121},
-        {0,8,57},{0,9,211},{17,7,17},{0,8,105},{0,8,41},{0,9,179},{0,8,9},
-        {0,8,137},{0,8,73},{0,9,243},{16,7,4},{0,8,85},{0,8,21},{16,8,258},
-        {19,7,43},{0,8,117},{0,8,53},{0,9,203},{17,7,13},{0,8,101},{0,8,37},
-        {0,9,171},{0,8,5},{0,8,133},{0,8,69},{0,9,235},{16,7,8},{0,8,93},
-        {0,8,29},{0,9,155},{20,7,83},{0,8,125},{0,8,61},{0,9,219},{18,7,23},
-        {0,8,109},{0,8,45},{0,9,187},{0,8,13},{0,8,141},{0,8,77},{0,9,251},
-        {16,7,3},{0,8,83},{0,8,19},{21,8,195},{19,7,35},{0,8,115},{0,8,51},
-        {0,9,199},{17,7,11},{0,8,99},{0,8,35},{0,9,167},{0,8,3},{0,8,131},
-        {0,8,67},{0,9,231},{16,7,7},{0,8,91},{0,8,27},{0,9,151},{20,7,67},
-        {0,8,123},{0,8,59},{0,9,215},{18,7,19},{0,8,107},{0,8,43},{0,9,183},
-        {0,8,11},{0,8,139},{0,8,75},{0,9,247},{16,7,5},{0,8,87},{0,8,23},
-        {64,8,0},{19,7,51},{0,8,119},{0,8,55},{0,9,207},{17,7,15},{0,8,103},
-        {0,8,39},{0,9,175},{0,8,7},{0,8,135},{0,8,71},{0,9,239},{16,7,9},
-        {0,8,95},{0,8,31},{0,9,159},{20,7,99},{0,8,127},{0,8,63},{0,9,223},
-        {18,7,27},{0,8,111},{0,8,47},{0,9,191},{0,8,15},{0,8,143},{0,8,79},
-        {0,9,255}
-    };
-
-    static const code distfix[32] = {
-        {16,5,1},{23,5,257},{19,5,17},{27,5,4097},{17,5,5},{25,5,1025},
-        {21,5,65},{29,5,16385},{16,5,3},{24,5,513},{20,5,33},{28,5,8193},
-        {18,5,9},{26,5,2049},{22,5,129},{64,5,0},{16,5,2},{23,5,385},
-        {19,5,25},{27,5,6145},{17,5,7},{25,5,1537},{21,5,97},{29,5,24577},
-        {16,5,4},{24,5,769},{20,5,49},{28,5,12289},{18,5,13},{26,5,3073},
-        {22,5,193},{64,5,0}
-    };
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inflate.c b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inflate.c
deleted file mode 100644
index 870f89b..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inflate.c
+++ /dev/null
@@ -1,1512 +0,0 @@
-/* inflate.c -- zlib decompression
- * Copyright (C) 1995-2012 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- * Change history:
- *
- * 1.2.beta0    24 Nov 2002
- * - First version -- complete rewrite of inflate to simplify code, avoid
- *   creation of window when not needed, minimize use of window when it is
- *   needed, make inffast.c even faster, implement gzip decoding, and to
- *   improve code readability and style over the previous zlib inflate code
- *
- * 1.2.beta1    25 Nov 2002
- * - Use pointers for available input and output checking in inffast.c
- * - Remove input and output counters in inffast.c
- * - Change inffast.c entry and loop from avail_in >= 7 to >= 6
- * - Remove unnecessary second byte pull from length extra in inffast.c
- * - Unroll direct copy to three copies per loop in inffast.c
- *
- * 1.2.beta2    4 Dec 2002
- * - Change external routine names to reduce potential conflicts
- * - Correct filename to inffixed.h for fixed tables in inflate.c
- * - Make hbuf[] unsigned char to match parameter type in inflate.c
- * - Change strm->next_out[-state->offset] to *(strm->next_out - state->offset)
- *   to avoid negation problem on Alphas (64 bit) in inflate.c
- *
- * 1.2.beta3    22 Dec 2002
- * - Add comments on state->bits assertion in inffast.c
- * - Add comments on op field in inftrees.h
- * - Fix bug in reuse of allocated window after inflateReset()
- * - Remove bit fields--back to byte structure for speed
- * - Remove distance extra == 0 check in inflate_fast()--only helps for lengths
- * - Change post-increments to pre-increments in inflate_fast(), PPC biased?
- * - Add compile time option, POSTINC, to use post-increments instead (Intel?)
- * - Make MATCH copy in inflate() much faster for when inflate_fast() not used
- * - Use local copies of stream next and avail values, as well as local bit
- *   buffer and bit count in inflate()--for speed when inflate_fast() not used
- *
- * 1.2.beta4    1 Jan 2003
- * - Split ptr - 257 statements in inflate_table() to avoid compiler warnings
- * - Move a comment on output buffer sizes from inffast.c to inflate.c
- * - Add comments in inffast.c to introduce the inflate_fast() routine
- * - Rearrange window copies in inflate_fast() for speed and simplification
- * - Unroll last copy for window match in inflate_fast()
- * - Use local copies of window variables in inflate_fast() for speed
- * - Pull out common wnext == 0 case for speed in inflate_fast()
- * - Make op and len in inflate_fast() unsigned for consistency
- * - Add FAR to lcode and dcode declarations in inflate_fast()
- * - Simplified bad distance check in inflate_fast()
- * - Added inflateBackInit(), inflateBack(), and inflateBackEnd() in new
- *   source file infback.c to provide a call-back interface to inflate for
- *   programs like gzip and unzip -- uses window as output buffer to avoid
- *   window copying
- *
- * 1.2.beta5    1 Jan 2003
- * - Improved inflateBack() interface to allow the caller to provide initial
- *   input in strm.
- * - Fixed stored blocks bug in inflateBack()
- *
- * 1.2.beta6    4 Jan 2003
- * - Added comments in inffast.c on effectiveness of POSTINC
- * - Typecasting all around to reduce compiler warnings
- * - Changed loops from while (1) or do {} while (1) to for (;;), again to
- *   make compilers happy
- * - Changed type of window in inflateBackInit() to unsigned char *
- *
- * 1.2.beta7    27 Jan 2003
- * - Changed many types to unsigned or unsigned short to avoid warnings
- * - Added inflateCopy() function
- *
- * 1.2.0        9 Mar 2003
- * - Changed inflateBack() interface to provide separate opaque descriptors
- *   for the in() and out() functions
- * - Changed inflateBack() argument and in_func typedef to swap the length
- *   and buffer address return values for the input function
- * - Check next_in and next_out for Z_NULL on entry to inflate()
- *
- * The history for versions after 1.2.0 are in ChangeLog in zlib distribution.
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-#include "inflate.h"
-#include "inffast.h"
-
-#ifdef MAKEFIXED
-#  ifndef BUILDFIXED
-#    define BUILDFIXED
-#  endif
-#endif
-
-/* function prototypes */
-local void fixedtables OF((struct inflate_state FAR *state));
-local int updatewindow OF((z_streamp strm, const unsigned char FAR *end,
-                           unsigned copy));
-#ifdef BUILDFIXED
-   void makefixed OF((void));
-#endif
-local unsigned syncsearch OF((unsigned FAR *have, const unsigned char FAR *buf,
-                              unsigned len));
-
-int ZEXPORT inflateResetKeep(strm)
-z_streamp strm;
-{
-    struct inflate_state FAR *state;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    strm->total_in = strm->total_out = state->total = 0;
-    strm->msg = Z_NULL;
-    if (state->wrap)        /* to support ill-conceived Java test suite */
-        strm->adler = state->wrap & 1;
-    state->mode = HEAD;
-    state->last = 0;
-    state->havedict = 0;
-    state->dmax = 32768U;
-    state->head = Z_NULL;
-    state->hold = 0;
-    state->bits = 0;
-    state->lencode = state->distcode = state->next = state->codes;
-    state->sane = 1;
-    state->back = -1;
-    Tracev((stderr, "inflate: reset\n"));
-    return Z_OK;
-}
-
-int ZEXPORT inflateReset(strm)
-z_streamp strm;
-{
-    struct inflate_state FAR *state;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    state->wsize = 0;
-    state->whave = 0;
-    state->wnext = 0;
-    return inflateResetKeep(strm);
-}
-
-int ZEXPORT inflateReset2(strm, windowBits)
-z_streamp strm;
-int windowBits;
-{
-    int wrap;
-    struct inflate_state FAR *state;
-
-    /* get the state */
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-
-    /* extract wrap request from windowBits parameter */
-    if (windowBits < 0) {
-        wrap = 0;
-        windowBits = -windowBits;
-    }
-    else {
-        wrap = (windowBits >> 4) + 1;
-#ifdef GUNZIP
-        if (windowBits < 48)
-            windowBits &= 15;
-#endif
-    }
-
-    /* set number of window bits, free window if different */
-    if (windowBits && (windowBits < 8 || windowBits > 15))
-        return Z_STREAM_ERROR;
-    if (state->window != Z_NULL && state->wbits != (unsigned)windowBits) {
-        ZFREE(strm, state->window);
-        state->window = Z_NULL;
-    }
-
-    /* update state and reset the rest of it */
-    state->wrap = wrap;
-    state->wbits = (unsigned)windowBits;
-    return inflateReset(strm);
-}
-
-int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size)
-z_streamp strm;
-int windowBits;
-const char *version;
-int stream_size;
-{
-    int ret;
-    struct inflate_state FAR *state;
-
-    if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||
-        stream_size != (int)(sizeof(z_stream)))
-        return Z_VERSION_ERROR;
-    if (strm == Z_NULL) return Z_STREAM_ERROR;
-    strm->msg = Z_NULL;                 /* in case we return an error */
-    if (strm->zalloc == (alloc_func)0) {
-#ifdef Z_SOLO
-        return Z_STREAM_ERROR;
-#else
-        strm->zalloc = zcalloc;
-        strm->opaque = (voidpf)0;
-#endif
-    }
-    if (strm->zfree == (free_func)0)
-#ifdef Z_SOLO
-        return Z_STREAM_ERROR;
-#else
-        strm->zfree = zcfree;
-#endif
-    state = (struct inflate_state FAR *)
-            ZALLOC(strm, 1, sizeof(struct inflate_state));
-    if (state == Z_NULL) return Z_MEM_ERROR;
-    Tracev((stderr, "inflate: allocated\n"));
-    strm->state = (struct internal_state FAR *)state;
-    state->window = Z_NULL;
-    ret = inflateReset2(strm, windowBits);
-    if (ret != Z_OK) {
-        ZFREE(strm, state);
-        strm->state = Z_NULL;
-    }
-    return ret;
-}
-
-int ZEXPORT inflateInit_(strm, version, stream_size)
-z_streamp strm;
-const char *version;
-int stream_size;
-{
-    return inflateInit2_(strm, DEF_WBITS, version, stream_size);
-}
-
-int ZEXPORT inflatePrime(strm, bits, value)
-z_streamp strm;
-int bits;
-int value;
-{
-    struct inflate_state FAR *state;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    if (bits < 0) {
-        state->hold = 0;
-        state->bits = 0;
-        return Z_OK;
-    }
-    if (bits > 16 || state->bits + bits > 32) return Z_STREAM_ERROR;
-    value &= (1L << bits) - 1;
-    state->hold += value << state->bits;
-    state->bits += bits;
-    return Z_OK;
-}
-
-/*
-   Return state with length and distance decoding tables and index sizes set to
-   fixed code decoding.  Normally this returns fixed tables from inffixed.h.
-   If BUILDFIXED is defined, then instead this routine builds the tables the
-   first time it's called, and returns those tables the first time and
-   thereafter.  This reduces the size of the code by about 2K bytes, in
-   exchange for a little execution time.  However, BUILDFIXED should not be
-   used for threaded applications, since the rewriting of the tables and virgin
-   may not be thread-safe.
- */
-local void fixedtables(state)
-struct inflate_state FAR *state;
-{
-#ifdef BUILDFIXED
-    static int virgin = 1;
-    static code *lenfix, *distfix;
-    static code fixed[544];
-
-    /* build fixed huffman tables if first call (may not be thread safe) */
-    if (virgin) {
-        unsigned sym, bits;
-        static code *next;
-
-        /* literal/length table */
-        sym = 0;
-        while (sym < 144) state->lens[sym++] = 8;
-        while (sym < 256) state->lens[sym++] = 9;
-        while (sym < 280) state->lens[sym++] = 7;
-        while (sym < 288) state->lens[sym++] = 8;
-        next = fixed;
-        lenfix = next;
-        bits = 9;
-        inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work);
-
-        /* distance table */
-        sym = 0;
-        while (sym < 32) state->lens[sym++] = 5;
-        distfix = next;
-        bits = 5;
-        inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work);
-
-        /* do this just once */
-        virgin = 0;
-    }
-#else /* !BUILDFIXED */
-#   include "inffixed.h"
-#endif /* BUILDFIXED */
-    state->lencode = lenfix;
-    state->lenbits = 9;
-    state->distcode = distfix;
-    state->distbits = 5;
-}
-
-#ifdef MAKEFIXED
-#include <stdio.h>
-
-/*
-   Write out the inffixed.h that is #include'd above.  Defining MAKEFIXED also
-   defines BUILDFIXED, so the tables are built on the fly.  makefixed() writes
-   those tables to stdout, which would be piped to inffixed.h.  A small program
-   can simply call makefixed to do this:
-
-    void makefixed(void);
-
-    int main(void)
-    {
-        makefixed();
-        return 0;
-    }
-
-   Then that can be linked with zlib built with MAKEFIXED defined and run:
-
-    a.out > inffixed.h
- */
-void makefixed()
-{
-    unsigned low, size;
-    struct inflate_state state;
-
-    fixedtables(&state);
-    puts("    /* inffixed.h -- table for decoding fixed codes");
-    puts("     * Generated automatically by makefixed().");
-    puts("     */");
-    puts("");
-    puts("    /* WARNING: this file should *not* be used by applications.");
-    puts("       It is part of the implementation of this library and is");
-    puts("       subject to change. Applications should only use zlib.h.");
-    puts("     */");
-    puts("");
-    size = 1U << 9;
-    printf("    static const code lenfix[%u] = {", size);
-    low = 0;
-    for (;;) {
-        if ((low % 7) == 0) printf("\n        ");
-        printf("{%u,%u,%d}", (low & 127) == 99 ? 64 : state.lencode[low].op,
-               state.lencode[low].bits, state.lencode[low].val);
-        if (++low == size) break;
-        putchar(',');
-    }
-    puts("\n    };");
-    size = 1U << 5;
-    printf("\n    static const code distfix[%u] = {", size);
-    low = 0;
-    for (;;) {
-        if ((low % 6) == 0) printf("\n        ");
-        printf("{%u,%u,%d}", state.distcode[low].op, state.distcode[low].bits,
-               state.distcode[low].val);
-        if (++low == size) break;
-        putchar(',');
-    }
-    puts("\n    };");
-}
-#endif /* MAKEFIXED */
-
-/*
-   Update the window with the last wsize (normally 32K) bytes written before
-   returning.  If window does not exist yet, create it.  This is only called
-   when a window is already in use, or when output has been written during this
-   inflate call, but the end of the deflate stream has not been reached yet.
-   It is also called to create a window for dictionary data when a dictionary
-   is loaded.
-
-   Providing output buffers larger than 32K to inflate() should provide a speed
-   advantage, since only the last 32K of output is copied to the sliding window
-   upon return from inflate(), and since all distances after the first 32K of
-   output will fall in the output data, making match copies simpler and faster.
-   The advantage may be dependent on the size of the processor's data caches.
- */
-local int updatewindow(strm, end, copy)
-z_streamp strm;
-const Bytef *end;
-unsigned copy;
-{
-    struct inflate_state FAR *state;
-    unsigned dist;
-
-    state = (struct inflate_state FAR *)strm->state;
-
-    /* if it hasn't been done already, allocate space for the window */
-    if (state->window == Z_NULL) {
-        state->window = (unsigned char FAR *)
-                        ZALLOC(strm, 1U << state->wbits,
-                               sizeof(unsigned char));
-        if (state->window == Z_NULL) return 1;
-    }
-
-    /* if window not in use yet, initialize */
-    if (state->wsize == 0) {
-        state->wsize = 1U << state->wbits;
-        state->wnext = 0;
-        state->whave = 0;
-    }
-
-    /* copy state->wsize or less output bytes into the circular window */
-    if (copy >= state->wsize) {
-        zmemcpy(state->window, end - state->wsize, state->wsize);
-        state->wnext = 0;
-        state->whave = state->wsize;
-    }
-    else {
-        dist = state->wsize - state->wnext;
-        if (dist > copy) dist = copy;
-        zmemcpy(state->window + state->wnext, end - copy, dist);
-        copy -= dist;
-        if (copy) {
-            zmemcpy(state->window, end - copy, copy);
-            state->wnext = copy;
-            state->whave = state->wsize;
-        }
-        else {
-            state->wnext += dist;
-            if (state->wnext == state->wsize) state->wnext = 0;
-            if (state->whave < state->wsize) state->whave += dist;
-        }
-    }
-    return 0;
-}
-
-/* Macros for inflate(): */
-
-/* check function to use adler32() for zlib or crc32() for gzip */
-#ifdef GUNZIP
-#  define UPDATE(check, buf, len) \
-    (state->flags ? crc32(check, buf, len) : adler32(check, buf, len))
-#else
-#  define UPDATE(check, buf, len) adler32(check, buf, len)
-#endif
-
-/* check macros for header crc */
-#ifdef GUNZIP
-#  define CRC2(check, word) \
-    do { \
-        hbuf[0] = (unsigned char)(word); \
-        hbuf[1] = (unsigned char)((word) >> 8); \
-        check = crc32(check, hbuf, 2); \
-    } while (0)
-
-#  define CRC4(check, word) \
-    do { \
-        hbuf[0] = (unsigned char)(word); \
-        hbuf[1] = (unsigned char)((word) >> 8); \
-        hbuf[2] = (unsigned char)((word) >> 16); \
-        hbuf[3] = (unsigned char)((word) >> 24); \
-        check = crc32(check, hbuf, 4); \
-    } while (0)
-#endif
-
-/* Load registers with state in inflate() for speed */
-#define LOAD() \
-    do { \
-        put = strm->next_out; \
-        left = strm->avail_out; \
-        next = strm->next_in; \
-        have = strm->avail_in; \
-        hold = state->hold; \
-        bits = state->bits; \
-    } while (0)
-
-/* Restore state from registers in inflate() */
-#define RESTORE() \
-    do { \
-        strm->next_out = put; \
-        strm->avail_out = left; \
-        strm->next_in = next; \
-        strm->avail_in = have; \
-        state->hold = hold; \
-        state->bits = bits; \
-    } while (0)
-
-/* Clear the input bit accumulator */
-#define INITBITS() \
-    do { \
-        hold = 0; \
-        bits = 0; \
-    } while (0)
-
-/* Get a byte of input into the bit accumulator, or return from inflate()
-   if there is no input available. */
-#define PULLBYTE() \
-    do { \
-        if (have == 0) goto inf_leave; \
-        have--; \
-        hold += (unsigned long)(*next++) << bits; \
-        bits += 8; \
-    } while (0)
-
-/* Assure that there are at least n bits in the bit accumulator.  If there is
-   not enough available input to do that, then return from inflate(). */
-#define NEEDBITS(n) \
-    do { \
-        while (bits < (unsigned)(n)) \
-            PULLBYTE(); \
-    } while (0)
-
-/* Return the low n bits of the bit accumulator (n < 16) */
-#define BITS(n) \
-    ((unsigned)hold & ((1U << (n)) - 1))
-
-/* Remove n bits from the bit accumulator */
-#define DROPBITS(n) \
-    do { \
-        hold >>= (n); \
-        bits -= (unsigned)(n); \
-    } while (0)
-
-/* Remove zero to seven bits as needed to go to a byte boundary */
-#define BYTEBITS() \
-    do { \
-        hold >>= bits & 7; \
-        bits -= bits & 7; \
-    } while (0)
-
-/*
-   inflate() uses a state machine to process as much input data and generate as
-   much output data as possible before returning.  The state machine is
-   structured roughly as follows:
-
-    for (;;) switch (state) {
-    ...
-    case STATEn:
-        if (not enough input data or output space to make progress)
-            return;
-        ... make progress ...
-        state = STATEm;
-        break;
-    ...
-    }
-
-   so when inflate() is called again, the same case is attempted again, and
-   if the appropriate resources are provided, the machine proceeds to the
-   next state.  The NEEDBITS() macro is usually the way the state evaluates
-   whether it can proceed or should return.  NEEDBITS() does the return if
-   the requested bits are not available.  The typical use of the BITS macros
-   is:
-
-        NEEDBITS(n);
-        ... do something with BITS(n) ...
-        DROPBITS(n);
-
-   where NEEDBITS(n) either returns from inflate() if there isn't enough
-   input left to load n bits into the accumulator, or it continues.  BITS(n)
-   gives the low n bits in the accumulator.  When done, DROPBITS(n) drops
-   the low n bits off the accumulator.  INITBITS() clears the accumulator
-   and sets the number of available bits to zero.  BYTEBITS() discards just
-   enough bits to put the accumulator on a byte boundary.  After BYTEBITS()
-   and a NEEDBITS(8), then BITS(8) would return the next byte in the stream.
-
-   NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return
-   if there is no input available.  The decoding of variable length codes uses
-   PULLBYTE() directly in order to pull just enough bytes to decode the next
-   code, and no more.
-
-   Some states loop until they get enough input, making sure that enough
-   state information is maintained to continue the loop where it left off
-   if NEEDBITS() returns in the loop.  For example, want, need, and keep
-   would all have to actually be part of the saved state in case NEEDBITS()
-   returns:
-
-    case STATEw:
-        while (want < need) {
-            NEEDBITS(n);
-            keep[want++] = BITS(n);
-            DROPBITS(n);
-        }
-        state = STATEx;
-    case STATEx:
-
-   As shown above, if the next state is also the next case, then the break
-   is omitted.
-
-   A state may also return if there is not enough output space available to
-   complete that state.  Those states are copying stored data, writing a
-   literal byte, and copying a matching string.
-
-   When returning, a "goto inf_leave" is used to update the total counters,
-   update the check value, and determine whether any progress has been made
-   during that inflate() call in order to return the proper return code.
-   Progress is defined as a change in either strm->avail_in or strm->avail_out.
-   When there is a window, goto inf_leave will update the window with the last
-   output written.  If a goto inf_leave occurs in the middle of decompression
-   and there is no window currently, goto inf_leave will create one and copy
-   output to the window for the next call of inflate().
-
-   In this implementation, the flush parameter of inflate() only affects the
-   return code (per zlib.h).  inflate() always writes as much as possible to
-   strm->next_out, given the space available and the provided input--the effect
-   documented in zlib.h of Z_SYNC_FLUSH.  Furthermore, inflate() always defers
-   the allocation of and copying into a sliding window until necessary, which
-   provides the effect documented in zlib.h for Z_FINISH when the entire input
-   stream available.  So the only thing the flush parameter actually does is:
-   when flush is set to Z_FINISH, inflate() cannot return Z_OK.  Instead it
-   will return Z_BUF_ERROR if it has not reached the end of the stream.
- */
-
-int ZEXPORT inflate(strm, flush)
-z_streamp strm;
-int flush;
-{
-    struct inflate_state FAR *state;
-    z_const unsigned char FAR *next;    /* next input */
-    unsigned char FAR *put;     /* next output */
-    unsigned have, left;        /* available input and output */
-    unsigned long hold;         /* bit buffer */
-    unsigned bits;              /* bits in bit buffer */
-    unsigned in, out;           /* save starting available input and output */
-    unsigned copy;              /* number of stored or match bytes to copy */
-    unsigned char FAR *from;    /* where to copy match bytes from */
-    code here;                  /* current decoding table entry */
-    code last;                  /* parent table entry */
-    unsigned len;               /* length to copy for repeats, bits to drop */
-    int ret;                    /* return code */
-#ifdef GUNZIP
-    unsigned char hbuf[4];      /* buffer for gzip header crc calculation */
-#endif
-    static const unsigned short order[19] = /* permutation of code lengths */
-        {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
-
-    if (strm == Z_NULL || strm->state == Z_NULL || strm->next_out == Z_NULL ||
-        (strm->next_in == Z_NULL && strm->avail_in != 0))
-        return Z_STREAM_ERROR;
-
-    state = (struct inflate_state FAR *)strm->state;
-    if (state->mode == TYPE) state->mode = TYPEDO;      /* skip check */
-    LOAD();
-    in = have;
-    out = left;
-    ret = Z_OK;
-    for (;;)
-        switch (state->mode) {
-        case HEAD:
-            if (state->wrap == 0) {
-                state->mode = TYPEDO;
-                break;
-            }
-            NEEDBITS(16);
-#ifdef GUNZIP
-            if ((state->wrap & 2) && hold == 0x8b1f) {  /* gzip header */
-                state->check = crc32(0L, Z_NULL, 0);
-                CRC2(state->check, hold);
-                INITBITS();
-                state->mode = FLAGS;
-                break;
-            }
-            state->flags = 0;           /* expect zlib header */
-            if (state->head != Z_NULL)
-                state->head->done = -1;
-            if (!(state->wrap & 1) ||   /* check if zlib header allowed */
-#else
-            if (
-#endif
-                ((BITS(8) << 8) + (hold >> 8)) % 31) {
-                strm->msg = (char *)"incorrect header check";
-                state->mode = BAD;
-                break;
-            }
-            if (BITS(4) != Z_DEFLATED) {
-                strm->msg = (char *)"unknown compression method";
-                state->mode = BAD;
-                break;
-            }
-            DROPBITS(4);
-            len = BITS(4) + 8;
-            if (state->wbits == 0)
-                state->wbits = len;
-            else if (len > state->wbits) {
-                strm->msg = (char *)"invalid window size";
-                state->mode = BAD;
-                break;
-            }
-            state->dmax = 1U << len;
-            Tracev((stderr, "inflate:   zlib header ok\n"));
-            strm->adler = state->check = adler32(0L, Z_NULL, 0);
-            state->mode = hold & 0x200 ? DICTID : TYPE;
-            INITBITS();
-            break;
-#ifdef GUNZIP
-        case FLAGS:
-            NEEDBITS(16);
-            state->flags = (int)(hold);
-            if ((state->flags & 0xff) != Z_DEFLATED) {
-                strm->msg = (char *)"unknown compression method";
-                state->mode = BAD;
-                break;
-            }
-            if (state->flags & 0xe000) {
-                strm->msg = (char *)"unknown header flags set";
-                state->mode = BAD;
-                break;
-            }
-            if (state->head != Z_NULL)
-                state->head->text = (int)((hold >> 8) & 1);
-            if (state->flags & 0x0200) CRC2(state->check, hold);
-            INITBITS();
-            state->mode = TIME;
-        case TIME:
-            NEEDBITS(32);
-            if (state->head != Z_NULL)
-                state->head->time = hold;
-            if (state->flags & 0x0200) CRC4(state->check, hold);
-            INITBITS();
-            state->mode = OS;
-        case OS:
-            NEEDBITS(16);
-            if (state->head != Z_NULL) {
-                state->head->xflags = (int)(hold & 0xff);
-                state->head->os = (int)(hold >> 8);
-            }
-            if (state->flags & 0x0200) CRC2(state->check, hold);
-            INITBITS();
-            state->mode = EXLEN;
-        case EXLEN:
-            if (state->flags & 0x0400) {
-                NEEDBITS(16);
-                state->length = (unsigned)(hold);
-                if (state->head != Z_NULL)
-                    state->head->extra_len = (unsigned)hold;
-                if (state->flags & 0x0200) CRC2(state->check, hold);
-                INITBITS();
-            }
-            else if (state->head != Z_NULL)
-                state->head->extra = Z_NULL;
-            state->mode = EXTRA;
-        case EXTRA:
-            if (state->flags & 0x0400) {
-                copy = state->length;
-                if (copy > have) copy = have;
-                if (copy) {
-                    if (state->head != Z_NULL &&
-                        state->head->extra != Z_NULL) {
-                        len = state->head->extra_len - state->length;
-                        zmemcpy(state->head->extra + len, next,
-                                len + copy > state->head->extra_max ?
-                                state->head->extra_max - len : copy);
-                    }
-                    if (state->flags & 0x0200)
-                        state->check = crc32(state->check, next, copy);
-                    have -= copy;
-                    next += copy;
-                    state->length -= copy;
-                }
-                if (state->length) goto inf_leave;
-            }
-            state->length = 0;
-            state->mode = NAME;
-        case NAME:
-            if (state->flags & 0x0800) {
-                if (have == 0) goto inf_leave;
-                copy = 0;
-                do {
-                    len = (unsigned)(next[copy++]);
-                    if (state->head != Z_NULL &&
-                            state->head->name != Z_NULL &&
-                            state->length < state->head->name_max)
-                        state->head->name[state->length++] = len;
-                } while (len && copy < have);
-                if (state->flags & 0x0200)
-                    state->check = crc32(state->check, next, copy);
-                have -= copy;
-                next += copy;
-                if (len) goto inf_leave;
-            }
-            else if (state->head != Z_NULL)
-                state->head->name = Z_NULL;
-            state->length = 0;
-            state->mode = COMMENT;
-        case COMMENT:
-            if (state->flags & 0x1000) {
-                if (have == 0) goto inf_leave;
-                copy = 0;
-                do {
-                    len = (unsigned)(next[copy++]);
-                    if (state->head != Z_NULL &&
-                            state->head->comment != Z_NULL &&
-                            state->length < state->head->comm_max)
-                        state->head->comment[state->length++] = len;
-                } while (len && copy < have);
-                if (state->flags & 0x0200)
-                    state->check = crc32(state->check, next, copy);
-                have -= copy;
-                next += copy;
-                if (len) goto inf_leave;
-            }
-            else if (state->head != Z_NULL)
-                state->head->comment = Z_NULL;
-            state->mode = HCRC;
-        case HCRC:
-            if (state->flags & 0x0200) {
-                NEEDBITS(16);
-                if (hold != (state->check & 0xffff)) {
-                    strm->msg = (char *)"header crc mismatch";
-                    state->mode = BAD;
-                    break;
-                }
-                INITBITS();
-            }
-            if (state->head != Z_NULL) {
-                state->head->hcrc = (int)((state->flags >> 9) & 1);
-                state->head->done = 1;
-            }
-            strm->adler = state->check = crc32(0L, Z_NULL, 0);
-            state->mode = TYPE;
-            break;
-#endif
-        case DICTID:
-            NEEDBITS(32);
-            strm->adler = state->check = ZSWAP32(hold);
-            INITBITS();
-            state->mode = DICT;
-        case DICT:
-            if (state->havedict == 0) {
-                RESTORE();
-                return Z_NEED_DICT;
-            }
-            strm->adler = state->check = adler32(0L, Z_NULL, 0);
-            state->mode = TYPE;
-        case TYPE:
-            if (flush == Z_BLOCK || flush == Z_TREES) goto inf_leave;
-        case TYPEDO:
-            if (state->last) {
-                BYTEBITS();
-                state->mode = CHECK;
-                break;
-            }
-            NEEDBITS(3);
-            state->last = BITS(1);
-            DROPBITS(1);
-            switch (BITS(2)) {
-            case 0:                             /* stored block */
-                Tracev((stderr, "inflate:     stored block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = STORED;
-                break;
-            case 1:                             /* fixed block */
-                fixedtables(state);
-                Tracev((stderr, "inflate:     fixed codes block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = LEN_;             /* decode codes */
-                if (flush == Z_TREES) {
-                    DROPBITS(2);
-                    goto inf_leave;
-                }
-                break;
-            case 2:                             /* dynamic block */
-                Tracev((stderr, "inflate:     dynamic codes block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = TABLE;
-                break;
-            case 3:
-                strm->msg = (char *)"invalid block type";
-                state->mode = BAD;
-            }
-            DROPBITS(2);
-            break;
-        case STORED:
-            BYTEBITS();                         /* go to byte boundary */
-            NEEDBITS(32);
-            if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {
-                strm->msg = (char *)"invalid stored block lengths";
-                state->mode = BAD;
-                break;
-            }
-            state->length = (unsigned)hold & 0xffff;
-            Tracev((stderr, "inflate:       stored length %u\n",
-                    state->length));
-            INITBITS();
-            state->mode = COPY_;
-            if (flush == Z_TREES) goto inf_leave;
-        case COPY_:
-            state->mode = COPY;
-        case COPY:
-            copy = state->length;
-            if (copy) {
-                if (copy > have) copy = have;
-                if (copy > left) copy = left;
-                if (copy == 0) goto inf_leave;
-                zmemcpy(put, next, copy);
-                have -= copy;
-                next += copy;
-                left -= copy;
-                put += copy;
-                state->length -= copy;
-                break;
-            }
-            Tracev((stderr, "inflate:       stored end\n"));
-            state->mode = TYPE;
-            break;
-        case TABLE:
-            NEEDBITS(14);
-            state->nlen = BITS(5) + 257;
-            DROPBITS(5);
-            state->ndist = BITS(5) + 1;
-            DROPBITS(5);
-            state->ncode = BITS(4) + 4;
-            DROPBITS(4);
-#ifndef PKZIP_BUG_WORKAROUND
-            if (state->nlen > 286 || state->ndist > 30) {
-                strm->msg = (char *)"too many length or distance symbols";
-                state->mode = BAD;
-                break;
-            }
-#endif
-            Tracev((stderr, "inflate:       table sizes ok\n"));
-            state->have = 0;
-            state->mode = LENLENS;
-        case LENLENS:
-            while (state->have < state->ncode) {
-                NEEDBITS(3);
-                state->lens[order[state->have++]] = (unsigned short)BITS(3);
-                DROPBITS(3);
-            }
-            while (state->have < 19)
-                state->lens[order[state->have++]] = 0;
-            state->next = state->codes;
-            state->lencode = (const code FAR *)(state->next);
-            state->lenbits = 7;
-            ret = inflate_table(CODES, state->lens, 19, &(state->next),
-                                &(state->lenbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid code lengths set";
-                state->mode = BAD;
-                break;
-            }
-            Tracev((stderr, "inflate:       code lengths ok\n"));
-            state->have = 0;
-            state->mode = CODELENS;
-        case CODELENS:
-            while (state->have < state->nlen + state->ndist) {
-                for (;;) {
-                    here = state->lencode[BITS(state->lenbits)];
-                    if ((unsigned)(here.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                if (here.val < 16) {
-                    DROPBITS(here.bits);
-                    state->lens[state->have++] = here.val;
-                }
-                else {
-                    if (here.val == 16) {
-                        NEEDBITS(here.bits + 2);
-                        DROPBITS(here.bits);
-                        if (state->have == 0) {
-                            strm->msg = (char *)"invalid bit length repeat";
-                            state->mode = BAD;
-                            break;
-                        }
-                        len = state->lens[state->have - 1];
-                        copy = 3 + BITS(2);
-                        DROPBITS(2);
-                    }
-                    else if (here.val == 17) {
-                        NEEDBITS(here.bits + 3);
-                        DROPBITS(here.bits);
-                        len = 0;
-                        copy = 3 + BITS(3);
-                        DROPBITS(3);
-                    }
-                    else {
-                        NEEDBITS(here.bits + 7);
-                        DROPBITS(here.bits);
-                        len = 0;
-                        copy = 11 + BITS(7);
-                        DROPBITS(7);
-                    }
-                    if (state->have + copy > state->nlen + state->ndist) {
-                        strm->msg = (char *)"invalid bit length repeat";
-                        state->mode = BAD;
-                        break;
-                    }
-                    while (copy--)
-                        state->lens[state->have++] = (unsigned short)len;
-                }
-            }
-
-            /* handle error breaks in while */
-            if (state->mode == BAD) break;
-
-            /* check for end-of-block code (better have one) */
-            if (state->lens[256] == 0) {
-                strm->msg = (char *)"invalid code -- missing end-of-block";
-                state->mode = BAD;
-                break;
-            }
-
-            /* build code tables -- note: do not change the lenbits or distbits
-               values here (9 and 6) without reading the comments in inftrees.h
-               concerning the ENOUGH constants, which depend on those values */
-            state->next = state->codes;
-            state->lencode = (const code FAR *)(state->next);
-            state->lenbits = 9;
-            ret = inflate_table(LENS, state->lens, state->nlen, &(state->next),
-                                &(state->lenbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid literal/lengths set";
-                state->mode = BAD;
-                break;
-            }
-            state->distcode = (const code FAR *)(state->next);
-            state->distbits = 6;
-            ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist,
-                            &(state->next), &(state->distbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid distances set";
-                state->mode = BAD;
-                break;
-            }
-            Tracev((stderr, "inflate:       codes ok\n"));
-            state->mode = LEN_;
-            if (flush == Z_TREES) goto inf_leave;
-        case LEN_:
-            state->mode = LEN;
-        case LEN:
-            if (have >= 6 && left >= 258) {
-                RESTORE();
-                inflate_fast(strm, out);
-                LOAD();
-                if (state->mode == TYPE)
-                    state->back = -1;
-                break;
-            }
-            state->back = 0;
-            for (;;) {
-                here = state->lencode[BITS(state->lenbits)];
-                if ((unsigned)(here.bits) <= bits) break;
-                PULLBYTE();
-            }
-            if (here.op && (here.op & 0xf0) == 0) {
-                last = here;
-                for (;;) {
-                    here = state->lencode[last.val +
-                            (BITS(last.bits + last.op) >> last.bits)];
-                    if ((unsigned)(last.bits + here.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                DROPBITS(last.bits);
-                state->back += last.bits;
-            }
-            DROPBITS(here.bits);
-            state->back += here.bits;
-            state->length = (unsigned)here.val;
-            if ((int)(here.op) == 0) {
-                Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
-                        "inflate:         literal '%c'\n" :
-                        "inflate:         literal 0x%02x\n", here.val));
-                state->mode = LIT;
-                break;
-            }
-            if (here.op & 32) {
-                Tracevv((stderr, "inflate:         end of block\n"));
-                state->back = -1;
-                state->mode = TYPE;
-                break;
-            }
-            if (here.op & 64) {
-                strm->msg = (char *)"invalid literal/length code";
-                state->mode = BAD;
-                break;
-            }
-            state->extra = (unsigned)(here.op) & 15;
-            state->mode = LENEXT;
-        case LENEXT:
-            if (state->extra) {
-                NEEDBITS(state->extra);
-                state->length += BITS(state->extra);
-                DROPBITS(state->extra);
-                state->back += state->extra;
-            }
-            Tracevv((stderr, "inflate:         length %u\n", state->length));
-            state->was = state->length;
-            state->mode = DIST;
-        case DIST:
-            for (;;) {
-                here = state->distcode[BITS(state->distbits)];
-                if ((unsigned)(here.bits) <= bits) break;
-                PULLBYTE();
-            }
-            if ((here.op & 0xf0) == 0) {
-                last = here;
-                for (;;) {
-                    here = state->distcode[last.val +
-                            (BITS(last.bits + last.op) >> last.bits)];
-                    if ((unsigned)(last.bits + here.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                DROPBITS(last.bits);
-                state->back += last.bits;
-            }
-            DROPBITS(here.bits);
-            state->back += here.bits;
-            if (here.op & 64) {
-                strm->msg = (char *)"invalid distance code";
-                state->mode = BAD;
-                break;
-            }
-            state->offset = (unsigned)here.val;
-            state->extra = (unsigned)(here.op) & 15;
-            state->mode = DISTEXT;
-        case DISTEXT:
-            if (state->extra) {
-                NEEDBITS(state->extra);
-                state->offset += BITS(state->extra);
-                DROPBITS(state->extra);
-                state->back += state->extra;
-            }
-#ifdef INFLATE_STRICT
-            if (state->offset > state->dmax) {
-                strm->msg = (char *)"invalid distance too far back";
-                state->mode = BAD;
-                break;
-            }
-#endif
-            Tracevv((stderr, "inflate:         distance %u\n", state->offset));
-            state->mode = MATCH;
-        case MATCH:
-            if (left == 0) goto inf_leave;
-            copy = out - left;
-            if (state->offset > copy) {         /* copy from window */
-                copy = state->offset - copy;
-                if (copy > state->whave) {
-                    if (state->sane) {
-                        strm->msg = (char *)"invalid distance too far back";
-                        state->mode = BAD;
-                        break;
-                    }
-#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
-                    Trace((stderr, "inflate.c too far\n"));
-                    copy -= state->whave;
-                    if (copy > state->length) copy = state->length;
-                    if (copy > left) copy = left;
-                    left -= copy;
-                    state->length -= copy;
-                    do {
-                        *put++ = 0;
-                    } while (--copy);
-                    if (state->length == 0) state->mode = LEN;
-                    break;
-#endif
-                }
-                if (copy > state->wnext) {
-                    copy -= state->wnext;
-                    from = state->window + (state->wsize - copy);
-                }
-                else
-                    from = state->window + (state->wnext - copy);
-                if (copy > state->length) copy = state->length;
-            }
-            else {                              /* copy from output */
-                from = put - state->offset;
-                copy = state->length;
-            }
-            if (copy > left) copy = left;
-            left -= copy;
-            state->length -= copy;
-            do {
-                *put++ = *from++;
-            } while (--copy);
-            if (state->length == 0) state->mode = LEN;
-            break;
-        case LIT:
-            if (left == 0) goto inf_leave;
-            *put++ = (unsigned char)(state->length);
-            left--;
-            state->mode = LEN;
-            break;
-        case CHECK:
-            if (state->wrap) {
-                NEEDBITS(32);
-                out -= left;
-                strm->total_out += out;
-                state->total += out;
-                if (out)
-                    strm->adler = state->check =
-                        UPDATE(state->check, put - out, out);
-                out = left;
-                if ((
-#ifdef GUNZIP
-                     state->flags ? hold :
-#endif
-                     ZSWAP32(hold)) != state->check) {
-                    strm->msg = (char *)"incorrect data check";
-                    state->mode = BAD;
-                    break;
-                }
-                INITBITS();
-                Tracev((stderr, "inflate:   check matches trailer\n"));
-            }
-#ifdef GUNZIP
-            state->mode = LENGTH;
-        case LENGTH:
-            if (state->wrap && state->flags) {
-                NEEDBITS(32);
-                if (hold != (state->total & 0xffffffffUL)) {
-                    strm->msg = (char *)"incorrect length check";
-                    state->mode = BAD;
-                    break;
-                }
-                INITBITS();
-                Tracev((stderr, "inflate:   length matches trailer\n"));
-            }
-#endif
-            state->mode = DONE;
-        case DONE:
-            ret = Z_STREAM_END;
-            goto inf_leave;
-        case BAD:
-            ret = Z_DATA_ERROR;
-            goto inf_leave;
-        case MEM:
-            return Z_MEM_ERROR;
-        case SYNC:
-        default:
-            return Z_STREAM_ERROR;
-        }
-
-    /*
-       Return from inflate(), updating the total counts and the check value.
-       If there was no progress during the inflate() call, return a buffer
-       error.  Call updatewindow() to create and/or update the window state.
-       Note: a memory error from inflate() is non-recoverable.
-     */
-  inf_leave:
-    RESTORE();
-    if (state->wsize || (out != strm->avail_out && state->mode < BAD &&
-            (state->mode < CHECK || flush != Z_FINISH)))
-        if (updatewindow(strm, strm->next_out, out - strm->avail_out)) {
-            state->mode = MEM;
-            return Z_MEM_ERROR;
-        }
-    in -= strm->avail_in;
-    out -= strm->avail_out;
-    strm->total_in += in;
-    strm->total_out += out;
-    state->total += out;
-    if (state->wrap && out)
-        strm->adler = state->check =
-            UPDATE(state->check, strm->next_out - out, out);
-    strm->data_type = state->bits + (state->last ? 64 : 0) +
-                      (state->mode == TYPE ? 128 : 0) +
-                      (state->mode == LEN_ || state->mode == COPY_ ? 256 : 0);
-    if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK)
-        ret = Z_BUF_ERROR;
-    return ret;
-}
-
-int ZEXPORT inflateEnd(strm)
-z_streamp strm;
-{
-    struct inflate_state FAR *state;
-    if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
-        return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    if (state->window != Z_NULL) ZFREE(strm, state->window);
-    ZFREE(strm, strm->state);
-    strm->state = Z_NULL;
-    Tracev((stderr, "inflate: end\n"));
-    return Z_OK;
-}
-
-int ZEXPORT inflateGetDictionary(strm, dictionary, dictLength)
-z_streamp strm;
-Bytef *dictionary;
-uInt *dictLength;
-{
-    struct inflate_state FAR *state;
-
-    /* check state */
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-
-    /* copy dictionary */
-    if (state->whave && dictionary != Z_NULL) {
-        zmemcpy(dictionary, state->window + state->wnext,
-                state->whave - state->wnext);
-        zmemcpy(dictionary + state->whave - state->wnext,
-                state->window, state->wnext);
-    }
-    if (dictLength != Z_NULL)
-        *dictLength = state->whave;
-    return Z_OK;
-}
-
-int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength)
-z_streamp strm;
-const Bytef *dictionary;
-uInt dictLength;
-{
-    struct inflate_state FAR *state;
-    unsigned long dictid;
-    int ret;
-
-    /* check state */
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    if (state->wrap != 0 && state->mode != DICT)
-        return Z_STREAM_ERROR;
-
-    /* check for correct dictionary identifier */
-    if (state->mode == DICT) {
-        dictid = adler32(0L, Z_NULL, 0);
-        dictid = adler32(dictid, dictionary, dictLength);
-        if (dictid != state->check)
-            return Z_DATA_ERROR;
-    }
-
-    /* copy dictionary to window using updatewindow(), which will amend the
-       existing dictionary if appropriate */
-    ret = updatewindow(strm, dictionary + dictLength, dictLength);
-    if (ret) {
-        state->mode = MEM;
-        return Z_MEM_ERROR;
-    }
-    state->havedict = 1;
-    Tracev((stderr, "inflate:   dictionary set\n"));
-    return Z_OK;
-}
-
-int ZEXPORT inflateGetHeader(strm, head)
-z_streamp strm;
-gz_headerp head;
-{
-    struct inflate_state FAR *state;
-
-    /* check state */
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    if ((state->wrap & 2) == 0) return Z_STREAM_ERROR;
-
-    /* save header structure */
-    state->head = head;
-    head->done = 0;
-    return Z_OK;
-}
-
-/*
-   Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff.  Return when found
-   or when out of input.  When called, *have is the number of pattern bytes
-   found in order so far, in 0..3.  On return *have is updated to the new
-   state.  If on return *have equals four, then the pattern was found and the
-   return value is how many bytes were read including the last byte of the
-   pattern.  If *have is less than four, then the pattern has not been found
-   yet and the return value is len.  In the latter case, syncsearch() can be
-   called again with more data and the *have state.  *have is initialized to
-   zero for the first call.
- */
-local unsigned syncsearch(have, buf, len)
-unsigned FAR *have;
-const unsigned char FAR *buf;
-unsigned len;
-{
-    unsigned got;
-    unsigned next;
-
-    got = *have;
-    next = 0;
-    while (next < len && got < 4) {
-        if ((int)(buf[next]) == (got < 2 ? 0 : 0xff))
-            got++;
-        else if (buf[next])
-            got = 0;
-        else
-            got = 4 - got;
-        next++;
-    }
-    *have = got;
-    return next;
-}
-
-int ZEXPORT inflateSync(strm)
-z_streamp strm;
-{
-    unsigned len;               /* number of bytes to look at or looked at */
-    unsigned long in, out;      /* temporary to save total_in and total_out */
-    unsigned char buf[4];       /* to restore bit buffer to byte string */
-    struct inflate_state FAR *state;
-
-    /* check parameters */
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR;
-
-    /* if first time, start search in bit buffer */
-    if (state->mode != SYNC) {
-        state->mode = SYNC;
-        state->hold <<= state->bits & 7;
-        state->bits -= state->bits & 7;
-        len = 0;
-        while (state->bits >= 8) {
-            buf[len++] = (unsigned char)(state->hold);
-            state->hold >>= 8;
-            state->bits -= 8;
-        }
-        state->have = 0;
-        syncsearch(&(state->have), buf, len);
-    }
-
-    /* search available input */
-    len = syncsearch(&(state->have), strm->next_in, strm->avail_in);
-    strm->avail_in -= len;
-    strm->next_in += len;
-    strm->total_in += len;
-
-    /* return no joy or set up to restart inflate() on a new block */
-    if (state->have != 4) return Z_DATA_ERROR;
-    in = strm->total_in;  out = strm->total_out;
-    inflateReset(strm);
-    strm->total_in = in;  strm->total_out = out;
-    state->mode = TYPE;
-    return Z_OK;
-}
-
-/*
-   Returns true if inflate is currently at the end of a block generated by
-   Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
-   implementation to provide an additional safety check. PPP uses
-   Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored
-   block. When decompressing, PPP checks that at the end of input packet,
-   inflate is waiting for these length bytes.
- */
-int ZEXPORT inflateSyncPoint(strm)
-z_streamp strm;
-{
-    struct inflate_state FAR *state;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    return state->mode == STORED && state->bits == 0;
-}
-
-int ZEXPORT inflateCopy(dest, source)
-z_streamp dest;
-z_streamp source;
-{
-    struct inflate_state FAR *state;
-    struct inflate_state FAR *copy;
-    unsigned char FAR *window;
-    unsigned wsize;
-
-    /* check input */
-    if (dest == Z_NULL || source == Z_NULL || source->state == Z_NULL ||
-        source->zalloc == (alloc_func)0 || source->zfree == (free_func)0)
-        return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)source->state;
-
-    /* allocate space */
-    copy = (struct inflate_state FAR *)
-           ZALLOC(source, 1, sizeof(struct inflate_state));
-    if (copy == Z_NULL) return Z_MEM_ERROR;
-    window = Z_NULL;
-    if (state->window != Z_NULL) {
-        window = (unsigned char FAR *)
-                 ZALLOC(source, 1U << state->wbits, sizeof(unsigned char));
-        if (window == Z_NULL) {
-            ZFREE(source, copy);
-            return Z_MEM_ERROR;
-        }
-    }
-
-    /* copy state */
-    zmemcpy((voidpf)dest, (voidpf)source, sizeof(z_stream));
-    zmemcpy((voidpf)copy, (voidpf)state, sizeof(struct inflate_state));
-    if (state->lencode >= state->codes &&
-        state->lencode <= state->codes + ENOUGH - 1) {
-        copy->lencode = copy->codes + (state->lencode - state->codes);
-        copy->distcode = copy->codes + (state->distcode - state->codes);
-    }
-    copy->next = copy->codes + (state->next - state->codes);
-    if (window != Z_NULL) {
-        wsize = 1U << state->wbits;
-        zmemcpy(window, state->window, wsize);
-    }
-    copy->window = window;
-    dest->state = (struct internal_state FAR *)copy;
-    return Z_OK;
-}
-
-int ZEXPORT inflateUndermine(strm, subvert)
-z_streamp strm;
-int subvert;
-{
-    struct inflate_state FAR *state;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    state->sane = !subvert;
-#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
-    return Z_OK;
-#else
-    state->sane = 1;
-    return Z_DATA_ERROR;
-#endif
-}
-
-long ZEXPORT inflateMark(strm)
-z_streamp strm;
-{
-    struct inflate_state FAR *state;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16;
-    state = (struct inflate_state FAR *)strm->state;
-    return ((long)(state->back) << 16) +
-        (state->mode == COPY ? state->length :
-            (state->mode == MATCH ? state->was - state->length : 0));
-}
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inflate.h b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inflate.h
deleted file mode 100644
index 95f4986..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inflate.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* inflate.h -- internal inflate state definition
- * Copyright (C) 1995-2009 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* define NO_GZIP when compiling if you want to disable gzip header and
-   trailer decoding by inflate().  NO_GZIP would be used to avoid linking in
-   the crc code when it is not needed.  For shared libraries, gzip decoding
-   should be left enabled. */
-#ifndef NO_GZIP
-#  define GUNZIP
-#endif
-
-/* Possible inflate modes between inflate() calls */
-typedef enum {
-    HEAD,       /* i: waiting for magic header */
-    FLAGS,      /* i: waiting for method and flags (gzip) */
-    TIME,       /* i: waiting for modification time (gzip) */
-    OS,         /* i: waiting for extra flags and operating system (gzip) */
-    EXLEN,      /* i: waiting for extra length (gzip) */
-    EXTRA,      /* i: waiting for extra bytes (gzip) */
-    NAME,       /* i: waiting for end of file name (gzip) */
-    COMMENT,    /* i: waiting for end of comment (gzip) */
-    HCRC,       /* i: waiting for header crc (gzip) */
-    DICTID,     /* i: waiting for dictionary check value */
-    DICT,       /* waiting for inflateSetDictionary() call */
-        TYPE,       /* i: waiting for type bits, including last-flag bit */
-        TYPEDO,     /* i: same, but skip check to exit inflate on new block */
-        STORED,     /* i: waiting for stored size (length and complement) */
-        COPY_,      /* i/o: same as COPY below, but only first time in */
-        COPY,       /* i/o: waiting for input or output to copy stored block */
-        TABLE,      /* i: waiting for dynamic block table lengths */
-        LENLENS,    /* i: waiting for code length code lengths */
-        CODELENS,   /* i: waiting for length/lit and distance code lengths */
-            LEN_,       /* i: same as LEN below, but only first time in */
-            LEN,        /* i: waiting for length/lit/eob code */
-            LENEXT,     /* i: waiting for length extra bits */
-            DIST,       /* i: waiting for distance code */
-            DISTEXT,    /* i: waiting for distance extra bits */
-            MATCH,      /* o: waiting for output space to copy string */
-            LIT,        /* o: waiting for output space to write literal */
-    CHECK,      /* i: waiting for 32-bit check value */
-    LENGTH,     /* i: waiting for 32-bit length (gzip) */
-    DONE,       /* finished check, done -- remain here until reset */
-    BAD,        /* got a data error -- remain here until reset */
-    MEM,        /* got an inflate() memory error -- remain here until reset */
-    SYNC        /* looking for synchronization bytes to restart inflate() */
-} inflate_mode;
-
-/*
-    State transitions between above modes -
-
-    (most modes can go to BAD or MEM on error -- not shown for clarity)
-
-    Process header:
-        HEAD -> (gzip) or (zlib) or (raw)
-        (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME -> COMMENT ->
-                  HCRC -> TYPE
-        (zlib) -> DICTID or TYPE
-        DICTID -> DICT -> TYPE
-        (raw) -> TYPEDO
-    Read deflate blocks:
-            TYPE -> TYPEDO -> STORED or TABLE or LEN_ or CHECK
-            STORED -> COPY_ -> COPY -> TYPE
-            TABLE -> LENLENS -> CODELENS -> LEN_
-            LEN_ -> LEN
-    Read deflate codes in fixed or dynamic block:
-                LEN -> LENEXT or LIT or TYPE
-                LENEXT -> DIST -> DISTEXT -> MATCH -> LEN
-                LIT -> LEN
-    Process trailer:
-        CHECK -> LENGTH -> DONE
- */
-
-/* state maintained between inflate() calls.  Approximately 10K bytes. */
-struct inflate_state {
-    inflate_mode mode;          /* current inflate mode */
-    int last;                   /* true if processing last block */
-    int wrap;                   /* bit 0 true for zlib, bit 1 true for gzip */
-    int havedict;               /* true if dictionary provided */
-    int flags;                  /* gzip header method and flags (0 if zlib) */
-    unsigned dmax;              /* zlib header max distance (INFLATE_STRICT) */
-    unsigned long check;        /* protected copy of check value */
-    unsigned long total;        /* protected copy of output count */
-    gz_headerp head;            /* where to save gzip header information */
-        /* sliding window */
-    unsigned wbits;             /* log base 2 of requested window size */
-    unsigned wsize;             /* window size or zero if not using window */
-    unsigned whave;             /* valid bytes in the window */
-    unsigned wnext;             /* window write index */
-    unsigned char FAR *window;  /* allocated sliding window, if needed */
-        /* bit accumulator */
-    unsigned long hold;         /* input bit accumulator */
-    unsigned bits;              /* number of bits in "in" */
-        /* for string and stored block copying */
-    unsigned length;            /* literal or length of data to copy */
-    unsigned offset;            /* distance back to copy string from */
-        /* for table and code decoding */
-    unsigned extra;             /* extra bits needed */
-        /* fixed and dynamic code tables */
-    code const FAR *lencode;    /* starting table for length/literal codes */
-    code const FAR *distcode;   /* starting table for distance codes */
-    unsigned lenbits;           /* index bits for lencode */
-    unsigned distbits;          /* index bits for distcode */
-        /* dynamic table building */
-    unsigned ncode;             /* number of code length code lengths */
-    unsigned nlen;              /* number of length code lengths */
-    unsigned ndist;             /* number of distance code lengths */
-    unsigned have;              /* number of code lengths in lens[] */
-    code FAR *next;             /* next available space in codes[] */
-    unsigned short lens[320];   /* temporary storage for code lengths */
-    unsigned short work[288];   /* work area for code table building */
-    code codes[ENOUGH];         /* space for code tables */
-    int sane;                   /* if false, allow invalid distance too far */
-    int back;                   /* bits back of last unprocessed length/lit */
-    unsigned was;               /* initial length of match */
-};
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inftrees.c b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inftrees.c
deleted file mode 100644
index 44d89cf..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inftrees.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/* inftrees.c -- generate Huffman trees for efficient decoding
- * Copyright (C) 1995-2013 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-
-#define MAXBITS 15
-
-const char inflate_copyright[] =
-   " inflate 1.2.8 Copyright 1995-2013 Mark Adler ";
-/*
-  If you use the zlib library in a product, an acknowledgment is welcome
-  in the documentation of your product. If for some reason you cannot
-  include such an acknowledgment, I would appreciate that you keep this
-  copyright string in the executable of your product.
- */
-
-/*
-   Build a set of tables to decode the provided canonical Huffman code.
-   The code lengths are lens[0..codes-1].  The result starts at *table,
-   whose indices are 0..2^bits-1.  work is a writable array of at least
-   lens shorts, which is used as a work area.  type is the type of code
-   to be generated, CODES, LENS, or DISTS.  On return, zero is success,
-   -1 is an invalid code, and +1 means that ENOUGH isn't enough.  table
-   on return points to the next available entry's address.  bits is the
-   requested root table index bits, and on return it is the actual root
-   table index bits.  It will differ if the request is greater than the
-   longest code or if it is less than the shortest code.
- */
-int ZLIB_INTERNAL inflate_table(type, lens, codes, table, bits, work)
-codetype type;
-unsigned short FAR *lens;
-unsigned codes;
-code FAR * FAR *table;
-unsigned FAR *bits;
-unsigned short FAR *work;
-{
-    unsigned len;               /* a code's length in bits */
-    unsigned sym;               /* index of code symbols */
-    unsigned min, max;          /* minimum and maximum code lengths */
-    unsigned root;              /* number of index bits for root table */
-    unsigned curr;              /* number of index bits for current table */
-    unsigned drop;              /* code bits to drop for sub-table */
-    int left;                   /* number of prefix codes available */
-    unsigned used;              /* code entries in table used */
-    unsigned huff;              /* Huffman code */
-    unsigned incr;              /* for incrementing code, index */
-    unsigned fill;              /* index for replicating entries */
-    unsigned low;               /* low bits for current root entry */
-    unsigned mask;              /* mask for low root bits */
-    code here;                  /* table entry for duplication */
-    code FAR *next;             /* next available space in table */
-    const unsigned short FAR *base;     /* base value table to use */
-    const unsigned short FAR *extra;    /* extra bits table to use */
-    int end;                    /* use base and extra for symbol > end */
-    unsigned short count[MAXBITS+1];    /* number of codes of each length */
-    unsigned short offs[MAXBITS+1];     /* offsets in table for each length */
-    static const unsigned short lbase[31] = { /* Length codes 257..285 base */
-        3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
-        35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
-    static const unsigned short lext[31] = { /* Length codes 257..285 extra */
-        16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
-        19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78};
-    static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
-        1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
-        257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
-        8193, 12289, 16385, 24577, 0, 0};
-    static const unsigned short dext[32] = { /* Distance codes 0..29 extra */
-        16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
-        23, 23, 24, 24, 25, 25, 26, 26, 27, 27,
-        28, 28, 29, 29, 64, 64};
-
-    /*
-       Process a set of code lengths to create a canonical Huffman code.  The
-       code lengths are lens[0..codes-1].  Each length corresponds to the
-       symbols 0..codes-1.  The Huffman code is generated by first sorting the
-       symbols by length from short to long, and retaining the symbol order
-       for codes with equal lengths.  Then the code starts with all zero bits
-       for the first code of the shortest length, and the codes are integer
-       increments for the same length, and zeros are appended as the length
-       increases.  For the deflate format, these bits are stored backwards
-       from their more natural integer increment ordering, and so when the
-       decoding tables are built in the large loop below, the integer codes
-       are incremented backwards.
-
-       This routine assumes, but does not check, that all of the entries in
-       lens[] are in the range 0..MAXBITS.  The caller must assure this.
-       1..MAXBITS is interpreted as that code length.  zero means that that
-       symbol does not occur in this code.
-
-       The codes are sorted by computing a count of codes for each length,
-       creating from that a table of starting indices for each length in the
-       sorted table, and then entering the symbols in order in the sorted
-       table.  The sorted table is work[], with that space being provided by
-       the caller.
-
-       The length counts are used for other purposes as well, i.e. finding
-       the minimum and maximum length codes, determining if there are any
-       codes at all, checking for a valid set of lengths, and looking ahead
-       at length counts to determine sub-table sizes when building the
-       decoding tables.
-     */
-
-    /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
-    for (len = 0; len <= MAXBITS; len++)
-        count[len] = 0;
-    for (sym = 0; sym < codes; sym++)
-        count[lens[sym]]++;
-
-    /* bound code lengths, force root to be within code lengths */
-    root = *bits;
-    for (max = MAXBITS; max >= 1; max--)
-        if (count[max] != 0) break;
-    if (root > max) root = max;
-    if (max == 0) {                     /* no symbols to code at all */
-        here.op = (unsigned char)64;    /* invalid code marker */
-        here.bits = (unsigned char)1;
-        here.val = (unsigned short)0;
-        *(*table)++ = here;             /* make a table to force an error */
-        *(*table)++ = here;
-        *bits = 1;
-        return 0;     /* no symbols, but wait for decoding to report error */
-    }
-    for (min = 1; min < max; min++)
-        if (count[min] != 0) break;
-    if (root < min) root = min;
-
-    /* check for an over-subscribed or incomplete set of lengths */
-    left = 1;
-    for (len = 1; len <= MAXBITS; len++) {
-        left <<= 1;
-        left -= count[len];
-        if (left < 0) return -1;        /* over-subscribed */
-    }
-    if (left > 0 && (type == CODES || max != 1))
-        return -1;                      /* incomplete set */
-
-    /* generate offsets into symbol table for each length for sorting */
-    offs[1] = 0;
-    for (len = 1; len < MAXBITS; len++)
-        offs[len + 1] = offs[len] + count[len];
-
-    /* sort symbols by length, by symbol order within each length */
-    for (sym = 0; sym < codes; sym++)
-        if (lens[sym] != 0) work[offs[lens[sym]]++] = (unsigned short)sym;
-
-    /*
-       Create and fill in decoding tables.  In this loop, the table being
-       filled is at next and has curr index bits.  The code being used is huff
-       with length len.  That code is converted to an index by dropping drop
-       bits off of the bottom.  For codes where len is less than drop + curr,
-       those top drop + curr - len bits are incremented through all values to
-       fill the table with replicated entries.
-
-       root is the number of index bits for the root table.  When len exceeds
-       root, sub-tables are created pointed to by the root entry with an index
-       of the low root bits of huff.  This is saved in low to check for when a
-       new sub-table should be started.  drop is zero when the root table is
-       being filled, and drop is root when sub-tables are being filled.
-
-       When a new sub-table is needed, it is necessary to look ahead in the
-       code lengths to determine what size sub-table is needed.  The length
-       counts are used for this, and so count[] is decremented as codes are
-       entered in the tables.
-
-       used keeps track of how many table entries have been allocated from the
-       provided *table space.  It is checked for LENS and DIST tables against
-       the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
-       the initial root table size constants.  See the comments in inftrees.h
-       for more information.
-
-       sym increments through all symbols, and the loop terminates when
-       all codes of length max, i.e. all codes, have been processed.  This
-       routine permits incomplete codes, so another loop after this one fills
-       in the rest of the decoding tables with invalid code markers.
-     */
-
-    /* set up for code type */
-    switch (type) {
-    case CODES:
-        base = extra = work;    /* dummy value--not used */
-        end = 19;
-        break;
-    case LENS:
-        base = lbase;
-        base -= 257;
-        extra = lext;
-        extra -= 257;
-        end = 256;
-        break;
-    default:            /* DISTS */
-        base = dbase;
-        extra = dext;
-        end = -1;
-    }
-
-    /* initialize state for loop */
-    huff = 0;                   /* starting code */
-    sym = 0;                    /* starting code symbol */
-    len = min;                  /* starting code length */
-    next = *table;              /* current table to fill in */
-    curr = root;                /* current table index bits */
-    drop = 0;                   /* current bits to drop from code for index */
-    low = (unsigned)(-1);       /* trigger new sub-table when len > root */
-    used = 1U << root;          /* use root table entries */
-    mask = used - 1;            /* mask for comparing low */
-
-    /* check available table space */
-    if ((type == LENS && used > ENOUGH_LENS) ||
-        (type == DISTS && used > ENOUGH_DISTS))
-        return 1;
-
-    /* process all codes and make table entries */
-    for (;;) {
-        /* create table entry */
-        here.bits = (unsigned char)(len - drop);
-        if ((int)(work[sym]) < end) {
-            here.op = (unsigned char)0;
-            here.val = work[sym];
-        }
-        else if ((int)(work[sym]) > end) {
-            here.op = (unsigned char)(extra[work[sym]]);
-            here.val = base[work[sym]];
-        }
-        else {
-            here.op = (unsigned char)(32 + 64);         /* end of block */
-            here.val = 0;
-        }
-
-        /* replicate for those indices with low len bits equal to huff */
-        incr = 1U << (len - drop);
-        fill = 1U << curr;
-        min = fill;                 /* save offset to next table */
-        do {
-            fill -= incr;
-            next[(huff >> drop) + fill] = here;
-        } while (fill != 0);
-
-        /* backwards increment the len-bit code huff */
-        incr = 1U << (len - 1);
-        while (huff & incr)
-            incr >>= 1;
-        if (incr != 0) {
-            huff &= incr - 1;
-            huff += incr;
-        }
-        else
-            huff = 0;
-
-        /* go to next symbol, update count, len */
-        sym++;
-        if (--(count[len]) == 0) {
-            if (len == max) break;
-            len = lens[work[sym]];
-        }
-
-        /* create new sub-table if needed */
-        if (len > root && (huff & mask) != low) {
-            /* if first time, transition to sub-tables */
-            if (drop == 0)
-                drop = root;
-
-            /* increment past last table */
-            next += min;            /* here min is 1 << curr */
-
-            /* determine length of next table */
-            curr = len - drop;
-            left = (int)(1 << curr);
-            while (curr + drop < max) {
-                left -= count[curr + drop];
-                if (left <= 0) break;
-                curr++;
-                left <<= 1;
-            }
-
-            /* check for enough space */
-            used += 1U << curr;
-            if ((type == LENS && used > ENOUGH_LENS) ||
-                (type == DISTS && used > ENOUGH_DISTS))
-                return 1;
-
-            /* point entry in root table to sub-table */
-            low = huff & mask;
-            (*table)[low].op = (unsigned char)curr;
-            (*table)[low].bits = (unsigned char)root;
-            (*table)[low].val = (unsigned short)(next - *table);
-        }
-    }
-
-    /* fill in remaining table entry if code is incomplete (guaranteed to have
-       at most one remaining entry, since if the code is incomplete, the
-       maximum code length that was allowed to get this far is one bit) */
-    if (huff != 0) {
-        here.op = (unsigned char)64;            /* invalid code marker */
-        here.bits = (unsigned char)(len - drop);
-        here.val = (unsigned short)0;
-        next[huff] = here;
-    }
-
-    /* set return parameters */
-    *table += used;
-    *bits = root;
-    return 0;
-}
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inftrees.h b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inftrees.h
deleted file mode 100644
index baa53a0..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/inftrees.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* inftrees.h -- header to use inftrees.c
- * Copyright (C) 1995-2005, 2010 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* Structure for decoding tables.  Each entry provides either the
-   information needed to do the operation requested by the code that
-   indexed that table entry, or it provides a pointer to another
-   table that indexes more bits of the code.  op indicates whether
-   the entry is a pointer to another table, a literal, a length or
-   distance, an end-of-block, or an invalid code.  For a table
-   pointer, the low four bits of op is the number of index bits of
-   that table.  For a length or distance, the low four bits of op
-   is the number of extra bits to get after the code.  bits is
-   the number of bits in this code or part of the code to drop off
-   of the bit buffer.  val is the actual byte to output in the case
-   of a literal, the base length or distance, or the offset from
-   the current table to the next table.  Each entry is four bytes. */
-typedef struct {
-    unsigned char op;           /* operation, extra bits, table bits */
-    unsigned char bits;         /* bits in this part of the code */
-    unsigned short val;         /* offset in table or code value */
-} code;
-
-/* op values as set by inflate_table():
-    00000000 - literal
-    0000tttt - table link, tttt != 0 is the number of table index bits
-    0001eeee - length or distance, eeee is the number of extra bits
-    01100000 - end of block
-    01000000 - invalid code
- */
-
-/* Maximum size of the dynamic table.  The maximum number of code structures is
-   1444, which is the sum of 852 for literal/length codes and 592 for distance
-   codes.  These values were found by exhaustive searches using the program
-   examples/enough.c found in the zlib distribtution.  The arguments to that
-   program are the number of symbols, the initial root table size, and the
-   maximum bit length of a code.  "enough 286 9 15" for literal/length codes
-   returns returns 852, and "enough 30 6 15" for distance codes returns 592.
-   The initial root table size (9 or 6) is found in the fifth argument of the
-   inflate_table() calls in inflate.c and infback.c.  If the root table size is
-   changed, then these maximum sizes would be need to be recalculated and
-   updated. */
-#define ENOUGH_LENS 852
-#define ENOUGH_DISTS 592
-#define ENOUGH (ENOUGH_LENS+ENOUGH_DISTS)
-
-/* Type of code to build for inflate_table() */
-typedef enum {
-    CODES,
-    LENS,
-    DISTS
-} codetype;
-
-int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens,
-                             unsigned codes, code FAR * FAR *table,
-                             unsigned FAR *bits, unsigned short FAR *work));
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/trees.c b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/trees.c
deleted file mode 100644
index 1fd7759..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/trees.c
+++ /dev/null
@@ -1,1226 +0,0 @@
-/* trees.c -- output deflated data using Huffman coding
- * Copyright (C) 1995-2012 Jean-loup Gailly
- * detect_data_type() function provided freely by Cosmin Truta, 2006
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- *  ALGORITHM
- *
- *      The "deflation" process uses several Huffman trees. The more
- *      common source values are represented by shorter bit sequences.
- *
- *      Each code tree is stored in a compressed form which is itself
- * a Huffman encoding of the lengths of all the code strings (in
- * ascending order by source values).  The actual code strings are
- * reconstructed from the lengths in the inflate process, as described
- * in the deflate specification.
- *
- *  REFERENCES
- *
- *      Deutsch, L.P.,"'Deflate' Compressed Data Format Specification".
- *      Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc
- *
- *      Storer, James A.
- *          Data Compression:  Methods and Theory, pp. 49-50.
- *          Computer Science Press, 1988.  ISBN 0-7167-8156-5.
- *
- *      Sedgewick, R.
- *          Algorithms, p290.
- *          Addison-Wesley, 1983. ISBN 0-201-06672-6.
- */
-
-/* @(#) $Id$ */
-
-/* #define GEN_TREES_H */
-
-#include "deflate.h"
-
-#ifdef DEBUG
-#  include <ctype.h>
-#endif
-
-/* ===========================================================================
- * Constants
- */
-
-#define MAX_BL_BITS 7
-/* Bit length codes must not exceed MAX_BL_BITS bits */
-
-#define END_BLOCK 256
-/* end of block literal code */
-
-#define REP_3_6      16
-/* repeat previous bit length 3-6 times (2 bits of repeat count) */
-
-#define REPZ_3_10    17
-/* repeat a zero length 3-10 times  (3 bits of repeat count) */
-
-#define REPZ_11_138  18
-/* repeat a zero length 11-138 times  (7 bits of repeat count) */
-
-local const int extra_lbits[LENGTH_CODES] /* extra bits for each length code */
-   = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0};
-
-local const int extra_dbits[D_CODES] /* extra bits for each distance code */
-   = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};
-
-local const int extra_blbits[BL_CODES]/* extra bits for each bit length code */
-   = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7};
-
-local const uch bl_order[BL_CODES]
-   = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15};
-/* The lengths of the bit length codes are sent in order of decreasing
- * probability, to avoid transmitting the lengths for unused bit length codes.
- */
-
-/* ===========================================================================
- * Local data. These are initialized only once.
- */
-
-#define DIST_CODE_LEN  512 /* see definition of array dist_code below */
-
-#if defined(GEN_TREES_H) || !defined(STDC)
-/* non ANSI compilers may not accept trees.h */
-
-local ct_data static_ltree[L_CODES+2];
-/* The static literal tree. Since the bit lengths are imposed, there is no
- * need for the L_CODES extra codes used during heap construction. However
- * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
- * below).
- */
-
-local ct_data static_dtree[D_CODES];
-/* The static distance tree. (Actually a trivial tree since all codes use
- * 5 bits.)
- */
-
-uch _dist_code[DIST_CODE_LEN];
-/* Distance codes. The first 256 values correspond to the distances
- * 3 .. 258, the last 256 values correspond to the top 8 bits of
- * the 15 bit distances.
- */
-
-uch _length_code[MAX_MATCH-MIN_MATCH+1];
-/* length code for each normalized match length (0 == MIN_MATCH) */
-
-local int base_length[LENGTH_CODES];
-/* First normalized length for each code (0 = MIN_MATCH) */
-
-local int base_dist[D_CODES];
-/* First normalized distance for each code (0 = distance of 1) */
-
-#else
-#  include "trees.h"
-#endif /* GEN_TREES_H */
-
-struct static_tree_desc_s {
-    const ct_data *static_tree;  /* static tree or NULL */
-    const intf *extra_bits;      /* extra bits for each code or NULL */
-    int     extra_base;          /* base index for extra_bits */
-    int     elems;               /* max number of elements in the tree */
-    int     max_length;          /* max bit length for the codes */
-};
-
-local static_tree_desc  static_l_desc =
-{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS};
-
-local static_tree_desc  static_d_desc =
-{static_dtree, extra_dbits, 0,          D_CODES, MAX_BITS};
-
-local static_tree_desc  static_bl_desc =
-{(const ct_data *)0, extra_blbits, 0,   BL_CODES, MAX_BL_BITS};
-
-/* ===========================================================================
- * Local (static) routines in this file.
- */
-
-local void tr_static_init OF((void));
-local void init_block     OF((deflate_state *s));
-local void pqdownheap     OF((deflate_state *s, ct_data *tree, int k));
-local void gen_bitlen     OF((deflate_state *s, tree_desc *desc));
-local void gen_codes      OF((ct_data *tree, int max_code, ushf *bl_count));
-local void build_tree     OF((deflate_state *s, tree_desc *desc));
-local void scan_tree      OF((deflate_state *s, ct_data *tree, int max_code));
-local void send_tree      OF((deflate_state *s, ct_data *tree, int max_code));
-local int  build_bl_tree  OF((deflate_state *s));
-local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes,
-                              int blcodes));
-local void compress_block OF((deflate_state *s, const ct_data *ltree,
-                              const ct_data *dtree));
-local int  detect_data_type OF((deflate_state *s));
-local unsigned bi_reverse OF((unsigned value, int length));
-local void bi_windup      OF((deflate_state *s));
-local void bi_flush       OF((deflate_state *s));
-local void copy_block     OF((deflate_state *s, charf *buf, unsigned len,
-                              int header));
-
-#ifdef GEN_TREES_H
-local void gen_trees_header OF((void));
-#endif
-
-#ifndef DEBUG
-#  define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len)
-   /* Send a code of the given tree. c and tree must not have side effects */
-
-#else /* DEBUG */
-#  define send_code(s, c, tree) \
-     { if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \
-       send_bits(s, tree[c].Code, tree[c].Len); }
-#endif
-
-/* ===========================================================================
- * Output a short LSB first on the stream.
- * IN assertion: there is enough room in pendingBuf.
- */
-#define put_short(s, w) { \
-    put_byte(s, (uch)((w) & 0xff)); \
-    put_byte(s, (uch)((ush)(w) >> 8)); \
-}
-
-/* ===========================================================================
- * Send a value on a given number of bits.
- * IN assertion: length <= 16 and value fits in length bits.
- */
-#ifdef DEBUG
-local void send_bits      OF((deflate_state *s, int value, int length));
-
-local void send_bits(s, value, length)
-    deflate_state *s;
-    int value;  /* value to send */
-    int length; /* number of bits */
-{
-    Tracevv((stderr," l %2d v %4x ", length, value));
-    Assert(length > 0 && length <= 15, "invalid length");
-    s->bits_sent += (ulg)length;
-
-    /* If not enough room in bi_buf, use (valid) bits from bi_buf and
-     * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
-     * unused bits in value.
-     */
-    if (s->bi_valid > (int)Buf_size - length) {
-        s->bi_buf |= (ush)value << s->bi_valid;
-        put_short(s, s->bi_buf);
-        s->bi_buf = (ush)value >> (Buf_size - s->bi_valid);
-        s->bi_valid += length - Buf_size;
-    } else {
-        s->bi_buf |= (ush)value << s->bi_valid;
-        s->bi_valid += length;
-    }
-}
-#else /* !DEBUG */
-
-#define send_bits(s, value, length) \
-{ int len = length;\
-  if (s->bi_valid > (int)Buf_size - len) {\
-    int val = value;\
-    s->bi_buf |= (ush)val << s->bi_valid;\
-    put_short(s, s->bi_buf);\
-    s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\
-    s->bi_valid += len - Buf_size;\
-  } else {\
-    s->bi_buf |= (ush)(value) << s->bi_valid;\
-    s->bi_valid += len;\
-  }\
-}
-#endif /* DEBUG */
-
-
-/* the arguments must not have side effects */
-
-/* ===========================================================================
- * Initialize the various 'constant' tables.
- */
-local void tr_static_init()
-{
-#if defined(GEN_TREES_H) || !defined(STDC)
-    static int static_init_done = 0;
-    int n;        /* iterates over tree elements */
-    int bits;     /* bit counter */
-    int length;   /* length value */
-    int code;     /* code value */
-    int dist;     /* distance index */
-    ush bl_count[MAX_BITS+1];
-    /* number of codes at each bit length for an optimal tree */
-
-    if (static_init_done) return;
-
-    /* For some embedded targets, global variables are not initialized: */
-#ifdef NO_INIT_GLOBAL_POINTERS
-    static_l_desc.static_tree = static_ltree;
-    static_l_desc.extra_bits = extra_lbits;
-    static_d_desc.static_tree = static_dtree;
-    static_d_desc.extra_bits = extra_dbits;
-    static_bl_desc.extra_bits = extra_blbits;
-#endif
-
-    /* Initialize the mapping length (0..255) -> length code (0..28) */
-    length = 0;
-    for (code = 0; code < LENGTH_CODES-1; code++) {
-        base_length[code] = length;
-        for (n = 0; n < (1<<extra_lbits[code]); n++) {
-            _length_code[length++] = (uch)code;
-        }
-    }
-    Assert (length == 256, "tr_static_init: length != 256");
-    /* Note that the length 255 (match length 258) can be represented
-     * in two different ways: code 284 + 5 bits or code 285, so we
-     * overwrite length_code[255] to use the best encoding:
-     */
-    _length_code[length-1] = (uch)code;
-
-    /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
-    dist = 0;
-    for (code = 0 ; code < 16; code++) {
-        base_dist[code] = dist;
-        for (n = 0; n < (1<<extra_dbits[code]); n++) {
-            _dist_code[dist++] = (uch)code;
-        }
-    }
-    Assert (dist == 256, "tr_static_init: dist != 256");
-    dist >>= 7; /* from now on, all distances are divided by 128 */
-    for ( ; code < D_CODES; code++) {
-        base_dist[code] = dist << 7;
-        for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) {
-            _dist_code[256 + dist++] = (uch)code;
-        }
-    }
-    Assert (dist == 256, "tr_static_init: 256+dist != 512");
-
-    /* Construct the codes of the static literal tree */
-    for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0;
-    n = 0;
-    while (n <= 143) static_ltree[n++].Len = 8, bl_count[8]++;
-    while (n <= 255) static_ltree[n++].Len = 9, bl_count[9]++;
-    while (n <= 279) static_ltree[n++].Len = 7, bl_count[7]++;
-    while (n <= 287) static_ltree[n++].Len = 8, bl_count[8]++;
-    /* Codes 286 and 287 do not exist, but we must include them in the
-     * tree construction to get a canonical Huffman tree (longest code
-     * all ones)
-     */
-    gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count);
-
-    /* The static distance tree is trivial: */
-    for (n = 0; n < D_CODES; n++) {
-        static_dtree[n].Len = 5;
-        static_dtree[n].Code = bi_reverse((unsigned)n, 5);
-    }
-    static_init_done = 1;
-
-#  ifdef GEN_TREES_H
-    gen_trees_header();
-#  endif
-#endif /* defined(GEN_TREES_H) || !defined(STDC) */
-}
-
-/* ===========================================================================
- * Genererate the file trees.h describing the static trees.
- */
-#ifdef GEN_TREES_H
-#  ifndef DEBUG
-#    include <stdio.h>
-#  endif
-
-#  define SEPARATOR(i, last, width) \
-      ((i) == (last)? "\n};\n\n" :    \
-       ((i) % (width) == (width)-1 ? ",\n" : ", "))
-
-void gen_trees_header()
-{
-    FILE *header = fopen("trees.h", "w");
-    int i;
-
-    Assert (header != NULL, "Can't open trees.h");
-    fprintf(header,
-            "/* header created automatically with -DGEN_TREES_H */\n\n");
-
-    fprintf(header, "local const ct_data static_ltree[L_CODES+2] = {\n");
-    for (i = 0; i < L_CODES+2; i++) {
-        fprintf(header, "{{%3u},{%3u}}%s", static_ltree[i].Code,
-                static_ltree[i].Len, SEPARATOR(i, L_CODES+1, 5));
-    }
-
-    fprintf(header, "local const ct_data static_dtree[D_CODES] = {\n");
-    for (i = 0; i < D_CODES; i++) {
-        fprintf(header, "{{%2u},{%2u}}%s", static_dtree[i].Code,
-                static_dtree[i].Len, SEPARATOR(i, D_CODES-1, 5));
-    }
-
-    fprintf(header, "const uch ZLIB_INTERNAL _dist_code[DIST_CODE_LEN] = {\n");
-    for (i = 0; i < DIST_CODE_LEN; i++) {
-        fprintf(header, "%2u%s", _dist_code[i],
-                SEPARATOR(i, DIST_CODE_LEN-1, 20));
-    }
-
-    fprintf(header,
-        "const uch ZLIB_INTERNAL _length_code[MAX_MATCH-MIN_MATCH+1]= {\n");
-    for (i = 0; i < MAX_MATCH-MIN_MATCH+1; i++) {
-        fprintf(header, "%2u%s", _length_code[i],
-                SEPARATOR(i, MAX_MATCH-MIN_MATCH, 20));
-    }
-
-    fprintf(header, "local const int base_length[LENGTH_CODES] = {\n");
-    for (i = 0; i < LENGTH_CODES; i++) {
-        fprintf(header, "%1u%s", base_length[i],
-                SEPARATOR(i, LENGTH_CODES-1, 20));
-    }
-
-    fprintf(header, "local const int base_dist[D_CODES] = {\n");
-    for (i = 0; i < D_CODES; i++) {
-        fprintf(header, "%5u%s", base_dist[i],
-                SEPARATOR(i, D_CODES-1, 10));
-    }
-
-    fclose(header);
-}
-#endif /* GEN_TREES_H */
-
-/* ===========================================================================
- * Initialize the tree data structures for a new zlib stream.
- */
-void ZLIB_INTERNAL _tr_init(s)
-    deflate_state *s;
-{
-    tr_static_init();
-
-    s->l_desc.dyn_tree = s->dyn_ltree;
-    s->l_desc.stat_desc = &static_l_desc;
-
-    s->d_desc.dyn_tree = s->dyn_dtree;
-    s->d_desc.stat_desc = &static_d_desc;
-
-    s->bl_desc.dyn_tree = s->bl_tree;
-    s->bl_desc.stat_desc = &static_bl_desc;
-
-    s->bi_buf = 0;
-    s->bi_valid = 0;
-#ifdef DEBUG
-    s->compressed_len = 0L;
-    s->bits_sent = 0L;
-#endif
-
-    /* Initialize the first block of the first file: */
-    init_block(s);
-}
-
-/* ===========================================================================
- * Initialize a new block.
- */
-local void init_block(s)
-    deflate_state *s;
-{
-    int n; /* iterates over tree elements */
-
-    /* Initialize the trees. */
-    for (n = 0; n < L_CODES;  n++) s->dyn_ltree[n].Freq = 0;
-    for (n = 0; n < D_CODES;  n++) s->dyn_dtree[n].Freq = 0;
-    for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0;
-
-    s->dyn_ltree[END_BLOCK].Freq = 1;
-    s->opt_len = s->static_len = 0L;
-    s->last_lit = s->matches = 0;
-}
-
-#define SMALLEST 1
-/* Index within the heap array of least frequent node in the Huffman tree */
-
-
-/* ===========================================================================
- * Remove the smallest element from the heap and recreate the heap with
- * one less element. Updates heap and heap_len.
- */
-#define pqremove(s, tree, top) \
-{\
-    top = s->heap[SMALLEST]; \
-    s->heap[SMALLEST] = s->heap[s->heap_len--]; \
-    pqdownheap(s, tree, SMALLEST); \
-}
-
-/* ===========================================================================
- * Compares to subtrees, using the tree depth as tie breaker when
- * the subtrees have equal frequency. This minimizes the worst case length.
- */
-#define smaller(tree, n, m, depth) \
-   (tree[n].Freq < tree[m].Freq || \
-   (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m]))
-
-/* ===========================================================================
- * Restore the heap property by moving down the tree starting at node k,
- * exchanging a node with the smallest of its two sons if necessary, stopping
- * when the heap property is re-established (each father smaller than its
- * two sons).
- */
-local void pqdownheap(s, tree, k)
-    deflate_state *s;
-    ct_data *tree;  /* the tree to restore */
-    int k;               /* node to move down */
-{
-    int v = s->heap[k];
-    int j = k << 1;  /* left son of k */
-    while (j <= s->heap_len) {
-        /* Set j to the smallest of the two sons: */
-        if (j < s->heap_len &&
-            smaller(tree, s->heap[j+1], s->heap[j], s->depth)) {
-            j++;
-        }
-        /* Exit if v is smaller than both sons */
-        if (smaller(tree, v, s->heap[j], s->depth)) break;
-
-        /* Exchange v with the smallest son */
-        s->heap[k] = s->heap[j];  k = j;
-
-        /* And continue down the tree, setting j to the left son of k */
-        j <<= 1;
-    }
-    s->heap[k] = v;
-}
-
-/* ===========================================================================
- * Compute the optimal bit lengths for a tree and update the total bit length
- * for the current block.
- * IN assertion: the fields freq and dad are set, heap[heap_max] and
- *    above are the tree nodes sorted by increasing frequency.
- * OUT assertions: the field len is set to the optimal bit length, the
- *     array bl_count contains the frequencies for each bit length.
- *     The length opt_len is updated; static_len is also updated if stree is
- *     not null.
- */
-local void gen_bitlen(s, desc)
-    deflate_state *s;
-    tree_desc *desc;    /* the tree descriptor */
-{
-    ct_data *tree        = desc->dyn_tree;
-    int max_code         = desc->max_code;
-    const ct_data *stree = desc->stat_desc->static_tree;
-    const intf *extra    = desc->stat_desc->extra_bits;
-    int base             = desc->stat_desc->extra_base;
-    int max_length       = desc->stat_desc->max_length;
-    int h;              /* heap index */
-    int n, m;           /* iterate over the tree elements */
-    int bits;           /* bit length */
-    int xbits;          /* extra bits */
-    ush f;              /* frequency */
-    int overflow = 0;   /* number of elements with bit length too large */
-
-    for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0;
-
-    /* In a first pass, compute the optimal bit lengths (which may
-     * overflow in the case of the bit length tree).
-     */
-    tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */
-
-    for (h = s->heap_max+1; h < HEAP_SIZE; h++) {
-        n = s->heap[h];
-        bits = tree[tree[n].Dad].Len + 1;
-        if (bits > max_length) bits = max_length, overflow++;
-        tree[n].Len = (ush)bits;
-        /* We overwrite tree[n].Dad which is no longer needed */
-
-        if (n > max_code) continue; /* not a leaf node */
-
-        s->bl_count[bits]++;
-        xbits = 0;
-        if (n >= base) xbits = extra[n-base];
-        f = tree[n].Freq;
-        s->opt_len += (ulg)f * (bits + xbits);
-        if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits);
-    }
-    if (overflow == 0) return;
-
-    Trace((stderr,"\nbit length overflow\n"));
-    /* This happens for example on obj2 and pic of the Calgary corpus */
-
-    /* Find the first bit length which could increase: */
-    do {
-        bits = max_length-1;
-        while (s->bl_count[bits] == 0) bits--;
-        s->bl_count[bits]--;      /* move one leaf down the tree */
-        s->bl_count[bits+1] += 2; /* move one overflow item as its brother */
-        s->bl_count[max_length]--;
-        /* The brother of the overflow item also moves one step up,
-         * but this does not affect bl_count[max_length]
-         */
-        overflow -= 2;
-    } while (overflow > 0);
-
-    /* Now recompute all bit lengths, scanning in increasing frequency.
-     * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
-     * lengths instead of fixing only the wrong ones. This idea is taken
-     * from 'ar' written by Haruhiko Okumura.)
-     */
-    for (bits = max_length; bits != 0; bits--) {
-        n = s->bl_count[bits];
-        while (n != 0) {
-            m = s->heap[--h];
-            if (m > max_code) continue;
-            if ((unsigned) tree[m].Len != (unsigned) bits) {
-                Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
-                s->opt_len += ((long)bits - (long)tree[m].Len)
-                              *(long)tree[m].Freq;
-                tree[m].Len = (ush)bits;
-            }
-            n--;
-        }
-    }
-}
-
-/* ===========================================================================
- * Generate the codes for a given tree and bit counts (which need not be
- * optimal).
- * IN assertion: the array bl_count contains the bit length statistics for
- * the given tree and the field len is set for all tree elements.
- * OUT assertion: the field code is set for all tree elements of non
- *     zero code length.
- */
-local void gen_codes (tree, max_code, bl_count)
-    ct_data *tree;             /* the tree to decorate */
-    int max_code;              /* largest code with non zero frequency */
-    ushf *bl_count;            /* number of codes at each bit length */
-{
-    ush next_code[MAX_BITS+1]; /* next code value for each bit length */
-    ush code = 0;              /* running code value */
-    int bits;                  /* bit index */
-    int n;                     /* code index */
-
-    /* The distribution counts are first used to generate the code values
-     * without bit reversal.
-     */
-    for (bits = 1; bits <= MAX_BITS; bits++) {
-        next_code[bits] = code = (code + bl_count[bits-1]) << 1;
-    }
-    /* Check that the bit counts in bl_count are consistent. The last code
-     * must be all ones.
-     */
-    Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
-            "inconsistent bit counts");
-    Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
-
-    for (n = 0;  n <= max_code; n++) {
-        int len = tree[n].Len;
-        if (len == 0) continue;
-        /* Now reverse the bits */
-        tree[n].Code = bi_reverse(next_code[len]++, len);
-
-        Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
-             n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
-    }
-}
-
-/* ===========================================================================
- * Construct one Huffman tree and assigns the code bit strings and lengths.
- * Update the total bit length for the current block.
- * IN assertion: the field freq is set for all tree elements.
- * OUT assertions: the fields len and code are set to the optimal bit length
- *     and corresponding code. The length opt_len is updated; static_len is
- *     also updated if stree is not null. The field max_code is set.
- */
-local void build_tree(s, desc)
-    deflate_state *s;
-    tree_desc *desc; /* the tree descriptor */
-{
-    ct_data *tree         = desc->dyn_tree;
-    const ct_data *stree  = desc->stat_desc->static_tree;
-    int elems             = desc->stat_desc->elems;
-    int n, m;          /* iterate over heap elements */
-    int max_code = -1; /* largest code with non zero frequency */
-    int node;          /* new node being created */
-
-    /* Construct the initial heap, with least frequent element in
-     * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
-     * heap[0] is not used.
-     */
-    s->heap_len = 0, s->heap_max = HEAP_SIZE;
-
-    for (n = 0; n < elems; n++) {
-        if (tree[n].Freq != 0) {
-            s->heap[++(s->heap_len)] = max_code = n;
-            s->depth[n] = 0;
-        } else {
-            tree[n].Len = 0;
-        }
-    }
-
-    /* The pkzip format requires that at least one distance code exists,
-     * and that at least one bit should be sent even if there is only one
-     * possible code. So to avoid special checks later on we force at least
-     * two codes of non zero frequency.
-     */
-    while (s->heap_len < 2) {
-        node = s->heap[++(s->heap_len)] = (max_code < 2 ? ++max_code : 0);
-        tree[node].Freq = 1;
-        s->depth[node] = 0;
-        s->opt_len--; if (stree) s->static_len -= stree[node].Len;
-        /* node is 0 or 1 so it does not have extra bits */
-    }
-    desc->max_code = max_code;
-
-    /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
-     * establish sub-heaps of increasing lengths:
-     */
-    for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n);
-
-    /* Construct the Huffman tree by repeatedly combining the least two
-     * frequent nodes.
-     */
-    node = elems;              /* next internal node of the tree */
-    do {
-        pqremove(s, tree, n);  /* n = node of least frequency */
-        m = s->heap[SMALLEST]; /* m = node of next least frequency */
-
-        s->heap[--(s->heap_max)] = n; /* keep the nodes sorted by frequency */
-        s->heap[--(s->heap_max)] = m;
-
-        /* Create a new node father of n and m */
-        tree[node].Freq = tree[n].Freq + tree[m].Freq;
-        s->depth[node] = (uch)((s->depth[n] >= s->depth[m] ?
-                                s->depth[n] : s->depth[m]) + 1);
-        tree[n].Dad = tree[m].Dad = (ush)node;
-#ifdef DUMP_BL_TREE
-        if (tree == s->bl_tree) {
-            fprintf(stderr,"\nnode %d(%d), sons %d(%d) %d(%d)",
-                    node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq);
-        }
-#endif
-        /* and insert the new node in the heap */
-        s->heap[SMALLEST] = node++;
-        pqdownheap(s, tree, SMALLEST);
-
-    } while (s->heap_len >= 2);
-
-    s->heap[--(s->heap_max)] = s->heap[SMALLEST];
-
-    /* At this point, the fields freq and dad are set. We can now
-     * generate the bit lengths.
-     */
-    gen_bitlen(s, (tree_desc *)desc);
-
-    /* The field len is now set, we can generate the bit codes */
-    gen_codes ((ct_data *)tree, max_code, s->bl_count);
-}
-
-/* ===========================================================================
- * Scan a literal or distance tree to determine the frequencies of the codes
- * in the bit length tree.
- */
-local void scan_tree (s, tree, max_code)
-    deflate_state *s;
-    ct_data *tree;   /* the tree to be scanned */
-    int max_code;    /* and its largest code of non zero frequency */
-{
-    int n;                     /* iterates over all tree elements */
-    int prevlen = -1;          /* last emitted length */
-    int curlen;                /* length of current code */
-    int nextlen = tree[0].Len; /* length of next code */
-    int count = 0;             /* repeat count of the current code */
-    int max_count = 7;         /* max repeat count */
-    int min_count = 4;         /* min repeat count */
-
-    if (nextlen == 0) max_count = 138, min_count = 3;
-    tree[max_code+1].Len = (ush)0xffff; /* guard */
-
-    for (n = 0; n <= max_code; n++) {
-        curlen = nextlen; nextlen = tree[n+1].Len;
-        if (++count < max_count && curlen == nextlen) {
-            continue;
-        } else if (count < min_count) {
-            s->bl_tree[curlen].Freq += count;
-        } else if (curlen != 0) {
-            if (curlen != prevlen) s->bl_tree[curlen].Freq++;
-            s->bl_tree[REP_3_6].Freq++;
-        } else if (count <= 10) {
-            s->bl_tree[REPZ_3_10].Freq++;
-        } else {
-            s->bl_tree[REPZ_11_138].Freq++;
-        }
-        count = 0; prevlen = curlen;
-        if (nextlen == 0) {
-            max_count = 138, min_count = 3;
-        } else if (curlen == nextlen) {
-            max_count = 6, min_count = 3;
-        } else {
-            max_count = 7, min_count = 4;
-        }
-    }
-}
-
-/* ===========================================================================
- * Send a literal or distance tree in compressed form, using the codes in
- * bl_tree.
- */
-local void send_tree (s, tree, max_code)
-    deflate_state *s;
-    ct_data *tree; /* the tree to be scanned */
-    int max_code;       /* and its largest code of non zero frequency */
-{
-    int n;                     /* iterates over all tree elements */
-    int prevlen = -1;          /* last emitted length */
-    int curlen;                /* length of current code */
-    int nextlen = tree[0].Len; /* length of next code */
-    int count = 0;             /* repeat count of the current code */
-    int max_count = 7;         /* max repeat count */
-    int min_count = 4;         /* min repeat count */
-
-    /* tree[max_code+1].Len = -1; */  /* guard already set */
-    if (nextlen == 0) max_count = 138, min_count = 3;
-
-    for (n = 0; n <= max_code; n++) {
-        curlen = nextlen; nextlen = tree[n+1].Len;
-        if (++count < max_count && curlen == nextlen) {
-            continue;
-        } else if (count < min_count) {
-            do { send_code(s, curlen, s->bl_tree); } while (--count != 0);
-
-        } else if (curlen != 0) {
-            if (curlen != prevlen) {
-                send_code(s, curlen, s->bl_tree); count--;
-            }
-            Assert(count >= 3 && count <= 6, " 3_6?");
-            send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2);
-
-        } else if (count <= 10) {
-            send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3);
-
-        } else {
-            send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7);
-        }
-        count = 0; prevlen = curlen;
-        if (nextlen == 0) {
-            max_count = 138, min_count = 3;
-        } else if (curlen == nextlen) {
-            max_count = 6, min_count = 3;
-        } else {
-            max_count = 7, min_count = 4;
-        }
-    }
-}
-
-/* ===========================================================================
- * Construct the Huffman tree for the bit lengths and return the index in
- * bl_order of the last bit length code to send.
- */
-local int build_bl_tree(s)
-    deflate_state *s;
-{
-    int max_blindex;  /* index of last bit length code of non zero freq */
-
-    /* Determine the bit length frequencies for literal and distance trees */
-    scan_tree(s, (ct_data *)s->dyn_ltree, s->l_desc.max_code);
-    scan_tree(s, (ct_data *)s->dyn_dtree, s->d_desc.max_code);
-
-    /* Build the bit length tree: */
-    build_tree(s, (tree_desc *)(&(s->bl_desc)));
-    /* opt_len now includes the length of the tree representations, except
-     * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
-     */
-
-    /* Determine the number of bit length codes to send. The pkzip format
-     * requires that at least 4 bit length codes be sent. (appnote.txt says
-     * 3 but the actual value used is 4.)
-     */
-    for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) {
-        if (s->bl_tree[bl_order[max_blindex]].Len != 0) break;
-    }
-    /* Update opt_len to include the bit length tree and counts */
-    s->opt_len += 3*(max_blindex+1) + 5+5+4;
-    Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
-            s->opt_len, s->static_len));
-
-    return max_blindex;
-}
-
-/* ===========================================================================
- * Send the header for a block using dynamic Huffman trees: the counts, the
- * lengths of the bit length codes, the literal tree and the distance tree.
- * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
- */
-local void send_all_trees(s, lcodes, dcodes, blcodes)
-    deflate_state *s;
-    int lcodes, dcodes, blcodes; /* number of codes for each tree */
-{
-    int rank;                    /* index in bl_order */
-
-    Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
-    Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
-            "too many codes");
-    Tracev((stderr, "\nbl counts: "));
-    send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */
-    send_bits(s, dcodes-1,   5);
-    send_bits(s, blcodes-4,  4); /* not -3 as stated in appnote.txt */
-    for (rank = 0; rank < blcodes; rank++) {
-        Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
-        send_bits(s, s->bl_tree[bl_order[rank]].Len, 3);
-    }
-    Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
-
-    send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */
-    Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
-
-    send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */
-    Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
-}
-
-/* ===========================================================================
- * Send a stored block
- */
-void ZLIB_INTERNAL _tr_stored_block(s, buf, stored_len, last)
-    deflate_state *s;
-    charf *buf;       /* input block */
-    ulg stored_len;   /* length of input block */
-    int last;         /* one if this is the last block for a file */
-{
-    send_bits(s, (STORED_BLOCK<<1)+last, 3);    /* send block type */
-#ifdef DEBUG
-    s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L;
-    s->compressed_len += (stored_len + 4) << 3;
-#endif
-    copy_block(s, buf, (unsigned)stored_len, 1); /* with header */
-}
-
-/* ===========================================================================
- * Flush the bits in the bit buffer to pending output (leaves at most 7 bits)
- */
-void ZLIB_INTERNAL _tr_flush_bits(s)
-    deflate_state *s;
-{
-    bi_flush(s);
-}
-
-/* ===========================================================================
- * Send one empty static block to give enough lookahead for inflate.
- * This takes 10 bits, of which 7 may remain in the bit buffer.
- */
-void ZLIB_INTERNAL _tr_align(s)
-    deflate_state *s;
-{
-    send_bits(s, STATIC_TREES<<1, 3);
-    send_code(s, END_BLOCK, static_ltree);
-#ifdef DEBUG
-    s->compressed_len += 10L; /* 3 for block type, 7 for EOB */
-#endif
-    bi_flush(s);
-}
-
-/* ===========================================================================
- * Determine the best encoding for the current block: dynamic trees, static
- * trees or store, and output the encoded block to the zip file.
- */
-void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
-    deflate_state *s;
-    charf *buf;       /* input block, or NULL if too old */
-    ulg stored_len;   /* length of input block */
-    int last;         /* one if this is the last block for a file */
-{
-    ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */
-    int max_blindex = 0;  /* index of last bit length code of non zero freq */
-
-    /* Build the Huffman trees unless a stored block is forced */
-    if (s->level > 0) {
-
-        /* Check if the file is binary or text */
-        if (s->strm->data_type == Z_UNKNOWN)
-            s->strm->data_type = detect_data_type(s);
-
-        /* Construct the literal and distance trees */
-        build_tree(s, (tree_desc *)(&(s->l_desc)));
-        Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len,
-                s->static_len));
-
-        build_tree(s, (tree_desc *)(&(s->d_desc)));
-        Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len,
-                s->static_len));
-        /* At this point, opt_len and static_len are the total bit lengths of
-         * the compressed block data, excluding the tree representations.
-         */
-
-        /* Build the bit length tree for the above two trees, and get the index
-         * in bl_order of the last bit length code to send.
-         */
-        max_blindex = build_bl_tree(s);
-
-        /* Determine the best encoding. Compute the block lengths in bytes. */
-        opt_lenb = (s->opt_len+3+7)>>3;
-        static_lenb = (s->static_len+3+7)>>3;
-
-        Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
-                opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
-                s->last_lit));
-
-        if (static_lenb <= opt_lenb) opt_lenb = static_lenb;
-
-    } else {
-        Assert(buf != (char*)0, "lost buf");
-        opt_lenb = static_lenb = stored_len + 5; /* force a stored block */
-    }
-
-#ifdef FORCE_STORED
-    if (buf != (char*)0) { /* force stored block */
-#else
-    if (stored_len+4 <= opt_lenb && buf != (char*)0) {
-                       /* 4: two words for the lengths */
-#endif
-        /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
-         * Otherwise we can't have processed more than WSIZE input bytes since
-         * the last block flush, because compression would have been
-         * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
-         * transform a block into a stored block.
-         */
-        _tr_stored_block(s, buf, stored_len, last);
-
-#ifdef FORCE_STATIC
-    } else if (static_lenb >= 0) { /* force static trees */
-#else
-    } else if (s->strategy == Z_FIXED || static_lenb == opt_lenb) {
-#endif
-        send_bits(s, (STATIC_TREES<<1)+last, 3);
-        compress_block(s, (const ct_data *)static_ltree,
-                       (const ct_data *)static_dtree);
-#ifdef DEBUG
-        s->compressed_len += 3 + s->static_len;
-#endif
-    } else {
-        send_bits(s, (DYN_TREES<<1)+last, 3);
-        send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1,
-                       max_blindex+1);
-        compress_block(s, (const ct_data *)s->dyn_ltree,
-                       (const ct_data *)s->dyn_dtree);
-#ifdef DEBUG
-        s->compressed_len += 3 + s->opt_len;
-#endif
-    }
-    Assert (s->compressed_len == s->bits_sent, "bad compressed size");
-    /* The above check is made mod 2^32, for files larger than 512 MB
-     * and uLong implemented on 32 bits.
-     */
-    init_block(s);
-
-    if (last) {
-        bi_windup(s);
-#ifdef DEBUG
-        s->compressed_len += 7;  /* align on byte boundary */
-#endif
-    }
-    Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
-           s->compressed_len-7*last));
-}
-
-/* ===========================================================================
- * Save the match info and tally the frequency counts. Return true if
- * the current block must be flushed.
- */
-int ZLIB_INTERNAL _tr_tally (s, dist, lc)
-    deflate_state *s;
-    unsigned dist;  /* distance of matched string */
-    unsigned lc;    /* match length-MIN_MATCH or unmatched char (if dist==0) */
-{
-    s->d_buf[s->last_lit] = (ush)dist;
-    s->l_buf[s->last_lit++] = (uch)lc;
-    if (dist == 0) {
-        /* lc is the unmatched char */
-        s->dyn_ltree[lc].Freq++;
-    } else {
-        s->matches++;
-        /* Here, lc is the match length - MIN_MATCH */
-        dist--;             /* dist = match distance - 1 */
-        Assert((ush)dist < (ush)MAX_DIST(s) &&
-               (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
-               (ush)d_code(dist) < (ush)D_CODES,  "_tr_tally: bad match");
-
-        s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++;
-        s->dyn_dtree[d_code(dist)].Freq++;
-    }
-
-#ifdef TRUNCATE_BLOCK
-    /* Try to guess if it is profitable to stop the current block here */
-    if ((s->last_lit & 0x1fff) == 0 && s->level > 2) {
-        /* Compute an upper bound for the compressed length */
-        ulg out_length = (ulg)s->last_lit*8L;
-        ulg in_length = (ulg)((long)s->strstart - s->block_start);
-        int dcode;
-        for (dcode = 0; dcode < D_CODES; dcode++) {
-            out_length += (ulg)s->dyn_dtree[dcode].Freq *
-                (5L+extra_dbits[dcode]);
-        }
-        out_length >>= 3;
-        Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
-               s->last_lit, in_length, out_length,
-               100L - out_length*100L/in_length));
-        if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1;
-    }
-#endif
-    return (s->last_lit == s->lit_bufsize-1);
-    /* We avoid equality with lit_bufsize because of wraparound at 64K
-     * on 16 bit machines and because stored blocks are restricted to
-     * 64K-1 bytes.
-     */
-}
-
-/* ===========================================================================
- * Send the block data compressed using the given Huffman trees
- */
-local void compress_block(s, ltree, dtree)
-    deflate_state *s;
-    const ct_data *ltree; /* literal tree */
-    const ct_data *dtree; /* distance tree */
-{
-    unsigned dist;      /* distance of matched string */
-    int lc;             /* match length or unmatched char (if dist == 0) */
-    unsigned lx = 0;    /* running index in l_buf */
-    unsigned code;      /* the code to send */
-    int extra;          /* number of extra bits to send */
-
-    if (s->last_lit != 0) do {
-        dist = s->d_buf[lx];
-        lc = s->l_buf[lx++];
-        if (dist == 0) {
-            send_code(s, lc, ltree); /* send a literal byte */
-            Tracecv(isgraph(lc), (stderr," '%c' ", lc));
-        } else {
-            /* Here, lc is the match length - MIN_MATCH */
-            code = _length_code[lc];
-            send_code(s, code+LITERALS+1, ltree); /* send the length code */
-            extra = extra_lbits[code];
-            if (extra != 0) {
-                lc -= base_length[code];
-                send_bits(s, lc, extra);       /* send the extra length bits */
-            }
-            dist--; /* dist is now the match distance - 1 */
-            code = d_code(dist);
-            Assert (code < D_CODES, "bad d_code");
-
-            send_code(s, code, dtree);       /* send the distance code */
-            extra = extra_dbits[code];
-            if (extra != 0) {
-                dist -= base_dist[code];
-                send_bits(s, dist, extra);   /* send the extra distance bits */
-            }
-        } /* literal or match pair ? */
-
-        /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
-        Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,
-               "pendingBuf overflow");
-
-    } while (lx < s->last_lit);
-
-    send_code(s, END_BLOCK, ltree);
-}
-
-/* ===========================================================================
- * Check if the data type is TEXT or BINARY, using the following algorithm:
- * - TEXT if the two conditions below are satisfied:
- *    a) There are no non-portable control characters belonging to the
- *       "black list" (0..6, 14..25, 28..31).
- *    b) There is at least one printable character belonging to the
- *       "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
- * - BINARY otherwise.
- * - The following partially-portable control characters form a
- *   "gray list" that is ignored in this detection algorithm:
- *   (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
- * IN assertion: the fields Freq of dyn_ltree are set.
- */
-local int detect_data_type(s)
-    deflate_state *s;
-{
-    /* black_mask is the bit mask of black-listed bytes
-     * set bits 0..6, 14..25, and 28..31
-     * 0xf3ffc07f = binary 11110011111111111100000001111111
-     */
-    unsigned long black_mask = 0xf3ffc07fUL;
-    int n;
-
-    /* Check for non-textual ("black-listed") bytes. */
-    for (n = 0; n <= 31; n++, black_mask >>= 1)
-        if ((black_mask & 1) && (s->dyn_ltree[n].Freq != 0))
-            return Z_BINARY;
-
-    /* Check for textual ("white-listed") bytes. */
-    if (s->dyn_ltree[9].Freq != 0 || s->dyn_ltree[10].Freq != 0
-            || s->dyn_ltree[13].Freq != 0)
-        return Z_TEXT;
-    for (n = 32; n < LITERALS; n++)
-        if (s->dyn_ltree[n].Freq != 0)
-            return Z_TEXT;
-
-    /* There are no "black-listed" or "white-listed" bytes:
-     * this stream either is empty or has tolerated ("gray-listed") bytes only.
-     */
-    return Z_BINARY;
-}
-
-/* ===========================================================================
- * Reverse the first len bits of a code, using straightforward code (a faster
- * method would use a table)
- * IN assertion: 1 <= len <= 15
- */
-local unsigned bi_reverse(code, len)
-    unsigned code; /* the value to invert */
-    int len;       /* its bit length */
-{
-    register unsigned res = 0;
-    do {
-        res |= code & 1;
-        code >>= 1, res <<= 1;
-    } while (--len > 0);
-    return res >> 1;
-}
-
-/* ===========================================================================
- * Flush the bit buffer, keeping at most 7 bits in it.
- */
-local void bi_flush(s)
-    deflate_state *s;
-{
-    if (s->bi_valid == 16) {
-        put_short(s, s->bi_buf);
-        s->bi_buf = 0;
-        s->bi_valid = 0;
-    } else if (s->bi_valid >= 8) {
-        put_byte(s, (Byte)s->bi_buf);
-        s->bi_buf >>= 8;
-        s->bi_valid -= 8;
-    }
-}
-
-/* ===========================================================================
- * Flush the bit buffer and align the output on a byte boundary
- */
-local void bi_windup(s)
-    deflate_state *s;
-{
-    if (s->bi_valid > 8) {
-        put_short(s, s->bi_buf);
-    } else if (s->bi_valid > 0) {
-        put_byte(s, (Byte)s->bi_buf);
-    }
-    s->bi_buf = 0;
-    s->bi_valid = 0;
-#ifdef DEBUG
-    s->bits_sent = (s->bits_sent+7) & ~7;
-#endif
-}
-
-/* ===========================================================================
- * Copy a stored block, storing first the length and its
- * one's complement if requested.
- */
-local void copy_block(s, buf, len, header)
-    deflate_state *s;
-    charf    *buf;    /* the input data */
-    unsigned len;     /* its length */
-    int      header;  /* true if block header must be written */
-{
-    bi_windup(s);        /* align on byte boundary */
-
-    if (header) {
-        put_short(s, (ush)len);
-        put_short(s, (ush)~len);
-#ifdef DEBUG
-        s->bits_sent += 2*16;
-#endif
-    }
-#ifdef DEBUG
-    s->bits_sent += (ulg)len<<3;
-#endif
-    while (len--) {
-        put_byte(s, *buf++);
-    }
-}
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/trees.h b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/trees.h
deleted file mode 100644
index d35639d..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/trees.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* header created automatically with -DGEN_TREES_H */
-
-local const ct_data static_ltree[L_CODES+2] = {
-{{ 12},{  8}}, {{140},{  8}}, {{ 76},{  8}}, {{204},{  8}}, {{ 44},{  8}},
-{{172},{  8}}, {{108},{  8}}, {{236},{  8}}, {{ 28},{  8}}, {{156},{  8}},
-{{ 92},{  8}}, {{220},{  8}}, {{ 60},{  8}}, {{188},{  8}}, {{124},{  8}},
-{{252},{  8}}, {{  2},{  8}}, {{130},{  8}}, {{ 66},{  8}}, {{194},{  8}},
-{{ 34},{  8}}, {{162},{  8}}, {{ 98},{  8}}, {{226},{  8}}, {{ 18},{  8}},
-{{146},{  8}}, {{ 82},{  8}}, {{210},{  8}}, {{ 50},{  8}}, {{178},{  8}},
-{{114},{  8}}, {{242},{  8}}, {{ 10},{  8}}, {{138},{  8}}, {{ 74},{  8}},
-{{202},{  8}}, {{ 42},{  8}}, {{170},{  8}}, {{106},{  8}}, {{234},{  8}},
-{{ 26},{  8}}, {{154},{  8}}, {{ 90},{  8}}, {{218},{  8}}, {{ 58},{  8}},
-{{186},{  8}}, {{122},{  8}}, {{250},{  8}}, {{  6},{  8}}, {{134},{  8}},
-{{ 70},{  8}}, {{198},{  8}}, {{ 38},{  8}}, {{166},{  8}}, {{102},{  8}},
-{{230},{  8}}, {{ 22},{  8}}, {{150},{  8}}, {{ 86},{  8}}, {{214},{  8}},
-{{ 54},{  8}}, {{182},{  8}}, {{118},{  8}}, {{246},{  8}}, {{ 14},{  8}},
-{{142},{  8}}, {{ 78},{  8}}, {{206},{  8}}, {{ 46},{  8}}, {{174},{  8}},
-{{110},{  8}}, {{238},{  8}}, {{ 30},{  8}}, {{158},{  8}}, {{ 94},{  8}},
-{{222},{  8}}, {{ 62},{  8}}, {{190},{  8}}, {{126},{  8}}, {{254},{  8}},
-{{  1},{  8}}, {{129},{  8}}, {{ 65},{  8}}, {{193},{  8}}, {{ 33},{  8}},
-{{161},{  8}}, {{ 97},{  8}}, {{225},{  8}}, {{ 17},{  8}}, {{145},{  8}},
-{{ 81},{  8}}, {{209},{  8}}, {{ 49},{  8}}, {{177},{  8}}, {{113},{  8}},
-{{241},{  8}}, {{  9},{  8}}, {{137},{  8}}, {{ 73},{  8}}, {{201},{  8}},
-{{ 41},{  8}}, {{169},{  8}}, {{105},{  8}}, {{233},{  8}}, {{ 25},{  8}},
-{{153},{  8}}, {{ 89},{  8}}, {{217},{  8}}, {{ 57},{  8}}, {{185},{  8}},
-{{121},{  8}}, {{249},{  8}}, {{  5},{  8}}, {{133},{  8}}, {{ 69},{  8}},
-{{197},{  8}}, {{ 37},{  8}}, {{165},{  8}}, {{101},{  8}}, {{229},{  8}},
-{{ 21},{  8}}, {{149},{  8}}, {{ 85},{  8}}, {{213},{  8}}, {{ 53},{  8}},
-{{181},{  8}}, {{117},{  8}}, {{245},{  8}}, {{ 13},{  8}}, {{141},{  8}},
-{{ 77},{  8}}, {{205},{  8}}, {{ 45},{  8}}, {{173},{  8}}, {{109},{  8}},
-{{237},{  8}}, {{ 29},{  8}}, {{157},{  8}}, {{ 93},{  8}}, {{221},{  8}},
-{{ 61},{  8}}, {{189},{  8}}, {{125},{  8}}, {{253},{  8}}, {{ 19},{  9}},
-{{275},{  9}}, {{147},{  9}}, {{403},{  9}}, {{ 83},{  9}}, {{339},{  9}},
-{{211},{  9}}, {{467},{  9}}, {{ 51},{  9}}, {{307},{  9}}, {{179},{  9}},
-{{435},{  9}}, {{115},{  9}}, {{371},{  9}}, {{243},{  9}}, {{499},{  9}},
-{{ 11},{  9}}, {{267},{  9}}, {{139},{  9}}, {{395},{  9}}, {{ 75},{  9}},
-{{331},{  9}}, {{203},{  9}}, {{459},{  9}}, {{ 43},{  9}}, {{299},{  9}},
-{{171},{  9}}, {{427},{  9}}, {{107},{  9}}, {{363},{  9}}, {{235},{  9}},
-{{491},{  9}}, {{ 27},{  9}}, {{283},{  9}}, {{155},{  9}}, {{411},{  9}},
-{{ 91},{  9}}, {{347},{  9}}, {{219},{  9}}, {{475},{  9}}, {{ 59},{  9}},
-{{315},{  9}}, {{187},{  9}}, {{443},{  9}}, {{123},{  9}}, {{379},{  9}},
-{{251},{  9}}, {{507},{  9}}, {{  7},{  9}}, {{263},{  9}}, {{135},{  9}},
-{{391},{  9}}, {{ 71},{  9}}, {{327},{  9}}, {{199},{  9}}, {{455},{  9}},
-{{ 39},{  9}}, {{295},{  9}}, {{167},{  9}}, {{423},{  9}}, {{103},{  9}},
-{{359},{  9}}, {{231},{  9}}, {{487},{  9}}, {{ 23},{  9}}, {{279},{  9}},
-{{151},{  9}}, {{407},{  9}}, {{ 87},{  9}}, {{343},{  9}}, {{215},{  9}},
-{{471},{  9}}, {{ 55},{  9}}, {{311},{  9}}, {{183},{  9}}, {{439},{  9}},
-{{119},{  9}}, {{375},{  9}}, {{247},{  9}}, {{503},{  9}}, {{ 15},{  9}},
-{{271},{  9}}, {{143},{  9}}, {{399},{  9}}, {{ 79},{  9}}, {{335},{  9}},
-{{207},{  9}}, {{463},{  9}}, {{ 47},{  9}}, {{303},{  9}}, {{175},{  9}},
-{{431},{  9}}, {{111},{  9}}, {{367},{  9}}, {{239},{  9}}, {{495},{  9}},
-{{ 31},{  9}}, {{287},{  9}}, {{159},{  9}}, {{415},{  9}}, {{ 95},{  9}},
-{{351},{  9}}, {{223},{  9}}, {{479},{  9}}, {{ 63},{  9}}, {{319},{  9}},
-{{191},{  9}}, {{447},{  9}}, {{127},{  9}}, {{383},{  9}}, {{255},{  9}},
-{{511},{  9}}, {{  0},{  7}}, {{ 64},{  7}}, {{ 32},{  7}}, {{ 96},{  7}},
-{{ 16},{  7}}, {{ 80},{  7}}, {{ 48},{  7}}, {{112},{  7}}, {{  8},{  7}},
-{{ 72},{  7}}, {{ 40},{  7}}, {{104},{  7}}, {{ 24},{  7}}, {{ 88},{  7}},
-{{ 56},{  7}}, {{120},{  7}}, {{  4},{  7}}, {{ 68},{  7}}, {{ 36},{  7}},
-{{100},{  7}}, {{ 20},{  7}}, {{ 84},{  7}}, {{ 52},{  7}}, {{116},{  7}},
-{{  3},{  8}}, {{131},{  8}}, {{ 67},{  8}}, {{195},{  8}}, {{ 35},{  8}},
-{{163},{  8}}, {{ 99},{  8}}, {{227},{  8}}
-};
-
-local const ct_data static_dtree[D_CODES] = {
-{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}},
-{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}},
-{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}},
-{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}},
-{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}},
-{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}}
-};
-
-const uch ZLIB_INTERNAL _dist_code[DIST_CODE_LEN] = {
- 0,  1,  2,  3,  4,  4,  5,  5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  8,
- 8,  8,  8,  8,  9,  9,  9,  9,  9,  9,  9,  9, 10, 10, 10, 10, 10, 10, 10, 10,
-10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
-11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
-12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13,
-13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
-15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
-15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
-15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,  0,  0, 16, 17,
-18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
-23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
-24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
-26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
-26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27,
-27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
-27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29
-};
-
-const uch ZLIB_INTERNAL _length_code[MAX_MATCH-MIN_MATCH+1]= {
- 0,  1,  2,  3,  4,  5,  6,  7,  8,  8,  9,  9, 10, 10, 11, 11, 12, 12, 12, 12,
-13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16,
-17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19,
-19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
-21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22,
-22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
-23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
-24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
-25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
-25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26,
-26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
-26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
-27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28
-};
-
-local const int base_length[LENGTH_CODES] = {
-0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56,
-64, 80, 96, 112, 128, 160, 192, 224, 0
-};
-
-local const int base_dist[D_CODES] = {
-    0,     1,     2,     3,     4,     6,     8,    12,    16,    24,
-   32,    48,    64,    96,   128,   192,   256,   384,   512,   768,
- 1024,  1536,  2048,  3072,  4096,  6144,  8192, 12288, 16384, 24576
-};
-
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/zconf.h b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/zconf.h
deleted file mode 100644
index 5e6ebbe..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/zconf.h
+++ /dev/null
@@ -1,511 +0,0 @@
-/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-2013 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#ifndef ZCONF_H
-#define ZCONF_H
-
-/*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
- * Even better than compiling with -DZ_PREFIX would be to use configure to set
- * this permanently in zconf.h using "./configure --zprefix".
- */
-#if 1     /* was set to #if 1 by ./configure */
-#  define Z_PREFIX_SET
-
-/* all linked symbols */
-#  define _dist_code            z__dist_code
-#  define _length_code          z__length_code
-#  define _tr_align             z__tr_align
-#  define _tr_flush_bits        z__tr_flush_bits
-#  define _tr_flush_block       z__tr_flush_block
-#  define _tr_init              z__tr_init
-#  define _tr_stored_block      z__tr_stored_block
-#  define _tr_tally             z__tr_tally
-#  define adler32               z_adler32
-#  define adler32_combine       z_adler32_combine
-#  define adler32_combine64     z_adler32_combine64
-#  ifndef Z_SOLO
-#    define compress              z_compress
-#    define compress2             z_compress2
-#    define compressBound         z_compressBound
-#  endif
-#  define crc32                 z_crc32
-#  define crc32_combine         z_crc32_combine
-#  define crc32_combine64       z_crc32_combine64
-#  define deflate               z_deflate
-#  define deflateBound          z_deflateBound
-#  define deflateCopy           z_deflateCopy
-#  define deflateEnd            z_deflateEnd
-#  define deflateInit2_         z_deflateInit2_
-#  define deflateInit_          z_deflateInit_
-#  define deflateParams         z_deflateParams
-#  define deflatePending        z_deflatePending
-#  define deflatePrime          z_deflatePrime
-#  define deflateReset          z_deflateReset
-#  define deflateResetKeep      z_deflateResetKeep
-#  define deflateSetDictionary  z_deflateSetDictionary
-#  define deflateSetHeader      z_deflateSetHeader
-#  define deflateTune           z_deflateTune
-#  define deflate_copyright     z_deflate_copyright
-#  define get_crc_table         z_get_crc_table
-#  ifndef Z_SOLO
-#    define gz_error              z_gz_error
-#    define gz_intmax             z_gz_intmax
-#    define gz_strwinerror        z_gz_strwinerror
-#    define gzbuffer              z_gzbuffer
-#    define gzclearerr            z_gzclearerr
-#    define gzclose               z_gzclose
-#    define gzclose_r             z_gzclose_r
-#    define gzclose_w             z_gzclose_w
-#    define gzdirect              z_gzdirect
-#    define gzdopen               z_gzdopen
-#    define gzeof                 z_gzeof
-#    define gzerror               z_gzerror
-#    define gzflush               z_gzflush
-#    define gzgetc                z_gzgetc
-#    define gzgetc_               z_gzgetc_
-#    define gzgets                z_gzgets
-#    define gzoffset              z_gzoffset
-#    define gzoffset64            z_gzoffset64
-#    define gzopen                z_gzopen
-#    define gzopen64              z_gzopen64
-#    ifdef _WIN32
-#      define gzopen_w              z_gzopen_w
-#    endif
-#    define gzprintf              z_gzprintf
-#    define gzvprintf             z_gzvprintf
-#    define gzputc                z_gzputc
-#    define gzputs                z_gzputs
-#    define gzread                z_gzread
-#    define gzrewind              z_gzrewind
-#    define gzseek                z_gzseek
-#    define gzseek64              z_gzseek64
-#    define gzsetparams           z_gzsetparams
-#    define gztell                z_gztell
-#    define gztell64              z_gztell64
-#    define gzungetc              z_gzungetc
-#    define gzwrite               z_gzwrite
-#  endif
-#  define inflate               z_inflate
-#  define inflateBack           z_inflateBack
-#  define inflateBackEnd        z_inflateBackEnd
-#  define inflateBackInit_      z_inflateBackInit_
-#  define inflateCopy           z_inflateCopy
-#  define inflateEnd            z_inflateEnd
-#  define inflateGetHeader      z_inflateGetHeader
-#  define inflateInit2_         z_inflateInit2_
-#  define inflateInit_          z_inflateInit_
-#  define inflateMark           z_inflateMark
-#  define inflatePrime          z_inflatePrime
-#  define inflateReset          z_inflateReset
-#  define inflateReset2         z_inflateReset2
-#  define inflateSetDictionary  z_inflateSetDictionary
-#  define inflateGetDictionary  z_inflateGetDictionary
-#  define inflateSync           z_inflateSync
-#  define inflateSyncPoint      z_inflateSyncPoint
-#  define inflateUndermine      z_inflateUndermine
-#  define inflateResetKeep      z_inflateResetKeep
-#  define inflate_copyright     z_inflate_copyright
-#  define inflate_fast          z_inflate_fast
-#  define inflate_table         z_inflate_table
-#  ifndef Z_SOLO
-#    define uncompress            z_uncompress
-#  endif
-#  define zError                z_zError
-#  ifndef Z_SOLO
-#    define zcalloc               z_zcalloc
-#    define zcfree                z_zcfree
-#  endif
-#  define zlibCompileFlags      z_zlibCompileFlags
-#  define zlibVersion           z_zlibVersion
-
-/* all zlib typedefs in zlib.h and zconf.h */
-#  define Byte                  z_Byte
-#  define Bytef                 z_Bytef
-#  define alloc_func            z_alloc_func
-#  define charf                 z_charf
-#  define free_func             z_free_func
-#  ifndef Z_SOLO
-#    define gzFile                z_gzFile
-#  endif
-#  define gz_header             z_gz_header
-#  define gz_headerp            z_gz_headerp
-#  define in_func               z_in_func
-#  define intf                  z_intf
-#  define out_func              z_out_func
-#  define uInt                  z_uInt
-#  define uIntf                 z_uIntf
-#  define uLong                 z_uLong
-#  define uLongf                z_uLongf
-#  define voidp                 z_voidp
-#  define voidpc                z_voidpc
-#  define voidpf                z_voidpf
-
-/* all zlib structs in zlib.h and zconf.h */
-#  define gz_header_s           z_gz_header_s
-#  define internal_state        z_internal_state
-
-#endif
-
-#if defined(__MSDOS__) && !defined(MSDOS)
-#  define MSDOS
-#endif
-#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
-#  define OS2
-#endif
-#if defined(_WINDOWS) && !defined(WINDOWS)
-#  define WINDOWS
-#endif
-#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
-#  ifndef WIN32
-#    define WIN32
-#  endif
-#endif
-#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
-#  if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
-#    ifndef SYS16BIT
-#      define SYS16BIT
-#    endif
-#  endif
-#endif
-
-/*
- * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
- * than 64k bytes at a time (needed on systems with 16-bit int).
- */
-#ifdef SYS16BIT
-#  define MAXSEG_64K
-#endif
-#ifdef MSDOS
-#  define UNALIGNED_OK
-#endif
-
-#ifdef __STDC_VERSION__
-#  ifndef STDC
-#    define STDC
-#  endif
-#  if __STDC_VERSION__ >= 199901L
-#    ifndef STDC99
-#      define STDC99
-#    endif
-#  endif
-#endif
-#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
-#  define STDC
-#endif
-
-#if defined(__OS400__) && !defined(STDC)    /* iSeries (formerly AS/400). */
-#  define STDC
-#endif
-
-#ifndef STDC
-#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
-#    define const       /* note: need a more gentle solution here */
-#  endif
-#endif
-
-#if defined(ZLIB_CONST) && !defined(z_const)
-#  define z_const const
-#else
-#  define z_const
-#endif
-
-/* Some Mac compilers merge all .h files incorrectly: */
-#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
-#  define NO_DUMMY_DECL
-#endif
-
-/* Maximum value for memLevel in deflateInit2 */
-#ifndef MAX_MEM_LEVEL
-#  ifdef MAXSEG_64K
-#    define MAX_MEM_LEVEL 8
-#  else
-#    define MAX_MEM_LEVEL 9
-#  endif
-#endif
-
-/* Maximum value for windowBits in deflateInit2 and inflateInit2.
- * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
- * created by gzip. (Files created by minigzip can still be extracted by
- * gzip.)
- */
-#ifndef MAX_WBITS
-#  define MAX_WBITS   15 /* 32K LZ77 window */
-#endif
-
-/* The memory requirements for deflate are (in bytes):
-            (1 << (windowBits+2)) +  (1 << (memLevel+9))
- that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
- plus a few kilobytes for small objects. For example, if you want to reduce
- the default memory requirements from 256K to 128K, compile with
-     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
- Of course this will generally degrade compression (there's no free lunch).
-
-   The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
- for small objects.
-*/
-
-                        /* Type declarations */
-
-#ifndef OF /* function prototypes */
-#  ifdef STDC
-#    define OF(args)  args
-#  else
-#    define OF(args)  ()
-#  endif
-#endif
-
-#ifndef Z_ARG /* function prototypes for stdarg */
-#  if defined(STDC) || defined(Z_HAVE_STDARG_H)
-#    define Z_ARG(args)  args
-#  else
-#    define Z_ARG(args)  ()
-#  endif
-#endif
-
-/* The following definitions for FAR are needed only for MSDOS mixed
- * model programming (small or medium model with some far allocations).
- * This was tested only with MSC; for other MSDOS compilers you may have
- * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,
- * just define FAR to be empty.
- */
-#ifdef SYS16BIT
-#  if defined(M_I86SM) || defined(M_I86MM)
-     /* MSC small or medium model */
-#    define SMALL_MEDIUM
-#    ifdef _MSC_VER
-#      define FAR _far
-#    else
-#      define FAR far
-#    endif
-#  endif
-#  if (defined(__SMALL__) || defined(__MEDIUM__))
-     /* Turbo C small or medium model */
-#    define SMALL_MEDIUM
-#    ifdef __BORLANDC__
-#      define FAR _far
-#    else
-#      define FAR far
-#    endif
-#  endif
-#endif
-
-#if defined(WINDOWS) || defined(WIN32)
-   /* If building or using zlib as a DLL, define ZLIB_DLL.
-    * This is not mandatory, but it offers a little performance increase.
-    */
-#  ifdef ZLIB_DLL
-#    if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
-#      ifdef ZLIB_INTERNAL
-#        define ZEXTERN extern __declspec(dllexport)
-#      else
-#        define ZEXTERN extern __declspec(dllimport)
-#      endif
-#    endif
-#  endif  /* ZLIB_DLL */
-   /* If building or using zlib with the WINAPI/WINAPIV calling convention,
-    * define ZLIB_WINAPI.
-    * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
-    */
-#  ifdef ZLIB_WINAPI
-#    ifdef FAR
-#      undef FAR
-#    endif
-#    include <windows.h>
-     /* No need for _export, use ZLIB.DEF instead. */
-     /* For complete Windows compatibility, use WINAPI, not __stdcall. */
-#    define ZEXPORT WINAPI
-#    ifdef WIN32
-#      define ZEXPORTVA WINAPIV
-#    else
-#      define ZEXPORTVA FAR CDECL
-#    endif
-#  endif
-#endif
-
-#if defined (__BEOS__)
-#  ifdef ZLIB_DLL
-#    ifdef ZLIB_INTERNAL
-#      define ZEXPORT   __declspec(dllexport)
-#      define ZEXPORTVA __declspec(dllexport)
-#    else
-#      define ZEXPORT   __declspec(dllimport)
-#      define ZEXPORTVA __declspec(dllimport)
-#    endif
-#  endif
-#endif
-
-#ifndef ZEXTERN
-#  define ZEXTERN extern
-#endif
-#ifndef ZEXPORT
-#  define ZEXPORT
-#endif
-#ifndef ZEXPORTVA
-#  define ZEXPORTVA
-#endif
-
-#ifndef FAR
-#  define FAR
-#endif
-
-#if !defined(__MACTYPES__)
-typedef unsigned char  Byte;  /* 8 bits */
-#endif
-typedef unsigned int   uInt;  /* 16 bits or more */
-typedef unsigned long  uLong; /* 32 bits or more */
-
-#ifdef SMALL_MEDIUM
-   /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
-#  define Bytef Byte FAR
-#else
-   typedef Byte  FAR Bytef;
-#endif
-typedef char  FAR charf;
-typedef int   FAR intf;
-typedef uInt  FAR uIntf;
-typedef uLong FAR uLongf;
-
-#ifdef STDC
-   typedef void const *voidpc;
-   typedef void FAR   *voidpf;
-   typedef void       *voidp;
-#else
-   typedef Byte const *voidpc;
-   typedef Byte FAR   *voidpf;
-   typedef Byte       *voidp;
-#endif
-
-#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC)
-#  include <limits.h>
-#  if (UINT_MAX == 0xffffffffUL)
-#    define Z_U4 unsigned
-#  elif (ULONG_MAX == 0xffffffffUL)
-#    define Z_U4 unsigned long
-#  elif (USHRT_MAX == 0xffffffffUL)
-#    define Z_U4 unsigned short
-#  endif
-#endif
-
-#ifdef Z_U4
-   typedef Z_U4 z_crc_t;
-#else
-   typedef unsigned long z_crc_t;
-#endif
-
-#if 1    /* was set to #if 1 by ./configure */
-#  define Z_HAVE_UNISTD_H
-#endif
-
-#if 1    /* was set to #if 1 by ./configure */
-#  define Z_HAVE_STDARG_H
-#endif
-
-#ifdef STDC
-#  ifndef Z_SOLO
-#    include <sys/types.h>      /* for off_t */
-#  endif
-#endif
-
-#if defined(STDC) || defined(Z_HAVE_STDARG_H)
-#  ifndef Z_SOLO
-#    include <stdarg.h>         /* for va_list */
-#  endif
-#endif
-
-#ifdef _WIN32
-#  ifndef Z_SOLO
-#    include <stddef.h>         /* for wchar_t */
-#  endif
-#endif
-
-/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
- * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
- * though the former does not conform to the LFS document), but considering
- * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
- * equivalently requesting no 64-bit operations
- */
-#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1
-#  undef _LARGEFILE64_SOURCE
-#endif
-
-#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)
-#  define Z_HAVE_UNISTD_H
-#endif
-#ifndef Z_SOLO
-#  if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
-#    include <unistd.h>         /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
-#    ifdef VMS
-#      include <unixio.h>       /* for off_t */
-#    endif
-#    ifndef z_off_t
-#      define z_off_t off_t
-#    endif
-#  endif
-#endif
-
-#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0
-#  define Z_LFS64
-#endif
-
-#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64)
-#  define Z_LARGE64
-#endif
-
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64)
-#  define Z_WANT64
-#endif
-
-#if !defined(SEEK_SET) && !defined(Z_SOLO)
-#  define SEEK_SET        0       /* Seek from beginning of file.  */
-#  define SEEK_CUR        1       /* Seek from current position.  */
-#  define SEEK_END        2       /* Set file pointer to EOF plus "offset" */
-#endif
-
-#ifndef z_off_t
-#  define z_off_t long
-#endif
-
-#if !defined(_WIN32) && defined(Z_LARGE64)
-#  define z_off64_t off64_t
-#else
-#  if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
-#    define z_off64_t __int64
-#  else
-#    define z_off64_t z_off_t
-#  endif
-#endif
-
-/* MVS linker does not support external names larger than 8 bytes */
-#if defined(__MVS__)
-  #pragma map(deflateInit_,"DEIN")
-  #pragma map(deflateInit2_,"DEIN2")
-  #pragma map(deflateEnd,"DEEND")
-  #pragma map(deflateBound,"DEBND")
-  #pragma map(inflateInit_,"ININ")
-  #pragma map(inflateInit2_,"ININ2")
-  #pragma map(inflateEnd,"INEND")
-  #pragma map(inflateSync,"INSY")
-  #pragma map(inflateSetDictionary,"INSEDI")
-  #pragma map(compressBound,"CMBND")
-  #pragma map(inflate_table,"INTABL")
-  #pragma map(inflate_fast,"INFA")
-  #pragma map(inflate_copyright,"INCOPY")
-#endif
-
-#endif /* ZCONF_H */
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/zlib.h b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/zlib.h
deleted file mode 100644
index 3e0c767..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/zlib.h
+++ /dev/null
@@ -1,1768 +0,0 @@
-/* zlib.h -- interface of the 'zlib' general purpose compression library
-  version 1.2.8, April 28th, 2013
-
-  Copyright (C) 1995-2013 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.
-
-  Jean-loup Gailly        Mark Adler
-  jloup at gzip.org          madler at alumni.caltech.edu
-
-
-  The data format used by the zlib library is described by RFCs (Request for
-  Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950
-  (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format).
-*/
-
-#ifndef ZLIB_H
-#define ZLIB_H
-
-#include "zconf.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ZLIB_VERSION "1.2.8"
-#define ZLIB_VERNUM 0x1280
-#define ZLIB_VER_MAJOR 1
-#define ZLIB_VER_MINOR 2
-#define ZLIB_VER_REVISION 8
-#define ZLIB_VER_SUBREVISION 0
-
-/*
-    The 'zlib' compression library provides in-memory compression and
-  decompression functions, including integrity checks of the uncompressed data.
-  This version of the library supports only one compression method (deflation)
-  but other algorithms will be added later and will have the same stream
-  interface.
-
-    Compression can be done in a single step if the buffers are large enough,
-  or can be done by repeated calls of the compression function.  In the latter
-  case, the application must provide more input and/or consume the output
-  (providing more output space) before each call.
-
-    The compressed data format used by default by the in-memory functions is
-  the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped
-  around a deflate stream, which is itself documented in RFC 1951.
-
-    The library also supports reading and writing files in gzip (.gz) format
-  with an interface similar to that of stdio using the functions that start
-  with "gz".  The gzip format is different from the zlib format.  gzip is a
-  gzip wrapper, documented in RFC 1952, wrapped around a deflate stream.
-
-    This library can optionally read and write gzip streams in memory as well.
-
-    The zlib format was designed to be compact and fast for use in memory
-  and on communications channels.  The gzip format was designed for single-
-  file compression on file systems, has a larger header than zlib to maintain
-  directory information, and uses a different, slower check method than zlib.
-
-    The library does not install any signal handler.  The decoder checks
-  the consistency of the compressed data, so the library should never crash
-  even in case of corrupted input.
-*/
-
-typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
-typedef void   (*free_func)  OF((voidpf opaque, voidpf address));
-
-struct internal_state;
-
-typedef struct z_stream_s {
-    z_const Bytef *next_in;     /* next input byte */
-    uInt     avail_in;  /* number of bytes available at next_in */
-    uLong    total_in;  /* total number of input bytes read so far */
-
-    Bytef    *next_out; /* next output byte should be put there */
-    uInt     avail_out; /* remaining free space at next_out */
-    uLong    total_out; /* total number of bytes output so far */
-
-    z_const char *msg;  /* last error message, NULL if no error */
-    struct internal_state FAR *state; /* not visible by applications */
-
-    alloc_func zalloc;  /* used to allocate the internal state */
-    free_func  zfree;   /* used to free the internal state */
-    voidpf     opaque;  /* private data object passed to zalloc and zfree */
-
-    int     data_type;  /* best guess about the data type: binary or text */
-    uLong   adler;      /* adler32 value of the uncompressed data */
-    uLong   reserved;   /* reserved for future use */
-} z_stream;
-
-typedef z_stream FAR *z_streamp;
-
-/*
-     gzip header information passed to and from zlib routines.  See RFC 1952
-  for more details on the meanings of these fields.
-*/
-typedef struct gz_header_s {
-    int     text;       /* true if compressed data believed to be text */
-    uLong   time;       /* modification time */
-    int     xflags;     /* extra flags (not used when writing a gzip file) */
-    int     os;         /* operating system */
-    Bytef   *extra;     /* pointer to extra field or Z_NULL if none */
-    uInt    extra_len;  /* extra field length (valid if extra != Z_NULL) */
-    uInt    extra_max;  /* space at extra (only when reading header) */
-    Bytef   *name;      /* pointer to zero-terminated file name or Z_NULL */
-    uInt    name_max;   /* space at name (only when reading header) */
-    Bytef   *comment;   /* pointer to zero-terminated comment or Z_NULL */
-    uInt    comm_max;   /* space at comment (only when reading header) */
-    int     hcrc;       /* true if there was or will be a header crc */
-    int     done;       /* true when done reading gzip header (not used
-                           when writing a gzip file) */
-} gz_header;
-
-typedef gz_header FAR *gz_headerp;
-
-/*
-     The application must update next_in and avail_in when avail_in has dropped
-   to zero.  It must update next_out and avail_out when avail_out has dropped
-   to zero.  The application must initialize zalloc, zfree and opaque before
-   calling the init function.  All other fields are set by the compression
-   library and must not be updated by the application.
-
-     The opaque value provided by the application will be passed as the first
-   parameter for calls of zalloc and zfree.  This can be useful for custom
-   memory management.  The compression library attaches no meaning to the
-   opaque value.
-
-     zalloc must return Z_NULL if there is not enough memory for the object.
-   If zlib is used in a multi-threaded application, zalloc and zfree must be
-   thread safe.
-
-     On 16-bit systems, the functions zalloc and zfree must be able to allocate
-   exactly 65536 bytes, but will not be required to allocate more than this if
-   the symbol MAXSEG_64K is defined (see zconf.h).  WARNING: On MSDOS, pointers
-   returned by zalloc for objects of exactly 65536 bytes *must* have their
-   offset normalized to zero.  The default allocation function provided by this
-   library ensures this (see zutil.c).  To reduce memory requirements and avoid
-   any allocation of 64K objects, at the expense of compression ratio, compile
-   the library with -DMAX_WBITS=14 (see zconf.h).
-
-     The fields total_in and total_out can be used for statistics or progress
-   reports.  After compression, total_in holds the total size of the
-   uncompressed data and may be saved for use in the decompressor (particularly
-   if the decompressor wants to decompress everything in a single step).
-*/
-
-                        /* constants */
-
-#define Z_NO_FLUSH      0
-#define Z_PARTIAL_FLUSH 1
-#define Z_SYNC_FLUSH    2
-#define Z_FULL_FLUSH    3
-#define Z_FINISH        4
-#define Z_BLOCK         5
-#define Z_TREES         6
-/* Allowed flush values; see deflate() and inflate() below for details */
-
-#define Z_OK            0
-#define Z_STREAM_END    1
-#define Z_NEED_DICT     2
-#define Z_ERRNO        (-1)
-#define Z_STREAM_ERROR (-2)
-#define Z_DATA_ERROR   (-3)
-#define Z_MEM_ERROR    (-4)
-#define Z_BUF_ERROR    (-5)
-#define Z_VERSION_ERROR (-6)
-/* Return codes for the compression/decompression functions. Negative values
- * are errors, positive values are used for special but normal events.
- */
-
-#define Z_NO_COMPRESSION         0
-#define Z_BEST_SPEED             1
-#define Z_BEST_COMPRESSION       9
-#define Z_DEFAULT_COMPRESSION  (-1)
-/* compression levels */
-
-#define Z_FILTERED            1
-#define Z_HUFFMAN_ONLY        2
-#define Z_RLE                 3
-#define Z_FIXED               4
-#define Z_DEFAULT_STRATEGY    0
-/* compression strategy; see deflateInit2() below for details */
-
-#define Z_BINARY   0
-#define Z_TEXT     1
-#define Z_ASCII    Z_TEXT   /* for compatibility with 1.2.2 and earlier */
-#define Z_UNKNOWN  2
-/* Possible values of the data_type field (though see inflate()) */
-
-#define Z_DEFLATED   8
-/* The deflate compression method (the only one supported in this version) */
-
-#define Z_NULL  0  /* for initializing zalloc, zfree, opaque */
-
-#define zlib_version zlibVersion()
-/* for compatibility with versions < 1.0.2 */
-
-
-                        /* basic functions */
-
-ZEXTERN const char * ZEXPORT zlibVersion OF((void));
-/* The application can compare zlibVersion and ZLIB_VERSION for consistency.
-   If the first character differs, the library code actually used is not
-   compatible with the zlib.h header file used by the application.  This check
-   is automatically made by deflateInit and inflateInit.
- */
-
-/*
-ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level));
-
-     Initializes the internal stream state for compression.  The fields
-   zalloc, zfree and opaque must be initialized before by the caller.  If
-   zalloc and zfree are set to Z_NULL, deflateInit updates them to use default
-   allocation functions.
-
-     The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
-   1 gives best speed, 9 gives best compression, 0 gives no compression at all
-   (the input data is simply copied a block at a time).  Z_DEFAULT_COMPRESSION
-   requests a default compromise between speed and compression (currently
-   equivalent to level 6).
-
-     deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_STREAM_ERROR if level is not a valid compression level, or
-   Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
-   with the version assumed by the caller (ZLIB_VERSION).  msg is set to null
-   if there is no error message.  deflateInit does not perform any compression:
-   this will be done by deflate().
-*/
-
-
-ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
-/*
-    deflate compresses as much data as possible, and stops when the input
-  buffer becomes empty or the output buffer becomes full.  It may introduce
-  some output latency (reading input without producing any output) except when
-  forced to flush.
-
-    The detailed semantics are as follows.  deflate performs one or both of the
-  following actions:
-
-  - Compress more input starting at next_in and update next_in and avail_in
-    accordingly.  If not all input can be processed (because there is not
-    enough room in the output buffer), next_in and avail_in are updated and
-    processing will resume at this point for the next call of deflate().
-
-  - Provide more output starting at next_out and update next_out and avail_out
-    accordingly.  This action is forced if the parameter flush is non zero.
-    Forcing flush frequently degrades the compression ratio, so this parameter
-    should be set only when necessary (in interactive applications).  Some
-    output may be provided even if flush is not set.
-
-    Before the call of deflate(), the application should ensure that at least
-  one of the actions is possible, by providing more input and/or consuming more
-  output, and updating avail_in or avail_out accordingly; avail_out should
-  never be zero before the call.  The application can consume the compressed
-  output when it wants, for example when the output buffer is full (avail_out
-  == 0), or after each call of deflate().  If deflate returns Z_OK and with
-  zero avail_out, it must be called again after making room in the output
-  buffer because there might be more output pending.
-
-    Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to
-  decide how much data to accumulate before producing output, in order to
-  maximize compression.
-
-    If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
-  flushed to the output buffer and the output is aligned on a byte boundary, so
-  that the decompressor can get all input data available so far.  (In
-  particular avail_in is zero after the call if enough output space has been
-  provided before the call.) Flushing may degrade compression for some
-  compression algorithms and so it should be used only when necessary.  This
-  completes the current deflate block and follows it with an empty stored block
-  that is three bits plus filler bits to the next byte, followed by four bytes
-  (00 00 ff ff).
-
-    If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the
-  output buffer, but the output is not aligned to a byte boundary.  All of the
-  input data so far will be available to the decompressor, as for Z_SYNC_FLUSH.
-  This completes the current deflate block and follows it with an empty fixed
-  codes block that is 10 bits long.  This assures that enough bytes are output
-  in order for the decompressor to finish the block before the empty fixed code
-  block.
-
-    If flush is set to Z_BLOCK, a deflate block is completed and emitted, as
-  for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to
-  seven bits of the current block are held to be written as the next byte after
-  the next deflate block is completed.  In this case, the decompressor may not
-  be provided enough bits at this point in order to complete decompression of
-  the data provided so far to the compressor.  It may need to wait for the next
-  block to be emitted.  This is for advanced applications that need to control
-  the emission of deflate blocks.
-
-    If flush is set to Z_FULL_FLUSH, all output is flushed as with
-  Z_SYNC_FLUSH, and the compression state is reset so that decompression can
-  restart from this point if previous compressed data has been damaged or if
-  random access is desired.  Using Z_FULL_FLUSH too often can seriously degrade
-  compression.
-
-    If deflate returns with avail_out == 0, this function must be called again
-  with the same value of the flush parameter and more output space (updated
-  avail_out), until the flush is complete (deflate returns with non-zero
-  avail_out).  In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that
-  avail_out is greater than six to avoid repeated flush markers due to
-  avail_out == 0 on return.
-
-    If the parameter flush is set to Z_FINISH, pending input is processed,
-  pending output is flushed and deflate returns with Z_STREAM_END if there was
-  enough output space; if deflate returns with Z_OK, this function must be
-  called again with Z_FINISH and more output space (updated avail_out) but no
-  more input data, until it returns with Z_STREAM_END or an error.  After
-  deflate has returned Z_STREAM_END, the only possible operations on the stream
-  are deflateReset or deflateEnd.
-
-    Z_FINISH can be used immediately after deflateInit if all the compression
-  is to be done in a single step.  In this case, avail_out must be at least the
-  value returned by deflateBound (see below).  Then deflate is guaranteed to
-  return Z_STREAM_END.  If not enough output space is provided, deflate will
-  not return Z_STREAM_END, and it must be called again as described above.
-
-    deflate() sets strm->adler to the adler32 checksum of all input read
-  so far (that is, total_in bytes).
-
-    deflate() may update strm->data_type if it can make a good guess about
-  the input data type (Z_BINARY or Z_TEXT).  In doubt, the data is considered
-  binary.  This field is only for information purposes and does not affect the
-  compression algorithm in any manner.
-
-    deflate() returns Z_OK if some progress has been made (more input
-  processed or more output produced), Z_STREAM_END if all input has been
-  consumed and all output has been produced (only when flush is set to
-  Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
-  if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible
-  (for example avail_in or avail_out was zero).  Note that Z_BUF_ERROR is not
-  fatal, and deflate() can be called again with more input and more output
-  space to continue compressing.
-*/
-
-
-ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
-/*
-     All dynamically allocated data structures for this stream are freed.
-   This function discards any unprocessed input and does not flush any pending
-   output.
-
-     deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
-   stream state was inconsistent, Z_DATA_ERROR if the stream was freed
-   prematurely (some input or output was discarded).  In the error case, msg
-   may be set but then points to a static string (which must not be
-   deallocated).
-*/
-
-
-/*
-ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
-
-     Initializes the internal stream state for decompression.  The fields
-   next_in, avail_in, zalloc, zfree and opaque must be initialized before by
-   the caller.  If next_in is not Z_NULL and avail_in is large enough (the
-   exact value depends on the compression method), inflateInit determines the
-   compression method from the zlib header and allocates all data structures
-   accordingly; otherwise the allocation will be deferred to the first call of
-   inflate.  If zalloc and zfree are set to Z_NULL, inflateInit updates them to
-   use default allocation functions.
-
-     inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
-   version assumed by the caller, or Z_STREAM_ERROR if the parameters are
-   invalid, such as a null pointer to the structure.  msg is set to null if
-   there is no error message.  inflateInit does not perform any decompression
-   apart from possibly reading the zlib header if present: actual decompression
-   will be done by inflate().  (So next_in and avail_in may be modified, but
-   next_out and avail_out are unused and unchanged.) The current implementation
-   of inflateInit() does not process any header information -- that is deferred
-   until inflate() is called.
-*/
-
-
-ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
-/*
-    inflate decompresses as much data as possible, and stops when the input
-  buffer becomes empty or the output buffer becomes full.  It may introduce
-  some output latency (reading input without producing any output) except when
-  forced to flush.
-
-  The detailed semantics are as follows.  inflate performs one or both of the
-  following actions:
-
-  - Decompress more input starting at next_in and update next_in and avail_in
-    accordingly.  If not all input can be processed (because there is not
-    enough room in the output buffer), next_in is updated and processing will
-    resume at this point for the next call of inflate().
-
-  - Provide more output starting at next_out and update next_out and avail_out
-    accordingly.  inflate() provides as much output as possible, until there is
-    no more input data or no more space in the output buffer (see below about
-    the flush parameter).
-
-    Before the call of inflate(), the application should ensure that at least
-  one of the actions is possible, by providing more input and/or consuming more
-  output, and updating the next_* and avail_* values accordingly.  The
-  application can consume the uncompressed output when it wants, for example
-  when the output buffer is full (avail_out == 0), or after each call of
-  inflate().  If inflate returns Z_OK and with zero avail_out, it must be
-  called again after making room in the output buffer because there might be
-  more output pending.
-
-    The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH,
-  Z_BLOCK, or Z_TREES.  Z_SYNC_FLUSH requests that inflate() flush as much
-  output as possible to the output buffer.  Z_BLOCK requests that inflate()
-  stop if and when it gets to the next deflate block boundary.  When decoding
-  the zlib or gzip format, this will cause inflate() to return immediately
-  after the header and before the first block.  When doing a raw inflate,
-  inflate() will go ahead and process the first block, and will return when it
-  gets to the end of that block, or when it runs out of data.
-
-    The Z_BLOCK option assists in appending to or combining deflate streams.
-  Also to assist in this, on return inflate() will set strm->data_type to the
-  number of unused bits in the last byte taken from strm->next_in, plus 64 if
-  inflate() is currently decoding the last block in the deflate stream, plus
-  128 if inflate() returned immediately after decoding an end-of-block code or
-  decoding the complete header up to just before the first byte of the deflate
-  stream.  The end-of-block will not be indicated until all of the uncompressed
-  data from that block has been written to strm->next_out.  The number of
-  unused bits may in general be greater than seven, except when bit 7 of
-  data_type is set, in which case the number of unused bits will be less than
-  eight.  data_type is set as noted here every time inflate() returns for all
-  flush options, and so can be used to determine the amount of currently
-  consumed input in bits.
-
-    The Z_TREES option behaves as Z_BLOCK does, but it also returns when the
-  end of each deflate block header is reached, before any actual data in that
-  block is decoded.  This allows the caller to determine the length of the
-  deflate block header for later use in random access within a deflate block.
-  256 is added to the value of strm->data_type when inflate() returns
-  immediately after reaching the end of the deflate block header.
-
-    inflate() should normally be called until it returns Z_STREAM_END or an
-  error.  However if all decompression is to be performed in a single step (a
-  single call of inflate), the parameter flush should be set to Z_FINISH.  In
-  this case all pending input is processed and all pending output is flushed;
-  avail_out must be large enough to hold all of the uncompressed data for the
-  operation to complete.  (The size of the uncompressed data may have been
-  saved by the compressor for this purpose.) The use of Z_FINISH is not
-  required to perform an inflation in one step.  However it may be used to
-  inform inflate that a faster approach can be used for the single inflate()
-  call.  Z_FINISH also informs inflate to not maintain a sliding window if the
-  stream completes, which reduces inflate's memory footprint.  If the stream
-  does not complete, either because not all of the stream is provided or not
-  enough output space is provided, then a sliding window will be allocated and
-  inflate() can be called again to continue the operation as if Z_NO_FLUSH had
-  been used.
-
-     In this implementation, inflate() always flushes as much output as
-  possible to the output buffer, and always uses the faster approach on the
-  first call.  So the effects of the flush parameter in this implementation are
-  on the return value of inflate() as noted below, when inflate() returns early
-  when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of
-  memory for a sliding window when Z_FINISH is used.
-
-     If a preset dictionary is needed after this call (see inflateSetDictionary
-  below), inflate sets strm->adler to the Adler-32 checksum of the dictionary
-  chosen by the compressor and returns Z_NEED_DICT; otherwise it sets
-  strm->adler to the Adler-32 checksum of all output produced so far (that is,
-  total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described
-  below.  At the end of the stream, inflate() checks that its computed adler32
-  checksum is equal to that saved by the compressor and returns Z_STREAM_END
-  only if the checksum is correct.
-
-    inflate() can decompress and check either zlib-wrapped or gzip-wrapped
-  deflate data.  The header type is detected automatically, if requested when
-  initializing with inflateInit2().  Any information contained in the gzip
-  header is not retained, so applications that need that information should
-  instead use raw inflate, see inflateInit2() below, or inflateBack() and
-  perform their own processing of the gzip header and trailer.  When processing
-  gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output
-  producted so far.  The CRC-32 is checked against the gzip trailer.
-
-    inflate() returns Z_OK if some progress has been made (more input processed
-  or more output produced), Z_STREAM_END if the end of the compressed data has
-  been reached and all uncompressed output has been produced, Z_NEED_DICT if a
-  preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
-  corrupted (input stream not conforming to the zlib format or incorrect check
-  value), Z_STREAM_ERROR if the stream structure was inconsistent (for example
-  next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory,
-  Z_BUF_ERROR if no progress is possible or if there was not enough room in the
-  output buffer when Z_FINISH is used.  Note that Z_BUF_ERROR is not fatal, and
-  inflate() can be called again with more input and more output space to
-  continue decompressing.  If Z_DATA_ERROR is returned, the application may
-  then call inflateSync() to look for a good compression block if a partial
-  recovery of the data is desired.
-*/
-
-
-ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
-/*
-     All dynamically allocated data structures for this stream are freed.
-   This function discards any unprocessed input and does not flush any pending
-   output.
-
-     inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
-   was inconsistent.  In the error case, msg may be set but then points to a
-   static string (which must not be deallocated).
-*/
-
-
-                        /* Advanced functions */
-
-/*
-    The following functions are needed only in some special applications.
-*/
-
-/*
-ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
-                                     int  level,
-                                     int  method,
-                                     int  windowBits,
-                                     int  memLevel,
-                                     int  strategy));
-
-     This is another version of deflateInit with more compression options.  The
-   fields next_in, zalloc, zfree and opaque must be initialized before by the
-   caller.
-
-     The method parameter is the compression method.  It must be Z_DEFLATED in
-   this version of the library.
-
-     The windowBits parameter is the base two logarithm of the window size
-   (the size of the history buffer).  It should be in the range 8..15 for this
-   version of the library.  Larger values of this parameter result in better
-   compression at the expense of memory usage.  The default value is 15 if
-   deflateInit is used instead.
-
-     windowBits can also be -8..-15 for raw deflate.  In this case, -windowBits
-   determines the window size.  deflate() will then generate raw deflate data
-   with no zlib header or trailer, and will not compute an adler32 check value.
-
-     windowBits can also be greater than 15 for optional gzip encoding.  Add
-   16 to windowBits to write a simple gzip header and trailer around the
-   compressed data instead of a zlib wrapper.  The gzip header will have no
-   file name, no extra data, no comment, no modification time (set to zero), no
-   header crc, and the operating system will be set to 255 (unknown).  If a
-   gzip stream is being written, strm->adler is a crc32 instead of an adler32.
-
-     The memLevel parameter specifies how much memory should be allocated
-   for the internal compression state.  memLevel=1 uses minimum memory but is
-   slow and reduces compression ratio; memLevel=9 uses maximum memory for
-   optimal speed.  The default value is 8.  See zconf.h for total memory usage
-   as a function of windowBits and memLevel.
-
-     The strategy parameter is used to tune the compression algorithm.  Use the
-   value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
-   filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no
-   string match), or Z_RLE to limit match distances to one (run-length
-   encoding).  Filtered data consists mostly of small values with a somewhat
-   random distribution.  In this case, the compression algorithm is tuned to
-   compress them better.  The effect of Z_FILTERED is to force more Huffman
-   coding and less string matching; it is somewhat intermediate between
-   Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY.  Z_RLE is designed to be almost as
-   fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data.  The
-   strategy parameter only affects the compression ratio but not the
-   correctness of the compressed output even if it is not set appropriately.
-   Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler
-   decoder for special applications.
-
-     deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid
-   method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is
-   incompatible with the version assumed by the caller (ZLIB_VERSION).  msg is
-   set to null if there is no error message.  deflateInit2 does not perform any
-   compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
-                                             const Bytef *dictionary,
-                                             uInt  dictLength));
-/*
-     Initializes the compression dictionary from the given byte sequence
-   without producing any compressed output.  When using the zlib format, this
-   function must be called immediately after deflateInit, deflateInit2 or
-   deflateReset, and before any call of deflate.  When doing raw deflate, this
-   function must be called either before any call of deflate, or immediately
-   after the completion of a deflate block, i.e. after all input has been
-   consumed and all output has been delivered when using any of the flush
-   options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH.  The
-   compressor and decompressor must use exactly the same dictionary (see
-   inflateSetDictionary).
-
-     The dictionary should consist of strings (byte sequences) that are likely
-   to be encountered later in the data to be compressed, with the most commonly
-   used strings preferably put towards the end of the dictionary.  Using a
-   dictionary is most useful when the data to be compressed is short and can be
-   predicted with good accuracy; the data can then be compressed better than
-   with the default empty dictionary.
-
-     Depending on the size of the compression data structures selected by
-   deflateInit or deflateInit2, a part of the dictionary may in effect be
-   discarded, for example if the dictionary is larger than the window size
-   provided in deflateInit or deflateInit2.  Thus the strings most likely to be
-   useful should be put at the end of the dictionary, not at the front.  In
-   addition, the current implementation of deflate will use at most the window
-   size minus 262 bytes of the provided dictionary.
-
-     Upon return of this function, strm->adler is set to the adler32 value
-   of the dictionary; the decompressor may later use this value to determine
-   which dictionary has been used by the compressor.  (The adler32 value
-   applies to the whole dictionary even if only a subset of the dictionary is
-   actually used by the compressor.) If a raw deflate was requested, then the
-   adler32 value is not computed and strm->adler is not set.
-
-     deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
-   parameter is invalid (e.g.  dictionary being Z_NULL) or the stream state is
-   inconsistent (for example if deflate has already been called for this stream
-   or if not at a block boundary for raw deflate).  deflateSetDictionary does
-   not perform any compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
-                                    z_streamp source));
-/*
-     Sets the destination stream as a complete copy of the source stream.
-
-     This function can be useful when several compression strategies will be
-   tried, for example when there are several ways of pre-processing the input
-   data with a filter.  The streams that will be discarded should then be freed
-   by calling deflateEnd.  Note that deflateCopy duplicates the internal
-   compression state which can be quite large, so this strategy is slow and can
-   consume lots of memory.
-
-     deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
-   (such as zalloc being Z_NULL).  msg is left unchanged in both source and
-   destination.
-*/
-
-ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
-/*
-     This function is equivalent to deflateEnd followed by deflateInit,
-   but does not free and reallocate all the internal compression state.  The
-   stream will keep the same compression level and any other attributes that
-   may have been set by deflateInit2.
-
-     deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being Z_NULL).
-*/
-
-ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
-                                      int level,
-                                      int strategy));
-/*
-     Dynamically update the compression level and compression strategy.  The
-   interpretation of level and strategy is as in deflateInit2.  This can be
-   used to switch between compression and straight copy of the input data, or
-   to switch to a different kind of input data requiring a different strategy.
-   If the compression level is changed, the input available so far is
-   compressed with the old level (and may be flushed); the new level will take
-   effect only at the next call of deflate().
-
-     Before the call of deflateParams, the stream state must be set as for
-   a call of deflate(), since the currently available input may have to be
-   compressed and flushed.  In particular, strm->avail_out must be non-zero.
-
-     deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
-   stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if
-   strm->avail_out was zero.
-*/
-
-ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm,
-                                    int good_length,
-                                    int max_lazy,
-                                    int nice_length,
-                                    int max_chain));
-/*
-     Fine tune deflate's internal compression parameters.  This should only be
-   used by someone who understands the algorithm used by zlib's deflate for
-   searching for the best matching string, and even then only by the most
-   fanatic optimizer trying to squeeze out the last compressed bit for their
-   specific input data.  Read the deflate.c source code for the meaning of the
-   max_lazy, good_length, nice_length, and max_chain parameters.
-
-     deflateTune() can be called after deflateInit() or deflateInit2(), and
-   returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream.
- */
-
-ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm,
-                                       uLong sourceLen));
-/*
-     deflateBound() returns an upper bound on the compressed size after
-   deflation of sourceLen bytes.  It must be called after deflateInit() or
-   deflateInit2(), and after deflateSetHeader(), if used.  This would be used
-   to allocate an output buffer for deflation in a single pass, and so would be
-   called before deflate().  If that first deflate() call is provided the
-   sourceLen input bytes, an output buffer allocated to the size returned by
-   deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed
-   to return Z_STREAM_END.  Note that it is possible for the compressed size to
-   be larger than the value returned by deflateBound() if flush options other
-   than Z_FINISH or Z_NO_FLUSH are used.
-*/
-
-ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm,
-                                       unsigned *pending,
-                                       int *bits));
-/*
-     deflatePending() returns the number of bytes and bits of output that have
-   been generated, but not yet provided in the available output.  The bytes not
-   provided would be due to the available output space having being consumed.
-   The number of bits of output not provided are between 0 and 7, where they
-   await more bits to join them in order to fill out a full byte.  If pending
-   or bits are Z_NULL, then those values are not set.
-
-     deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
- */
-
-ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm,
-                                     int bits,
-                                     int value));
-/*
-     deflatePrime() inserts bits in the deflate output stream.  The intent
-   is that this function is used to start off the deflate output with the bits
-   leftover from a previous deflate stream when appending to it.  As such, this
-   function can only be used for raw deflate, and must be used before the first
-   deflate() call after a deflateInit2() or deflateReset().  bits must be less
-   than or equal to 16, and that many of the least significant bits of value
-   will be inserted in the output.
-
-     deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough
-   room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the
-   source stream state was inconsistent.
-*/
-
-ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm,
-                                         gz_headerp head));
-/*
-     deflateSetHeader() provides gzip header information for when a gzip
-   stream is requested by deflateInit2().  deflateSetHeader() may be called
-   after deflateInit2() or deflateReset() and before the first call of
-   deflate().  The text, time, os, extra field, name, and comment information
-   in the provided gz_header structure are written to the gzip header (xflag is
-   ignored -- the extra flags are set according to the compression level).  The
-   caller must assure that, if not Z_NULL, name and comment are terminated with
-   a zero byte, and that if extra is not Z_NULL, that extra_len bytes are
-   available there.  If hcrc is true, a gzip header crc is included.  Note that
-   the current versions of the command-line version of gzip (up through version
-   1.3.x) do not support header crc's, and will report that it is a "multi-part
-   gzip file" and give up.
-
-     If deflateSetHeader is not used, the default gzip header has text false,
-   the time set to zero, and os set to 255, with no extra, name, or comment
-   fields.  The gzip header is returned to the default state by deflateReset().
-
-     deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
-                                     int  windowBits));
-
-     This is another version of inflateInit with an extra parameter.  The
-   fields next_in, avail_in, zalloc, zfree and opaque must be initialized
-   before by the caller.
-
-     The windowBits parameter is the base two logarithm of the maximum window
-   size (the size of the history buffer).  It should be in the range 8..15 for
-   this version of the library.  The default value is 15 if inflateInit is used
-   instead.  windowBits must be greater than or equal to the windowBits value
-   provided to deflateInit2() while compressing, or it must be equal to 15 if
-   deflateInit2() was not used.  If a compressed stream with a larger window
-   size is given as input, inflate() will return with the error code
-   Z_DATA_ERROR instead of trying to allocate a larger window.
-
-     windowBits can also be zero to request that inflate use the window size in
-   the zlib header of the compressed stream.
-
-     windowBits can also be -8..-15 for raw inflate.  In this case, -windowBits
-   determines the window size.  inflate() will then process raw deflate data,
-   not looking for a zlib or gzip header, not generating a check value, and not
-   looking for any check values for comparison at the end of the stream.  This
-   is for use with other formats that use the deflate compressed data format
-   such as zip.  Those formats provide their own check values.  If a custom
-   format is developed using the raw deflate format for compressed data, it is
-   recommended that a check value such as an adler32 or a crc32 be applied to
-   the uncompressed data as is done in the zlib, gzip, and zip formats.  For
-   most applications, the zlib format should be used as is.  Note that comments
-   above on the use in deflateInit2() applies to the magnitude of windowBits.
-
-     windowBits can also be greater than 15 for optional gzip decoding.  Add
-   32 to windowBits to enable zlib and gzip decoding with automatic header
-   detection, or add 16 to decode only the gzip format (the zlib format will
-   return a Z_DATA_ERROR).  If a gzip stream is being decoded, strm->adler is a
-   crc32 instead of an adler32.
-
-     inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
-   version assumed by the caller, or Z_STREAM_ERROR if the parameters are
-   invalid, such as a null pointer to the structure.  msg is set to null if
-   there is no error message.  inflateInit2 does not perform any decompression
-   apart from possibly reading the zlib header if present: actual decompression
-   will be done by inflate().  (So next_in and avail_in may be modified, but
-   next_out and avail_out are unused and unchanged.) The current implementation
-   of inflateInit2() does not process any header information -- that is
-   deferred until inflate() is called.
-*/
-
-ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
-                                             const Bytef *dictionary,
-                                             uInt  dictLength));
-/*
-     Initializes the decompression dictionary from the given uncompressed byte
-   sequence.  This function must be called immediately after a call of inflate,
-   if that call returned Z_NEED_DICT.  The dictionary chosen by the compressor
-   can be determined from the adler32 value returned by that call of inflate.
-   The compressor and decompressor must use exactly the same dictionary (see
-   deflateSetDictionary).  For raw inflate, this function can be called at any
-   time to set the dictionary.  If the provided dictionary is smaller than the
-   window and there is already data in the window, then the provided dictionary
-   will amend what's there.  The application must insure that the dictionary
-   that was used for compression is provided.
-
-     inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
-   parameter is invalid (e.g.  dictionary being Z_NULL) or the stream state is
-   inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
-   expected one (incorrect adler32 value).  inflateSetDictionary does not
-   perform any decompression: this will be done by subsequent calls of
-   inflate().
-*/
-
-ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm,
-                                             Bytef *dictionary,
-                                             uInt  *dictLength));
-/*
-     Returns the sliding dictionary being maintained by inflate.  dictLength is
-   set to the number of bytes in the dictionary, and that many bytes are copied
-   to dictionary.  dictionary must have enough space, where 32768 bytes is
-   always enough.  If inflateGetDictionary() is called with dictionary equal to
-   Z_NULL, then only the dictionary length is returned, and nothing is copied.
-   Similary, if dictLength is Z_NULL, then it is not set.
-
-     inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the
-   stream state is inconsistent.
-*/
-
-ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
-/*
-     Skips invalid compressed data until a possible full flush point (see above
-   for the description of deflate with Z_FULL_FLUSH) can be found, or until all
-   available input is skipped.  No output is provided.
-
-     inflateSync searches for a 00 00 FF FF pattern in the compressed data.
-   All full flush points have this pattern, but not all occurrences of this
-   pattern are full flush points.
-
-     inflateSync returns Z_OK if a possible full flush point has been found,
-   Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point
-   has been found, or Z_STREAM_ERROR if the stream structure was inconsistent.
-   In the success case, the application may save the current current value of
-   total_in which indicates where valid compressed data was found.  In the
-   error case, the application may repeatedly call inflateSync, providing more
-   input each time, until success or end of the input data.
-*/
-
-ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest,
-                                    z_streamp source));
-/*
-     Sets the destination stream as a complete copy of the source stream.
-
-     This function can be useful when randomly accessing a large stream.  The
-   first pass through the stream can periodically record the inflate state,
-   allowing restarting inflate at those points when randomly accessing the
-   stream.
-
-     inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
-   (such as zalloc being Z_NULL).  msg is left unchanged in both source and
-   destination.
-*/
-
-ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
-/*
-     This function is equivalent to inflateEnd followed by inflateInit,
-   but does not free and reallocate all the internal decompression state.  The
-   stream will keep attributes that may have been set by inflateInit2.
-
-     inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being Z_NULL).
-*/
-
-ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm,
-                                      int windowBits));
-/*
-     This function is the same as inflateReset, but it also permits changing
-   the wrap and window size requests.  The windowBits parameter is interpreted
-   the same as it is for inflateInit2.
-
-     inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being Z_NULL), or if
-   the windowBits parameter is invalid.
-*/
-
-ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm,
-                                     int bits,
-                                     int value));
-/*
-     This function inserts bits in the inflate input stream.  The intent is
-   that this function is used to start inflating at a bit position in the
-   middle of a byte.  The provided bits will be used before any bytes are used
-   from next_in.  This function should only be used with raw inflate, and
-   should be used before the first inflate() call after inflateInit2() or
-   inflateReset().  bits must be less than or equal to 16, and that many of the
-   least significant bits of value will be inserted in the input.
-
-     If bits is negative, then the input stream bit buffer is emptied.  Then
-   inflatePrime() can be called again to put bits in the buffer.  This is used
-   to clear out bits leftover after feeding inflate a block description prior
-   to feeding inflate codes.
-
-     inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
-*/
-
-ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm));
-/*
-     This function returns two values, one in the lower 16 bits of the return
-   value, and the other in the remaining upper bits, obtained by shifting the
-   return value down 16 bits.  If the upper value is -1 and the lower value is
-   zero, then inflate() is currently decoding information outside of a block.
-   If the upper value is -1 and the lower value is non-zero, then inflate is in
-   the middle of a stored block, with the lower value equaling the number of
-   bytes from the input remaining to copy.  If the upper value is not -1, then
-   it is the number of bits back from the current bit position in the input of
-   the code (literal or length/distance pair) currently being processed.  In
-   that case the lower value is the number of bytes already emitted for that
-   code.
-
-     A code is being processed if inflate is waiting for more input to complete
-   decoding of the code, or if it has completed decoding but is waiting for
-   more output space to write the literal or match data.
-
-     inflateMark() is used to mark locations in the input data for random
-   access, which may be at bit positions, and to note those cases where the
-   output of a code may span boundaries of random access blocks.  The current
-   location in the input stream can be determined from avail_in and data_type
-   as noted in the description for the Z_BLOCK flush parameter for inflate.
-
-     inflateMark returns the value noted above or -1 << 16 if the provided
-   source stream state was inconsistent.
-*/
-
-ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm,
-                                         gz_headerp head));
-/*
-     inflateGetHeader() requests that gzip header information be stored in the
-   provided gz_header structure.  inflateGetHeader() may be called after
-   inflateInit2() or inflateReset(), and before the first call of inflate().
-   As inflate() processes the gzip stream, head->done is zero until the header
-   is completed, at which time head->done is set to one.  If a zlib stream is
-   being decoded, then head->done is set to -1 to indicate that there will be
-   no gzip header information forthcoming.  Note that Z_BLOCK or Z_TREES can be
-   used to force inflate() to return immediately after header processing is
-   complete and before any actual data is decompressed.
-
-     The text, time, xflags, and os fields are filled in with the gzip header
-   contents.  hcrc is set to true if there is a header CRC.  (The header CRC
-   was valid if done is set to one.) If extra is not Z_NULL, then extra_max
-   contains the maximum number of bytes to write to extra.  Once done is true,
-   extra_len contains the actual extra field length, and extra contains the
-   extra field, or that field truncated if extra_max is less than extra_len.
-   If name is not Z_NULL, then up to name_max characters are written there,
-   terminated with a zero unless the length is greater than name_max.  If
-   comment is not Z_NULL, then up to comm_max characters are written there,
-   terminated with a zero unless the length is greater than comm_max.  When any
-   of extra, name, or comment are not Z_NULL and the respective field is not
-   present in the header, then that field is set to Z_NULL to signal its
-   absence.  This allows the use of deflateSetHeader() with the returned
-   structure to duplicate the header.  However if those fields are set to
-   allocated memory, then the application will need to save those pointers
-   elsewhere so that they can be eventually freed.
-
-     If inflateGetHeader is not used, then the header information is simply
-   discarded.  The header is always checked for validity, including the header
-   CRC if present.  inflateReset() will reset the process to discard the header
-   information.  The application would need to call inflateGetHeader() again to
-   retrieve the header from the next gzip stream.
-
-     inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits,
-                                        unsigned char FAR *window));
-
-     Initialize the internal stream state for decompression using inflateBack()
-   calls.  The fields zalloc, zfree and opaque in strm must be initialized
-   before the call.  If zalloc and zfree are Z_NULL, then the default library-
-   derived memory allocation routines are used.  windowBits is the base two
-   logarithm of the window size, in the range 8..15.  window is a caller
-   supplied buffer of that size.  Except for special applications where it is
-   assured that deflate was used with small window sizes, windowBits must be 15
-   and a 32K byte window must be supplied to be able to decompress general
-   deflate streams.
-
-     See inflateBack() for the usage of these routines.
-
-     inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of
-   the parameters are invalid, Z_MEM_ERROR if the internal state could not be
-   allocated, or Z_VERSION_ERROR if the version of the library does not match
-   the version of the header file.
-*/
-
-typedef unsigned (*in_func) OF((void FAR *,
-                                z_const unsigned char FAR * FAR *));
-typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned));
-
-ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm,
-                                    in_func in, void FAR *in_desc,
-                                    out_func out, void FAR *out_desc));
-/*
-     inflateBack() does a raw inflate with a single call using a call-back
-   interface for input and output.  This is potentially more efficient than
-   inflate() for file i/o applications, in that it avoids copying between the
-   output and the sliding window by simply making the window itself the output
-   buffer.  inflate() can be faster on modern CPUs when used with large
-   buffers.  inflateBack() trusts the application to not change the output
-   buffer passed by the output function, at least until inflateBack() returns.
-
-     inflateBackInit() must be called first to allocate the internal state
-   and to initialize the state with the user-provided window buffer.
-   inflateBack() may then be used multiple times to inflate a complete, raw
-   deflate stream with each call.  inflateBackEnd() is then called to free the
-   allocated state.
-
-     A raw deflate stream is one with no zlib or gzip header or trailer.
-   This routine would normally be used in a utility that reads zip or gzip
-   files and writes out uncompressed files.  The utility would decode the
-   header and process the trailer on its own, hence this routine expects only
-   the raw deflate stream to decompress.  This is different from the normal
-   behavior of inflate(), which expects either a zlib or gzip header and
-   trailer around the deflate stream.
-
-     inflateBack() uses two subroutines supplied by the caller that are then
-   called by inflateBack() for input and output.  inflateBack() calls those
-   routines until it reads a complete deflate stream and writes out all of the
-   uncompressed data, or until it encounters an error.  The function's
-   parameters and return types are defined above in the in_func and out_func
-   typedefs.  inflateBack() will call in(in_desc, &buf) which should return the
-   number of bytes of provided input, and a pointer to that input in buf.  If
-   there is no input available, in() must return zero--buf is ignored in that
-   case--and inflateBack() will return a buffer error.  inflateBack() will call
-   out(out_desc, buf, len) to write the uncompressed data buf[0..len-1].  out()
-   should return zero on success, or non-zero on failure.  If out() returns
-   non-zero, inflateBack() will return with an error.  Neither in() nor out()
-   are permitted to change the contents of the window provided to
-   inflateBackInit(), which is also the buffer that out() uses to write from.
-   The length written by out() will be at most the window size.  Any non-zero
-   amount of input may be provided by in().
-
-     For convenience, inflateBack() can be provided input on the first call by
-   setting strm->next_in and strm->avail_in.  If that input is exhausted, then
-   in() will be called.  Therefore strm->next_in must be initialized before
-   calling inflateBack().  If strm->next_in is Z_NULL, then in() will be called
-   immediately for input.  If strm->next_in is not Z_NULL, then strm->avail_in
-   must also be initialized, and then if strm->avail_in is not zero, input will
-   initially be taken from strm->next_in[0 ..  strm->avail_in - 1].
-
-     The in_desc and out_desc parameters of inflateBack() is passed as the
-   first parameter of in() and out() respectively when they are called.  These
-   descriptors can be optionally used to pass any information that the caller-
-   supplied in() and out() functions need to do their job.
-
-     On return, inflateBack() will set strm->next_in and strm->avail_in to
-   pass back any unused input that was provided by the last in() call.  The
-   return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR
-   if in() or out() returned an error, Z_DATA_ERROR if there was a format error
-   in the deflate stream (in which case strm->msg is set to indicate the nature
-   of the error), or Z_STREAM_ERROR if the stream was not properly initialized.
-   In the case of Z_BUF_ERROR, an input or output error can be distinguished
-   using strm->next_in which will be Z_NULL only if in() returned an error.  If
-   strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning
-   non-zero.  (in() will always be called before out(), so strm->next_in is
-   assured to be defined if out() returns non-zero.) Note that inflateBack()
-   cannot return Z_OK.
-*/
-
-ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm));
-/*
-     All memory allocated by inflateBackInit() is freed.
-
-     inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream
-   state was inconsistent.
-*/
-
-ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void));
-/* Return flags indicating compile-time options.
-
-    Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other:
-     1.0: size of uInt
-     3.2: size of uLong
-     5.4: size of voidpf (pointer)
-     7.6: size of z_off_t
-
-    Compiler, assembler, and debug options:
-     8: DEBUG
-     9: ASMV or ASMINF -- use ASM code
-     10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention
-     11: 0 (reserved)
-
-    One-time table building (smaller code, but not thread-safe if true):
-     12: BUILDFIXED -- build static block decoding tables when needed
-     13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed
-     14,15: 0 (reserved)
-
-    Library content (indicates missing functionality):
-     16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking
-                          deflate code when not needed)
-     17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect
-                    and decode gzip streams (to avoid linking crc code)
-     18-19: 0 (reserved)
-
-    Operation variations (changes in library functionality):
-     20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate
-     21: FASTEST -- deflate algorithm with only one, lowest compression level
-     22,23: 0 (reserved)
-
-    The sprintf variant used by gzprintf (zero is best):
-     24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format
-     25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure!
-     26: 0 = returns value, 1 = void -- 1 means inferred string length returned
-
-    Remainder:
-     27-31: 0 (reserved)
- */
-
-#ifndef Z_SOLO
-
-                        /* utility functions */
-
-/*
-     The following utility functions are implemented on top of the basic
-   stream-oriented functions.  To simplify the interface, some default options
-   are assumed (compression level and memory usage, standard memory allocation
-   functions).  The source code of these utility functions can be modified if
-   you need special options.
-*/
-
-ZEXTERN int ZEXPORT compress OF((Bytef *dest,   uLongf *destLen,
-                                 const Bytef *source, uLong sourceLen));
-/*
-     Compresses the source buffer into the destination buffer.  sourceLen is
-   the byte length of the source buffer.  Upon entry, destLen is the total size
-   of the destination buffer, which must be at least the value returned by
-   compressBound(sourceLen).  Upon exit, destLen is the actual size of the
-   compressed buffer.
-
-     compress returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_BUF_ERROR if there was not enough room in the output
-   buffer.
-*/
-
-ZEXTERN int ZEXPORT compress2 OF((Bytef *dest,   uLongf *destLen,
-                                  const Bytef *source, uLong sourceLen,
-                                  int level));
-/*
-     Compresses the source buffer into the destination buffer.  The level
-   parameter has the same meaning as in deflateInit.  sourceLen is the byte
-   length of the source buffer.  Upon entry, destLen is the total size of the
-   destination buffer, which must be at least the value returned by
-   compressBound(sourceLen).  Upon exit, destLen is the actual size of the
-   compressed buffer.
-
-     compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_BUF_ERROR if there was not enough room in the output buffer,
-   Z_STREAM_ERROR if the level parameter is invalid.
-*/
-
-ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen));
-/*
-     compressBound() returns an upper bound on the compressed size after
-   compress() or compress2() on sourceLen bytes.  It would be used before a
-   compress() or compress2() call to allocate the destination buffer.
-*/
-
-ZEXTERN int ZEXPORT uncompress OF((Bytef *dest,   uLongf *destLen,
-                                   const Bytef *source, uLong sourceLen));
-/*
-     Decompresses the source buffer into the destination buffer.  sourceLen is
-   the byte length of the source buffer.  Upon entry, destLen is the total size
-   of the destination buffer, which must be large enough to hold the entire
-   uncompressed data.  (The size of the uncompressed data must have been saved
-   previously by the compressor and transmitted to the decompressor by some
-   mechanism outside the scope of this compression library.) Upon exit, destLen
-   is the actual size of the uncompressed buffer.
-
-     uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_BUF_ERROR if there was not enough room in the output
-   buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete.  In
-   the case where there is not enough room, uncompress() will fill the output
-   buffer with the uncompressed data up to that point.
-*/
-
-                        /* gzip file access functions */
-
-/*
-     This library supports reading and writing files in gzip (.gz) format with
-   an interface similar to that of stdio, using the functions that start with
-   "gz".  The gzip format is different from the zlib format.  gzip is a gzip
-   wrapper, documented in RFC 1952, wrapped around a deflate stream.
-*/
-
-typedef struct gzFile_s *gzFile;    /* semi-opaque gzip file descriptor */
-
-/*
-ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode));
-
-     Opens a gzip (.gz) file for reading or writing.  The mode parameter is as
-   in fopen ("rb" or "wb") but can also include a compression level ("wb9") or
-   a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only
-   compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F'
-   for fixed code compression as in "wb9F".  (See the description of
-   deflateInit2 for more information about the strategy parameter.)  'T' will
-   request transparent writing or appending with no compression and not using
-   the gzip format.
-
-     "a" can be used instead of "w" to request that the gzip stream that will
-   be written be appended to the file.  "+" will result in an error, since
-   reading and writing to the same gzip file is not supported.  The addition of
-   "x" when writing will create the file exclusively, which fails if the file
-   already exists.  On systems that support it, the addition of "e" when
-   reading or writing will set the flag to close the file on an execve() call.
-
-     These functions, as well as gzip, will read and decode a sequence of gzip
-   streams in a file.  The append function of gzopen() can be used to create
-   such a file.  (Also see gzflush() for another way to do this.)  When
-   appending, gzopen does not test whether the file begins with a gzip stream,
-   nor does it look for the end of the gzip streams to begin appending.  gzopen
-   will simply append a gzip stream to the existing file.
-
-     gzopen can be used to read a file which is not in gzip format; in this
-   case gzread will directly read from the file without decompression.  When
-   reading, this will be detected automatically by looking for the magic two-
-   byte gzip header.
-
-     gzopen returns NULL if the file could not be opened, if there was
-   insufficient memory to allocate the gzFile state, or if an invalid mode was
-   specified (an 'r', 'w', or 'a' was not provided, or '+' was provided).
-   errno can be checked to determine if the reason gzopen failed was that the
-   file could not be opened.
-*/
-
-ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode));
-/*
-     gzdopen associates a gzFile with the file descriptor fd.  File descriptors
-   are obtained from calls like open, dup, creat, pipe or fileno (if the file
-   has been previously opened with fopen).  The mode parameter is as in gzopen.
-
-     The next call of gzclose on the returned gzFile will also close the file
-   descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor
-   fd.  If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd,
-   mode);.  The duplicated descriptor should be saved to avoid a leak, since
-   gzdopen does not close fd if it fails.  If you are using fileno() to get the
-   file descriptor from a FILE *, then you will have to use dup() to avoid
-   double-close()ing the file descriptor.  Both gzclose() and fclose() will
-   close the associated file descriptor, so they need to have different file
-   descriptors.
-
-     gzdopen returns NULL if there was insufficient memory to allocate the
-   gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not
-   provided, or '+' was provided), or if fd is -1.  The file descriptor is not
-   used until the next gz* read, write, seek, or close operation, so gzdopen
-   will not detect if fd is invalid (unless fd is -1).
-*/
-
-ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size));
-/*
-     Set the internal buffer size used by this library's functions.  The
-   default buffer size is 8192 bytes.  This function must be called after
-   gzopen() or gzdopen(), and before any other calls that read or write the
-   file.  The buffer memory allocation is always deferred to the first read or
-   write.  Two buffers are allocated, either both of the specified size when
-   writing, or one of the specified size and the other twice that size when
-   reading.  A larger buffer size of, for example, 64K or 128K bytes will
-   noticeably increase the speed of decompression (reading).
-
-     The new buffer size also affects the maximum length for gzprintf().
-
-     gzbuffer() returns 0 on success, or -1 on failure, such as being called
-   too late.
-*/
-
-ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));
-/*
-     Dynamically update the compression level or strategy.  See the description
-   of deflateInit2 for the meaning of these parameters.
-
-     gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not
-   opened for writing.
-*/
-
-ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len));
-/*
-     Reads the given number of uncompressed bytes from the compressed file.  If
-   the input file is not in gzip format, gzread copies the given number of
-   bytes into the buffer directly from the file.
-
-     After reaching the end of a gzip stream in the input, gzread will continue
-   to read, looking for another gzip stream.  Any number of gzip streams may be
-   concatenated in the input file, and will all be decompressed by gzread().
-   If something other than a gzip stream is encountered after a gzip stream,
-   that remaining trailing garbage is ignored (and no error is returned).
-
-     gzread can be used to read a gzip file that is being concurrently written.
-   Upon reaching the end of the input, gzread will return with the available
-   data.  If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then
-   gzclearerr can be used to clear the end of file indicator in order to permit
-   gzread to be tried again.  Z_OK indicates that a gzip stream was completed
-   on the last gzread.  Z_BUF_ERROR indicates that the input file ended in the
-   middle of a gzip stream.  Note that gzread does not return -1 in the event
-   of an incomplete gzip stream.  This error is deferred until gzclose(), which
-   will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip
-   stream.  Alternatively, gzerror can be used before gzclose to detect this
-   case.
-
-     gzread returns the number of uncompressed bytes actually read, less than
-   len for end of file, or -1 for error.
-*/
-
-ZEXTERN int ZEXPORT gzwrite OF((gzFile file,
-                                voidpc buf, unsigned len));
-/*
-     Writes the given number of uncompressed bytes into the compressed file.
-   gzwrite returns the number of uncompressed bytes written or 0 in case of
-   error.
-*/
-
-ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...));
-/*
-     Converts, formats, and writes the arguments to the compressed file under
-   control of the format string, as in fprintf.  gzprintf returns the number of
-   uncompressed bytes actually written, or 0 in case of error.  The number of
-   uncompressed bytes written is limited to 8191, or one less than the buffer
-   size given to gzbuffer().  The caller should assure that this limit is not
-   exceeded.  If it is exceeded, then gzprintf() will return an error (0) with
-   nothing written.  In this case, there may also be a buffer overflow with
-   unpredictable consequences, which is possible only if zlib was compiled with
-   the insecure functions sprintf() or vsprintf() because the secure snprintf()
-   or vsnprintf() functions were not available.  This can be determined using
-   zlibCompileFlags().
-*/
-
-ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));
-/*
-     Writes the given null-terminated string to the compressed file, excluding
-   the terminating null character.
-
-     gzputs returns the number of characters written, or -1 in case of error.
-*/
-
-ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len));
-/*
-     Reads bytes from the compressed file until len-1 characters are read, or a
-   newline character is read and transferred to buf, or an end-of-file
-   condition is encountered.  If any characters are read or if len == 1, the
-   string is terminated with a null character.  If no characters are read due
-   to an end-of-file or len < 1, then the buffer is left untouched.
-
-     gzgets returns buf which is a null-terminated string, or it returns NULL
-   for end-of-file or in case of error.  If there was an error, the contents at
-   buf are indeterminate.
-*/
-
-ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c));
-/*
-     Writes c, converted to an unsigned char, into the compressed file.  gzputc
-   returns the value that was written, or -1 in case of error.
-*/
-
-ZEXTERN int ZEXPORT gzgetc OF((gzFile file));
-/*
-     Reads one byte from the compressed file.  gzgetc returns this byte or -1
-   in case of end of file or error.  This is implemented as a macro for speed.
-   As such, it does not do all of the checking the other functions do.  I.e.
-   it does not check to see if file is NULL, nor whether the structure file
-   points to has been clobbered or not.
-*/
-
-ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file));
-/*
-     Push one character back onto the stream to be read as the first character
-   on the next read.  At least one character of push-back is allowed.
-   gzungetc() returns the character pushed, or -1 on failure.  gzungetc() will
-   fail if c is -1, and may fail if a character has been pushed but not read
-   yet.  If gzungetc is used immediately after gzopen or gzdopen, at least the
-   output buffer size of pushed characters is allowed.  (See gzbuffer above.)
-   The pushed character will be discarded if the stream is repositioned with
-   gzseek() or gzrewind().
-*/
-
-ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush));
-/*
-     Flushes all pending output into the compressed file.  The parameter flush
-   is as in the deflate() function.  The return value is the zlib error number
-   (see function gzerror below).  gzflush is only permitted when writing.
-
-     If the flush parameter is Z_FINISH, the remaining data is written and the
-   gzip stream is completed in the output.  If gzwrite() is called again, a new
-   gzip stream will be started in the output.  gzread() is able to read such
-   concatented gzip streams.
-
-     gzflush should be called only when strictly necessary because it will
-   degrade compression if called too often.
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file,
-                                   z_off_t offset, int whence));
-
-     Sets the starting position for the next gzread or gzwrite on the given
-   compressed file.  The offset represents a number of bytes in the
-   uncompressed data stream.  The whence parameter is defined as in lseek(2);
-   the value SEEK_END is not supported.
-
-     If the file is opened for reading, this function is emulated but can be
-   extremely slow.  If the file is opened for writing, only forward seeks are
-   supported; gzseek then compresses a sequence of zeroes up to the new
-   starting position.
-
-     gzseek returns the resulting offset location as measured in bytes from
-   the beginning of the uncompressed stream, or -1 in case of error, in
-   particular if the file is opened for writing and the new starting position
-   would be before the current position.
-*/
-
-ZEXTERN int ZEXPORT    gzrewind OF((gzFile file));
-/*
-     Rewinds the given file. This function is supported only for reading.
-
-     gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT    gztell OF((gzFile file));
-
-     Returns the starting position for the next gzread or gzwrite on the given
-   compressed file.  This position represents a number of bytes in the
-   uncompressed data stream, and is zero when starting, even if appending or
-   reading a gzip stream from the middle of a file using gzdopen().
-
-     gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file));
-
-     Returns the current offset in the file being read or written.  This offset
-   includes the count of bytes that precede the gzip stream, for example when
-   appending or when using gzdopen() for reading.  When reading, the offset
-   does not include as yet unused buffered input.  This information can be used
-   for a progress indicator.  On error, gzoffset() returns -1.
-*/
-
-ZEXTERN int ZEXPORT gzeof OF((gzFile file));
-/*
-     Returns true (1) if the end-of-file indicator has been set while reading,
-   false (0) otherwise.  Note that the end-of-file indicator is set only if the
-   read tried to go past the end of the input, but came up short.  Therefore,
-   just like feof(), gzeof() may return false even if there is no more data to
-   read, in the event that the last read request was for the exact number of
-   bytes remaining in the input file.  This will happen if the input file size
-   is an exact multiple of the buffer size.
-
-     If gzeof() returns true, then the read functions will return no more data,
-   unless the end-of-file indicator is reset by gzclearerr() and the input file
-   has grown since the previous end of file was detected.
-*/
-
-ZEXTERN int ZEXPORT gzdirect OF((gzFile file));
-/*
-     Returns true (1) if file is being copied directly while reading, or false
-   (0) if file is a gzip stream being decompressed.
-
-     If the input file is empty, gzdirect() will return true, since the input
-   does not contain a gzip stream.
-
-     If gzdirect() is used immediately after gzopen() or gzdopen() it will
-   cause buffers to be allocated to allow reading the file to determine if it
-   is a gzip file.  Therefore if gzbuffer() is used, it should be called before
-   gzdirect().
-
-     When writing, gzdirect() returns true (1) if transparent writing was
-   requested ("wT" for the gzopen() mode), or false (0) otherwise.  (Note:
-   gzdirect() is not needed when writing.  Transparent writing must be
-   explicitly requested, so the application already knows the answer.  When
-   linking statically, using gzdirect() will include all of the zlib code for
-   gzip file reading and decompression, which may not be desired.)
-*/
-
-ZEXTERN int ZEXPORT    gzclose OF((gzFile file));
-/*
-     Flushes all pending output if necessary, closes the compressed file and
-   deallocates the (de)compression state.  Note that once file is closed, you
-   cannot call gzerror with file, since its structures have been deallocated.
-   gzclose must not be called more than once on the same file, just as free
-   must not be called more than once on the same allocation.
-
-     gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a
-   file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the
-   last read ended in the middle of a gzip stream, or Z_OK on success.
-*/
-
-ZEXTERN int ZEXPORT gzclose_r OF((gzFile file));
-ZEXTERN int ZEXPORT gzclose_w OF((gzFile file));
-/*
-     Same as gzclose(), but gzclose_r() is only for use when reading, and
-   gzclose_w() is only for use when writing or appending.  The advantage to
-   using these instead of gzclose() is that they avoid linking in zlib
-   compression or decompression code that is not used when only reading or only
-   writing respectively.  If gzclose() is used, then both compression and
-   decompression code will be included the application when linking to a static
-   zlib library.
-*/
-
-ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum));
-/*
-     Returns the error message for the last error which occurred on the given
-   compressed file.  errnum is set to zlib error number.  If an error occurred
-   in the file system and not in the compression library, errnum is set to
-   Z_ERRNO and the application may consult errno to get the exact error code.
-
-     The application must not modify the returned string.  Future calls to
-   this function may invalidate the previously returned string.  If file is
-   closed, then the string previously returned by gzerror will no longer be
-   available.
-
-     gzerror() should be used to distinguish errors from end-of-file for those
-   functions above that do not distinguish those cases in their return values.
-*/
-
-ZEXTERN void ZEXPORT gzclearerr OF((gzFile file));
-/*
-     Clears the error and end-of-file flags for file.  This is analogous to the
-   clearerr() function in stdio.  This is useful for continuing to read a gzip
-   file that is being written concurrently.
-*/
-
-#endif /* !Z_SOLO */
-
-                        /* checksum functions */
-
-/*
-     These functions are not related to compression but are exported
-   anyway because they might be useful in applications using the compression
-   library.
-*/
-
-ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
-/*
-     Update a running Adler-32 checksum with the bytes buf[0..len-1] and
-   return the updated checksum.  If buf is Z_NULL, this function returns the
-   required initial value for the checksum.
-
-     An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
-   much faster.
-
-   Usage example:
-
-     uLong adler = adler32(0L, Z_NULL, 0);
-
-     while (read_buffer(buffer, length) != EOF) {
-       adler = adler32(adler, buffer, length);
-     }
-     if (adler != original_adler) error();
-*/
-
-/*
-ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2,
-                                          z_off_t len2));
-
-     Combine two Adler-32 checksums into one.  For two sequences of bytes, seq1
-   and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for
-   each, adler1 and adler2.  adler32_combine() returns the Adler-32 checksum of
-   seq1 and seq2 concatenated, requiring only adler1, adler2, and len2.  Note
-   that the z_off_t type (like off_t) is a signed integer.  If len2 is
-   negative, the result has no meaning or utility.
-*/
-
-ZEXTERN uLong ZEXPORT crc32   OF((uLong crc, const Bytef *buf, uInt len));
-/*
-     Update a running CRC-32 with the bytes buf[0..len-1] and return the
-   updated CRC-32.  If buf is Z_NULL, this function returns the required
-   initial value for the crc.  Pre- and post-conditioning (one's complement) is
-   performed within this function so it shouldn't be done by the application.
-
-   Usage example:
-
-     uLong crc = crc32(0L, Z_NULL, 0);
-
-     while (read_buffer(buffer, length) != EOF) {
-       crc = crc32(crc, buffer, length);
-     }
-     if (crc != original_crc) error();
-*/
-
-/*
-ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2));
-
-     Combine two CRC-32 check values into one.  For two sequences of bytes,
-   seq1 and seq2 with lengths len1 and len2, CRC-32 check values were
-   calculated for each, crc1 and crc2.  crc32_combine() returns the CRC-32
-   check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and
-   len2.
-*/
-
-
-                        /* various hacks, don't look :) */
-
-/* deflateInit and inflateInit are macros to allow checking the zlib version
- * and the compiler's view of z_stream:
- */
-ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,
-                                     const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,
-                                     const char *version, int stream_size));
-ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int  level, int  method,
-                                      int windowBits, int memLevel,
-                                      int strategy, const char *version,
-                                      int stream_size));
-ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int  windowBits,
-                                      const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits,
-                                         unsigned char FAR *window,
-                                         const char *version,
-                                         int stream_size));
-#define deflateInit(strm, level) \
-        deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))
-#define inflateInit(strm) \
-        inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream))
-#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
-        deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
-                      (strategy), ZLIB_VERSION, (int)sizeof(z_stream))
-#define inflateInit2(strm, windowBits) \
-        inflateInit2_((strm), (windowBits), ZLIB_VERSION, \
-                      (int)sizeof(z_stream))
-#define inflateBackInit(strm, windowBits, window) \
-        inflateBackInit_((strm), (windowBits), (window), \
-                      ZLIB_VERSION, (int)sizeof(z_stream))
-
-#ifndef Z_SOLO
-
-/* gzgetc() macro and its supporting function and exposed data structure.  Note
- * that the real internal state is much larger than the exposed structure.
- * This abbreviated structure exposes just enough for the gzgetc() macro.  The
- * user should not mess with these exposed elements, since their names or
- * behavior could change in the future, perhaps even capriciously.  They can
- * only be used by the gzgetc() macro.  You have been warned.
- */
-struct gzFile_s {
-    unsigned have;
-    unsigned char *next;
-    z_off64_t pos;
-};
-ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file));  /* backward compatibility */
-#ifdef Z_PREFIX_SET
-#  undef z_gzgetc
-#  define z_gzgetc(g) \
-          ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g))
-#else
-#  define gzgetc(g) \
-          ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g))
-#endif
-
-/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or
- * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if
- * both are true, the application gets the *64 functions, and the regular
- * functions are changed to 64 bits) -- in case these are set on systems
- * without large file support, _LFS64_LARGEFILE must also be true
- */
-#ifdef Z_LARGE64
-   ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
-   ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int));
-   ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile));
-   ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile));
-   ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t));
-   ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t));
-#endif
-
-#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64)
-#  ifdef Z_PREFIX_SET
-#    define z_gzopen z_gzopen64
-#    define z_gzseek z_gzseek64
-#    define z_gztell z_gztell64
-#    define z_gzoffset z_gzoffset64
-#    define z_adler32_combine z_adler32_combine64
-#    define z_crc32_combine z_crc32_combine64
-#  else
-#    define gzopen gzopen64
-#    define gzseek gzseek64
-#    define gztell gztell64
-#    define gzoffset gzoffset64
-#    define adler32_combine adler32_combine64
-#    define crc32_combine crc32_combine64
-#  endif
-#  ifndef Z_LARGE64
-     ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
-     ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int));
-     ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile));
-     ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile));
-     ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));
-     ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
-#  endif
-#else
-   ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *));
-   ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int));
-   ZEXTERN z_off_t ZEXPORT gztell OF((gzFile));
-   ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile));
-   ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));
-   ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));
-#endif
-
-#else /* Z_SOLO */
-
-   ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));
-   ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));
-
-#endif /* !Z_SOLO */
-
-/* hack for buggy compilers */
-#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL)
-    struct internal_state {int dummy;};
-#endif
-
-/* undocumented functions */
-ZEXTERN const char   * ZEXPORT zError           OF((int));
-ZEXTERN int            ZEXPORT inflateSyncPoint OF((z_streamp));
-ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table    OF((void));
-ZEXTERN int            ZEXPORT inflateUndermine OF((z_streamp, int));
-ZEXTERN int            ZEXPORT inflateResetKeep OF((z_streamp));
-ZEXTERN int            ZEXPORT deflateResetKeep OF((z_streamp));
-#if defined(_WIN32) && !defined(Z_SOLO)
-ZEXTERN gzFile         ZEXPORT gzopen_w OF((const wchar_t *path,
-                                            const char *mode));
-#endif
-#if defined(STDC) || defined(Z_HAVE_STDARG_H)
-#  ifndef Z_SOLO
-ZEXTERN int            ZEXPORTVA gzvprintf Z_ARG((gzFile file,
-                                                  const char *format,
-                                                  va_list va));
-#  endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ZLIB_H */
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/zutil.c b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/zutil.c
deleted file mode 100644
index 23d2ebe..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/zutil.c
+++ /dev/null
@@ -1,324 +0,0 @@
-/* zutil.c -- target dependent utility functions for the compression library
- * Copyright (C) 1995-2005, 2010, 2011, 2012 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#include "zutil.h"
-#ifndef Z_SOLO
-#  include "gzguts.h"
-#endif
-
-#ifndef NO_DUMMY_DECL
-struct internal_state      {int dummy;}; /* for buggy compilers */
-#endif
-
-z_const char * const z_errmsg[10] = {
-"need dictionary",     /* Z_NEED_DICT       2  */
-"stream end",          /* Z_STREAM_END      1  */
-"",                    /* Z_OK              0  */
-"file error",          /* Z_ERRNO         (-1) */
-"stream error",        /* Z_STREAM_ERROR  (-2) */
-"data error",          /* Z_DATA_ERROR    (-3) */
-"insufficient memory", /* Z_MEM_ERROR     (-4) */
-"buffer error",        /* Z_BUF_ERROR     (-5) */
-"incompatible version",/* Z_VERSION_ERROR (-6) */
-""};
-
-
-const char * ZEXPORT zlibVersion()
-{
-    return ZLIB_VERSION;
-}
-
-uLong ZEXPORT zlibCompileFlags()
-{
-    uLong flags;
-
-    flags = 0;
-    switch ((int)(sizeof(uInt))) {
-    case 2:     break;
-    case 4:     flags += 1;     break;
-    case 8:     flags += 2;     break;
-    default:    flags += 3;
-    }
-    switch ((int)(sizeof(uLong))) {
-    case 2:     break;
-    case 4:     flags += 1 << 2;        break;
-    case 8:     flags += 2 << 2;        break;
-    default:    flags += 3 << 2;
-    }
-    switch ((int)(sizeof(voidpf))) {
-    case 2:     break;
-    case 4:     flags += 1 << 4;        break;
-    case 8:     flags += 2 << 4;        break;
-    default:    flags += 3 << 4;
-    }
-    switch ((int)(sizeof(z_off_t))) {
-    case 2:     break;
-    case 4:     flags += 1 << 6;        break;
-    case 8:     flags += 2 << 6;        break;
-    default:    flags += 3 << 6;
-    }
-#ifdef DEBUG
-    flags += 1 << 8;
-#endif
-#if defined(ASMV) || defined(ASMINF)
-    flags += 1 << 9;
-#endif
-#ifdef ZLIB_WINAPI
-    flags += 1 << 10;
-#endif
-#ifdef BUILDFIXED
-    flags += 1 << 12;
-#endif
-#ifdef DYNAMIC_CRC_TABLE
-    flags += 1 << 13;
-#endif
-#ifdef NO_GZCOMPRESS
-    flags += 1L << 16;
-#endif
-#ifdef NO_GZIP
-    flags += 1L << 17;
-#endif
-#ifdef PKZIP_BUG_WORKAROUND
-    flags += 1L << 20;
-#endif
-#ifdef FASTEST
-    flags += 1L << 21;
-#endif
-#if defined(STDC) || defined(Z_HAVE_STDARG_H)
-#  ifdef NO_vsnprintf
-    flags += 1L << 25;
-#    ifdef HAS_vsprintf_void
-    flags += 1L << 26;
-#    endif
-#  else
-#    ifdef HAS_vsnprintf_void
-    flags += 1L << 26;
-#    endif
-#  endif
-#else
-    flags += 1L << 24;
-#  ifdef NO_snprintf
-    flags += 1L << 25;
-#    ifdef HAS_sprintf_void
-    flags += 1L << 26;
-#    endif
-#  else
-#    ifdef HAS_snprintf_void
-    flags += 1L << 26;
-#    endif
-#  endif
-#endif
-    return flags;
-}
-
-#ifdef DEBUG
-
-#  ifndef verbose
-#    define verbose 0
-#  endif
-int ZLIB_INTERNAL z_verbose = verbose;
-
-void ZLIB_INTERNAL z_error (m)
-    char *m;
-{
-    fprintf(stderr, "%s\n", m);
-    exit(1);
-}
-#endif
-
-/* exported to allow conversion of error code to string for compress() and
- * uncompress()
- */
-const char * ZEXPORT zError(err)
-    int err;
-{
-    return ERR_MSG(err);
-}
-
-#if defined(_WIN32_WCE)
-    /* The Microsoft C Run-Time Library for Windows CE doesn't have
-     * errno.  We define it as a global variable to simplify porting.
-     * Its value is always 0 and should not be used.
-     */
-    int errno = 0;
-#endif
-
-#ifndef HAVE_MEMCPY
-
-void ZLIB_INTERNAL zmemcpy(dest, source, len)
-    Bytef* dest;
-    const Bytef* source;
-    uInt  len;
-{
-    if (len == 0) return;
-    do {
-        *dest++ = *source++; /* ??? to be unrolled */
-    } while (--len != 0);
-}
-
-int ZLIB_INTERNAL zmemcmp(s1, s2, len)
-    const Bytef* s1;
-    const Bytef* s2;
-    uInt  len;
-{
-    uInt j;
-
-    for (j = 0; j < len; j++) {
-        if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1;
-    }
-    return 0;
-}
-
-void ZLIB_INTERNAL zmemzero(dest, len)
-    Bytef* dest;
-    uInt  len;
-{
-    if (len == 0) return;
-    do {
-        *dest++ = 0;  /* ??? to be unrolled */
-    } while (--len != 0);
-}
-#endif
-
-#ifndef Z_SOLO
-
-#ifdef SYS16BIT
-
-#ifdef __TURBOC__
-/* Turbo C in 16-bit mode */
-
-#  define MY_ZCALLOC
-
-/* Turbo C malloc() does not allow dynamic allocation of 64K bytes
- * and farmalloc(64K) returns a pointer with an offset of 8, so we
- * must fix the pointer. Warning: the pointer must be put back to its
- * original form in order to free it, use zcfree().
- */
-
-#define MAX_PTR 10
-/* 10*64K = 640K */
-
-local int next_ptr = 0;
-
-typedef struct ptr_table_s {
-    voidpf org_ptr;
-    voidpf new_ptr;
-} ptr_table;
-
-local ptr_table table[MAX_PTR];
-/* This table is used to remember the original form of pointers
- * to large buffers (64K). Such pointers are normalized with a zero offset.
- * Since MSDOS is not a preemptive multitasking OS, this table is not
- * protected from concurrent access. This hack doesn't work anyway on
- * a protected system like OS/2. Use Microsoft C instead.
- */
-
-voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size)
-{
-    voidpf buf = opaque; /* just to make some compilers happy */
-    ulg bsize = (ulg)items*size;
-
-    /* If we allocate less than 65520 bytes, we assume that farmalloc
-     * will return a usable pointer which doesn't have to be normalized.
-     */
-    if (bsize < 65520L) {
-        buf = farmalloc(bsize);
-        if (*(ush*)&buf != 0) return buf;
-    } else {
-        buf = farmalloc(bsize + 16L);
-    }
-    if (buf == NULL || next_ptr >= MAX_PTR) return NULL;
-    table[next_ptr].org_ptr = buf;
-
-    /* Normalize the pointer to seg:0 */
-    *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4;
-    *(ush*)&buf = 0;
-    table[next_ptr++].new_ptr = buf;
-    return buf;
-}
-
-void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
-{
-    int n;
-    if (*(ush*)&ptr != 0) { /* object < 64K */
-        farfree(ptr);
-        return;
-    }
-    /* Find the original pointer */
-    for (n = 0; n < next_ptr; n++) {
-        if (ptr != table[n].new_ptr) continue;
-
-        farfree(table[n].org_ptr);
-        while (++n < next_ptr) {
-            table[n-1] = table[n];
-        }
-        next_ptr--;
-        return;
-    }
-    ptr = opaque; /* just to make some compilers happy */
-    Assert(0, "zcfree: ptr not found");
-}
-
-#endif /* __TURBOC__ */
-
-
-#ifdef M_I86
-/* Microsoft C in 16-bit mode */
-
-#  define MY_ZCALLOC
-
-#if (!defined(_MSC_VER) || (_MSC_VER <= 600))
-#  define _halloc  halloc
-#  define _hfree   hfree
-#endif
-
-voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, uInt items, uInt size)
-{
-    if (opaque) opaque = 0; /* to make compiler happy */
-    return _halloc((long)items, size);
-}
-
-void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
-{
-    if (opaque) opaque = 0; /* to make compiler happy */
-    _hfree(ptr);
-}
-
-#endif /* M_I86 */
-
-#endif /* SYS16BIT */
-
-
-#ifndef MY_ZCALLOC /* Any system without a special alloc function */
-
-#ifndef STDC
-extern voidp  malloc OF((uInt size));
-extern voidp  calloc OF((uInt items, uInt size));
-extern void   free   OF((voidpf ptr));
-#endif
-
-voidpf ZLIB_INTERNAL zcalloc (opaque, items, size)
-    voidpf opaque;
-    unsigned items;
-    unsigned size;
-{
-    if (opaque) items += size - size; /* make compiler happy */
-    return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) :
-                              (voidpf)calloc(items, size);
-}
-
-void ZLIB_INTERNAL zcfree (opaque, ptr)
-    voidpf opaque;
-    voidpf ptr;
-{
-    free(ptr);
-    if (opaque) return; /* make compiler happy */
-}
-
-#endif /* MY_ZCALLOC */
-
-#endif /* !Z_SOLO */
diff --git a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/zutil.h b/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/zutil.h
deleted file mode 100644
index 24ab06b..0000000
--- a/lib/libUPnP/Neptune/ThirdParty/zlib-1.2.8/zutil.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/* zutil.h -- internal interface and configuration of the compression library
- * Copyright (C) 1995-2013 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* @(#) $Id$ */
-
-#ifndef ZUTIL_H
-#define ZUTIL_H
-
-#ifdef HAVE_HIDDEN
-#  define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
-#else
-#  define ZLIB_INTERNAL
-#endif
-
-#include "zlib.h"
-
-#if defined(STDC) && !defined(Z_SOLO)
-#  if !(defined(_WIN32_WCE) && defined(_MSC_VER))
-#    include <stddef.h>
-#  endif
-#  include <string.h>
-#  include <stdlib.h>
-#endif
-
-#ifdef Z_SOLO
-   typedef long ptrdiff_t;  /* guess -- will be caught if guess is wrong */
-#endif
-
-#ifndef local
-#  define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-typedef unsigned char  uch;
-typedef uch FAR uchf;
-typedef unsigned short ush;
-typedef ush FAR ushf;
-typedef unsigned long  ulg;
-
-extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
-/* (size given to avoid silly warnings with Visual C++) */
-
-#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
-
-#define ERR_RETURN(strm,err) \
-  return (strm->msg = ERR_MSG(err), (err))
-/* To be used only when the state is known to be valid */
-
-        /* common constants */
-
-#ifndef DEF_WBITS
-#  define DEF_WBITS MAX_WBITS
-#endif
-/* default windowBits for decompression. MAX_WBITS is for compression only */
-
-#if MAX_MEM_LEVEL >= 8
-#  define DEF_MEM_LEVEL 8
-#else
-#  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
-#endif
-/* default memLevel */
-
-#define STORED_BLOCK 0
-#define STATIC_TREES 1
-#define DYN_TREES    2
-/* The three kinds of block type */
-
-#define MIN_MATCH  3
-#define MAX_MATCH  258
-/* The minimum and maximum match lengths */
-
-#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
-
-        /* target dependencies */
-
-#if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32))
-#  define OS_CODE  0x00
-#  ifndef Z_SOLO
-#    if defined(__TURBOC__) || defined(__BORLANDC__)
-#      if (__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
-         /* Allow compilation with ANSI keywords only enabled */
-         void _Cdecl farfree( void *block );
-         void *_Cdecl farmalloc( unsigned long nbytes );
-#      else
-#        include <alloc.h>
-#      endif
-#    else /* MSC or DJGPP */
-#      include <malloc.h>
-#    endif
-#  endif
-#endif
-
-#ifdef AMIGA
-#  define OS_CODE  0x01
-#endif
-
-#if defined(VAXC) || defined(VMS)
-#  define OS_CODE  0x02
-#  define F_OPEN(name, mode) \
-     fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
-#endif
-
-#if defined(ATARI) || defined(atarist)
-#  define OS_CODE  0x05
-#endif
-
-#ifdef OS2
-#  define OS_CODE  0x06
-#  if defined(M_I86) && !defined(Z_SOLO)
-#    include <malloc.h>
-#  endif
-#endif
-
-#if defined(MACOS) || defined(TARGET_OS_MAC)
-#  define OS_CODE  0x07
-#  ifndef Z_SOLO
-#    if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
-#      include <unix.h> /* for fdopen */
-#    else
-#      ifndef fdopen
-#        define fdopen(fd,mode) NULL /* No fdopen() */
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef TOPS20
-#  define OS_CODE  0x0a
-#endif
-
-#ifdef WIN32
-#  ifndef __CYGWIN__  /* Cygwin is Unix, not Win32 */
-#    define OS_CODE  0x0b
-#  endif
-#endif
-
-#ifdef __50SERIES /* Prime/PRIMOS */
-#  define OS_CODE  0x0f
-#endif
-
-#if defined(_BEOS_) || defined(RISCOS)
-#  define fdopen(fd,mode) NULL /* No fdopen() */
-#endif
-
-#if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX
-#  if defined(_WIN32_WCE)
-#    define fdopen(fd,mode) NULL /* No fdopen() */
-#    ifndef _PTRDIFF_T_DEFINED
-       typedef int ptrdiff_t;
-#      define _PTRDIFF_T_DEFINED
-#    endif
-#  else
-#    define fdopen(fd,type)  _fdopen(fd,type)
-#  endif
-#endif
-
-#if defined(__BORLANDC__) && !defined(MSDOS)
-  #pragma warn -8004
-  #pragma warn -8008
-  #pragma warn -8066
-#endif
-
-/* provide prototypes for these when building zlib without LFS */
-#if !defined(_WIN32) && \
-    (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0)
-    ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));
-    ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
-#endif
-
-        /* common defaults */
-
-#ifndef OS_CODE
-#  define OS_CODE  0x03  /* assume Unix */
-#endif
-
-#ifndef F_OPEN
-#  define F_OPEN(name, mode) fopen((name), (mode))
-#endif
-
-         /* functions */
-
-#if defined(pyr) || defined(Z_SOLO)
-#  define NO_MEMCPY
-#endif
-#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
- /* Use our own functions for small and medium model with MSC <= 5.0.
-  * You may have to use the same strategy for Borland C (untested).
-  * The __SC__ check is for Symantec.
-  */
-#  define NO_MEMCPY
-#endif
-#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
-#  define HAVE_MEMCPY
-#endif
-#ifdef HAVE_MEMCPY
-#  ifdef SMALL_MEDIUM /* MSDOS small or medium model */
-#    define zmemcpy _fmemcpy
-#    define zmemcmp _fmemcmp
-#    define zmemzero(dest, len) _fmemset(dest, 0, len)
-#  else
-#    define zmemcpy memcpy
-#    define zmemcmp memcmp
-#    define zmemzero(dest, len) memset(dest, 0, len)
-#  endif
-#else
-   void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len));
-   int ZLIB_INTERNAL zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len));
-   void ZLIB_INTERNAL zmemzero OF((Bytef* dest, uInt len));
-#endif
-
-/* Diagnostic functions */
-#ifdef DEBUG
-#  include <stdio.h>
-   extern int ZLIB_INTERNAL z_verbose;
-   extern void ZLIB_INTERNAL z_error OF((char *m));
-#  define Assert(cond,msg) {if(!(cond)) z_error(msg);}
-#  define Trace(x) {if (z_verbose>=0) fprintf x ;}
-#  define Tracev(x) {if (z_verbose>0) fprintf x ;}
-#  define Tracevv(x) {if (z_verbose>1) fprintf x ;}
-#  define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
-#  define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
-#else
-#  define Assert(cond,msg)
-#  define Trace(x)
-#  define Tracev(x)
-#  define Tracevv(x)
-#  define Tracec(c,x)
-#  define Tracecv(c,x)
-#endif
-
-#ifndef Z_SOLO
-   voidpf ZLIB_INTERNAL zcalloc OF((voidpf opaque, unsigned items,
-                                    unsigned size));
-   void ZLIB_INTERNAL zcfree  OF((voidpf opaque, voidpf ptr));
-#endif
-
-#define ZALLOC(strm, items, size) \
-           (*((strm)->zalloc))((strm)->opaque, (items), (size))
-#define ZFREE(strm, addr)  (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
-#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
-
-/* Reverse the bytes in a 32-bit value */
-#define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \
-                    (((q) & 0xff00) << 8) + (((q) & 0xff) << 24))
-
-#endif /* ZUTIL_H */
diff --git a/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/PREFIX_PSP_DEBUG.h b/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/PREFIX_PSP_DEBUG.h
deleted file mode 100644
index 4c0ec36..0000000
--- a/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/PREFIX_PSP_DEBUG.h
+++ /dev/null
@@ -1,13 +0,0 @@
-//	===========================================================================
-//	PREFIX_PSP_DEBUG.h	  (c) 2004 Metrowerks Inc. All rights reserved.
-//	===========================================================================
-//
-//  02/03/2004  Michi	Created for PSP support
-
-#include <PREFIX_PSP.h>
-
-#pragma	divbyzerocheck		on	/*	break if divided by zero	*/
-
-#define	DEBUG					/*	just for debugging	*/
-#define NPT_DEBUG
-#define PSP
\ No newline at end of file
diff --git a/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/PREFIX_PSP_RELEASE.h b/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/PREFIX_PSP_RELEASE.h
deleted file mode 100644
index e859590..0000000
--- a/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/PREFIX_PSP_RELEASE.h
+++ /dev/null
@@ -1,12 +0,0 @@
-//	===========================================================================
-//	PREFIX_PS2_RELEASE.h	©2004 Metrowerks Inc. All rights reserved.
-//	===========================================================================
-//
-//  02/03/2004  Michi	created for PSP support
-
-#include <PREFIX_PSP.h>
-
-#define	NDEBUG					/*	just for debugging	*/
-#define PSP
-
-#pragma	cats	off
\ No newline at end of file
diff --git a/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/PSP_Lib_C++.mcp.xml b/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/PSP_Lib_C++.mcp.xml
deleted file mode 100644
index 4f9d46f..0000000
--- a/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/PSP_Lib_C++.mcp.xml
+++ /dev/null
@@ -1,2057 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
-<?codewarrior exportversion="1.0.1" ideversion="5.0" ?>
-
-<!DOCTYPE PROJECT [
-<!ELEMENT PROJECT (TARGETLIST, TARGETORDER, GROUPLIST, DESIGNLIST?)>
-<!ELEMENT TARGETLIST (TARGET+)>
-<!ELEMENT TARGET (NAME, SETTINGLIST, FILELIST?, LINKORDER?, SEGMENTLIST?, OVERLAYGROUPLIST?, SUBTARGETLIST?, SUBPROJECTLIST?, FRAMEWORKLIST?, PACKAGEACTIONSLIST?)>
-<!ELEMENT NAME (#PCDATA)>
-<!ELEMENT USERSOURCETREETYPE (#PCDATA)>
-<!ELEMENT PATH (#PCDATA)>
-<!ELEMENT FILELIST (FILE*)>
-<!ELEMENT FILE (PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?, ROOTFILEREF?, FILEKIND?, FILEFLAGS?)>
-<!ELEMENT PATHTYPE (#PCDATA)>
-<!ELEMENT PATHROOT (#PCDATA)>
-<!ELEMENT ACCESSPATH (#PCDATA)>
-<!ELEMENT PATHFORMAT (#PCDATA)>
-<!ELEMENT ROOTFILEREF (PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?)>
-<!ELEMENT FILEKIND (#PCDATA)>
-<!ELEMENT FILEFLAGS (#PCDATA)>
-<!ELEMENT FILEREF (TARGETNAME?, PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?)>
-<!ELEMENT TARGETNAME (#PCDATA)>
-<!ELEMENT SETTINGLIST ((SETTING|PANELDATA)+)>
-<!ELEMENT SETTING (NAME?, (VALUE|(SETTING+)))>
-<!ELEMENT PANELDATA (NAME, VALUE)>
-<!ELEMENT VALUE (#PCDATA)>
-<!ELEMENT LINKORDER (FILEREF*)>
-<!ELEMENT SEGMENTLIST (SEGMENT+)>
-<!ELEMENT SEGMENT (NAME, ATTRIBUTES?, FILEREF*)>
-<!ELEMENT ATTRIBUTES (#PCDATA)>
-<!ELEMENT OVERLAYGROUPLIST (OVERLAYGROUP+)>
-<!ELEMENT OVERLAYGROUP (NAME, BASEADDRESS, OVERLAY*)>
-<!ELEMENT BASEADDRESS (#PCDATA)>
-<!ELEMENT OVERLAY (NAME, FILEREF*)>
-<!ELEMENT SUBTARGETLIST (SUBTARGET+)>
-<!ELEMENT SUBTARGET (TARGETNAME, ATTRIBUTES?, FILEREF?)>
-<!ELEMENT SUBPROJECTLIST (SUBPROJECT+)>
-<!ELEMENT SUBPROJECT (FILEREF, SUBPROJECTTARGETLIST)>
-<!ELEMENT SUBPROJECTTARGETLIST (SUBPROJECTTARGET*)>
-<!ELEMENT SUBPROJECTTARGET (TARGETNAME, ATTRIBUTES?, FILEREF?)>
-<!ELEMENT FRAMEWORKLIST (FRAMEWORK+)>
-<!ELEMENT FRAMEWORK (FILEREF, DYNAMICLIBRARY?, VERSION?)>
-<!ELEMENT PACKAGEACTIONSLIST (PACKAGEACTION+)>
-<!ELEMENT PACKAGEACTION (#PCDATA)>
-<!ELEMENT LIBRARYFILE (FILEREF)>
-<!ELEMENT VERSION (#PCDATA)>
-<!ELEMENT TARGETORDER (ORDEREDTARGET|ORDEREDDESIGN)*>
-<!ELEMENT ORDEREDTARGET (NAME)>
-<!ELEMENT ORDEREDDESIGN (NAME, ORDEREDTARGET+)>
-<!ELEMENT GROUPLIST (GROUP|FILEREF)*>
-<!ELEMENT GROUP (NAME, (GROUP|FILEREF)*)>
-<!ELEMENT DESIGNLIST (DESIGN+)>
-<!ELEMENT DESIGN (NAME, DESIGNDATA)>
-<!ELEMENT DESIGNDATA (#PCDATA)>
-]>
-
-<PROJECT>
-    <TARGETLIST>
-        <TARGET>
-            <NAME>Debug</NAME>
-            <SETTINGLIST>
-
-                <!-- Settings for "Source Trees" panel -->
-                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Access Paths" panel -->
-                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>UserSearchPaths</NAME>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>lib</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP_TC</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>..\..\..\..\psp\lib</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP_TC</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-                <SETTING><NAME>SystemSearchPaths</NAME>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>PSP_Support</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>include</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>..\..\..\..\psp\include</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP_TC</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>include</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP_TC</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-
-                <!-- Settings for "Debugger Runtime" panel -->
-                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Target Settings" panel -->
-                <SETTING><NAME>Linker</NAME><VALUE>MIPS PSP Linker</VALUE></SETTING>
-                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>PostLinker</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>Targetname</NAME><VALUE>Debug</VALUE></SETTING>
-                <SETTING><NAME>OutputDirectory</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
-
-                <!-- Settings for "File Mappings" panel -->
-                <SETTING><NAME>FileMappings</NAME>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.asm</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW GAS PSP Assembler</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.c++</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.h++</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.hpp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.lcf</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.pch</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.pch++</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW GAS PSP Assembler</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.src</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW GAS PSP Assembler</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Lib Import MIPS</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.bin</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cmd</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.doc</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.elf</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Lib Import MIPS</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.lcf</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Lib Import MIPS</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Lib Import MIPS</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-
-                <!-- Settings for "Build Extras" panel -->
-                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
-                <SETTING><NAME>DebuggerAppPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>DebuggerWorkingDir</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Debugger Target" panel -->
-                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>LogSystemMessages</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>AutoTargetDLLs</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
-                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>AltExePath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>CacheSymbolics</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
-                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "Remote Debug" panel -->
-                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>ConnectionName</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
-                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Auto-target" panel -->
-                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Analyzer Connections" panel -->
-                <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Custom Keywords" panel -->
-                <SETTING><NAME>CustomColor1</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor2</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor3</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor4</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "BatchRunner Panel" panel -->
-                <SETTING><NAME>MWBatchRunnerPostLinker_BatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>MWBatchRunnerPostLinker_SendParam</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>MWBatchRunnerPostLinker_Argument</NAME><VALUE>FileName</VALUE></SETTING>
-                <SETTING><NAME>MWBatchRunnerPostLinker_WorkingDir</NAME><VALUE>LinkerOutputDir</VALUE></SETTING>
-                <SETTING><NAME>MWBatchRunnerPostLinker_CmdWindow</NAME><VALUE>Minimize</VALUE></SETTING>
-
-                <!-- Settings for "BatchRunner PreLinker Panel" panel -->
-                <SETTING><NAME>MWBatchRunnerPreLinker_BatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>MWBatchRunnerPreLinker_CmdWindow</NAME><VALUE>Minimize</VALUE></SETTING>
-
-                <!-- Settings for "BatchRunner Preprocessor Panel" panel -->
-                <SETTING><NAME>MWBatchRunnerPreprocessor_BatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>MWBatchRunnerPreprocessor_OutputExtension</NAME><VALUE>.c</VALUE></SETTING>
-                <SETTING><NAME>MWBatchRunnerPreprocessor_CmdWindow</NAME><VALUE>Minimize</VALUE></SETTING>
-                <PANELDATA><NAME>Binary Converter Settings</NAME><VALUE>
-                    0100000000000100000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    00000000000000005265736F7572636553657474696E67732E74787400000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000
-                </VALUE></PANELDATA>
-
-                <!-- Settings for "ELF Disassembler Panel" panel -->
-                <SETTING><NAME>Show_Headers</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Symbol_Table</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Verbose_Info</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>Show_Relocation</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Code_Modules</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Extended_Mnemonics</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Source_Code</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Address_and_Object_Code</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Comments</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Data_Modules</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Exception_Tables</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>Show_Debug_Info</NAME><VALUE>true</VALUE></SETTING>
-
-                <!-- Settings for "C/C++ Compiler" panel -->
-                <SETTING><NAME>MWFrontEnd_C_cplusplus</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_checkprotos</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_arm</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_trigraphs</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_onlystdkeywords</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_enumsalwaysint</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_mpwpointerstyle</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_prefixname</NAME><VALUE>PREFIX_PSP_DEBUG.h</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_ansistrict</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_mpwcnewline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_wchar_type</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_enableexceptions</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_dontreusestrings</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_poolstrings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_dontinline</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_useRTTI</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_multibyteaware</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_unsignedchars</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_autoinline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_booltruefalse</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_inlinelevel</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_ecplusplus</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_objective_c</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_defer_codegen</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_templateparser</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_c99</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_bottomupinline</NAME><VALUE>1</VALUE></SETTING>
-
-                <!-- Settings for "MW GAS PSP Assembler Panel" panel -->
-                <SETTING><NAME>MWAssembler_generate_listing_file</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_prefix</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_colon</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_period</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_space</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_case_sensitive</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_processor</NAME><VALUE>12</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_gnu_mode</NAME><VALUE>1</VALUE></SETTING>
-
-                <!-- Settings for "PSP Device Target" panel -->
-                <SETTING><NAME>PSP_Device_Target_DeviceType</NAME><VALUE>Emulator</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_UseGlobal</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_UseLaunchPad</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_IPAddr</NAME><VALUE>192.168.0.10</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_PortNum</NAME><VALUE>8510</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_Timeout</NAME><VALUE>30000</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_Priority</NAME><VALUE>192</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_KernelModulePath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE>kmodule\kbooti.bin</VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_BootParam0</NAME><VALUE>-1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_BootParam1</NAME><VALUE>-1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_BootParam2</NAME><VALUE>-1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_BootParam3</NAME><VALUE>-1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_LoadModuleCmdPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_IPAddr</NAME><VALUE>127.0.0.1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_PortNum</NAME><VALUE>8510</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_Timeout</NAME><VALUE>30000</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_Priority</NAME><VALUE>192</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_Path</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE>tools\pspemu\pspemu.exe</VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP_EMU</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_MemSize</NAME><VALUE>2</VALUE></SETTING>
-
-                <!-- Settings for "PSP Global Optimizer" panel -->
-                <SETTING><NAME>GlobalOptimizer_PSP_optimizationlevel</NAME><VALUE>Level0</VALUE></SETTING>
-                <SETTING><NAME>GlobalOptimizer_PSP_optfor</NAME><VALUE>Speed</VALUE></SETTING>
-
-                <!-- Settings for "PSP Host Interface" panel -->
-                <SETTING><NAME>SDRFP1_HostIO_Folder_Path</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>LoadModuleCommand_Path</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>ProgramArguments</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP LCF Generator Pref" panel -->
-                <SETTING><NAME>PSPLCFPreLinker_GenerateLCF</NAME><VALUE>CreateNew</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_GenerateCPP</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_GenerateForceActive</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_Origin</NAME><VALUE>0x08900000</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_RunPreGenBatch</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_PreGenBatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_RunPostGenBatch</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_PostGenBatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "PSP Linker Panel" panel -->
-                <SETTING><NAME>MWLinker_MIPS_PSP_srecLength</NAME><VALUE>254</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_linksym</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PSP_MIPS_symfullpath</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_linkmap</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_nolinkwarnings</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_genSrecFile</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_linkunused</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_transclosure</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_noextsymrefwarnings</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_srecEOL</NAME><VALUE>Mac</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_outputformat</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_disableDead</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_generateElfSymbol</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_mainname</NAME><VALUE>_start</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_force_active_symbol</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP Project" panel -->
-                <SETTING><NAME>MWProject_MIPS_PSP_projtype</NAME><VALUE>Library</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_datathreshold</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_codeModel</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_heapsize</NAME><VALUE>1024</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_stacksize</NAME><VALUE>64</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_bigendian</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_gpRelative</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_pcRelative</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_bitRelative</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_outfile</NAME><VALUE>PSP_Lib_C++_dbg.lib</VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Assembler Panel" panel -->
-                <SETTING><NAME>PPSPGNUAssembler_AssemblerFlags</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Compiler Panel" panel -->
-                <SETTING><NAME>PPSPGNUCompiler_UseCustomDebugFormat</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUCompiler_DebugOption</NAME><VALUE>-g</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUCompiler_PrefixFile</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUCompiler_CompilerFlags</NAME><VALUE>-Wall -std=gnu9x</VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Disassembler Panel" panel -->
-                <SETTING><NAME>PPSPGNUDisassembler_ShowAssemblyOutputofCompiler</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUDisassembler_ShowContentOfArchive</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUDisassembler_AddCommandLine</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Environment Panel" panel -->
-                <SETTING><NAME>PPSPGNUEnvVars_ComponentAttributes</NAME>
-                    <SETTING>
-                        <SETTING><NAME>PPSPGNUEnvVars_Attribute</NAME><VALUE>AVOID_SYSTEM_PATHS</VALUE></SETTING>
-                        <SETTING><NAME>PPSPGNUEnvVars_Value</NAME><VALUE>YES</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-
-                <!-- Settings for "PSP GNU Linker Panel" panel -->
-                <SETTING><NAME>PPSPGNULinker_LinkerFlags</NAME><VALUE>-g -Wall -mno-crt0 -Wl,-Map,PSP_App_GCC_C.map</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNULinker_Libraries</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Post Linker Panel" panel -->
-                <SETTING><NAME>PPSP_GNU_PostLinker_PostLinkerFlags</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Target Panel" panel -->
-                <SETTING><NAME>PPSPGNUProj_ProjectType</NAME><VALUE>PPSPGNUProj_Application</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUProj_OutputFileName</NAME><VALUE>PSP_App_GCC_C.elf</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUProj_LibrarySONAME</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUProj_SonameOption</NAME><VALUE>PPSPGNUProj_NoSoname</VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU ToolCommands Panel" panel -->
-                <SETTING><NAME>PPSPGNUToolCmd_UseCustomToolCommands</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_CompilerCommand</NAME><VALUE>psp-gcc.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_LinkerCommand</NAME><VALUE>psp-gcc.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_ArchiverCommand</NAME><VALUE>psp-ar.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_SizeReporterCommand</NAME><VALUE>psp-size.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_ImporterCommand</NAME><VALUE>psp-objdump.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_AssemblerCommand</NAME><VALUE>psp-as.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_PostLinkerCommand</NAME><VALUE>psp-strip.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_DisplayCommands</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_CustomToolPathSettingName</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "PSP MIPS CodeGen" panel -->
-                <SETTING><NAME>Make_Strings_Read_Only</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>Inline_Intrinsic_Functions</NAME><VALUE>false</VALUE></SETTING>
-                <PANELDATA><NAME>PSP LibGen Panel</NAME><VALUE>
-                    0400456E7472795461626C652E6F000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0076657273696F6E2E7478740000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    30000000
-                </VALUE></PANELDATA>
-
-                <!-- Settings for "C/C++ Warnings" panel -->
-                <SETTING><NAME>MWWarning_C_warn_illpragma</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_emptydecl</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_possunwant</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_unusedvar</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_unusedarg</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_extracomma</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_pedantic</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warningerrors</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_hidevirtual</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_implicitconv</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_notinlined</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_structclass</NAME><VALUE>0</VALUE></SETTING>
-            </SETTINGLIST>
-            <FILELIST>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>lib_func.cpp</PATH>
-                    <PATHFORMAT>Windows</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-            </FILELIST>
-            <LINKORDER>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>lib_func.cpp</PATH>
-                    <PATHFORMAT>Windows</PATHFORMAT>
-                </FILEREF>
-            </LINKORDER>
-            <OVERLAYGROUPLIST>
-                <OVERLAYGROUP>
-                    <NAME>Default Overlay Group</NAME>
-                    <BASEADDRESS>0</BASEADDRESS>
-                    <OVERLAY>
-                        <NAME>Main Application</NAME>
-                        <FILEREF>
-                            <PATHTYPE>Name</PATHTYPE>
-                            <PATH>lib_func.cpp</PATH>
-                            <PATHFORMAT>Windows</PATHFORMAT>
-                        </FILEREF>
-                    </OVERLAY>
-                </OVERLAYGROUP>
-            </OVERLAYGROUPLIST>
-        </TARGET>
-        <TARGET>
-            <NAME>Release</NAME>
-            <SETTINGLIST>
-
-                <!-- Settings for "Source Trees" panel -->
-                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Access Paths" panel -->
-                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>UserSearchPaths</NAME>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>lib</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP_TC</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>..\..\..\..\psp\lib</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP_TC</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-                <SETTING><NAME>SystemSearchPaths</NAME>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>PSP_Support</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>include</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>..\..\..\..\psp\include</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP_TC</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>include</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP_TC</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-
-                <!-- Settings for "Debugger Runtime" panel -->
-                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Target Settings" panel -->
-                <SETTING><NAME>Linker</NAME><VALUE>MIPS PSP Linker</VALUE></SETTING>
-                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>PostLinker</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>Targetname</NAME><VALUE>Release</VALUE></SETTING>
-                <SETTING><NAME>OutputDirectory</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
-
-                <!-- Settings for "File Mappings" panel -->
-                <SETTING><NAME>FileMappings</NAME>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.asm</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW GAS PSP Assembler</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.c++</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.h++</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.hpp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.lcf</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.pch</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.pch++</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ MIPS PSP</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW GAS PSP Assembler</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.src</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW GAS PSP Assembler</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Lib Import MIPS</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.bin</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cmd</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.doc</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.elf</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Lib Import MIPS</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.lcf</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Lib Import MIPS</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Lib Import MIPS</VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-
-                <!-- Settings for "Build Extras" panel -->
-                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
-                <SETTING><NAME>DebuggerAppPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE>tools\pspdbg\pspdbg.exe</VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP_EMU</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE>-r %targetFileName</VALUE></SETTING>
-                <SETTING><NAME>DebuggerWorkingDir</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Debugger Target" panel -->
-                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>LogSystemMessages</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>AutoTargetDLLs</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
-                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>AltExePath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>CacheSymbolics</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
-                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "Remote Debug" panel -->
-                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>ConnectionName</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
-                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Auto-target" panel -->
-                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Analyzer Connections" panel -->
-                <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Custom Keywords" panel -->
-                <SETTING><NAME>CustomColor1</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor2</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor3</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor4</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "BatchRunner Panel" panel -->
-                <SETTING><NAME>MWBatchRunnerPostLinker_BatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>MWBatchRunnerPostLinker_SendParam</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>MWBatchRunnerPostLinker_Argument</NAME><VALUE>FileName</VALUE></SETTING>
-                <SETTING><NAME>MWBatchRunnerPostLinker_WorkingDir</NAME><VALUE>LinkerOutputDir</VALUE></SETTING>
-                <SETTING><NAME>MWBatchRunnerPostLinker_CmdWindow</NAME><VALUE>Minimize</VALUE></SETTING>
-
-                <!-- Settings for "BatchRunner PreLinker Panel" panel -->
-                <SETTING><NAME>MWBatchRunnerPreLinker_BatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>MWBatchRunnerPreLinker_CmdWindow</NAME><VALUE>Minimize</VALUE></SETTING>
-
-                <!-- Settings for "BatchRunner Preprocessor Panel" panel -->
-                <SETTING><NAME>MWBatchRunnerPreprocessor_BatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>MWBatchRunnerPreprocessor_OutputExtension</NAME><VALUE>.c</VALUE></SETTING>
-                <SETTING><NAME>MWBatchRunnerPreprocessor_CmdWindow</NAME><VALUE>Minimize</VALUE></SETTING>
-                <PANELDATA><NAME>Binary Converter Settings</NAME><VALUE>
-                    0100000000000100000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    00000000000000005265736F7572636553657474696E67732E74787400000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000
-                </VALUE></PANELDATA>
-
-                <!-- Settings for "ELF Disassembler Panel" panel -->
-                <SETTING><NAME>Show_Headers</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Symbol_Table</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Verbose_Info</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>Show_Relocation</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Code_Modules</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Extended_Mnemonics</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Source_Code</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Address_and_Object_Code</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Comments</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Data_Modules</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Exception_Tables</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>Show_Debug_Info</NAME><VALUE>true</VALUE></SETTING>
-
-                <!-- Settings for "C/C++ Compiler" panel -->
-                <SETTING><NAME>MWFrontEnd_C_cplusplus</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_checkprotos</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_arm</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_trigraphs</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_onlystdkeywords</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_enumsalwaysint</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_mpwpointerstyle</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_prefixname</NAME><VALUE>PREFIX_PSP_RELEASE.h</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_ansistrict</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_mpwcnewline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_wchar_type</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_enableexceptions</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_dontreusestrings</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_poolstrings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_dontinline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_useRTTI</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_multibyteaware</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_unsignedchars</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_autoinline</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_booltruefalse</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_inlinelevel</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_ecplusplus</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_objective_c</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_defer_codegen</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_templateparser</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_c99</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_bottomupinline</NAME><VALUE>1</VALUE></SETTING>
-
-                <!-- Settings for "MW GAS PSP Assembler Panel" panel -->
-                <SETTING><NAME>MWAssembler_generate_listing_file</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_prefix</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_colon</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_period</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_space</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_case_sensitive</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_processor</NAME><VALUE>12</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_gnu_mode</NAME><VALUE>1</VALUE></SETTING>
-
-                <!-- Settings for "PSP Device Target" panel -->
-                <SETTING><NAME>PSP_Device_Target_DeviceType</NAME><VALUE>Emulator</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_UseGlobal</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_UseLaunchPad</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_IPAddr</NAME><VALUE>192.168.0.10</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_PortNum</NAME><VALUE>8510</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_Timeout</NAME><VALUE>30000</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_Priority</NAME><VALUE>192</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_KernelModulePath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE>kmodule\kbooti.bin</VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_BootParam0</NAME><VALUE>-1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_BootParam1</NAME><VALUE>-1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_BootParam2</NAME><VALUE>-1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_BootParam3</NAME><VALUE>-1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_LoadModuleCmdPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_IPAddr</NAME><VALUE>127.0.0.1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_PortNum</NAME><VALUE>8510</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_Timeout</NAME><VALUE>30000</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_Priority</NAME><VALUE>192</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_Path</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE>tools\pspemu\pspemu.exe</VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP_EMU</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_MemSize</NAME><VALUE>2</VALUE></SETTING>
-
-                <!-- Settings for "PSP Global Optimizer" panel -->
-                <SETTING><NAME>GlobalOptimizer_PSP_optimizationlevel</NAME><VALUE>Level4</VALUE></SETTING>
-                <SETTING><NAME>GlobalOptimizer_PSP_optfor</NAME><VALUE>Speed</VALUE></SETTING>
-
-                <!-- Settings for "PSP Host Interface" panel -->
-                <SETTING><NAME>SDRFP1_HostIO_Folder_Path</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>LoadModuleCommand_Path</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>ProgramArguments</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP LCF Generator Pref" panel -->
-                <SETTING><NAME>PSPLCFPreLinker_GenerateLCF</NAME><VALUE>CreateNew</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_GenerateCPP</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_GenerateForceActive</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_Origin</NAME><VALUE>0x08900000</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_RunPreGenBatch</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_PreGenBatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_RunPostGenBatch</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_PostGenBatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "PSP Linker Panel" panel -->
-                <SETTING><NAME>MWLinker_MIPS_PSP_srecLength</NAME><VALUE>254</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_linksym</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PSP_MIPS_symfullpath</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_linkmap</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_nolinkwarnings</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_genSrecFile</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_linkunused</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_transclosure</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_noextsymrefwarnings</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_srecEOL</NAME><VALUE>Mac</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_outputformat</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_disableDead</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_generateElfSymbol</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_mainname</NAME><VALUE>_start</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_force_active_symbol</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP Project" panel -->
-                <SETTING><NAME>MWProject_MIPS_PSP_projtype</NAME><VALUE>Library</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_datathreshold</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_codeModel</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_heapsize</NAME><VALUE>1024</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_stacksize</NAME><VALUE>64</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_bigendian</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_gpRelative</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_pcRelative</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_bitRelative</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_outfile</NAME><VALUE>PSP_Lib_C++_rel.lib</VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Assembler Panel" panel -->
-                <SETTING><NAME>PPSPGNUAssembler_AssemblerFlags</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Compiler Panel" panel -->
-                <SETTING><NAME>PPSPGNUCompiler_UseCustomDebugFormat</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUCompiler_DebugOption</NAME><VALUE>-g</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUCompiler_PrefixFile</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUCompiler_CompilerFlags</NAME><VALUE>-Wall -std=gnu9x</VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Disassembler Panel" panel -->
-                <SETTING><NAME>PPSPGNUDisassembler_ShowAssemblyOutputofCompiler</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUDisassembler_ShowContentOfArchive</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUDisassembler_AddCommandLine</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Environment Panel" panel -->
-                <SETTING><NAME>PPSPGNUEnvVars_ComponentAttributes</NAME>
-                    <SETTING>
-                        <SETTING><NAME>PPSPGNUEnvVars_Attribute</NAME><VALUE>AVOID_SYSTEM_PATHS</VALUE></SETTING>
-                        <SETTING><NAME>PPSPGNUEnvVars_Value</NAME><VALUE>YES</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-
-                <!-- Settings for "PSP GNU Linker Panel" panel -->
-                <SETTING><NAME>PPSPGNULinker_LinkerFlags</NAME><VALUE>-g -Wall -mno-crt0 -Wl,-Map,PSP_App_GCC_C.map</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNULinker_Libraries</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Post Linker Panel" panel -->
-                <SETTING><NAME>PPSP_GNU_PostLinker_PostLinkerFlags</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Target Panel" panel -->
-                <SETTING><NAME>PPSPGNUProj_ProjectType</NAME><VALUE>PPSPGNUProj_Application</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUProj_OutputFileName</NAME><VALUE>PSP_App_GCC_C.elf</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUProj_LibrarySONAME</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUProj_SonameOption</NAME><VALUE>PPSPGNUProj_NoSoname</VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU ToolCommands Panel" panel -->
-                <SETTING><NAME>PPSPGNUToolCmd_UseCustomToolCommands</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_CompilerCommand</NAME><VALUE>psp-gcc.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_LinkerCommand</NAME><VALUE>psp-gcc.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_ArchiverCommand</NAME><VALUE>psp-ar.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_SizeReporterCommand</NAME><VALUE>psp-size.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_ImporterCommand</NAME><VALUE>psp-objdump.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_AssemblerCommand</NAME><VALUE>psp-as.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_PostLinkerCommand</NAME><VALUE>psp-strip.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_DisplayCommands</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_CustomToolPathSettingName</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "PSP MIPS CodeGen" panel -->
-                <SETTING><NAME>Make_Strings_Read_Only</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>Inline_Intrinsic_Functions</NAME><VALUE>false</VALUE></SETTING>
-                <PANELDATA><NAME>PSP LibGen Panel</NAME><VALUE>
-                    0400456E7472795461626C652E6F000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0076657273696F6E2E7478740000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    30000000
-                </VALUE></PANELDATA>
-
-                <!-- Settings for "C/C++ Warnings" panel -->
-                <SETTING><NAME>MWWarning_C_warn_illpragma</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_emptydecl</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_possunwant</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_unusedvar</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_unusedarg</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_extracomma</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_pedantic</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warningerrors</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_hidevirtual</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_implicitconv</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_notinlined</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_structclass</NAME><VALUE>0</VALUE></SETTING>
-            </SETTINGLIST>
-            <FILELIST>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>lib_func.cpp</PATH>
-                    <PATHFORMAT>Windows</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-            </FILELIST>
-            <LINKORDER>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>lib_func.cpp</PATH>
-                    <PATHFORMAT>Windows</PATHFORMAT>
-                </FILEREF>
-            </LINKORDER>
-            <OVERLAYGROUPLIST>
-                <OVERLAYGROUP>
-                    <NAME>Default Overlay Group</NAME>
-                    <BASEADDRESS>0</BASEADDRESS>
-                    <OVERLAY>
-                        <NAME>Main Application</NAME>
-                        <FILEREF>
-                            <PATHTYPE>Name</PATHTYPE>
-                            <PATH>lib_func.cpp</PATH>
-                            <PATHFORMAT>Windows</PATHFORMAT>
-                        </FILEREF>
-                    </OVERLAY>
-                </OVERLAYGROUP>
-            </OVERLAYGROUPLIST>
-        </TARGET>
-        <TARGET>
-            <NAME>Build All</NAME>
-            <SETTINGLIST>
-
-                <!-- Settings for "Source Trees" panel -->
-                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Access Paths" panel -->
-                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>UserSearchPaths</NAME>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-                <SETTING><NAME>SystemSearchPaths</NAME>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-
-                <!-- Settings for "Debugger Runtime" panel -->
-                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Target Settings" panel -->
-                <SETTING><NAME>Linker</NAME><VALUE>None</VALUE></SETTING>
-                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>PostLinker</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>Targetname</NAME><VALUE>Build All</VALUE></SETTING>
-                <SETTING><NAME>OutputDirectory</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
-
-                <!-- Settings for "File Mappings" panel -->
-                <SETTING><NAME>FileMappings</NAME>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>MMPr</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-
-                <!-- Settings for "Build Extras" panel -->
-                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>BrowserGenerator</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>DebuggerAppPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>DebuggerWorkingDir</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Debugger Target" panel -->
-                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>AutoTargetDLLs</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
-                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>AltExePath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
-                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "Remote Debug" panel -->
-                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>ConnectionName</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
-                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Auto-target" panel -->
-                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Analyzer Connections" panel -->
-                <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Custom Keywords" panel -->
-                <SETTING><NAME>CustomColor1</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor2</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor3</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor4</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "BatchRunner Panel" panel -->
-                <SETTING><NAME>MWBatchRunnerPostLinker_BatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>MWBatchRunnerPostLinker_SendParam</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>MWBatchRunnerPostLinker_Argument</NAME><VALUE>FileName</VALUE></SETTING>
-                <SETTING><NAME>MWBatchRunnerPostLinker_WorkingDir</NAME><VALUE>LinkerOutputDir</VALUE></SETTING>
-                <SETTING><NAME>MWBatchRunnerPostLinker_CmdWindow</NAME><VALUE>Minimize</VALUE></SETTING>
-
-                <!-- Settings for "BatchRunner PreLinker Panel" panel -->
-                <SETTING><NAME>MWBatchRunnerPreLinker_BatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>MWBatchRunnerPreLinker_CmdWindow</NAME><VALUE>Minimize</VALUE></SETTING>
-
-                <!-- Settings for "BatchRunner Preprocessor Panel" panel -->
-                <SETTING><NAME>MWBatchRunnerPreprocessor_BatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>MWBatchRunnerPreprocessor_OutputExtension</NAME><VALUE>.c</VALUE></SETTING>
-                <SETTING><NAME>MWBatchRunnerPreprocessor_CmdWindow</NAME><VALUE>Minimize</VALUE></SETTING>
-                <PANELDATA><NAME>Binary Converter Settings</NAME><VALUE>
-                    0100000000000100000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    00000000000000005265736F7572636553657474696E67732E74787400000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000
-                </VALUE></PANELDATA>
-
-                <!-- Settings for "ELF Disassembler Panel" panel -->
-                <SETTING><NAME>Show_Headers</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Symbol_Table</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Verbose_Info</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>Show_Relocation</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Code_Modules</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Extended_Mnemonics</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Source_Code</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Address_and_Object_Code</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Comments</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Data_Modules</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>Show_Exception_Tables</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>Show_Debug_Info</NAME><VALUE>true</VALUE></SETTING>
-
-                <!-- Settings for "C/C++ Compiler" panel -->
-                <SETTING><NAME>MWFrontEnd_C_cplusplus</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_checkprotos</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_arm</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_trigraphs</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_onlystdkeywords</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_enumsalwaysint</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_mpwpointerstyle</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_prefixname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_ansistrict</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_mpwcnewline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_wchar_type</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_enableexceptions</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_dontreusestrings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_poolstrings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_dontinline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_useRTTI</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_multibyteaware</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_unsignedchars</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_autoinline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_booltruefalse</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_inlinelevel</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_ecplusplus</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_objective_c</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_defer_codegen</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_templateparser</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_c99</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_bottomupinline</NAME><VALUE>1</VALUE></SETTING>
-
-                <!-- Settings for "MW GAS PSP Assembler Panel" panel -->
-                <SETTING><NAME>MWAssembler_generate_listing_file</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_prefix</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_colon</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_period</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_space</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_case_sensitive</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_processor</NAME><VALUE>12</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_gnu_mode</NAME><VALUE>1</VALUE></SETTING>
-
-                <!-- Settings for "PSP Device Target" panel -->
-                <SETTING><NAME>PSP_Device_Target_DeviceType</NAME><VALUE>Emulator</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_UseGlobal</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_UseLaunchPad</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_IPAddr</NAME><VALUE>192.168.0.10</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_PortNum</NAME><VALUE>8510</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_Timeout</NAME><VALUE>30000</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_Priority</NAME><VALUE>192</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_KernelModulePath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE>kmodule\kbooti.bin</VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_BootParam0</NAME><VALUE>-1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_BootParam1</NAME><VALUE>-1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_BootParam2</NAME><VALUE>-1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_BootParam3</NAME><VALUE>-1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_HW_LoadModuleCmdPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_IPAddr</NAME><VALUE>127.0.0.1</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_PortNum</NAME><VALUE>8510</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_Timeout</NAME><VALUE>30000</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_Priority</NAME><VALUE>192</VALUE></SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_Path</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE>tools\pspemu\pspemu.exe</VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>CW_SCE_PSP_EMU</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>PSP_Device_Target_Emu_MemSize</NAME><VALUE>2</VALUE></SETTING>
-
-                <!-- Settings for "PSP Global Optimizer" panel -->
-                <SETTING><NAME>GlobalOptimizer_PSP_optimizationlevel</NAME><VALUE>Level0</VALUE></SETTING>
-                <SETTING><NAME>GlobalOptimizer_PSP_optfor</NAME><VALUE>Speed</VALUE></SETTING>
-
-                <!-- Settings for "PSP Host Interface" panel -->
-                <SETTING><NAME>SDRFP1_HostIO_Folder_Path</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>LoadModuleCommand_Path</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE>PSP_Support\SDK\start_script.txt</VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>ProgramArguments</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP LCF Generator Pref" panel -->
-                <SETTING><NAME>PSPLCFPreLinker_GenerateLCF</NAME><VALUE>CreateNew</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_GenerateCPP</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_GenerateForceActive</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_Origin</NAME><VALUE>0x08900000</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_RunPreGenBatch</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_PreGenBatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_RunPostGenBatch</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PSPLCFPreLinker_PostGenBatchPath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "PSP Linker Panel" panel -->
-                <SETTING><NAME>MWLinker_MIPS_PSP_srecLength</NAME><VALUE>254</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_linksym</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PSP_MIPS_symfullpath</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_linkmap</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_nolinkwarnings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_genSrecFile</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_linkunused</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_transclosure</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_noextsymrefwarnings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_srecEOL</NAME><VALUE>Mac</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_outputformat</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_disableDead</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_generateElfSymbol</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_mainname</NAME><VALUE>__start</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_MIPS_PSP_force_active_symbol</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP Project" panel -->
-                <SETTING><NAME>MWProject_MIPS_PSP_projtype</NAME><VALUE>Library</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_datathreshold</NAME><VALUE>8</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_codeModel</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_heapsize</NAME><VALUE>1024</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_stacksize</NAME><VALUE>64</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_bigendian</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_gpRelative</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_pcRelative</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_bitRelative</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_MIPS_PSP_outfile</NAME><VALUE>a.out</VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Assembler Panel" panel -->
-                <SETTING><NAME>PPSPGNUAssembler_AssemblerFlags</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Compiler Panel" panel -->
-                <SETTING><NAME>PPSPGNUCompiler_UseCustomDebugFormat</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUCompiler_DebugOption</NAME><VALUE>-g</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUCompiler_PrefixFile</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUCompiler_CompilerFlags</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Disassembler Panel" panel -->
-                <SETTING><NAME>PPSPGNUDisassembler_ShowAssemblyOutputofCompiler</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUDisassembler_ShowContentOfArchive</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUDisassembler_AddCommandLine</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Environment Panel" panel -->
-                <SETTING><NAME>PPSPGNUEnvVars_ComponentAttributes</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Linker Panel" panel -->
-                <SETTING><NAME>PPSPGNULinker_LinkerFlags</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>PPSPGNULinker_Libraries</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Post Linker Panel" panel -->
-                <SETTING><NAME>PPSP_GNU_PostLinker_PostLinkerFlags</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU Target Panel" panel -->
-                <SETTING><NAME>PPSPGNUProj_ProjectType</NAME><VALUE>PPSPGNUProj_Application</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUProj_OutputFileName</NAME><VALUE>a.out</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUProj_LibrarySONAME</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUProj_SonameOption</NAME><VALUE>PPSPGNUProj_NoSoname</VALUE></SETTING>
-
-                <!-- Settings for "PSP GNU ToolCommands Panel" panel -->
-                <SETTING><NAME>PPSPGNUToolCmd_UseCustomToolCommands</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_CompilerCommand</NAME><VALUE>psp-gcc.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_LinkerCommand</NAME><VALUE>psp-gcc.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_ArchiverCommand</NAME><VALUE>psp-ar.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_SizeReporterCommand</NAME><VALUE>psp-size.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_ImporterCommand</NAME><VALUE>psp-objdump.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_AssemblerCommand</NAME><VALUE>psp-as.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_PostLinkerCommand</NAME><VALUE>psp-strip.exe</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_DisplayCommands</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PPSPGNUToolCmd_CustomToolPathSettingName</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "PSP MIPS CodeGen" panel -->
-                <SETTING><NAME>Make_Strings_Read_Only</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>Inline_Intrinsic_Functions</NAME><VALUE>false</VALUE></SETTING>
-                <PANELDATA><NAME>PSP LibGen Panel</NAME><VALUE>
-                    0400456E7472795461626C652E6F000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0076657273696F6E2E7478740000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    30000000
-                </VALUE></PANELDATA>
-
-                <!-- Settings for "C/C++ Warnings" panel -->
-                <SETTING><NAME>MWWarning_C_warn_illpragma</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_emptydecl</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_possunwant</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_unusedvar</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_unusedarg</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_extracomma</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_pedantic</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warningerrors</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_hidevirtual</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_implicitconv</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_notinlined</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_structclass</NAME><VALUE>0</VALUE></SETTING>
-            </SETTINGLIST>
-            <FILELIST>
-            </FILELIST>
-            <LINKORDER>
-            </LINKORDER>
-            <SUBTARGETLIST>
-                <SUBTARGET>
-                    <TARGETNAME>Debug</TARGETNAME>
-                </SUBTARGET>
-                <SUBTARGET>
-                    <TARGETNAME>Release</TARGETNAME>
-                </SUBTARGET>
-            </SUBTARGETLIST>
-        </TARGET>
-    </TARGETLIST>
-
-    <TARGETORDER>
-        <ORDEREDTARGET><NAME>Debug</NAME></ORDEREDTARGET>
-        <ORDEREDTARGET><NAME>Release</NAME></ORDEREDTARGET>
-        <ORDEREDTARGET><NAME>Build All</NAME></ORDEREDTARGET>
-    </TARGETORDER>
-
-    <GROUPLIST>
-        <GROUP><NAME>Source</NAME>
-            <FILEREF>
-                <TARGETNAME>Debug</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>lib_func.cpp</PATH>
-                <PATHFORMAT>Windows</PATHFORMAT>
-            </FILEREF>
-        </GROUP>
-    </GROUPLIST>
-
-</PROJECT>
diff --git a/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/Platinum.mcp b/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/Platinum.mcp
deleted file mode 100644
index 79a88f7..0000000
Binary files a/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/Platinum.mcp and /dev/null differ
diff --git a/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/Platinum_Data/CWSettingsWindows.stg b/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/Platinum_Data/CWSettingsWindows.stg
deleted file mode 100644
index 39ad603..0000000
Binary files a/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/CodeWarrior/Platinum_Data/CWSettingsWindows.stg and /dev/null differ
diff --git a/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/Common.mak b/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/Common.mak
deleted file mode 100644
index 0ac22fb..0000000
--- a/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/Common.mak
+++ /dev/null
@@ -1,13 +0,0 @@
-# path to install of the PSP devkit, typically located under the cygwin tree
-DEVKIT_TOP           = /usr/local/psp/devkit
-
-# paths to base folders of Krill modules
-NEPTUNE_PATH         = $(ROOT_PATH)/Platinum/ThirdParty/Neptune
-PLATINUM_PATH        = $(ROOT_PATH)/Platinum
-BTK_PATH			 = ${ROOT_PATH}/BTK
-
-# names of the Krill modules
-BTK					 = Btk
-NEPTUNE				 = Neptune
-PLATINUM             = Platinum
-PLATINUM_MS          = MediaServer
diff --git a/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/Makefile b/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/Makefile
deleted file mode 100644
index 18258a4..0000000
--- a/lib/libUPnP/Platinum/Build/Targets/mipsel-psp-linux/Makefile
+++ /dev/null
@@ -1,81 +0,0 @@
-ROOT_PATH  = ../../../..
-include Common.mak
-
-NPT_INCLUDE = $(NEPTUNE_PATH)/Source/Config -I$(NEPTUNE_PATH)/Source/Core -I$(NEPTUNE_PATH)/Source/Neptune
-PLT_INCLUDE = $(PLATINUM_PATH)/Source/Core -I$(PLATINUM_PATH)/Source/Devices/MediaServer
-INCDIR		= $(DEVKIT_TOP)/include -I$(NPT_INCLUDE) -I$(PLT_INCLUDE) -I./
-SRC_DIR		= ${PLATINUM_PATH}/Source
-
-DBGFLAG		= -g
-# OPTFLAG		= -O2
-OPTFLAG		= 
-CFLAGS		= -W -Wall $(DBGFLAG) $(OPTFLAG) -I$(INCDIR) 
-CPPFLAGS	= -W -Wall $(DBGFLAG) $(OPTFLAG) -I$(INCDIR) -DPSP -DNPT_DEBUG -MMD
-ASFLAGS		= $(DBGFLAG)
-LDFLAGS		= $(DBGFLAG) -Wl,-export-dynamic -shared -mimpure-text
-LDLIBS		= 
-LOADLIBES	=
-
-VPATH += ${SRC_DIR}/Core
-VPATH += ${SRC_DIR}/Devices/MediaServer
-PLT_SOURCES = \
-			PltAction.cpp	\
-			PltArgument.cpp	\
-			PltCtrlPoint.cpp \
-			PltCtrlPointTask.cpp \
-			PltDatagramStream.cpp \
-			PltDeviceData.cpp \
-			PltDeviceHost.cpp \
-			PltDownloader.cpp \
-			PltEvent.cpp \
-			PltHttpClientTask.cpp \
-			PltHttpServer.cpp \
-			PltHttpServerTask.cpp \
-			PltMetadataHandler.cpp \
-			PltScheduler.cpp \
-			PltService.cpp \
-			PltSsdp.cpp \
-			PltStateVariable.cpp \
-			PltTask.cpp \
-			PltUPnP.cpp \
-			PltXML.cpp
-
-PLT_MS_SOURCES = \
-			PltDidl.cpp \
-			PltMediaBrowser.cpp \
-			PltMediaItem.cpp \
-			PltMediaPlaylist.cpp \
-			PltMediaServer.cpp \
-			PltMediaServerSCPDs.cpp
-
-PLT_MS_TARGET = $(PLATINUM_MS)
-PLT_MS_OBJS   = $(PLT_MS_SOURCES:.cpp=.o)
-
-TARGET	 = $(PLATINUM)
-OBJS	 = $(PLT_SOURCES:.cpp=.o) $(PLT_MS_SOURCES:.cpp=.o)
-
-all:	deps $(TARGET).a
-
-$(PLATINUM):	 $(TARGET).a
-
-deps:
-	make -C $(NEPTUNE_PATH)/Build/Neptune/Targets/mipsel-psp-linux $(NEPTUNE)
-	
-clean:
-	rm -f *.o $(TARGET).a *~ *.bak PathDefs
-
-$(TARGET).a: $(OBJS)
-	$(RM) $@
-	$(AR) r $@ $^
-	$(RANLIB) $@
-
-$(PLT_MS_TARGET).a: $(PLT_MS_OBJS)
-	$(RM) $@
-	$(AR) r $@ $^
-	$(RANLIB) $@
-
-#----------- rules --------------
--include $(OBJS:.o=.d)
--include PathDefs
-PathDefs:
-	psp-path-setup > PathDefs || (rm -f PathDefs ; exit 1)
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Headers b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Headers
deleted file mode 100644
index a177d2a..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Headers
+++ /dev/null
@@ -1 +0,0 @@
-Versions/Current/Headers
\ No newline at end of file
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Platinum b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Platinum
deleted file mode 100644
index 0e4a619..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Platinum
+++ /dev/null
@@ -1 +0,0 @@
-Versions/Current/Platinum
\ No newline at end of file
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Resources b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Resources
deleted file mode 100644
index 953ee36..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Resources
+++ /dev/null
@@ -1 +0,0 @@
-Versions/Current/Resources
\ No newline at end of file
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/Neptune.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/Neptune.h
deleted file mode 100644
index 8ea4fa1..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/Neptune.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Toplevel Include
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NEPTUNE_H_
-#define _NEPTUNE_H_
-
-/*----------------------------------------------------------------------
-|   flags
-+---------------------------------------------------------------------*/
-#define NPT_EXTERNAL_USE /* do not expose internal definitions */
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-#include "NptCommon.h"
-#include "NptResults.h"
-#include "NptTypes.h"
-#include "NptConstants.h"
-#include "NptReferences.h"
-#include "NptStreams.h"
-#include "NptBufferedStreams.h"
-#include "NptFile.h"
-#include "NptNetwork.h"
-#include "NptSockets.h"
-#include "NptTime.h"
-#include "NptThreads.h"
-#include "NptSystem.h"
-#include "NptMessaging.h"
-#include "NptQueue.h"
-#include "NptSimpleMessageQueue.h"
-#include "NptSelectableMessageQueue.h"
-#include "NptXml.h"
-#include "NptStrings.h"
-#include "NptArray.h"
-#include "NptList.h"
-#include "NptMap.h"
-#include "NptStack.h"
-#include "NptUri.h"
-#include "NptHttp.h"
-#include "NptDataBuffer.h"
-#include "NptUtils.h"
-#include "NptRingBuffer.h"
-#include "NptBase64.h"
-#include "NptConsole.h"
-#include "NptLogging.h"
-#include "NptSerialPort.h"
-#include "NptVersion.h"
-#include "NptDynamicLibraries.h"
-#include "NptDynamicCast.h"
-#include "NptDigest.h"
-#include "NptCrypto.h"
-
-// optional modules
-#include "NptZip.h"
-#include "NptTls.h"
-
-#endif // _NEPTUNE_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptArray.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptArray.h
deleted file mode 100644
index 721bac8..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptArray.h
+++ /dev/null
@@ -1,522 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Arrays
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-
-#ifndef _NPT_ARRAY_H_
-#define _NPT_ARRAY_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-#if defined(NPT_CONFIG_HAVE_NEW_H)
-#include <new>
-#endif
-#include "NptTypes.h"
-#include "NptResults.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_ARRAY_INITIAL_MAX_SIZE = 128; // bytes
-
-/*----------------------------------------------------------------------
-|   NPT_Array
-+---------------------------------------------------------------------*/
-template <typename T> 
-class NPT_Array 
-{
-public:
-    // types
-    typedef T Element;
-    typedef T* Iterator;
-
-    // methods
-    NPT_Array<T>(): m_Capacity(0), m_ItemCount(0), m_Items(0) {}
-    explicit NPT_Array<T>(NPT_Cardinal count);
-    NPT_Array<T>(NPT_Cardinal count, const T& item);
-    NPT_Array<T>(const T* items, NPT_Cardinal item_count);
-   ~NPT_Array<T>();
-    NPT_Array<T>(const NPT_Array<T>& copy);
-    NPT_Array<T>& operator=(const NPT_Array<T>& copy);
-    bool          operator==(const NPT_Array<T>& other) const;
-    bool          operator!=(const NPT_Array<T>& other) const;
-    NPT_Cardinal GetItemCount() const { return m_ItemCount; }
-    NPT_Result   Add(const T& item);
-    T& operator[](NPT_Ordinal pos)             { return m_Items[pos]; }
-    const T& operator[](NPT_Ordinal pos) const { return m_Items[pos]; }
-    NPT_Result   Erase(Iterator which);
-    NPT_Result   Erase(NPT_Ordinal which) { return Erase(&m_Items[which]); }
-    NPT_Result   Erase(Iterator first, Iterator last);
-    NPT_Result   Erase(NPT_Ordinal first, NPT_Ordinal last) { return Erase(&m_Items[first], &m_Items[last]); }
-    NPT_Result   Insert(Iterator where, const T& item, NPT_Cardinal count = 1);
-    NPT_Result   Reserve(NPT_Cardinal count);
-    NPT_Cardinal GetCapacity() const { return m_Capacity; }
-    NPT_Result   Resize(NPT_Cardinal count);
-    NPT_Result   Resize(NPT_Cardinal count, const T& fill);
-    NPT_Result   Clear();
-    bool         Contains(const T& data) const;
-    Iterator     GetFirstItem() const { return m_ItemCount?&m_Items[0]:NULL; }
-    Iterator     GetLastItem() const  { return m_ItemCount?&m_Items[m_ItemCount-1]:NULL; }
-    Iterator     GetItem(NPT_Ordinal n) { return n<m_ItemCount?&m_Items[n]:NULL; }
-
-    // template list operations
-    // keep these template members defined here because MSV6 does not let
-    // us define them later
-    template <typename X> 
-    NPT_Result Apply(const X& function) const
-    {                                  
-        for (unsigned int i=0; i<m_ItemCount; i++) function(m_Items[i]);
-        return NPT_SUCCESS;
-    }
-
-    template <typename X, typename P>
-    NPT_Result ApplyUntil(const X& function, const P& predicate, bool* match = NULL) const
-    {                                  
-        for (unsigned int i=0; i<m_ItemCount; i++) {
-            NPT_Result return_value;
-            if (predicate(function(m_Items[i]), return_value)) {
-                if (match) *match = true;
-                return return_value;
-            }
-        }
-        if (match) *match = false;
-        return NPT_SUCCESS;
-    }
-
-    template <typename X> 
-    T* Find(const X& predicate, NPT_Ordinal n=0, NPT_Ordinal* pos = NULL) const
-    {
-        if (pos) *pos = -1;
-
-        for (unsigned int i=0; i<m_ItemCount; i++) {
-            if (predicate(m_Items[i])) {
-                if (pos) *pos = i;
-                if (n == 0) return &m_Items[i];
-                --n;
-            }
-        }
-        return NULL;
-    }
-
-protected:
-    // methods
-    T* Allocate(NPT_Cardinal count, NPT_Cardinal& allocated);
-
-    // members
-    NPT_Cardinal m_Capacity;
-    NPT_Cardinal m_ItemCount;
-    T*           m_Items;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::NPT_Array<T>
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Array<T>::NPT_Array(NPT_Cardinal count) :
-    m_Capacity(0),
-    m_ItemCount(0),
-    m_Items(0)
-{
-    Reserve(count);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::NPT_Array<T>
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Array<T>::NPT_Array(const NPT_Array<T>& copy) :
-    m_Capacity(0),
-    m_ItemCount(0),
-    m_Items(0)
-{
-    Reserve(copy.GetItemCount());
-    for (NPT_Ordinal i=0; i<copy.m_ItemCount; i++) {
-        new ((void*)&m_Items[i]) T(copy.m_Items[i]);
-    }
-    m_ItemCount = copy.m_ItemCount;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::NPT_Array<T>
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Array<T>::NPT_Array(NPT_Cardinal count, const T& item) :
-    m_Capacity(0),
-    m_ItemCount(count),
-    m_Items(0)    
-{
-    Reserve(count);
-    for (NPT_Ordinal i=0; i<count; i++) {
-        new ((void*)&m_Items[i]) T(item);
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::NPT_Array<T>
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Array<T>::NPT_Array(const T* items, NPT_Cardinal item_count) :
-    m_Capacity(0),
-    m_ItemCount(item_count),
-    m_Items(0)    
-{
-    Reserve(item_count);
-    for (NPT_Ordinal i=0; i<item_count; i++) {
-        new ((void*)&m_Items[i]) T(items[i]);
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::~NPT_Array<T>
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Array<T>::~NPT_Array()
-{
-    // remove all items
-    Clear();
-
-    // free the memory
-    ::operator delete((void*)m_Items);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::operator=
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Array<T>&
-NPT_Array<T>::operator=(const NPT_Array<T>& copy)
-{
-    // do nothing if we're assigning to ourselves
-    if (this == &copy) return *this;
-
-    // destroy all elements
-    Clear();
-
-    // copy all elements from the other object
-    Reserve(copy.GetItemCount());
-    m_ItemCount = copy.m_ItemCount;
-    for (NPT_Ordinal i=0; i<copy.m_ItemCount; i++) {
-        new ((void*)&m_Items[i]) T(copy.m_Items[i]);
-    }
-
-    return *this;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Clear
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_Array<T>::Clear()
-{
-    // destroy all items
-    for (NPT_Ordinal i=0; i<m_ItemCount; i++) {
-        m_Items[i].~T();
-    }
-
-    m_ItemCount = 0;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Allocate
-+---------------------------------------------------------------------*/
-template <typename T>
-T*
-NPT_Array<T>::Allocate(NPT_Cardinal count, NPT_Cardinal& allocated) 
-{
-    if (m_Capacity) {
-        allocated = 2*m_Capacity;
-    } else {
-        // start with just enough elements to fill 
-        // NPT_ARRAY_INITIAL_MAX_SIZE worth of memory
-        allocated = NPT_ARRAY_INITIAL_MAX_SIZE/sizeof(T);
-        if (allocated == 0) allocated = 1;
-    }
-    if (allocated < count) allocated = count;
-
-    // allocate the items
-    return (T*)::operator new(allocated*sizeof(T));
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Reserve
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_Array<T>::Reserve(NPT_Cardinal count)
-{
-    if (count <= m_Capacity) return NPT_SUCCESS;
-
-    // (re)allocate the items
-    NPT_Cardinal new_capacity;
-    T* new_items = Allocate(count, new_capacity);
-    if (new_items == NULL) {
-        return NPT_ERROR_OUT_OF_MEMORY;
-    }
-    if (m_ItemCount && m_Items) {
-        for (unsigned int i=0; i<m_ItemCount; i++) {
-            // construct the copy
-            new ((void*)&new_items[i])T(m_Items[i]);
-
-            // destroy the item
-            m_Items[i].~T();
-        }
-    }
-    ::operator delete((void*)m_Items);
-    m_Items = new_items;
-    m_Capacity = new_capacity;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Add
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Result
-NPT_Array<T>::Add(const T& item)
-{
-    // ensure capacity
-    NPT_Result result = Reserve(m_ItemCount+1);
-    if (result != NPT_SUCCESS) return result;
-
-    // store the item
-    new ((void*)&m_Items[m_ItemCount++]) T(item);
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Erase
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Result
-NPT_Array<T>::Erase(Iterator which)
-{
-    return Erase(which, which);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Erase
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_Array<T>::Erase(Iterator first, Iterator last)
-{
-    // check parameters
-    if (first == NULL || last == NULL) return NPT_ERROR_INVALID_PARAMETERS;
-
-    // check the bounds
-    NPT_Ordinal first_index = (NPT_Ordinal)(NPT_POINTER_TO_LONG(first-m_Items));
-    NPT_Ordinal last_index  = (NPT_Ordinal)(NPT_POINTER_TO_LONG(last-m_Items));
-    if (first_index >= m_ItemCount ||
-        last_index  >= m_ItemCount ||
-        first_index > last_index) {
-        return NPT_ERROR_INVALID_PARAMETERS;
-    }
-
-    // shift items to the left
-    NPT_Cardinal interval = last_index-first_index+1;
-    NPT_Cardinal shifted = m_ItemCount-last_index-1;
-    for (NPT_Ordinal i=first_index; i<first_index+shifted; i++) {
-        m_Items[i] = m_Items[i+interval];
-    }
-
-    // destruct the remaining items
-    for (NPT_Ordinal i=first_index+shifted; i<m_ItemCount; i++) {
-        m_Items[i].~T();
-    }
-
-    // update the item count
-    m_ItemCount -= interval;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Insert
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_Array<T>::Insert(Iterator where, const T& item, NPT_Cardinal repeat)
-{
-    // check bounds
-    NPT_Ordinal where_index = where?((NPT_Ordinal)NPT_POINTER_TO_LONG(where-m_Items)):m_ItemCount;
-    if (where > &m_Items[m_ItemCount] || repeat == 0) return NPT_ERROR_INVALID_PARAMETERS;
-
-    NPT_Cardinal needed = m_ItemCount+repeat;
-    if (needed > m_Capacity) {
-        // allocate more memory
-        NPT_Cardinal new_capacity;
-        T* new_items = Allocate(needed, new_capacity);
-        if (new_items == NULL) return NPT_ERROR_OUT_OF_MEMORY;
-        m_Capacity = new_capacity;
-
-        // move the items before the insertion point
-        for (NPT_Ordinal i=0; i<where_index; i++) {
-            new((void*)&new_items[i])T(m_Items[i]);
-            m_Items[i].~T();
-        }
-
-        // move the items after the insertion point
-        for (NPT_Ordinal i=where_index; i<m_ItemCount; i++) {
-            new((void*)&new_items[i+repeat])T(m_Items[i]);
-            m_Items[i].~T();
-        }
-
-        // use the new items instead of the current ones
-        ::operator delete((void*)m_Items);
-        m_Items = new_items;
-    } else {
-        // shift items after the insertion point to the right
-        for (NPT_Ordinal i=m_ItemCount; i>where_index; i--) {
-            new((void*)&m_Items[i+repeat-1])T(m_Items[i-1]);
-            m_Items[i-1].~T();
-        }
-    }
-
-    // insert the new items
-    for (NPT_Cardinal i=where_index; i<where_index+repeat; i++) {
-        new((void*)&m_Items[i])T(item);
-    }
-
-    // update the item count
-    m_ItemCount += repeat;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Resize
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_Array<T>::Resize(NPT_Cardinal size)
-{
-    if (size < m_ItemCount) {
-        // shrink
-        for (NPT_Ordinal i=size; i<m_ItemCount; i++) {
-            m_Items[i].~T();
-        }
-        m_ItemCount = size;
-    } else if (size > m_ItemCount) {
-        return Resize(size, T());
-    }
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Resize
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_Array<T>::Resize(NPT_Cardinal size, const T& fill)
-{
-    if (size < m_ItemCount) {
-        return Resize(size);
-    } else if (size > m_ItemCount) {
-        Reserve(size);
-        for (NPT_Ordinal i=m_ItemCount; i<size; i++) {
-            new ((void*)&m_Items[i]) T(fill);
-        }
-        m_ItemCount = size;
-    }
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Contains
-+---------------------------------------------------------------------*/
-template <typename T>
-bool
-NPT_Array<T>::Contains(const T& data) const
-{
-    for (NPT_Ordinal i=0; i<m_ItemCount; i++) {
-        if (m_Items[i] == data) return true;
-    }
-
-    return false;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::operator==
-+---------------------------------------------------------------------*/
-template <typename T>
-bool
-NPT_Array<T>::operator==(const NPT_Array<T>& other) const
-{
-    // we need the same number of items
-    if (other.m_ItemCount != m_ItemCount) return false;
-
-    // compare all items
-    for (NPT_Ordinal i=0; i<m_ItemCount; i++) {
-        if (!(m_Items[i] == other.m_Items[i])) return false;
-    }
-
-    return true;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::operator!=
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-bool
-NPT_Array<T>::operator!=(const NPT_Array<T>& other) const
-{
-    return !(*this == other);
-}
-
-#endif // _NPT_ARRAY_H_
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptAutomaticCleaner.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptAutomaticCleaner.h
deleted file mode 100644
index 19b699b..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptAutomaticCleaner.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Automatic Cleaner
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-
-#ifndef _NPT_AUTOMATIC_CLEANER_H_
-#define _NPT_AUTOMATIC_CLEANER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptList.h"
-
-/*----------------------------------------------------------------------
-|   NPT_AutomaticCleaner
-+---------------------------------------------------------------------*/
-class NPT_AutomaticCleaner
-{
-public:
-    class Singleton {
-    public:
-        virtual ~Singleton() {}
-    };
-    
-    // singleton management
-    class Cleaner {
-        static Cleaner AutomaticCleaner;
-        ~Cleaner() {
-            if (Instance) {
-                delete Instance;
-                Instance = NULL;
-            }
-        }
-    };
-    static NPT_AutomaticCleaner* GetInstance();
-    
-    // destructor
-    ~NPT_AutomaticCleaner();
-    
-    // methods
-    NPT_Result Register(Singleton* singleton);
-    NPT_Result RegisterTlsContext(Singleton* singleton);
-    NPT_Result RegisterHttpConnectionManager(Singleton* singleton);
-    
-private:
-    // class members
-    static NPT_AutomaticCleaner* Instance;
-    
-    // constructor
-    NPT_AutomaticCleaner();
-    
-    // members
-    NPT_List<Singleton*> m_Singletons;
-    Singleton* m_TlsContext;
-    Singleton* m_HttpConnectionManager;
-};
-
-#endif // _NPT_AUTOMATIC_CLEANER_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptAutoreleasePool.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptAutoreleasePool.h
deleted file mode 100644
index cc63664..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptAutoreleasePool.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - AutoreleasePool
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_AUTORELEASE_POOL_H_
-#define _NPT_AUTORELEASE_POOL_H_
-
-/*----------------------------------------------------------------------
-|   NPT_AutoreleasePoolInterface
-+---------------------------------------------------------------------*/
-class NPT_AutoreleasePoolInterface 
-{
-public:
-    virtual ~NPT_AutoreleasePoolInterface() {}
-};
-
-/*----------------------------------------------------------------------
-|   NPT_AutoreleasePool
-+---------------------------------------------------------------------*/
-class NPT_AutoreleasePool : public NPT_AutoreleasePoolInterface 
-{
-public:
-    NPT_AutoreleasePool();
-    virtual ~NPT_AutoreleasePool();
-
-private:
-    NPT_AutoreleasePoolInterface* m_Delegate;
-};
-
-#endif // _NPT_AUTORELEASE_POOL_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptBase64.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptBase64.h
deleted file mode 100644
index 89950de..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptBase64.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Base64
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-
-#ifndef _NPT_BASE64_H_
-#define _NPT_BASE64_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptDataBuffer.h"
-#include "NptStrings.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const NPT_Cardinal NPT_BASE64_MIME_BLOCKS_PER_LINE = 19;
-const NPT_Cardinal NPT_BASE64_PEM_BLOCKS_PER_LINE  = 16;
-
-/*----------------------------------------------------------------------
-|   NPT_Base64
-+---------------------------------------------------------------------*/
-class NPT_Base64 {
-public:
-    // class methods
-    static NPT_Result Decode(const char*     base64, 
-                             NPT_Size        size,
-                             NPT_DataBuffer& data,
-                             bool            url_safe = false);
-    static NPT_Result Encode(const NPT_Byte* data, 
-                             NPT_Size        size, 
-                             NPT_String&     base64, 
-                             NPT_Cardinal    max_blocks_per_line = 0, 
-                             bool            url_safe = false);
-
-private: 
-    // this class is purely static
-    NPT_Base64();
-};
-
-#endif // _NPT_BASE64_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptBufferedStreams.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptBufferedStreams.h
deleted file mode 100644
index 1c0e0d6..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptBufferedStreams.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Buffered Byte Stream
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_BUFFERED_STREAMS_H_
-#define _NPT_BUFFERED_STREAMS_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptStreams.h"
-#include "NptTypes.h"
-#include "NptConstants.h"
-#include "NptStrings.h"
-#include "NptDebug.h"
-
-/*----------------------------------------------------------------------
-|   NPT_BufferedStream
-+---------------------------------------------------------------------*/
-const NPT_Size NPT_BUFFERED_BYTE_STREAM_DEFAULT_SIZE = 4096;
-
-/*----------------------------------------------------------------------
-|   NPT_BufferedInputStream
-+---------------------------------------------------------------------*/
-class NPT_BufferedInputStream : public NPT_InputStream
-{
-public:
-    // constructors and destructor
-    NPT_BufferedInputStream(NPT_InputStreamReference& stream,
-                            NPT_Size buffer_size = NPT_BUFFERED_BYTE_STREAM_DEFAULT_SIZE);
-    virtual ~NPT_BufferedInputStream();
-
-    // methods
-    virtual NPT_Result ReadLine(NPT_String& line,
-                                NPT_Size    max_chars = 4096,
-                                bool        break_on_cr = false);
-    virtual NPT_Result ReadLine(char*     buffer, 
-                                NPT_Size  buffer_size,
-                                NPT_Size* chars_read = NULL,
-                                bool      break_on_cr = false);
-    virtual NPT_Result SetBufferSize(NPT_Size size, bool force = false);
-    virtual NPT_Result Peek(void*     buffer, 
-                            NPT_Size  bytes_to_read, 
-                            NPT_Size* bytes_read);
-                              
-    // NPT_InputStream methods
-    NPT_Result Read(void*     buffer, 
-                    NPT_Size  bytes_to_read, 
-                    NPT_Size* bytes_read = NULL);
-    NPT_Result Seek(NPT_Position offset);
-    NPT_Result Tell(NPT_Position& offset);
-    NPT_Result GetSize(NPT_LargeSize& size);
-    NPT_Result GetAvailable(NPT_LargeSize& available);
-
-protected:
-    // members
-    NPT_InputStreamReference m_Source;
-    NPT_Position             m_Position;
-    bool                     m_SkipNewline;
-    bool                     m_Eos;
-    struct {
-        NPT_Byte* data;
-        NPT_Size  offset;
-        NPT_Size  valid;
-        NPT_Size  size;
-    } m_Buffer;
-
-    // methods
-    virtual NPT_Result FillBuffer();
-    virtual NPT_Result ReleaseBuffer();
-};
-
-typedef NPT_Reference<NPT_BufferedInputStream> NPT_BufferedInputStreamReference;
-
-#endif // _NPT_BUFFERED_STREAMS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptCocoaMessageQueue.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptCocoaMessageQueue.h
deleted file mode 100644
index cd3e89b..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptCocoaMessageQueue.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*****************************************************************
-|
-|      Neptune - Cocoa Message Queue
-|
-|      (c) 2001-2008 Gilles Boccon-Gibod
-|      Author: Gilles Boccon-Gibod (bok at bok.net)
-|
-****************************************************************/
-
-#ifndef _NPT_COCOA_MESSAGE_QUEUE_
-#define _NPT_COCOA_MESSAGE_QUEUE_
-
-/*----------------------------------------------------------------------
-|       includes
-+---------------------------------------------------------------------*/
-#include "NptStrings.h"
-#include "NptMessaging.h"
-#include "NptSimpleMessageQueue.h"
-
-/*----------------------------------------------------------------------
-|       NPT_CocoaMessageQueue
-+---------------------------------------------------------------------*/
-class NPT_CocoaMessageQueue : public NPT_MessageQueue
-{
-public:
-    NPT_CocoaMessageQueue();
-    ~NPT_CocoaMessageQueue();
-
-    // NPT_MessageQueue methods
-    virtual NPT_Result QueueMessage(NPT_Message*        message,
-                                    NPT_MessageHandler* handler);
-    virtual NPT_Result PumpMessage(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE);
-
-    // methods
-    NPT_Result HandleMessage(NPT_Message* message, NPT_MessageHandler* handler);
-};
-
-#endif /* _NPT_COCOA_MESSAGE_QUEUE_ */
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptCommon.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptCommon.h
deleted file mode 100644
index 9137d31..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptCommon.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Common Definitions
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_COMMON_H_
-#define _NPT_COMMON_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptResults.h"
-
-/*----------------------------------------------------------------------
-|   NPT_ObjectDeleter
-+---------------------------------------------------------------------*/
-template <class T>
-class NPT_ObjectDeleter {
-public:
-    void operator()(T* object) const {
-        delete object;
-    }
-};
-
-/*----------------------------------------------------------------------
-|   NPT_ObjectComparator
-+---------------------------------------------------------------------*/
-template <class T>
-class NPT_ObjectComparator {
-public:
-    NPT_ObjectComparator(T& object) : m_Object(object) {}
-    bool operator()(const T& object) const {
-        return object == m_Object;
-    }
-private:
-    T& m_Object;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_ContainerFind
-+---------------------------------------------------------------------*/
-template <typename T, typename P>
-NPT_Result NPT_ContainerFind(T&                   container, 
-                             const P&             predicate, 
-                             typename T::Element& item, 
-                             NPT_Ordinal          n=0) 
-{
-    typename T::Iterator found = container.Find(predicate, n);
-    if (found) {
-        item = *found;
-        return NPT_SUCCESS;
-    } else {
-        return NPT_ERROR_NO_SUCH_ITEM;
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_ContainerFind
-+---------------------------------------------------------------------*/
-template <typename T, typename P>
-NPT_Result NPT_ContainerFind(T&                    container, 
-                             const P&              predicate, 
-                             typename T::Iterator& iter, 
-                             NPT_Ordinal           n=0) 
-{
-    iter = container.Find(predicate, n);
-    return iter?NPT_SUCCESS:NPT_ERROR_NO_SUCH_ITEM;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_UntilResultEquals
-+---------------------------------------------------------------------*/
-class NPT_UntilResultEquals
-{
-public:
-    // methods
-    NPT_UntilResultEquals(NPT_Result condition_result, 
-                          NPT_Result return_value = NPT_SUCCESS) :
-      m_ConditionResult(condition_result),
-      m_ReturnValue(return_value) {}
-    bool operator()(NPT_Result result, NPT_Result& return_value) const {
-        if (result == m_ConditionResult) {
-            return_value = m_ReturnValue;
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-private:
-    // members
-    NPT_Result m_ConditionResult;
-    NPT_Result m_ReturnValue;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_UntilResultNotEquals
-+---------------------------------------------------------------------*/
-class NPT_UntilResultNotEquals
-{
-public:
-    // methods
-    NPT_UntilResultNotEquals(NPT_Result condition_result) :
-      m_ConditionResult(condition_result) {}
-    bool operator()(NPT_Result result, NPT_Result& return_value) const {
-        if (result != m_ConditionResult) {
-            return_value = result;
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-private:
-    // members
-    NPT_Result m_ConditionResult;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_PropertyValue
-+---------------------------------------------------------------------*/
-class NPT_PropertyValue
-{
- public:
-    // typedefs
-    typedef enum {UNKNOWN, INTEGER, STRING} Type;
-
-    // methods
-    NPT_PropertyValue() : m_Type(UNKNOWN), m_Integer(0) {}
-    NPT_PropertyValue(int value)         : m_Type(INTEGER), m_Integer(value) {}
-    NPT_PropertyValue(const char* value) : m_Type(STRING),  m_String(value)  {}
-
-    // members
-    Type m_Type;
-    union {
-        int         m_Integer;
-        const char* m_String;
-    };
-};
-
-#endif // _NPT_COMMON_H_
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptConfig.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptConfig.h
deleted file mode 100644
index d51f67f..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptConfig.h
+++ /dev/null
@@ -1,353 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Configuration
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_CONFIG_H_
-#define _NPT_CONFIG_H_
-
-/*----------------------------------------------------------------------
-|   defaults
-+---------------------------------------------------------------------*/
-#define NPT_CONFIG_HAVE_ASSERT_H
-#define NPT_CONFIG_HAVE_STD_C
-#define NPT_CONFIG_HAVE_POSIX_TIME
-#define NPT_CONFIG_HAVE_ASSERT_H
-#define NPT_CONFIG_HAVE_STDLIB_H
-#define NPT_CONFIG_HAVE_STDIO_H
-#define NPT_CONFIG_HAVE_STDARG_H
-#define NPT_CONFIG_HAVE_STDINT_H
-#define NPT_CONFIG_HAVE_STRING_H
-#define NPT_CONFIG_HAVE_LIMITS_H
-
-/*----------------------------------------------------------------------
-|   standard C runtime
-+---------------------------------------------------------------------*/
-#if defined(NPT_CONFIG_HAVE_STD_C)
-#define NPT_CONFIG_HAVE_MALLOC
-#define NPT_CONFIG_HAVE_CALLOC
-#define NPT_CONFIG_HAVE_REALLOC
-#define NPT_CONFIG_HAVE_FREE
-#define NPT_CONFIG_HAVE_MEMCPY
-#define NPT_CONFIG_HAVE_MEMSET
-#define NPT_CONFIG_HAVE_MEMCMP
-#define NPT_CONFIG_HAVE_GETENV
-#define NPT_CONFIG_HAVE_SETENV
-#define NPT_CONFIG_HAVE_UNSETENV
-#define NPT_CONFIG_HAVE_READDIR_R
-#endif /* NPT_CONFIG_HAS_STD_C */
-
-#if defined(NPT_CONFIG_HAVE_POSIX_TIME)
-#define NPT_CONFIG_HAVE_GMTIME
-#define NPT_CONFIG_HAVE_GMTIME_R
-#define NPT_CONFIG_HAVE_LOCALTIME
-#define NPT_CONFIG_HAVE_LOCALTIME_R
-#endif
-
-#if defined(NPT_CONFIG_HAVE_STRING_H)
-#define NPT_CONFIG_HAVE_STRCMP
-#define NPT_CONFIG_HAVE_STRNCMP
-#define NPT_CONFIG_HAVE_STRDUP
-#define NPT_CONFIG_HAVE_STRLEN
-#define NPT_CONFIG_HAVE_STRCPY
-#define NPT_CONFIG_HAVE_STRNCPY
-#endif /* NPT_CONFIG_HAVE_STRING_H */
-
-#if defined(NPT_CONFIG_HAVE_STDIO_H)
-#define NPT_CONFIG_HAVE_SPRINTF
-#define NPT_CONFIG_HAVE_SNPRINTF
-#define NPT_CONFIG_HAVE_VSPRINTF
-#define NPT_CONFIG_HAVE_VSNPRINTF
-#endif /* NPT_CONFIG_HAVE_STDIO_H */
-
-#if defined(NPT_CONFIG_HAVE_LIMITS_H)
-#define NPT_CONFIG_HAVE_INT_MIN
-#define NPT_CONFIG_HAVE_INT_MAX
-#define NPT_CONFIG_HAVE_UINT_MAX
-#define NPT_CONFIG_HAVE_LONG_MIN
-#define NPT_CONFIG_HAVE_LONG_MAX
-#define NPT_CONFIG_HAVE_ULONG_MAX
-#endif
-
-/*----------------------------------------------------------------------
-|   standard C++ runtime
-+---------------------------------------------------------------------*/
-#define NPT_CONFIG_HAVE_NEW_H
-
-/*----------------------------------------------------------------------
-|   sockets
-+---------------------------------------------------------------------*/
-#define NPT_CONFIG_HAVE_SOCKADDR_SA_LEN
-
-/*----------------------------------------------------------------------
-|   platform specifics
-+---------------------------------------------------------------------*/
-/* Windows 32 */
-#if defined(_WIN32) || defined(_XBOX)
-#if !defined(STRICT)
-#define STRICT
-#endif
-#endif
-
-/* XBox */
-#if defined(_XBOX)
-#define NPT_CONFIG_THREAD_STACK_SIZE 0x10000
-#endif
-
-/* QNX */
-#if defined(__QNX__)
-#define NPT_CONFIG_HAVE_GETADDRINFO
-#endif
-
-/* cygwin */
-#if defined(__CYGWIN__)
-#undef NPT_CONFIG_HAVE_SOCKADDR_SA_LEN
-#endif
-
-/* linux */
-#if defined(__linux__)
-#define NPT_CONFIG_HAVE_GETADDRINFO
-#undef NPT_CONFIG_HAVE_SOCKADDR_SA_LEN
-#endif
-
-/* symbian */
-#if defined(__SYMBIAN32__)
-/* If defined, specify the stack size of each NPT_Thread. */
-#define NPT_CONFIG_THREAD_STACK_SIZE   0x14000
-#endif
-
-/* android */
-#if defined(ANDROID)
-#define NPT_CONFIG_HAVE_GETADDRINFO
-#undef NPT_CONFIG_HAVE_SOCKADDR_SA_LEN
-#endif
-
-/* OSX and iOS */
-#if defined(__APPLE__)
-#define NPT_CONFIG_HAVE_GETADDRINFO
-#define NPT_CONFIG_HAVE_AUTORELEASE_POOL
-#define NPT_CONFIG_HAVE_SYSTEM_LOG_CONFIG
-#endif
-
-/*----------------------------------------------------------------------
-|   compiler specifics
-+---------------------------------------------------------------------*/
-/* GCC */
-#if defined(__GNUC__)
-#define NPT_LocalFunctionName __FUNCTION__
-#define NPT_COMPILER_UNUSED(p) (void)p
-#else
-#define NPT_COMPILER_UNUSED(p) 
-#endif
-
-/* TriMedia C/C++ Compiler */
-#if defined(__TCS__)
-#undef NPT_CONFIG_HAVE_ASSERT_H
-#undef NPT_CONFIG_HAVE_SNPRINTF
-#undef NPT_CONFIG_HAVE_VSNPRINTF
-#endif
-
-/* palmos compiler */
-#if defined(__PALMOS__)
-#if __PALMOS__ <= 0x05000000
-#undef NPT_CONFIG_HAVE_ASSERT_H
-#undef NPT_CONFIG_HAVE_SNPRINTF
-#undef NPT_CONFIG_HAVE_VSNPRINTF
-#endif
-#endif
-
-/* Microsoft C/C++ Compiler */
-#if defined(_MSC_VER)
-#undef NPT_CONFIG_HAVE_STDINT_H
-#define NPT_CONFIG_HAVE_GETADDRINFO
-#define NPT_CONFIG_STAT_ST_CTIME_IS_ST_BIRTHTIME
-#define NPT_FORMAT_64 "I64"
-#define NPT_CONFIG_INT64_TYPE __int64
-#define NPT_INT64_MIN _I64_MIN
-#define NPT_INT64_MAX _I64_MAX
-#define NPT_UINT64_MAX _UI64_MAX
-#define NPT_INT64_C(_x) _x##i64
-#define NPT_UINT64_C(_x) _x##ui64
-#define NPT_LocalFunctionName __FUNCTION__
-#if !defined(_WIN32_WCE)
-#define NPT_fseek _fseeki64
-#define NPT_ftell _ftelli64
-#else
-#define NPT_fseek(a,b,c) fseek((a),(long)(b), (c))
-#define NPT_ftell ftell
-#endif
-#define NPT_stat  NPT_stat_utf8
-#define NPT_stat_struct struct __stat64
-#if defined(_WIN64)
-typedef __int64 NPT_PointerLong;
-#else
-#if _MSC_VER >= 1400
-typedef __w64 long NPT_PointerLong;
-#else
-typedef long NPT_PointerLong;
-#endif
-#endif
-#define NPT_POINTER_TO_LONG(_p) ((NPT_PointerLong) (_p) )
-#if _MSC_VER >= 1400 && !defined(_WIN32_WCE)
-#define gmtime_r(a,b) gmtime_s(a,b)
-#define localtime_r(a,b) localtime_s(b,a)
-#define NPT_CONFIG_HAVE_FOPEN_S
-#define NPT_CONFIG_HAVE_FSOPEN
-#define NPT_CONFIG_HAVE_SHARE_H
-#define NPT_vsnprintf(s,c,f,a)  _vsnprintf_s(s,c,_TRUNCATE,f,a)
-#define NPT_snprintf(s,c,f,...) _snprintf_s(s,c,_TRUNCATE,f,__VA_ARGS__)
-#define NPT_strncpy(d,s,c)       strncpy_s(d,c+1,s,c)
-#define NPT_strcpy(d,s)          strcpy_s(d,strlen(s)+1,s)
-#undef NPT_CONFIG_HAVE_GETENV
-#define NPT_CONFIG_HAVE_DUPENV_S
-#define dupenv_s _dupenv_s
-#undef NPT_CONFIG_HAVE_SETENV
-#undef NPT_CONFIG_HAVE_UNSETENV
-#define NPT_CONFIG_HAVE_PUTENV_S
-#define putenv_s _putenv_s
-#else
-#undef NPT_CONFIG_HAVE_GMTIME_R
-#undef NPT_CONFIG_HAVE_LOCALTIME_R
-#define NPT_vsnprintf  _vsnprintf
-#define NPT_snprintf   _snprintf
-#endif
-#if defined(_DEBUG)
-#define _CRTDBG_MAP_ALLOC
-#endif
-#endif
-
-/* Windows CE */
-#if defined(_WIN32_WCE)
-#if defined(NPT_CONFIG_HAVE_FOPEN_S)
-#undef NPT_CONFIG_HAVE_FOPEN_S
-#endif
-#endif
-
-/* Symbian */
-#if defined(__SYMBIAN32__)
-#undef NPT_CONFIG_HAVE_NEW_H
-#include "e32std.h"
-#define explicit
-#define NPT_fseek fseek  // no fseeko ?
-#define NPT_ftell ftell  // no ftello ?
-#endif
-
-/* Android */
-#if defined(ANDROID)
-#if !defined(NPT_CONFIG_NO_RTTI)
-#define NPT_CONFIG_NO_RTTI
-#endif
-#endif
-
-/* OSX and iOS */
-#if defined(__APPLE__)
-#include <TargetConditionals.h>
-#include <AvailabilityMacros.h>
-#define NPT_CONFIG_HAVE_NET_IF_DL_H
-#define NPT_CONFIG_HAVE_SOCKADDR_DL
-#if !defined(TARGET_OS_IPHONE) || !TARGET_OS_IPHONE
-#define NPT_CONFIG_HAVE_NET_IF_TYPES_H
-#if defined(MAC_OS_X_VERSION_10_6) && (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6)
-#define NPT_CONFIG_HAVE_STAT_ST_BIRTHTIME
-#endif
-#define NPT_CONFIG_HAVE_DEV_URANDOM
-#endif
-#endif
-
-/*----------------------------------------------------------------------
-|   defaults
-+---------------------------------------------------------------------*/
-#if !defined(NPT_FORMAT_64)
-#define NPT_FORMAT_64 "ll"
-#endif
-
-#if !defined(NPT_POINTER_TO_LONG)
-#define NPT_POINTER_TO_LONG(_p) ((long)(_p))
-#endif
-
-#if !defined(NPT_CONFIG_INT64_TYPE)
-#define NPT_CONFIG_INT64_TYPE long long
-#endif
-
-#if !defined(NPT_INT64_C)
-#define NPT_INT64_C(_x) _x##LL
-#endif
-
-#if !defined(NPT_UINT64_C)
-#define NPT_UINT64_C(_x) _x##ULL
-#endif
-
-#if !defined(NPT_snprintf)
-#define NPT_snprintf snprintf
-#endif
-
-#if !defined(NPT_strcpy)
-#define NPT_strcpy strcpy
-#endif
-
-#if !defined(NPT_strncpy)
-#define NPT_strncpy strncpy
-#endif
-
-#if !defined(NPT_vsnprintf)
-#define NPT_vsnprintf vsnprintf
-#endif
-
-#if !defined(NPT_LocalFunctionName)
-#define NPT_LocalFunctionName (NULL)
-#endif
-
-#if !defined(NPT_CONFIG_THREAD_STACK_SIZE)
-#define NPT_CONFIG_THREAD_STACK_SIZE 0
-#endif
-
-#if !defined(NPT_fseek)
-#define NPT_fseek fseeko
-#endif
-
-#if !defined(NPT_ftell)
-#define NPT_ftell ftello
-#endif
-
-#if !defined(NPT_stat)
-#define NPT_stat stat
-#endif
-
-#if !defined(NPT_stat_struct)
-#define NPT_stat_struct struct stat
-#endif
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#if defined(DMALLOC)
-#include <dmalloc.h>
-#endif
-
-#endif // _NPT_CONFIG_H_ 
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptConsole.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptConsole.h
deleted file mode 100644
index 6502a79..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptConsole.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Console
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-/** @file
-* Header file for console support
-*/
-
-#ifndef _NPT_CONSOLE_H_
-#define _NPT_CONSOLE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptResults.h"
-
-/*----------------------------------------------------------------------
-|   prototypes
-+---------------------------------------------------------------------*/
-class NPT_Console {
-public:
-    // class methods
-    static void Output(const char* message);
-    static void OutputF(const char* format, ...);
-};
-
-
-#endif /* _NPT_CONSOLE_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptConstants.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptConstants.h
deleted file mode 100644
index 6618bf8..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptConstants.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Constants
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_CONSTANTS_H_
-#define _NPT_CONSTANTS_H_
-
-/*----------------------------------------------------------------------
-|   constants       
-+---------------------------------------------------------------------*/
-#ifndef NULL
-#define NULL 0
-#endif
-
-const int NPT_TIMEOUT_INFINITE = -1;
-
-#endif // _NPT_CONSTANTS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptCrypto.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptCrypto.h
deleted file mode 100644
index 04eb58f..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptCrypto.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Crypto
-|
-| Copyright (c) 2002-2010, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_CRYPTO_H_
-#define _NPT_CRYPTO_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptDataBuffer.h"
-
-/*----------------------------------------------------------------------
-|   NPT_BlockCipher
-+---------------------------------------------------------------------*/
-class NPT_BlockCipher {
-public:
-    // types
-    typedef enum {
-        AES_128
-    } Algorithm;
-    
-    typedef enum {
-        ENCRYPT,
-        DECRYPT
-    } Direction;
-    
-    // factory
-    static NPT_Result Create(Algorithm         algorithm, 
-                             Direction         direction,
-                             const NPT_UInt8*  key,
-                             NPT_Size          key_size,
-                             NPT_BlockCipher*& cipher);
-    
-    // methods
-    virtual           ~NPT_BlockCipher() {}
-    virtual NPT_Size   GetBlockSize() = 0;
-    virtual Direction  GetDirection() = 0;
-    virtual Algorithm  GetAlgorithm() = 0;
-    virtual NPT_Result ProcessBlock(const NPT_UInt8* input, NPT_UInt8* output) = 0;
-    /**
-     * @param iv Initial vector (same size as cipher block size), or NULL for an IV made up of all zeros.
-     */
-    virtual NPT_Result ProcessCbc(const NPT_UInt8* input, NPT_Size input_size, const NPT_UInt8* iv, NPT_DataBuffer& output);
-    
-protected:
-    NPT_BlockCipher() {} // don't instantiate directly
-};
-
-#endif // _NPT_CRYPTO_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDataBuffer.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDataBuffer.h
deleted file mode 100644
index 7e57c01..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDataBuffer.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Datagram Packets
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_DATA_BUFFER_H_
-#define _NPT_DATA_BUFFER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptConstants.h"
-
-/*----------------------------------------------------------------------
-|   NPT_DataBuffer
-+---------------------------------------------------------------------*/
-class NPT_DataBuffer 
-{
- public:
-    // constructors & destructor
-    NPT_DataBuffer();              // size unknown until first set 
-    NPT_DataBuffer(NPT_Size size); // initial size specified
-    NPT_DataBuffer(const void* data, NPT_Size size, bool copy = true); // initial data and size specified
-    NPT_DataBuffer(const NPT_DataBuffer& other);
-    virtual ~NPT_DataBuffer();
-
-    // operators
-    NPT_DataBuffer& operator=(const NPT_DataBuffer& copy);
-    bool            operator==(const NPT_DataBuffer& other) const;
-
-    // data buffer handling methods
-    virtual NPT_Result SetBuffer(NPT_Byte* buffer, NPT_Size bufferSize);
-    virtual NPT_Result SetBufferSize(NPT_Size bufferSize);
-    virtual NPT_Size   GetBufferSize() const { return m_BufferSize; }
-    virtual NPT_Result Reserve(NPT_Size size);
-    virtual NPT_Result Clear();
-
-    // data handling methods
-    virtual const NPT_Byte* GetData() const { return m_Buffer; }
-    virtual NPT_Byte*       UseData() { return m_Buffer; };
-    virtual NPT_Size        GetDataSize() const { return m_DataSize; }
-    virtual NPT_Result      SetDataSize(NPT_Size size);
-    virtual NPT_Result      SetData(const NPT_Byte* data, NPT_Size dataSize);
-
- protected:
-    // members
-    bool      m_BufferIsLocal;
-    NPT_Byte* m_Buffer;
-    NPT_Size  m_BufferSize;
-    NPT_Size  m_DataSize;
-
-    // methods
-    NPT_Result ReallocateBuffer(NPT_Size size);
-};
-
-#endif // _NPT_DATA_BUFFER_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDebug.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDebug.h
deleted file mode 100644
index d4973a2..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDebug.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Debug Utilities
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_DEBUG_H_
-#define _NPT_DEBUG_H_
-
-/*----------------------------------------------------------------------
-|    includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-
-/*----------------------------------------------------------------------
-|    standard macros
-+---------------------------------------------------------------------*/
-#if defined(NPT_CONFIG_HAVE_ASSERT_H) && defined(NPT_DEBUG)
-#include <assert.h>
-#define NPT_ASSERT(x) assert(x)
-#else
-#define NPT_ASSERT(x) ((void)0)
-#endif
-
-/*----------------------------------------------------------------------
-|   NPT_Debug
-+---------------------------------------------------------------------*/
-extern void NPT_Debug(const char* format, ...);
-extern void NPT_DebugOutput(const char* message);
-
-#endif // _NPT_DEBUG_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDefs.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDefs.h
deleted file mode 100644
index e69de29..0000000
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDigest.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDigest.h
deleted file mode 100644
index 85b744c..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDigest.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Message Digests
-|
-| Copyright (c) 2002-2010, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_DIGEST_H_
-#define _NPT_DIGEST_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptDataBuffer.h"
-
-/*----------------------------------------------------------------------
-|   NPT_Digest
-+---------------------------------------------------------------------*/
-class NPT_Digest {
-public:
-    // types
-    typedef enum {
-        ALGORITHM_SHA1,
-        ALGORITHM_SHA256,
-        ALGORITHM_MD5
-    } Algorithm;
-    
-    // factory
-    static NPT_Result Create(Algorithm algorithm, NPT_Digest*& digest);
-    
-    // methods
-    virtual             ~NPT_Digest() {}
-    virtual unsigned int GetSize() = 0;
-    virtual NPT_Result   Update(const NPT_UInt8* data, NPT_Size data_size) = 0;
-    virtual NPT_Result   GetDigest(NPT_DataBuffer& digest) = 0;
-
-protected:
-    NPT_Digest() {} // don't instantiate directly
-};
-
-class NPT_Hmac {
-public:
-    static NPT_Result Create(NPT_Digest::Algorithm algorithm,
-                             const NPT_UInt8*      key,
-                             NPT_Size              key_size, 
-                             NPT_Digest*&          digest);
-
-private:
-    // methods
-    NPT_Hmac() {} // don't instantiate
-};
-
-#endif // _NPT_DIGEST_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDynamicCast.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDynamicCast.h
deleted file mode 100644
index 0acab88..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDynamicCast.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Dynamic Cast Support
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_DYNAMIC_CAST_H_
-#define _NPT_DYNAMIC_CAST_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptCommon.h"
-#include "NptResults.h"
-#include "NptConfig.h"
-
-/*----------------------------------------------------------------------
-|   macros
-+---------------------------------------------------------------------*/
-#if defined(NPT_CONFIG_NO_RTTI)
-#define NPT_DYNAMIC_CAST(_class,_object) \
-( ((_object)==0) ? 0 : reinterpret_cast<_class*>((_object)->DynamicCast(&_class::_class_##_class)) )
-#define NPT_IMPLEMENT_DYNAMIC_CAST(_class)              \
-static int _class_##_class;                             \
-virtual void* DynamicCast(const void* class_anchor) {   \
-    if (class_anchor ==  &_class::_class_##_class) {    \
-        return static_cast<_class*>(this);              \
-    }                                                   \
-    return NULL;                                        \
-}
-#define NPT_IMPLEMENT_DYNAMIC_CAST_D(_class,_superclass)\
-static int _class_##_class;                             \
-virtual void* DynamicCast(const void* class_anchor) {   \
-    if (class_anchor ==  &_class::_class_##_class) {    \
-        return static_cast<_class*>(this);              \
-    } else {                                            \
-        return _superclass::DynamicCast(class_anchor);  \
-    }                                                   \
-}
-#define NPT_IMPLEMENT_DYNAMIC_CAST_D2(_class,_superclass,_mixin)\
-static int _class_##_class;                                     \
-virtual void* DynamicCast(const void* class_anchor) {           \
-    if (class_anchor ==  &_class::_class_##_class) {            \
-        return static_cast<_class*>(this);                      \
-    } else {                                                    \
-        void* sup = _superclass::DynamicCast(class_anchor);     \
-        if (sup) return sup;                                    \
-        return _mixin::DynamicCast(class_anchor);               \
-    }                                                           \
-}
-#define NPT_DEFINE_DYNAMIC_CAST_ANCHOR(_class) int _class::_class_##_class = 0;
-
-#else
-
-#define NPT_DYNAMIC_CAST(_class,_object) dynamic_cast<_class*>(_object)
-#define NPT_IMPLEMENT_DYNAMIC_CAST(_class)
-#define NPT_IMPLEMENT_DYNAMIC_CAST_D(_class,_superclass)
-#define NPT_IMPLEMENT_DYNAMIC_CAST_D2(_class,_superclass,_mixin)
-#define NPT_DEFINE_DYNAMIC_CAST_ANCHOR(_class)
-
-#endif
-
-#endif // _NPT_DYNAMIC_CAST_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDynamicLibraries.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDynamicLibraries.h
deleted file mode 100644
index 4a2751e..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptDynamicLibraries.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Dynamic Libraries
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_DYNAMIC_LIBRARIES_H_
-#define _NPT_DYNAMIC_LIBRARIES_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#define NPT_DYANMIC_LIBRARY_LOAD_FLAG_NOW 1
-
-/*----------------------------------------------------------------------
-|   NPT_DynamicLibraryInterface
-+---------------------------------------------------------------------*/
-class NPT_DynamicLibraryInterface
-{
-public:
-    virtual ~NPT_DynamicLibraryInterface() {}
-    virtual NPT_Result FindSymbol(const char* name, void*& symbol) = 0;
-    virtual NPT_Result Unload() = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_DynamicLibrary
-+---------------------------------------------------------------------*/
-class NPT_DynamicLibrary : public NPT_DynamicLibraryInterface
-{
-public:
-    // class methods
-    static NPT_Result Load(const char* name, NPT_Flags flags, NPT_DynamicLibrary*& library);
-    
-    // destructor
-    ~NPT_DynamicLibrary() { delete m_Delegate; }
-    
-    // NPT_DynamicLibraryInterface methods
-    virtual NPT_Result FindSymbol(const char* name, void*& symbol) {
-        return m_Delegate->FindSymbol(name, symbol);
-    }
-    virtual NPT_Result Unload() {
-        return m_Delegate->Unload();
-    }
-    
-private:
-    // methods
-    NPT_DynamicLibrary(NPT_DynamicLibraryInterface* delegate) : m_Delegate(delegate) {}
-    
-    // members
-    NPT_DynamicLibraryInterface* m_Delegate;
-};
-
-#endif // _NPT_DYNAMIC_LIBRARIES_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptFile.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptFile.h
deleted file mode 100644
index e93bb2b..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptFile.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Files
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_FILE_H_
-#define _NPT_FILE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptStreams.h"
-#include "NptTime.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_NO_SUCH_FILE          = NPT_ERROR_BASE_FILE - 0;
-const int NPT_ERROR_FILE_NOT_OPEN         = NPT_ERROR_BASE_FILE - 1;
-const int NPT_ERROR_FILE_BUSY             = NPT_ERROR_BASE_FILE - 2;
-const int NPT_ERROR_FILE_ALREADY_OPEN     = NPT_ERROR_BASE_FILE - 3;
-const int NPT_ERROR_FILE_NOT_READABLE     = NPT_ERROR_BASE_FILE - 4;
-const int NPT_ERROR_FILE_NOT_WRITABLE     = NPT_ERROR_BASE_FILE - 5;
-const int NPT_ERROR_FILE_NOT_DIRECTORY    = NPT_ERROR_BASE_FILE - 6;
-const int NPT_ERROR_FILE_ALREADY_EXISTS   = NPT_ERROR_BASE_FILE - 7;
-const int NPT_ERROR_FILE_NOT_ENOUGH_SPACE = NPT_ERROR_BASE_FILE - 8;
-const int NPT_ERROR_DIRECTORY_NOT_EMPTY   = NPT_ERROR_BASE_FILE - 9;
-
-/**
- * File open modes.
- * Use a combination of these flags to indicate how a file should be opened 
- * Note all combinations of flags are valid or meaningful:
- * If NPT_FILE_OPEN_MODE_WRITE is not set, then NPT_FILE_OPEN_MODE_CREATE, 
- * NPT_FILE_OPEN_MODE_TRUNCATE and NPT_FILE_OPEN_MODE_APPEND are ignored.
- * If NPT_FILE_OPEN_MODE_APPEND is set, then NPT_FILE_OPEN_MODE_CREATE is
- * automatically implied whether it is set or not.
- * NPT_FILE_OPEN_MODE_CREATE and NPT_FILE_OPEN_MODE_TRUNCATE imply each
- * other (if one is set, the other one is automatically implied)
- */
-const unsigned int NPT_FILE_OPEN_MODE_READ       = 0x01;
-const unsigned int NPT_FILE_OPEN_MODE_WRITE      = 0x02;
-const unsigned int NPT_FILE_OPEN_MODE_CREATE     = 0x04;
-const unsigned int NPT_FILE_OPEN_MODE_TRUNCATE   = 0x08;
-const unsigned int NPT_FILE_OPEN_MODE_UNBUFFERED = 0x10;
-const unsigned int NPT_FILE_OPEN_MODE_APPEND     = 0x20;
-
-const unsigned int NPT_FILE_ATTRIBUTE_READ_ONLY = 0x01;
-const unsigned int NPT_FILE_ATTRIBUTE_LINK      = 0x02;
-
-#define NPT_FILE_STANDARD_INPUT  "@STDIN"
-#define NPT_FILE_STANDARD_OUTPUT "@STDOUT"
-#define NPT_FILE_STANDARD_ERROR  "@STDERR"
-
-/*----------------------------------------------------------------------
-|   class references
-+---------------------------------------------------------------------*/
-class NPT_DataBuffer;
-
-/*----------------------------------------------------------------------
-|   NPT_FileInfo
-+---------------------------------------------------------------------*/
-struct NPT_FileInfo
-{
-    // types
-    typedef enum {
-        FILE_TYPE_NONE,
-        FILE_TYPE_REGULAR,
-        FILE_TYPE_DIRECTORY,
-        FILE_TYPE_SPECIAL,
-        FILE_TYPE_OTHER
-    } FileType;
-    
-    // constructor
-    NPT_FileInfo() : m_Type(FILE_TYPE_NONE), m_Size(0), m_AttributesMask(0), m_Attributes(0) {}
-    
-    // members
-    FileType      m_Type;
-    NPT_UInt64    m_Size;
-    NPT_Flags     m_AttributesMask;
-    NPT_Flags     m_Attributes;
-    NPT_TimeStamp m_CreationTime;
-    NPT_TimeStamp m_ModificationTime;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_FilePath
-+---------------------------------------------------------------------*/
-class NPT_FilePath
-{
-public:
-    // class members
-    static const char* const Separator;
-
-    // class methods
-    static NPT_String BaseName(const char* path, bool with_extension = true);
-    static NPT_String DirName(const char* path);
-    static NPT_String FileExtension(const char* path);
-    static NPT_String Create(const char* directory, const char* base);
-    
-private:
-    NPT_FilePath() {} // this class can't have instances
-};
-
-/*----------------------------------------------------------------------
-|   NPT_FileInterface
-+---------------------------------------------------------------------*/
-class NPT_FileInterface
-{
-public:
-    // types
-    typedef unsigned int OpenMode;
-
-    // constructors and destructor
-    virtual ~NPT_FileInterface() {}
-
-    // methods
-    virtual NPT_Result Open(OpenMode mode) = 0;
-    virtual NPT_Result Close() = 0;
-    virtual NPT_Result GetInputStream(NPT_InputStreamReference& stream) = 0;
-    virtual NPT_Result GetOutputStream(NPT_OutputStreamReference& stream) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_File
-+---------------------------------------------------------------------*/
-class NPT_File : public NPT_FileInterface
-{
-public:
-    // class methods
-    static NPT_Result GetRoots(NPT_List<NPT_String>& roots);
-    static NPT_Result GetSize(const char* path, NPT_LargeSize &size);
-    static NPT_Result GetInfo(const char* path, NPT_FileInfo* info = NULL);
-    static bool       Exists(const char* path) { return NPT_SUCCEEDED(GetInfo(path)); }
-    static NPT_Result Remove(const char* path, bool recurse = false);
-    static NPT_Result RemoveFile(const char* path);
-    static NPT_Result RemoveDir(const char* path);
-    static NPT_Result RemoveDir(const char* path, bool force_if_not_empty);
-    static NPT_Result Rename(const char* from_path, const char* to_path);
-    static NPT_Result ListDir(const char* path, NPT_List<NPT_String>& entries, NPT_Ordinal start = 0, NPT_Cardinal count = 0);
-    static NPT_Result CreateDir(const char* path);
-    static NPT_Result CreateDir(const char* path, bool create_intermediate_dirs);
-    static NPT_Result GetWorkingDir(NPT_String& path);
-    static NPT_Result Load(const char* path, NPT_DataBuffer& buffer, NPT_FileInterface::OpenMode mode = NPT_FILE_OPEN_MODE_READ);
-    static NPT_Result Load(const char* path, NPT_String& data, NPT_FileInterface::OpenMode mode = NPT_FILE_OPEN_MODE_READ);
-    static NPT_Result Save(const char* path, NPT_String& data);
-    static NPT_Result Save(const char* path, const NPT_DataBuffer& buffer);
-    
-    // constructors and destructor
-    NPT_File(const char* path);
-   ~NPT_File() { delete m_Delegate; }
-
-    // methods
-    NPT_Result          Load(NPT_DataBuffer& buffer);
-    NPT_Result          Save(const NPT_DataBuffer& buffer);
-    const NPT_String&   GetPath() { return m_Path; }
-    NPT_Result          GetSize(NPT_LargeSize &size);
-    NPT_Result          GetInfo(NPT_FileInfo& info);
-    NPT_Result          ListDir(NPT_List<NPT_String>& entries);
-    NPT_Result          Rename(const char* path);
-    
-    // NPT_FileInterface methods
-    NPT_Result Open(OpenMode mode) {
-        return m_Delegate->Open(mode);
-    }
-    NPT_Result Close() {
-        return m_Delegate->Close();
-    }
-    NPT_Result GetInputStream(NPT_InputStreamReference& stream) {
-        return m_Delegate->GetInputStream(stream);
-    }
-    NPT_Result GetOutputStream(NPT_OutputStreamReference& stream) {
-        return m_Delegate->GetOutputStream(stream);
-    }
-
-    // operators
-    NPT_File& operator=(const NPT_File& file);
-
-protected:
-    // members
-    NPT_FileInterface* m_Delegate;
-    NPT_String         m_Path;
-    bool               m_IsSpecial;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_FileDateComparator
-+---------------------------------------------------------------------*/
-class NPT_FileDateComparator {
-public: 
-    NPT_FileDateComparator(const char* directory) : m_Directory(directory) {}
-    NPT_Int32 operator()(const NPT_String& file1, const NPT_String& file2) const {
-        NPT_FileInfo info1, info2;
-        if (NPT_FAILED(NPT_File::GetInfo(NPT_FilePath::Create(m_Directory, file1), &info1))) return -1;
-        if (NPT_FAILED(NPT_File::GetInfo(NPT_FilePath::Create(m_Directory, file2), &info2))) return -1;
-        return (info1.m_ModificationTime == info2.m_ModificationTime) ? 0 : (info1.m_ModificationTime < info2.m_ModificationTime ? -1 : 1);
-    }
-    
-private:
-    NPT_String m_Directory;
-};
-
-#endif // _NPT_FILE_H_ 
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptHash.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptHash.h
deleted file mode 100644
index d7b8776..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptHash.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Hashing
-|
-| Copyright (c) 2002-2010, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-
-#ifndef _NPT_HASH_H_
-#define _NPT_HASH_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptResults.h"
-
-/*----------------------------------------------------------------------
-|    Fowler/Noll/Vo FNV-1a hash functions
-+---------------------------------------------------------------------*/
-const NPT_UInt32 NPT_FNV1A_32_INIT = ((NPT_UInt32)0x811c9dc5);
-NPT_UInt32 NPT_Fnv1aHash32(const NPT_UInt8* data, NPT_Size data_size, NPT_UInt32 hash_init=NPT_FNV1A_32_INIT);
-NPT_UInt32 NPT_Fnv1aHashStr32(const char* data, NPT_UInt32 hash_init=NPT_FNV1A_32_INIT);
-const NPT_UInt64 NPT_FNV1A_64_INIT = ((NPT_UInt64)0xcbf29ce484222325ULL);
-NPT_UInt64 NPT_Fnv1aHash64(const NPT_UInt8* data, NPT_Size data_size, NPT_UInt64 hash_init=NPT_FNV1A_64_INIT);
-NPT_UInt64 NPT_Fnv1aHashStr64(const char* data, NPT_UInt64 hash_init=NPT_FNV1A_64_INIT);
-
-/*----------------------------------------------------------------------
-|   NPT_Hash
-+---------------------------------------------------------------------*/
-template <typename K>
-struct NPT_Hash
-{
-};
-
-template <>
-struct NPT_Hash<const char*>
-{
-    NPT_UInt32 operator()(const char* s) const { return NPT_Fnv1aHashStr32(s); }
-};
-
-template <>
-struct NPT_Hash<char*>
-{
-    NPT_UInt32 operator()(char* s) const { return NPT_Fnv1aHashStr32(s); }
-};
-
-template <>
-struct NPT_Hash<int>
-{
-    NPT_UInt32 operator()(int i) const { return NPT_Fnv1aHash32(reinterpret_cast<const NPT_UInt8*>(&i), sizeof(int)); }
-};
-
-template <>
-struct NPT_Hash<unsigned int>
-{
-    NPT_UInt32 operator()(unsigned int i) const { return NPT_Fnv1aHash32(reinterpret_cast<const NPT_UInt8*>(&i), sizeof(int)); }
-};
-
-#endif // _NPT_HASH_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptHttp.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptHttp.h
deleted file mode 100644
index 402d515..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptHttp.h
+++ /dev/null
@@ -1,861 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - HTTP Protocol
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_HTTP_H_
-#define _NPT_HTTP_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptUri.h"
-#include "NptTypes.h"
-#include "NptList.h"
-#include "NptBufferedStreams.h"
-#include "NptSockets.h"
-#include "NptMap.h"
-#include "NptDynamicCast.h"
-#include "NptVersion.h"
-#include "NptTime.h"
-#include "NptThreads.h"
-#include "NptAutomaticCleaner.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const unsigned int NPT_HTTP_DEFAULT_PORT  = 80;
-const unsigned int NPT_HTTPS_DEFAULT_PORT = 443;
-const unsigned int NPT_HTTP_INVALID_PORT  = 0;
-
-const NPT_Timeout  NPT_HTTP_CLIENT_DEFAULT_CONNECTION_TIMEOUT    = 30000;
-const NPT_Timeout  NPT_HTTP_CLIENT_DEFAULT_IO_TIMEOUT            = 30000;
-const NPT_Timeout  NPT_HTTP_CLIENT_DEFAULT_NAME_RESOLVER_TIMEOUT = 60000;
-const unsigned int NPT_HTTP_CLIENT_DEFAULT_MAX_REDIRECTS         = 20;
-
-const NPT_Timeout NPT_HTTP_SERVER_DEFAULT_CONNECTION_TIMEOUT    = NPT_TIMEOUT_INFINITE;
-const NPT_Timeout NPT_HTTP_SERVER_DEFAULT_IO_TIMEOUT            = 60000;
-
-const unsigned int NPT_HTTP_CONNECTION_MANAGER_MAX_CONNECTION_POOL_SIZE = 5;
-const unsigned int NPT_HTTP_CONNECTION_MANAGER_MAX_CONNECTION_AGE       = 50; // seconds
-const unsigned int NPT_HTTP_MAX_RECONNECTS                              = 10;
-const unsigned int NPT_HTTP_MAX_100_RESPONSES                           = 10;
-
-const int NPT_HTTP_PROTOCOL_MAX_LINE_LENGTH  = 8192;
-const int NPT_HTTP_PROTOCOL_MAX_HEADER_COUNT = 100;
-
-#define NPT_HTTP_PROTOCOL_1_0   "HTTP/1.0"
-#define NPT_HTTP_PROTOCOL_1_1   "HTTP/1.1"
-#define NPT_HTTP_METHOD_GET     "GET"
-#define NPT_HTTP_METHOD_HEAD    "HEAD"
-#define NPT_HTTP_METHOD_POST    "POST"
-#define NPT_HTTP_METHOD_PUT     "PUT"
-#define NPT_HTTP_METHOD_OPTIONS "OPTIONS"
-#define NPT_HTTP_METHOD_DELETE  "DELETE"
-#define NPT_HTTP_METHOD_TRACE   "TRACE"
-
-#define NPT_HTTP_HEADER_HOST                "Host"
-#define NPT_HTTP_HEADER_CONNECTION          "Connection"
-#define NPT_HTTP_HEADER_USER_AGENT          "User-Agent"
-#define NPT_HTTP_HEADER_SERVER              "Server"
-#define NPT_HTTP_HEADER_CONTENT_LENGTH      "Content-Length"
-#define NPT_HTTP_HEADER_CONTENT_TYPE        "Content-Type"
-#define NPT_HTTP_HEADER_CONTENT_ENCODING    "Content-Encoding"
-#define NPT_HTTP_HEADER_TRANSFER_ENCODING   "Transfer-Encoding"
-#define NPT_HTTP_HEADER_LOCATION            "Location"
-#define NPT_HTTP_HEADER_RANGE               "Range"
-#define NPT_HTTP_HEADER_CONTENT_RANGE       "Content-Range"
-#define NPT_HTTP_HEADER_COOKIE              "Cookie"
-#define NPT_HTTP_HEADER_ACCEPT_RANGES       "Accept-Ranges"
-#define NPT_HTTP_HEADER_CONTENT_RANGE       "Content-Range"
-#define NPT_HTTP_HEADER_AUTHORIZATION       "Authorization"
-
-#define NPT_HTTP_TRANSFER_ENCODING_CHUNKED  "chunked"
-
-
-const int NPT_ERROR_HTTP_INVALID_RESPONSE_LINE = NPT_ERROR_BASE_HTTP - 0;
-const int NPT_ERROR_HTTP_INVALID_REQUEST_LINE  = NPT_ERROR_BASE_HTTP - 1;
-const int NPT_ERROR_HTTP_NO_PROXY              = NPT_ERROR_BASE_HTTP - 2;
-const int NPT_ERROR_HTTP_INVALID_REQUEST       = NPT_ERROR_BASE_HTTP - 3;
-const int NPT_ERROR_HTTP_METHOD_NOT_SUPPORTED  = NPT_ERROR_BASE_HTTP - 4;
-const int NPT_ERROR_HTTP_TOO_MANY_REDIRECTS    = NPT_ERROR_BASE_HTTP - 5;
-const int NPT_ERROR_HTTP_TOO_MANY_RECONNECTS   = NPT_ERROR_BASE_HTTP - 6;
-const int NPT_ERROR_HTTP_CANNOT_RESEND_BODY    = NPT_ERROR_BASE_HTTP - 7;
-
-#define NPT_HTTP_LINE_TERMINATOR "\r\n"
-
-#if !defined(NPT_CONFIG_HTTP_DEFAULT_USER_AGENT)
-#define NPT_CONFIG_HTTP_DEFAULT_USER_AGENT "Neptune/" NPT_NEPTUNE_VERSION_STRING
-#endif
-
-/*----------------------------------------------------------------------
-|   types
-+---------------------------------------------------------------------*/
-typedef unsigned int NPT_HttpStatusCode;
-typedef NPT_UrlQuery NPT_HttpUrlQuery; // for backward compatibility
-
-/*----------------------------------------------------------------------
-|   NPT_HttpUrl
-+---------------------------------------------------------------------*/
-class NPT_HttpUrl : public NPT_Url {
-public:
-    // constructors
-    NPT_HttpUrl() {}
-    NPT_HttpUrl(const char* host, 
-                NPT_UInt16  port, 
-                const char* path,
-                const char* query = NULL,
-                const char* fragment = NULL);
-    NPT_HttpUrl(const char* url, bool ignore_scheme = false);
-
-    // methods
-    virtual NPT_String ToString(bool with_fragment = true) const;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpProtocol
-+---------------------------------------------------------------------*/
-class NPT_HttpProtocol
-{
-public:
-    // class methods
-    const char* GetStatusCodeString(NPT_HttpStatusCode status_code);
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpHeader
-+---------------------------------------------------------------------*/
-class NPT_HttpHeader {
-public:
-    // constructors and destructor
-    NPT_HttpHeader(const char* name, const char* value);
-    ~NPT_HttpHeader();
-
-    // methods
-    NPT_Result        Emit(NPT_OutputStream& stream) const;
-    const NPT_String& GetName()  const { return m_Name;  }
-    const NPT_String& GetValue() const { return m_Value; }
-    NPT_Result        SetName(const char* name);
-    NPT_Result        SetValue(const char* value);
-
-private:
-    // members
-    NPT_String m_Name;
-    NPT_String m_Value;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpHeaders
-+---------------------------------------------------------------------*/
-class NPT_HttpHeaders {
-public:
-    // constructors and destructor
-     NPT_HttpHeaders();
-    ~NPT_HttpHeaders();
-
-    // methods
-    NPT_Result Parse(NPT_BufferedInputStream& stream);
-    NPT_Result Emit(NPT_OutputStream& stream) const;
-    const NPT_List<NPT_HttpHeader*>& GetHeaders() const { return m_Headers; }
-    NPT_HttpHeader*   GetHeader(const char* name) const;
-    const NPT_String* GetHeaderValue(const char* name) const;
-    NPT_Result        SetHeader(const char* name, const char* value, bool replace=true);
-    NPT_Result        AddHeader(const char* name, const char* value);
-    NPT_Result        RemoveHeader(const char* name);
-
-private:
-    // members
-    NPT_List<NPT_HttpHeader*> m_Headers;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpEntity
-+---------------------------------------------------------------------*/
-class NPT_HttpEntity {
-public:
-    // constructors and destructor
-             NPT_HttpEntity();
-             NPT_HttpEntity(const NPT_HttpHeaders& headers);
-    virtual ~NPT_HttpEntity();
-
-    // methods
-    NPT_Result SetInputStream(const NPT_InputStreamReference& stream,
-                              bool update_content_length = false);
-    NPT_Result SetInputStream(const void* data, NPT_Size size);
-    NPT_Result SetInputStream(const NPT_String& string);
-    NPT_Result SetInputStream(const char* string);
-    NPT_Result GetInputStream(NPT_InputStreamReference& stream);
-    NPT_Result Load(NPT_DataBuffer& buffer);
-    NPT_Result SetHeaders(const NPT_HttpHeaders& headers);
-
-    // field access
-    NPT_Result        SetContentLength(NPT_LargeSize length);
-    NPT_Result        SetContentType(const char* type);
-    NPT_Result        SetContentEncoding(const char* encoding);
-    NPT_Result        SetTransferEncoding(const char* encoding);
-    NPT_LargeSize     GetContentLength()     { return m_ContentLength;   }
-    const NPT_String& GetContentType()       { return m_ContentType;     }
-    const NPT_String& GetContentEncoding()   { return m_ContentEncoding; }
-    const NPT_String& GetTransferEncoding()  { return m_TransferEncoding;}
-    bool              ContentLengthIsKnown() { return m_ContentLengthIsKnown; }
-
-private:
-    // members
-    NPT_InputStreamReference m_InputStream;
-    NPT_LargeSize            m_ContentLength;
-    NPT_String               m_ContentType;
-    NPT_String               m_ContentEncoding;
-    NPT_String               m_TransferEncoding;
-    bool                     m_ContentLengthIsKnown;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpMessage
-+---------------------------------------------------------------------*/
-class NPT_HttpMessage {
-public:
-    // constructors and destructor
-    virtual ~NPT_HttpMessage();
-
-    // methods
-    const NPT_String& GetProtocol() const { 
-        return m_Protocol; 
-    }
-    NPT_Result SetProtocol(const char* protocol) {
-        m_Protocol = protocol;
-        return NPT_SUCCESS;
-    }
-    NPT_HttpHeaders& GetHeaders() { 
-        return m_Headers;  
-    }
-    const NPT_HttpHeaders& GetHeaders() const { 
-        return m_Headers;  
-    }
-    NPT_Result SetEntity(NPT_HttpEntity* entity);
-    NPT_HttpEntity* GetEntity() {
-        return m_Entity;
-    }
-    NPT_HttpEntity* GetEntity() const {
-        return m_Entity;
-    }
-    virtual NPT_Result ParseHeaders(NPT_BufferedInputStream& stream);
-
-protected:
-    // constructors
-    NPT_HttpMessage(const char* protocol);
-
-    // members
-    NPT_String      m_Protocol;
-    NPT_HttpHeaders m_Headers;
-    NPT_HttpEntity* m_Entity;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpRequest
-+---------------------------------------------------------------------*/
-class NPT_HttpRequest : public NPT_HttpMessage {
-public:
-    // class methods
-    static NPT_Result Parse(NPT_BufferedInputStream& stream, 
-                            const NPT_SocketAddress* endpoint,
-                            NPT_HttpRequest*&        request);
-
-    // constructors and destructor
-    NPT_HttpRequest(const NPT_HttpUrl& url,
-                    const char*        method,
-                    const char*        protocol = NPT_HTTP_PROTOCOL_1_0);
-    NPT_HttpRequest(const char*        url,
-                    const char*        method,
-                    const char*        protocol = NPT_HTTP_PROTOCOL_1_0);
-    virtual ~NPT_HttpRequest();
-
-    // methods
-    const NPT_HttpUrl& GetUrl() const { return m_Url; }
-    NPT_HttpUrl&       GetUrl()       { return m_Url; }
-    NPT_Result         SetUrl(const char* url);
-    NPT_Result         SetUrl(const NPT_HttpUrl& url);
-    const NPT_String&  GetMethod() const { return m_Method; }
-    virtual NPT_Result Emit(NPT_OutputStream& stream, bool use_proxy=false) const;
-    
-protected:
-    // members
-    NPT_HttpUrl m_Url;
-    NPT_String  m_Method;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpResponse
-+---------------------------------------------------------------------*/
-class NPT_HttpResponse : public NPT_HttpMessage {
-public:
-    // class methods
-    static NPT_Result Parse(NPT_BufferedInputStream& stream, 
-                            NPT_HttpResponse*&       response);
-
-    // constructors and destructor
-             NPT_HttpResponse(NPT_HttpStatusCode status_code,
-                              const char*        reason_phrase,
-                              const char*        protocol = NPT_HTTP_PROTOCOL_1_0);
-    virtual ~NPT_HttpResponse();
-
-    // methods
-    NPT_Result         SetStatus(NPT_HttpStatusCode status_code,
-                                 const char*        reason_phrase,
-                                 const char*        protocol = NULL);
-    NPT_Result         SetProtocol(const char* protocol);
-    NPT_HttpStatusCode GetStatusCode() const { return m_StatusCode;   }
-    const NPT_String&  GetReasonPhrase() const { return m_ReasonPhrase; }
-    virtual NPT_Result Emit(NPT_OutputStream& stream) const;
-
-protected:
-    // members
-    NPT_HttpStatusCode m_StatusCode;
-    NPT_String         m_ReasonPhrase;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpProxyAddress
-+---------------------------------------------------------------------*/
-class NPT_HttpProxyAddress
-{
-public:
-    NPT_HttpProxyAddress() : m_Port(NPT_HTTP_INVALID_PORT) {}
-    NPT_HttpProxyAddress(const char* hostname, NPT_UInt16 port) :
-        m_HostName(hostname), m_Port(port) {}
-
-    const NPT_String& GetHostName() const { return m_HostName; } 
-    void              SetHostName(const char* hostname) { m_HostName = hostname; }
-    NPT_UInt16        GetPort() const { return m_Port; }
-    void              SetPort(NPT_UInt16 port) { m_Port = port; }
-
-private:
-    NPT_String m_HostName;
-    NPT_UInt16 m_Port;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpProxySelector
-+---------------------------------------------------------------------*/
-class NPT_HttpProxySelector
-{
-public:
-    // class methods
-    static NPT_HttpProxySelector* GetDefault();
-    static NPT_HttpProxySelector* GetSystemSelector();
-    
-    // methods
-    virtual ~NPT_HttpProxySelector() {};
-    virtual NPT_Result GetProxyForUrl(const NPT_HttpUrl& url, NPT_HttpProxyAddress& proxy) = 0;
-    
-private:
-    // class members
-    static NPT_HttpProxySelector* m_SystemDefault;
-};
-
-class NPT_HttpRequestContext;
-
-/*----------------------------------------------------------------------
-|   NPT_HttpClient
-+---------------------------------------------------------------------*/
-class NPT_HttpClient {
-public:
-    // types
-    struct Config {
-        Config() : m_ConnectionTimeout(  NPT_HTTP_CLIENT_DEFAULT_CONNECTION_TIMEOUT),
-                   m_IoTimeout(          NPT_HTTP_CLIENT_DEFAULT_CONNECTION_TIMEOUT),
-                   m_NameResolverTimeout(NPT_HTTP_CLIENT_DEFAULT_NAME_RESOLVER_TIMEOUT),
-                   m_MaxRedirects(       NPT_HTTP_CLIENT_DEFAULT_MAX_REDIRECTS),
-                   m_UserAgent(          NPT_CONFIG_HTTP_DEFAULT_USER_AGENT) {}
-        NPT_Timeout  m_ConnectionTimeout;
-        NPT_Timeout  m_IoTimeout;
-        NPT_Timeout  m_NameResolverTimeout;
-        NPT_Cardinal m_MaxRedirects;
-        NPT_String   m_UserAgent;
-    };
-    
-    class Connection {
-    public:
-        virtual ~Connection() {}
-        virtual NPT_InputStreamReference&  GetInputStream()  = 0;
-        virtual NPT_OutputStreamReference& GetOutputStream() = 0;
-        virtual NPT_Result                 GetInfo(NPT_SocketInfo& info) = 0;
-        virtual bool                       SupportsPersistence() { return false;                    }
-        virtual bool                       IsRecycled()          { return false;                    }
-        virtual NPT_Result                 Recycle()             { delete this; return NPT_SUCCESS; }
-        virtual NPT_Result                 Abort()               { return NPT_ERROR_NOT_IMPLEMENTED; }
-    };
-    
-    class Connector {
-    public:
-        virtual ~Connector() {}
-
-        virtual NPT_Result Connect(const NPT_HttpUrl&          url,
-                                   NPT_HttpClient&             client,
-                                   const NPT_HttpProxyAddress* proxy,
-                                   bool                        reuse, // whether we can reuse a connection or not
-                                   Connection*&                connection) = 0;
-        
-    protected:
-        NPT_Result TrackConnection(NPT_HttpClient& client,
-                                   Connection*     connection) { return client.TrackConnection(connection); }
-        Connector() {} // don't instantiate directly
-    };
-
-    // class methods
-    static NPT_Result WriteRequest(NPT_OutputStream& output_stream, 
-                                   NPT_HttpRequest&  request,
-                                   bool              should_persist,
-                                   bool			     use_proxy = false);
-    static NPT_Result ReadResponse(NPT_InputStreamReference&  input_stream,
-                                   bool                       should_persist,
-                                   bool                       expect_entity,
-                                   NPT_HttpResponse*&         response,
-                                   NPT_Reference<Connection>* cref = NULL);
-
-    /**
-     * @param connector Pointer to a connector instance, or NULL to use 
-     * the default (TCP) connector.
-     * @param transfer_ownership Boolean flag. If true, the NPT_HttpClient object
-     * becomes the owner of the passed Connector and will delete it when it is 
-     * itself deleted. If false, the caller keeps the ownership of the connector. 
-     * This flag is ignored if the connector parameter is NULL.
-     */
-    NPT_HttpClient(Connector* connector = NULL, bool transfer_ownership = true);
-
-    virtual ~NPT_HttpClient();
-
-    // methods
-    NPT_Result SendRequest(NPT_HttpRequest&        request,
-                           NPT_HttpResponse*&      response,
-                           NPT_HttpRequestContext* context = NULL);
-    NPT_Result Abort();
-    const Config& GetConfig() const { return m_Config; }
-    NPT_Result SetConfig(const Config& config);
-    NPT_Result SetProxy(const char* http_proxy_hostname, 
-                        NPT_UInt16  http_proxy_port,
-                        const char* https_proxy_hostname = NULL,
-                        NPT_UInt16  https_proxy_port = 0);
-    NPT_Result SetProxySelector(NPT_HttpProxySelector* selector);
-    NPT_Result SetConnector(Connector* connector);
-    NPT_Result SetTimeouts(NPT_Timeout connection_timeout,
-                           NPT_Timeout io_timeout,
-                           NPT_Timeout name_resolver_timeout);
-    NPT_Result SetUserAgent(const char* user_agent);
-    NPT_Result SetOptions(NPT_Flags options, bool on);
-    
-protected:
-    // methods
-    NPT_Result TrackConnection(Connection* connection);
-    NPT_Result SendRequestOnce(NPT_HttpRequest&        request,
-                               NPT_HttpResponse*&      response,
-                               NPT_HttpRequestContext* context = NULL);
-
-    // members
-    Config                 m_Config;
-    NPT_HttpProxySelector* m_ProxySelector;
-    bool                   m_ProxySelectorIsOwned;
-    Connector*             m_Connector;
-    bool                   m_ConnectorIsOwned;
-    NPT_Mutex              m_AbortLock;
-    bool                   m_Aborted;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpConnectionManager
-+---------------------------------------------------------------------*/
-class NPT_HttpConnectionManager : public NPT_Thread,
-                                  public NPT_AutomaticCleaner::Singleton
-{
-public:
-    // singleton management
-    static NPT_HttpConnectionManager* GetInstance();
-    
-    class Connection : public NPT_HttpClient::Connection 
-    {
-    public:
-        Connection(NPT_HttpConnectionManager& manager,
-                   NPT_SocketReference&       socket,
-                   NPT_InputStreamReference   input_stream,
-                   NPT_OutputStreamReference  output_stream);
-        virtual ~Connection();
-                   
-        // NPT_HttpClient::Connection methods
-        virtual NPT_InputStreamReference&  GetInputStream()      { return m_InputStream;           }
-        virtual NPT_OutputStreamReference& GetOutputStream()     { return m_OutputStream;          }
-        virtual NPT_Result                 GetInfo(NPT_SocketInfo& info) { return m_Socket->GetInfo(info); }
-        virtual bool                       SupportsPersistence() { return true;                    }
-        virtual bool                       IsRecycled()          { return m_IsRecycled;            }
-        virtual NPT_Result                 Recycle();
-        virtual NPT_Result                 Abort()               { return m_Socket->Cancel(); }
-
-        // members
-        NPT_HttpConnectionManager& m_Manager;
-        bool                       m_IsRecycled;
-        NPT_TimeStamp              m_TimeStamp;
-        NPT_SocketReference        m_Socket;
-        NPT_InputStreamReference   m_InputStream;
-        NPT_OutputStreamReference  m_OutputStream;
-    };
-    
-    // destructor
-    ~NPT_HttpConnectionManager();
-    
-    // methods
-    Connection* FindConnection(NPT_SocketAddress& address);
-    NPT_Result  Recycle(Connection* connection);
-    NPT_Result  Track(NPT_HttpClient* client, NPT_HttpClient::Connection* connection);
-    NPT_Result  AbortConnections(NPT_HttpClient* client);
-    
-    // class methods
-    static NPT_Result  Untrack(NPT_HttpClient::Connection* connection);
-    
-private:
-    typedef NPT_List<NPT_HttpClient::Connection*> ConnectionList;
-    
-    // class members
-    static NPT_HttpConnectionManager* Instance;
-    
-    // constructor
-    NPT_HttpConnectionManager();
-    
-    // NPT_Thread methods
-    void Run();
-    
-    // methods
-    NPT_Result      UntrackConnection(NPT_HttpClient::Connection* connection);
-    NPT_Result      Cleanup();
-
-    // members
-    NPT_Mutex             m_Lock;
-    NPT_Cardinal          m_MaxConnections;
-    NPT_Cardinal          m_MaxConnectionAge;
-    NPT_SharedVariable    m_Aborted;
-    NPT_List<Connection*> m_Connections;
-    NPT_Map<NPT_HttpClient*, ConnectionList> m_ClientConnections;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpRequestContext
-+---------------------------------------------------------------------*/
-class NPT_HttpRequestContext
-{
-public:
-    // constructor
-    NPT_HttpRequestContext() {}
-    NPT_HttpRequestContext(const NPT_SocketAddress* local_address,
-                           const NPT_SocketAddress* remote_address);
-                  
-    // methods
-    const NPT_SocketAddress& GetLocalAddress()  const { return m_LocalAddress;  }
-    const NPT_SocketAddress& GetRemoteAddress() const { return m_RemoteAddress; }
-    void SetLocalAddress(const NPT_SocketAddress& address) {
-        m_LocalAddress = address;
-    }
-    void SetRemoteAddress(const NPT_SocketAddress& address) {
-        m_RemoteAddress = address;
-    }
-    
-private:
-    // members
-    NPT_SocketAddress m_LocalAddress;
-    NPT_SocketAddress m_RemoteAddress;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpRequestHandler
-+---------------------------------------------------------------------*/
-class NPT_HttpRequestHandler 
-{
-public:
-    NPT_IMPLEMENT_DYNAMIC_CAST(NPT_HttpRequestHandler)
-
-    // destructor
-    virtual ~NPT_HttpRequestHandler() {}
-
-    // methods
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request,
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response) = 0;
-                                     
-    /**
-     * Override this method if you want to write the body yourself.
-     * The default implementation will simply write out the entity's
-     * input stream.
-     */
-    virtual NPT_Result SendResponseBody(const NPT_HttpRequestContext& context,
-                                        NPT_HttpResponse&             response,
-                                        NPT_OutputStream&             output);
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpStaticRequestHandler
-+---------------------------------------------------------------------*/
-class NPT_HttpStaticRequestHandler : public NPT_HttpRequestHandler
-{
-public:
-    // constructors
-    NPT_HttpStaticRequestHandler(const char* document, 
-                                 const char* mime_type = "text/html",
-                                 bool        copy = true);
-    NPT_HttpStaticRequestHandler(const void* data,
-                                 NPT_Size    size,
-                                 const char* mime_type = "text/html",
-                                 bool        copy = true);
-
-    // NPT_HttpRequestHandler methods
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request, 
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response);
-
-private:
-    NPT_String     m_MimeType;
-    NPT_DataBuffer m_Buffer;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpFileRequestHandler_FileTypeMap
-+---------------------------------------------------------------------*/
-typedef struct NPT_HttpFileRequestHandler_DefaultFileTypeMapEntry {
-    const char* extension;
-    const char* mime_type;
-} NPT_HttpFileRequestHandler_FileTypeMapEntry;
-
-/*----------------------------------------------------------------------
-|   NPT_HttpFileRequestHandler
-+---------------------------------------------------------------------*/
-class NPT_HttpFileRequestHandler : public NPT_HttpRequestHandler
-{
-public:
-    // constructors
-    NPT_HttpFileRequestHandler(const char* url_root,
-                               const char* file_root,
-                               bool        auto_dir = false,
-                               const char* auto_index = NULL);
-
-    // NPT_HttpRequestHandler methods
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request, 
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response);
-    
-    // class methods
-    static const char* GetDefaultContentType(const char* extension);
-    
-    // accessors
-    NPT_Map<NPT_String,NPT_String>& GetFileTypeMap() { return m_FileTypeMap; }
-    void SetDefaultMimeType(const char* mime_type) {
-        m_DefaultMimeType = mime_type;
-    }
-    void SetUseDefaultFileTypeMap(bool use_default) {
-        m_UseDefaultFileTypeMap = use_default;
-    }
-    
-    static NPT_Result SetupResponseBody(NPT_HttpResponse&         response,
-                                        NPT_InputStreamReference& stream,
-                                        const NPT_String*         range_spec = NULL);
-
-protected:
-    // methods
-    const char* GetContentType(const NPT_String& filename);
-
-private:
-    NPT_String                      m_UrlRoot;
-    NPT_String                      m_FileRoot;
-    NPT_Map<NPT_String, NPT_String> m_FileTypeMap;
-    NPT_String                      m_DefaultMimeType;
-    bool                            m_UseDefaultFileTypeMap;
-    bool                            m_AutoDir;
-    NPT_String                      m_AutoIndex;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpServer
-+---------------------------------------------------------------------*/
-class NPT_HttpServer {
-public:
-    // types
-    struct Config {
-        NPT_Timeout   m_ConnectionTimeout;
-        NPT_Timeout   m_IoTimeout;
-        NPT_IpAddress m_ListenAddress;
-        NPT_UInt16    m_ListenPort;
-        bool          m_ReuseAddress;
-    };
-
-    // constructors and destructor
-    NPT_HttpServer(NPT_UInt16 listen_port = NPT_HTTP_DEFAULT_PORT,
-                   bool       reuse_address = true);
-    NPT_HttpServer(NPT_IpAddress listen_address, 
-                   NPT_UInt16    listen_port = NPT_HTTP_DEFAULT_PORT,
-                   bool          reuse_address = true);
-    virtual ~NPT_HttpServer();
-
-    // methods
-    NPT_Result SetConfig(const Config& config);
-    const Config& GetConfig() const { return m_Config; }
-    NPT_Result SetListenPort(NPT_UInt16 port, bool reuse_address = true);
-    NPT_Result SetTimeouts(NPT_Timeout connection_timeout, NPT_Timeout io_timeout);
-    NPT_Result SetServerHeader(const char* server_header);
-    NPT_Result Abort();
-    NPT_Result WaitForNewClient(NPT_InputStreamReference&  input,
-                                NPT_OutputStreamReference& output,
-                                NPT_HttpRequestContext*    context,
-                                NPT_Flags                  socket_flags = 0);
-    NPT_Result Loop(bool cancellable_sockets=true);
-    NPT_UInt16 GetPort() { return m_BoundPort; }
-    void Terminate();
-    
-    /**
-     * Add a request handler. By default the ownership of the handler is NOT transfered to this object,
-     * so the caller is responsible for the lifetime management of the handler object.
-     */
-    virtual NPT_Result AddRequestHandler(NPT_HttpRequestHandler* handler, 
-                                         const char*             path, 
-                                         bool                    include_children = false,
-                                         bool                    transfer_ownership = false);
-    virtual NPT_HttpRequestHandler* FindRequestHandler(NPT_HttpRequest& request);
-    virtual NPT_List<NPT_HttpRequestHandler*> FindRequestHandlers(NPT_HttpRequest& request);
-
-    /**
-     * Parse the request from a new client, form a response, and send it back. 
-     */
-    virtual NPT_Result RespondToClient(NPT_InputStreamReference&     input,
-                                       NPT_OutputStreamReference&    output,
-                                       const NPT_HttpRequestContext& context);
-
-protected:
-    // types
-    struct HandlerConfig {
-        HandlerConfig(NPT_HttpRequestHandler* handler,
-                      const char*             path,
-                      bool                    include_children,
-                      bool                    transfer_ownership = false);
-        ~HandlerConfig();
-
-        // methods
-        bool WillHandle(NPT_HttpRequest& request);
-
-        // members
-        NPT_HttpRequestHandler* m_Handler;
-        NPT_String              m_Path;
-        bool                    m_IncludeChildren;
-        bool                    m_HandlerIsOwned;
-    };
-
-    // methods
-    NPT_Result Bind();
-
-    // members
-    NPT_TcpServerSocket      m_Socket;
-    NPT_UInt16               m_BoundPort;
-    Config                   m_Config;
-    NPT_List<HandlerConfig*> m_RequestHandlers;
-    NPT_String               m_ServerHeader;
-    bool                     m_Run;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpResponder
-+---------------------------------------------------------------------*/
-class NPT_HttpResponder {
-public:
-    // types
-    struct Config {
-        NPT_Timeout m_IoTimeout;
-    };
-
-    // constructors and destructor
-    NPT_HttpResponder(NPT_InputStreamReference&  input,
-                      NPT_OutputStreamReference& output);
-    virtual ~NPT_HttpResponder();
-
-    // methods
-    NPT_Result SetConfig(const Config& config);
-    NPT_Result SetTimeout(NPT_Timeout io_timeout);
-    NPT_Result ParseRequest(NPT_HttpRequest*&        request,
-                            const NPT_SocketAddress* local_address = NULL);
-    NPT_Result SendResponseHeaders(NPT_HttpResponse& response);
-
-protected:
-    // members
-    Config                           m_Config;
-    NPT_BufferedInputStreamReference m_Input;
-    NPT_OutputStreamReference        m_Output;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpChunkedInputStream
-+---------------------------------------------------------------------*/
-class NPT_HttpChunkedInputStream : public NPT_InputStream
-{
-public:
-    // constructors and destructor
-    NPT_HttpChunkedInputStream(NPT_BufferedInputStreamReference& stream);
-    virtual ~NPT_HttpChunkedInputStream();
-
-    // NPT_InputStream methods
-    NPT_Result Read(void*     buffer, 
-                    NPT_Size  bytes_to_read, 
-                    NPT_Size* bytes_read = NULL);
-    NPT_Result Seek(NPT_Position offset);
-    NPT_Result Tell(NPT_Position& offset);
-    NPT_Result GetSize(NPT_LargeSize& size);
-    NPT_Result GetAvailable(NPT_LargeSize& available);
-
-protected:
-    // members
-    NPT_BufferedInputStreamReference m_Source;
-    NPT_UInt32                       m_CurrentChunkSize;
-    bool                             m_Eos;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpChunkedOutputStream
-+---------------------------------------------------------------------*/
-class NPT_HttpChunkedOutputStream : public NPT_OutputStream
-{
-public:
-    // constructors and destructor
-    NPT_HttpChunkedOutputStream(NPT_OutputStream& stream);
-    virtual ~NPT_HttpChunkedOutputStream();
-
-    // NPT_OutputStream methods
-    NPT_Result Write(const void* buffer, 
-                     NPT_Size    bytes_to_write, 
-                     NPT_Size*   bytes_written = NULL);
-    NPT_Result Seek(NPT_Position /*offset*/) { return NPT_ERROR_NOT_SUPPORTED;}
-    NPT_Result Tell(NPT_Position& offset)    { return m_Stream.Tell(offset);  }
-    NPT_Result Flush()                       { return m_Stream.Flush();       }
-
-protected:
-    // members
-    NPT_OutputStream& m_Stream;
-};
-
-#endif // _NPT_HTTP_H_
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptInterfaces.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptInterfaces.h
deleted file mode 100644
index b0bb264..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptInterfaces.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Interfaces
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_INTERFACES_H_
-#define _NPT_INTERFACES_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptCommon.h"
-#include "NptResults.h"
-#include "NptConfig.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_NO_SUCH_INTERFACE = NPT_ERROR_BASE_INTERFACES - 0;
-
-/*----------------------------------------------------------------------
-|   NPT_InterfaceId
-+---------------------------------------------------------------------*/
-class NPT_InterfaceId
-{
- public:
-    // methods
-    bool operator==(const NPT_InterfaceId& id) const {
-        return ((id.m_Id == m_Id) && (id.m_Version == m_Version));
-    }
-
-    // members
-    unsigned long m_Id;
-    unsigned long m_Version;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Polymorphic
-+---------------------------------------------------------------------*/
-class NPT_Polymorphic
-{
-public:
-    // destructor
-    virtual ~NPT_Polymorphic() {}
-     
-    // methods
-    virtual NPT_Result GetInterface(const NPT_InterfaceId& id, 
-                                    NPT_Interface*&        iface) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Interruptible
-+---------------------------------------------------------------------*/
-class NPT_Interruptible
-{
-public:
-    // destructor
-    virtual ~NPT_Interruptible() {}
-
-    // methods
-    virtual NPT_Result Interrupt() = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Configurable
-+---------------------------------------------------------------------*/
-class NPT_Configurable
-{
-public:
-    // destructor
-    virtual ~NPT_Configurable() {}
-     
-    // methods
-    virtual NPT_Result SetProperty(const char* /*name*/, 
-                                   const char* /*value*/) { 
-        return NPT_ERROR_NO_SUCH_PROPERTY;
-    }
-    virtual NPT_Result SetProperty(const char* /*name*/, 
-                                   int         /*value*/) { 
-        return NPT_ERROR_NO_SUCH_PROPERTY;
-    }
-    virtual NPT_Result GetProperty(const char*        /*name*/, 
-                                   NPT_PropertyValue& /*value*/) {
-        return NPT_ERROR_NO_SUCH_PROPERTY;
-    }
-};
-
-#endif // _NPT_INTERFACES_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptList.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptList.h
deleted file mode 100644
index e1712c5..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptList.h
+++ /dev/null
@@ -1,705 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Lists
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_LIST_H_
-#define _NPT_LIST_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptResults.h"
-#include "NptTypes.h"
-#include "NptConstants.h"
-#include "NptCommon.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_LIST_EMPTY              = NPT_ERROR_BASE_LIST - 0;
-const int NPT_ERROR_LIST_OPERATION_ABORTED  = NPT_ERROR_BASE_LIST - 1;
-const int NPT_ERROR_LIST_OPERATION_CONTINUE = NPT_ERROR_BASE_LIST - 2;
-
-/*----------------------------------------------------------------------
-|   NPT_List
-+---------------------------------------------------------------------*/
-template <typename T> 
-class NPT_List 
-{
-protected:
-    class Item;
-
-public:
-    // types
-    typedef T Element;
-
-    class Iterator {
-    public:
-        Iterator() : m_Item(NULL) {}
-        explicit Iterator(Item* item) : m_Item(item) {}
-        Iterator(const Iterator& copy) : m_Item(copy.m_Item) {}
-        T&  operator*()  const { return m_Item->m_Data; }
-        T*  operator->() const { return &m_Item->m_Data;}
-        Iterator& operator++()  { // prefix
-            m_Item = m_Item->m_Next;
-            return (*this); 
-        }
-        Iterator operator++(int) { // postfix
-            Iterator saved_this = *this;
-            m_Item = m_Item->m_Next;
-            return saved_this;
-        }
-        Iterator& operator--() { // prefix
-            m_Item = m_Item->m_Prev;
-            return (*this); 
-        }
-        Iterator operator--(int) { // postfix
-            Iterator saved_this = *this;
-            m_Item = m_Item->m_Prev;
-            return saved_this;
-        }
-        operator bool() const {
-            return m_Item != NULL;
-        }
-        bool operator==(const Iterator& other) const {
-            return m_Item == other.m_Item;
-        }
-        bool operator!=(const Iterator& other) const {
-            return m_Item != other.m_Item;
-        }
-        void operator=(const Iterator& other) {
-            m_Item = other.m_Item;
-        }
-        void operator=(Item* item) {
-            m_Item = item;
-        }
-
-    private:
-        Item* m_Item;
-
-        // friends
-        friend class NPT_List<T>;
-    };
-
-    // methods
-                 NPT_List<T>();
-                 NPT_List<T>(const NPT_List<T>& list);
-                ~NPT_List<T>();
-    NPT_Result   Add(const T& data);
-    NPT_Result   Insert(const Iterator where, const T& data);
-    NPT_Result   Remove(const T& data, bool all=false);
-    NPT_Result   Erase(const Iterator position);
-    NPT_Result   PopHead(T& data);
-    bool         Contains(const T& data) const;
-    NPT_Result   Clear();
-    NPT_Result   Get(NPT_Ordinal index, T& data) const;
-    NPT_Result   Get(NPT_Ordinal index, T*& data) const;
-    NPT_Cardinal GetItemCount() const { return m_ItemCount; }
-    Iterator     GetFirstItem() const { return Iterator(m_Head); }
-    Iterator     GetLastItem() const  { return Iterator(m_Tail); }
-    Iterator     GetItem(NPT_Ordinal index) const;
-
-    // list manipulation
-    NPT_Result   Add(NPT_List<T>& list);
-    NPT_Result   Remove(const NPT_List<T>& list, bool all=false);
-    NPT_Result   Cut(NPT_Cardinal keep, NPT_List<T>& cut);
-    
-    // item manipulation
-    NPT_Result   Add(Item& item);
-    NPT_Result   Detach(Item& item);
-    NPT_Result   Insert(const Iterator where, Item& item);
-
-    // list operations
-    // keep these template members defined here because MSV6 does not let
-    // us define them later
-    template <typename X> 
-    NPT_Result Apply(const X& function) const
-    {                          
-        Item* item = m_Head;
-        while (item) {
-            function(item->m_Data);
-            item = item->m_Next;
-        }
-
-        return NPT_SUCCESS;
-    }
-
-    template <typename X, typename P> 
-    NPT_Result ApplyUntil(const X& function, const P& predicate, bool* match = NULL) const
-    {                          
-        Item* item = m_Head;
-        while (item) {
-            NPT_Result return_value;
-            if (predicate(function(item->m_Data), return_value)) {
-                if (match) *match = true;
-                return return_value;
-            }
-            item = item->m_Next;
-        }
-        
-        if (match) *match = false;
-        return NPT_SUCCESS;
-    }
-
-    template <typename P> 
-    Iterator Find(const P& predicate, NPT_Ordinal n=0) const
-    {
-        Item* item = m_Head;
-        while (item) {
-            if (predicate(item->m_Data)) {
-                if (n == 0) {
-                    return Iterator(item);
-                }
-                --n;
-            }
-            item = item->m_Next;
-        }
-
-        return Iterator(NULL);
-    }
-
-    // Merge sort algorithm
-    // http://en.wikipedia.org/wiki/Mergesort
-    template <typename X> 
-    NPT_Result Sort(const X& function)
-    {   
-        if (GetItemCount() <= 1) return NPT_SUCCESS;
-        
-        NPT_List<T> right;
-        NPT_CHECK(Cut(GetItemCount() >> 1, right));
-        
-        // Sort ourselves again
-        Sort(function);
-        
-        // sort the right side
-        right.Sort(function);
-        
-        // merge the two back inline
-        if (function(m_Tail->m_Data, right.m_Head->m_Data) > 0) {
-            Merge(right, function);
-        } else {
-            // append right
-            right.m_Head->m_Prev = m_Tail;
-            if (m_Tail) m_Tail->m_Next = right.m_Head;
-            if (!m_Head) m_Head = right.m_Head;
-            m_Tail = right.m_Tail;
-            m_ItemCount += right.m_ItemCount;
-            
-            right.m_ItemCount = 0;
-            right.m_Head = right.m_Tail = NULL;
-        }
-        
-        return NPT_SUCCESS;
-    }
-
-    template <typename X> 
-    NPT_Result Merge(NPT_List<T>& other, const X& function) 
-    {
-        Iterator left = GetFirstItem();
-        Iterator right;
-        while (left && other.m_Head) {
-            if (function(*left, other.m_Head->m_Data) <= 0) {
-                ++left;
-            } else {
-                // remove head and insert it
-                Item* head = other.m_Head;
-                other.Detach(*head);
-                Insert(left, *head);
-            }
-        }
-        
-        // add what's left of other if any
-        if (other.m_Head) {
-            other.m_Head->m_Prev = m_Tail;
-            if (m_Tail) m_Tail->m_Next = other.m_Head;
-            m_Tail = other.m_Tail;
-            if (!m_Head) m_Head = other.m_Head;
-            other.m_Head = other.m_Tail = NULL;
-        }
-        m_ItemCount += other.m_ItemCount;
-        other.m_ItemCount = 0;
-        return NPT_SUCCESS;
-    }
-
-    // operators
-    void operator=(const NPT_List<T>& other);
-    bool operator==(const NPT_List<T>& other) const;
-    bool operator!=(const NPT_List<T>& other) const;
-
-protected:
-    // types
-    class Item 
-    {
-    public:
-        // methods
-        Item(const T& data) : m_Next(0), m_Prev(0), m_Data(data) {}
-
-        // members
-        Item* m_Next;
-        Item* m_Prev;
-        T     m_Data;
-
-        // friends
-        //friend class NPT_List<T>;
-        //friend class NPT_List<T>::Iterator;
-    };
-
-    // members
-    NPT_Cardinal m_ItemCount;
-    Item*        m_Head;
-    Item*        m_Tail;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::NPT_List
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_List<T>::NPT_List() : m_ItemCount(0), m_Head(0), m_Tail(0) 
-{
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::NPT_List
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_List<T>::NPT_List(const NPT_List<T>& list) : m_ItemCount(0), m_Head(0), m_Tail(0) 
-{
-    *this = list;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::~NPT_List<T>
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_List<T>::~NPT_List()
-{
-    Clear();
-}
- 
-/*----------------------------------------------------------------------
-|   NPT_List<T>::operator=
-+---------------------------------------------------------------------*/
-template <typename T>
-void
-NPT_List<T>::operator=(const NPT_List<T>& list)
-{
-    // cleanup
-    Clear();
-
-    // copy the new list
-    Item* item = list.m_Head;
-    while (item) {
-        Add(item->m_Data);
-        item = item->m_Next;
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::operator==
-+---------------------------------------------------------------------*/
-template <typename T>
-bool
-NPT_List<T>::operator==(const NPT_List<T>& other) const
-{
-    // quick test
-    if (m_ItemCount != other.m_ItemCount) return false;
-
-    // compare all elements one by one
-    Item* our_item = m_Head;
-    Item* their_item = other.m_Head;
-    while (our_item && their_item) {
-        if (our_item->m_Data != their_item->m_Data) return false;
-        our_item   = our_item->m_Next;
-        their_item = their_item->m_Next;
-    }
-    
-    return our_item == NULL && their_item == NULL;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::operator!=
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-bool
-NPT_List<T>::operator!=(const NPT_List<T>& other) const
-{
-    return !(*this == other);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Clear
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Clear()
-{
-    // delete all items
-    Item* item = m_Head;
-    while (item) {
-        Item* next = item->m_Next;
-        delete item;
-        item = next;
-    }
-
-    m_ItemCount = 0;
-    m_Head      = NULL;
-    m_Tail      = NULL;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Add
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Add(Item& item)
-{
-    // add element at the tail
-    if (m_Tail) {
-        item.m_Prev = m_Tail;
-        item.m_Next = NULL;
-        m_Tail->m_Next = &item;
-        m_Tail = &item;
-    } else {
-        m_Head = &item;
-        m_Tail = &item;
-        item.m_Next = NULL;
-        item.m_Prev = NULL;
-    }
-
-    // one more item in the list now
-    ++m_ItemCount;
- 
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Add
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Add(NPT_List<T>& list)
-{
-    // copy the new list
-    Item* item = list.m_Head;
-    while (item) {
-        Add(item->m_Data);
-        item = item->m_Next;
-    }
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Add
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Result
-NPT_List<T>::Add(const T& data)
-{
-    return Add(*new Item(data));
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::GetItem
-+---------------------------------------------------------------------*/
-template <typename T>
-typename NPT_List<T>::Iterator
-NPT_List<T>::GetItem(NPT_Ordinal n) const
-{
-    Iterator result;
-    if (n >= m_ItemCount) return result;
-    
-    result = m_Head;
-    for (unsigned int i=0; i<n; i++) {
-        ++result;
-    }
-
-    return result;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Insert
-+---------------------------------------------------------------------*/
-template <typename T>
-inline 
-NPT_Result
-NPT_List<T>::Insert(Iterator where, const T&data)
-{
-    return Insert(where, *new Item(data));
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Insert
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Insert(Iterator where, Item& item)
-{
-    // insert the item in the list
-    Item* position = where.m_Item;
-    if (position) {
-        // insert at position
-        item.m_Next = position;
-        item.m_Prev = position->m_Prev;
-        position->m_Prev = &item;
-        if (item.m_Prev) {
-            item.m_Prev->m_Next = &item;
-        } else {
-            // this is the new head
-            m_Head = &item;
-        }
-
-        // one more item in the list now
-        ++m_ItemCount;
-    } else {
-        // insert at tail
-        return Add(item);
-    }
- 
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Erase
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Erase(Iterator position) 
-{
-    if (!position) return NPT_ERROR_NO_SUCH_ITEM;
-    Detach(*position.m_Item);
-    delete position.m_Item;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Remove
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Remove(const T& data, bool all)
-{
-    Item* item = m_Head;
-    NPT_Cardinal matches = 0;
-
-    while (item) {
-        Item* next = item->m_Next;
-        if (item->m_Data == data) {
-            // we found a match
-            ++matches;
-
-            // detach item
-            Detach(*item);
-            
-            // destroy the item
-            delete item;
-
-            if (!all) return NPT_SUCCESS;
-        }
-        item = next;
-    }
- 
-    return matches?NPT_SUCCESS:NPT_ERROR_NO_SUCH_ITEM;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Remove
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Remove(const NPT_List<T>& list, bool all)
-{
-    Item* item = list.m_Head;
-    while (item) {
-        Remove(item->m_Data, all);
-        item = item->m_Next;
-    }
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Detach
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Detach(Item& item)
-{
-    // remove item
-    if (item.m_Prev) {
-        // item is not the head
-        if (item.m_Next) {
-            // item is not the tail
-            item.m_Next->m_Prev = item.m_Prev;
-            item.m_Prev->m_Next = item.m_Next;
-        } else {
-            // item is the tail
-            m_Tail = item.m_Prev;
-            m_Tail->m_Next = NULL;
-        }
-    } else {
-        // item is the head
-        m_Head = item.m_Next;
-        if (m_Head) {
-            // item is not the tail
-            m_Head->m_Prev = NULL;
-        } else {
-            // item is also the tail
-            m_Tail = NULL;
-        }
-    }
-
-    // one less item in the list now
-    --m_ItemCount;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Get
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Get(NPT_Ordinal index, T& data) const
-{
-    T* data_pointer;
-    NPT_CHECK(Get(index, data_pointer));
-    data = *data_pointer;
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Get
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Get(NPT_Ordinal index, T*& data) const
-{
-    Item* item = m_Head;
-
-    if (index < m_ItemCount) {
-        while (index--) item = item->m_Next;
-        data = &item->m_Data;
-        return NPT_SUCCESS;
-    } else {
-        data = NULL;
-        return NPT_ERROR_NO_SUCH_ITEM;
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::PopHead
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::PopHead(T& data)
-{
-    // check that we have an element
-    if (m_Head == NULL) return NPT_ERROR_LIST_EMPTY;
-
-    // copy the head item's data
-    data = m_Head->m_Data;
-
-    // discard the head item
-    Item* head = m_Head;
-    m_Head = m_Head->m_Next;
-    if (m_Head) {
-        m_Head->m_Prev = NULL;
-    } else {
-        m_Tail = NULL;
-    }
-    delete head;
-
-    // update the count
-    --m_ItemCount;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Contains
-+---------------------------------------------------------------------*/
-template <typename T>
-bool
-NPT_List<T>::Contains(const T& data) const
-{
-    Item* item = m_Head;
-    while (item) {
-        if (item->m_Data == data) return true;
-        item = item->m_Next;
-    }
-
-    return false;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Cut
-+---------------------------------------------------------------------*/
-template <typename T> 
-NPT_Result 
-NPT_List<T>::Cut(NPT_Cardinal keep, NPT_List<T>& cut) 
-{
-    cut.Clear();
-    
-    // shortcut
-    if (keep >= GetItemCount()) return NPT_SUCCESS;
-    
-    // update new counts first
-    cut.m_ItemCount = m_ItemCount-keep;
-    m_ItemCount = keep;
-    
-    // look for the cut-point item
-    Item* item = m_Head;
-    while (keep--) { item = item->m_Next;}
-    
-    // the cut list goes from the cut-point item to the tail
-    cut.m_Head = item;
-    cut.m_Tail = m_Tail;
-    
-    // update the portion of the list we keep
-    if (item == m_Head) m_Head = NULL;
-    m_Tail = item->m_Prev;
-    
-    // update the cut list
-    if (item->m_Prev) item->m_Prev->m_Next = NULL;
-    item->m_Prev = NULL;
-    
-    return NPT_SUCCESS;
-}
-
-#endif // _NPT_LIST_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptLogging.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptLogging.h
deleted file mode 100644
index 3168424..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptLogging.h
+++ /dev/null
@@ -1,520 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Logging Support
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-/** @file
-* Header file for logging
-*/
-
-#ifndef _NPT_LOGGING_H_
-#define _NPT_LOGGING_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-#include "NptTypes.h"
-#include "NptTime.h"
-#include "NptStrings.h"
-#include "NptList.h"
-#include "NptStreams.h"
-#include "NptThreads.h"
-#include "NptHttp.h"
-
-/*----------------------------------------------------------------------
-|   class references
-+---------------------------------------------------------------------*/
-class NPT_LogManager;
-
-/*----------------------------------------------------------------------
-|   types
-+---------------------------------------------------------------------*/
-class NPT_LogRecord {
-public:
-    const char*   m_LoggerName;
-    int           m_Level;
-    const char*   m_Message;
-    NPT_TimeStamp m_TimeStamp;
-    const char*   m_SourceFile;
-    unsigned int  m_SourceLine;
-    const char*   m_SourceFunction;
-    unsigned long m_ThreadId;
-};
-
-class NPT_LogHandler {
-public:
-    typedef void(*CustomHandlerExternalFunction)(const NPT_LogRecord* record);
-    
-    // class methods
-    static NPT_Result SetCustomHandlerFunction(CustomHandlerExternalFunction function);
-    static NPT_Result Create(const char*      logger_name,
-                             const char*      handler_name,
-                             NPT_LogHandler*& handler);
-
-    // methods
-    virtual ~NPT_LogHandler() {}
-    virtual void       Log(const NPT_LogRecord& record) = 0;
-    virtual NPT_String ToString() { return ""; }
-};
-
-class NPT_Logger {
-public:
-    // methods
-    NPT_Logger(const char* name, NPT_LogManager& manager);
-    ~NPT_Logger();
-    void Log(int          level, 
-             const char*  source_file,
-             unsigned int source_line,
-             const char*  source_function,
-             const char*  msg, 
-                          ...);
-
-    NPT_Result AddHandler(NPT_LogHandler* handler, bool transfer_ownership = true);
-    NPT_Result DeleteHandlers();
-    NPT_Result SetParent(NPT_Logger* parent);
-    const NPT_String& GetName()  const { return m_Name;  }
-    int               GetLevel() const { return m_Level; }
-    bool              GetForwardToParent() const { return m_ForwardToParent; }
-    NPT_List<NPT_LogHandler*>& GetHandlers() { return m_Handlers; }
-
-private:
-    // members
-    NPT_LogManager&           m_Manager;
-    NPT_String                m_Name;
-    int                       m_Level;
-    bool                      m_LevelIsInherited;
-    bool                      m_ForwardToParent;
-    NPT_Logger*               m_Parent;
-    NPT_List<NPT_LogHandler*> m_Handlers;
-    NPT_List<NPT_LogHandler*> m_ExternalHandlers;
-
-    // friends
-    friend class NPT_LogManager;
-};
-
-typedef struct {
-    NPT_Logger* logger;
-    const char* name;
-} NPT_LoggerReference;
-
-class NPT_Log {
-public:
-    // class methods
-    static int         GetLogLevel(const char* name);
-    static const char* GetLogLevelName(int level);
-    static const char* GetLogLevelAnsiColor(int level);
-    static void        FormatRecordToStream(const NPT_LogRecord& record,
-                                            NPT_OutputStream&    stream,
-                                            bool                 use_colors,
-                                            NPT_Flags            format_filter);
-};
-
-class NPT_LogConfigEntry {
-public:
-    NPT_LogConfigEntry(const char* key, const char* value) :
-      m_Key(key), m_Value(value) {}
-    NPT_String m_Key;
-    NPT_String m_Value;
-};
-
-class NPT_LogManager {
-public:
-    // class methods
-    static NPT_LogManager& GetDefault();
-    static bool ConfigValueIsBooleanTrue(NPT_String& value);
-    static bool ConfigValueIsBooleanFalse(NPT_String& value);
-    static NPT_Logger* GetLogger(const char* name);
-
-    // methods
-    NPT_LogManager();
-    ~NPT_LogManager();
-    NPT_Result                    Configure(const char* config_sources = NULL);
-    NPT_String*                   GetConfigValue(const char* prefix, const char* suffix);
-    NPT_List<NPT_Logger*>&        GetLoggers() { return m_Loggers; }
-    NPT_List<NPT_LogConfigEntry>& GetConfig()  { return m_Config;  }
-    void                          SetEnabled(bool enabled) { m_Enabled = enabled; }
-    bool                          IsEnabled()              { return m_Enabled;    }
-    void                          Lock();
-    void                          Unlock();
-
-private:
-    // methods
-    NPT_Result  SetConfigValue(const char* key, const char* value);
-    NPT_Result  ParseConfig(const char* config, NPT_Size config_size);
-    NPT_Result  ParseConfigSource(NPT_String& source);
-    NPT_Result  ParseConfigFile(const char* filename);
-    bool        HaveLoggerConfig(const char* name);
-    NPT_Logger* FindLogger(const char* name);
-    NPT_Result  ConfigureLogger(NPT_Logger* logger);
-
-    // members
-    NPT_Mutex                    m_Lock;
-    NPT_Thread::ThreadId         m_LockOwner;
-    bool                         m_Enabled;
-    bool                         m_Configured;
-    NPT_List<NPT_LogConfigEntry> m_Config;
-    NPT_List<NPT_Logger*>        m_Loggers;
-    NPT_Logger*                  m_Root;
-};
-
-const unsigned short NPT_HTTP_LOGGER_CONFIGURATOR_DEFAULT_PORT = 6378;
-class NPT_HttpLoggerConfigurator : NPT_HttpRequestHandler, public NPT_Thread {
-public:
-    // constructor and destructor
-    NPT_HttpLoggerConfigurator(NPT_UInt16 port = NPT_HTTP_LOGGER_CONFIGURATOR_DEFAULT_PORT,
-                               bool       detached = true);
-    virtual ~NPT_HttpLoggerConfigurator();
-
-    // NPT_Runnable (NPT_Thread) methods
-    virtual void Run();
-
-private:
-    // NPT_HttpRequestHandler methods
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request,
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response);
-
-    // members
-    NPT_HttpServer* m_Server;
-};
-
-NPT_Result NPT_GetSystemLogConfig(NPT_String& config);
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#define NPT_LOG_LEVEL_FATAL   700
-#define NPT_LOG_LEVEL_SEVERE  600 
-#define NPT_LOG_LEVEL_WARNING 500
-#define NPT_LOG_LEVEL_INFO    400
-#define NPT_LOG_LEVEL_FINE    300
-#define NPT_LOG_LEVEL_FINER   200
-#define NPT_LOG_LEVEL_FINEST  100 
-
-#define NPT_LOG_LEVEL_OFF     32767
-#define NPT_LOG_LEVEL_ALL     0
-
-/*----------------------------------------------------------------------
-|   macros
-+---------------------------------------------------------------------*/
-#define NPT_LOG_GET_LOGGER(_logger)                                   \
-    if ((_logger).logger == NULL) {                                   \
-        (_logger).logger = NPT_LogManager::GetLogger((_logger).name); \
-    }
-
-#if defined(NPT_CONFIG_ENABLE_LOGGING)
-//TODO: volatile makes tons of errors for me
-//#define NPT_DEFINE_LOGGER(_logger, _name) static volatile NPT_LoggerReference _logger = { NULL, (_name) };
-#define NPT_DEFINE_LOGGER(_logger, _name) static NPT_LoggerReference _logger = { NULL, (_name) };
-
-#define NPT_LOG_X(_logger, _level, _argsx)                              \
-do {                                                                    \
-    NPT_LOG_GET_LOGGER((_logger))                                       \
-    if ((_logger).logger && (_level) >= (_logger).logger->GetLevel()) { \
-        (_logger).logger->Log _argsx;                                   \
-    }                                                                   \
-} while(0)
-
-#define NPT_CHECK_LL(_logger, _level, _result) do {                                    \
-    NPT_Result _x = (_result);                                                         \
-    if (_x != NPT_SUCCESS) {                                                           \
-        NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),"NPT_CHECK failed, result=%d (%s) [%s]", _x, NPT_ResultText(_x), #_result)); \
-        return _x;                                                                     \
-    }                                                                                  \
-} while(0)
-
-#define NPT_CHECK_LABEL_LL(_logger, _level, _result, _label) do {                      \
-    NPT_Result _x = (_result);                                                         \
-    if (_x != NPT_SUCCESS) {                                                           \
-        NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),"NPT_CHECK failed, result=%d (%s) [%s]", _x, NPT_ResultText(_x), #_result)); \
-        goto _label;                                                                   \
-    }                                                                                  \
-} while(0)
-#define NPT_CHECK_POINTER_LL(_logger, _level, _p) do {                                 \
-    if ((_p) == NULL) {                                                                  \
-        NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),"@@@ NULL pointer parameter"));                     \
-        return NPT_ERROR_INVALID_PARAMETERS;                                                     \
-    }                                                                                  \
-} while(0)
-#define NPT_CHECK_POINTER_LABEL_LL(_logger, _level, _p, _label) do {                   \
-    if ((_p) == NULL) {                                                                  \
-        NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),"@@@ NULL pointer parameter"));                     \
-        goto _label;                                                                   \
-    }                                                                                  \
-} while(0)
-
-#else /* NPT_CONFIG_ENABLE_LOGGING */
-
-#define NPT_DEFINE_LOGGER(_logger, _name)
-#define NPT_LOG_X(_logger, _level, _argsx)
-#define NPT_CHECK_LL(_logger, _level, _result) NPT_CHECK(_result)
-#define NPT_CHECK_LABEL_LL(_logger, _level, _result, _label) NPT_CHECK_LABEL((_result), _label)
-#define NPT_CHECK_POINTER_LL(_logger, _level, _p) NPT_CHECK_POINTER((_p))
-#define NPT_CHECK_POINTER_LABEL_LL(_logger, _level, _p, _label) NPT_CHECK_POINTER_LABEL((_p), _label)
-
-#endif /* NPT_CONFIG_ENABLE_LOGGING */
-
-#define NPT_SET_LOCAL_LOGGER(_name) NPT_DEFINE_LOGGER(_NPT_LocalLogger, (_name))
-#define NPT_CHECK_L(_level, _result) NPT_CHECK_LL(_NPT_LocalLogger, (_level), (_result))
-#define NPT_CHECK_LABEL_L(_level, _result, _label) NPT_CHECK_LABEL_LL(_NPT_LocalLogger, (_level), NULL, (_result), _label)
-
-/* NOTE: the following are machine-generated, do not edit */
-#define NPT_LOG_LL(_logger,_level,_msg) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg)))
-#define NPT_LOG(_level,_msg) NPT_LOG_LL((_NPT_LocalLogger),(_level),(_msg))
-#define NPT_LOG_L(_logger,_level,_msg) NPT_LOG_LL((_logger),(_level),(_msg))
-#define NPT_LOG_LL1(_logger,_level,_msg,_arg1) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1)))
-#define NPT_LOG_1(_level,_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),(_level),(_msg),(_arg1))
-#define NPT_LOG_L1(_logger,_level,_msg,_arg1) NPT_LOG_LL1((_logger),(_level),(_msg),(_arg1))
-#define NPT_LOG_LL2(_logger,_level,_msg,_arg1,_arg2) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2)))
-#define NPT_LOG_2(_level,_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2))
-#define NPT_LOG_L2(_logger,_level,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),(_level),(_msg),(_arg1),(_arg2))
-#define NPT_LOG_LL3(_logger,_level,_msg,_arg1,_arg2,_arg3) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2),(_arg3)))
-#define NPT_LOG_3(_level,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_L3(_logger,_level,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),(_level),(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_LL4(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2),(_arg3),(_arg4)))
-#define NPT_LOG_4(_level,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_L4(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_LL5(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5)))
-#define NPT_LOG_5(_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_L5(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_LL6(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6)))
-#define NPT_LOG_6(_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_L6(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_LL7(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7)))
-#define NPT_LOG_7(_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_L7(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_LL8(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8)))
-#define NPT_LOG_8(_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_L8(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_LL9(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9)))
-#define NPT_LOG_9(_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_L9(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-
-#define NPT_LOG_FATAL(_msg) NPT_LOG_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg))
-#define NPT_LOG_FATAL_L(_logger,_msg) NPT_LOG_LL((_logger),NPT_LOG_LEVEL_FATAL,(_msg))
-#define NPT_LOG_FATAL_1(_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1))
-#define NPT_LOG_FATAL_L1(_logger,_msg,_arg1) NPT_LOG_LL1((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1))
-#define NPT_LOG_FATAL_2(_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FATAL_L2(_logger,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FATAL_3(_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FATAL_L3(_logger,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FATAL_4(_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FATAL_L4(_logger,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FATAL_5(_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FATAL_L5(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FATAL_6(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FATAL_L6(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FATAL_7(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FATAL_L7(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FATAL_8(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FATAL_L8(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FATAL_9(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_FATAL_L9(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_SEVERE(_msg) NPT_LOG_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg))
-#define NPT_LOG_SEVERE_L(_logger,_msg) NPT_LOG_LL((_logger),NPT_LOG_LEVEL_SEVERE,(_msg))
-#define NPT_LOG_SEVERE_1(_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1))
-#define NPT_LOG_SEVERE_L1(_logger,_msg,_arg1) NPT_LOG_LL1((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1))
-#define NPT_LOG_SEVERE_2(_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_SEVERE_L2(_logger,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_SEVERE_3(_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_SEVERE_L3(_logger,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_SEVERE_4(_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_SEVERE_L4(_logger,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_SEVERE_5(_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_SEVERE_L5(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_SEVERE_6(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_SEVERE_L6(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_SEVERE_7(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_SEVERE_L7(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_SEVERE_8(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_SEVERE_L8(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_SEVERE_9(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_SEVERE_L9(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_WARNING(_msg) NPT_LOG_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg))
-#define NPT_LOG_WARNING_L(_logger,_msg) NPT_LOG_LL((_logger),NPT_LOG_LEVEL_WARNING,(_msg))
-#define NPT_LOG_WARNING_1(_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1))
-#define NPT_LOG_WARNING_L1(_logger,_msg,_arg1) NPT_LOG_LL1((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1))
-#define NPT_LOG_WARNING_2(_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_WARNING_L2(_logger,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_WARNING_3(_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_WARNING_L3(_logger,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_WARNING_4(_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_WARNING_L4(_logger,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_WARNING_5(_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_WARNING_L5(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_WARNING_6(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_WARNING_L6(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_WARNING_7(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_WARNING_L7(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_WARNING_8(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_WARNING_L8(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_WARNING_9(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_WARNING_L9(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_INFO(_msg) NPT_LOG_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg))
-#define NPT_LOG_INFO_L(_logger,_msg) NPT_LOG_LL((_logger),NPT_LOG_LEVEL_INFO,(_msg))
-#define NPT_LOG_INFO_1(_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1))
-#define NPT_LOG_INFO_L1(_logger,_msg,_arg1) NPT_LOG_LL1((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1))
-#define NPT_LOG_INFO_2(_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_INFO_L2(_logger,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_INFO_3(_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_INFO_L3(_logger,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_INFO_4(_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_INFO_L4(_logger,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_INFO_5(_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_INFO_L5(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_INFO_6(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_INFO_L6(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_INFO_7(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_INFO_L7(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_INFO_8(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_INFO_L8(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_INFO_9(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_INFO_L9(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_FINE(_msg) NPT_LOG_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg))
-#define NPT_LOG_FINE_L(_logger,_msg) NPT_LOG_LL((_logger),NPT_LOG_LEVEL_FINE,(_msg))
-#define NPT_LOG_FINE_1(_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1))
-#define NPT_LOG_FINE_L1(_logger,_msg,_arg1) NPT_LOG_LL1((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1))
-#define NPT_LOG_FINE_2(_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FINE_L2(_logger,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FINE_3(_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FINE_L3(_logger,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FINE_4(_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FINE_L4(_logger,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FINE_5(_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FINE_L5(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FINE_6(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FINE_L6(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FINE_7(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FINE_L7(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FINE_8(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FINE_L8(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FINE_9(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_FINE_L9(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_FINER(_msg) NPT_LOG_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg))
-#define NPT_LOG_FINER_L(_logger,_msg) NPT_LOG_LL((_logger),NPT_LOG_LEVEL_FINER,(_msg))
-#define NPT_LOG_FINER_1(_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1))
-#define NPT_LOG_FINER_L1(_logger,_msg,_arg1) NPT_LOG_LL1((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1))
-#define NPT_LOG_FINER_2(_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FINER_L2(_logger,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FINER_3(_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FINER_L3(_logger,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FINER_4(_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FINER_L4(_logger,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FINER_5(_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FINER_L5(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FINER_6(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FINER_L6(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FINER_7(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FINER_L7(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FINER_8(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FINER_L8(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FINER_9(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_FINER_L9(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_FINEST(_msg) NPT_LOG_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg))
-#define NPT_LOG_FINEST_L(_logger,_msg) NPT_LOG_LL((_logger),NPT_LOG_LEVEL_FINEST,(_msg))
-#define NPT_LOG_FINEST_1(_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1))
-#define NPT_LOG_FINEST_L1(_logger,_msg,_arg1) NPT_LOG_LL1((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1))
-#define NPT_LOG_FINEST_2(_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FINEST_L2(_logger,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FINEST_3(_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FINEST_L3(_logger,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FINEST_4(_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FINEST_L4(_logger,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FINEST_5(_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FINEST_L5(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FINEST_6(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FINEST_L6(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FINEST_7(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FINEST_L7(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FINEST_8(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FINEST_L8(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FINEST_9(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_FINEST_L9(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-
-#define NPT_CHECK_FATAL(_result) NPT_CHECK_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_result))
-#define NPT_CHECK_FATAL_L(_logger,_result) NPT_CHECK_LL((_logger),NPT_LOG_LEVEL_FATAL,(_result))
-#define NPT_CHECK_SEVERE(_result) NPT_CHECK_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_result))
-#define NPT_CHECK_SEVERE_L(_logger,_result) NPT_CHECK_LL((_logger),NPT_LOG_LEVEL_SEVERE,(_result))
-#define NPT_CHECK_WARNING(_result) NPT_CHECK_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_result))
-#define NPT_CHECK_WARNING_L(_logger,_result) NPT_CHECK_LL((_logger),NPT_LOG_LEVEL_WARNING,(_result))
-#define NPT_CHECK_INFO(_result) NPT_CHECK_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_result))
-#define NPT_CHECK_INFO_L(_logger,_result) NPT_CHECK_LL((_logger),NPT_LOG_LEVEL_INFO,(_result))
-#define NPT_CHECK_FINE(_result) NPT_CHECK_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_result))
-#define NPT_CHECK_FINE_L(_logger,_result) NPT_CHECK_LL((_logger),NPT_LOG_LEVEL_FINE,(_result))
-#define NPT_CHECK_FINER(_result) NPT_CHECK_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_result))
-#define NPT_CHECK_FINER_L(_logger,_result) NPT_CHECK_LL((_logger),NPT_LOG_LEVEL_FINER,(_result))
-#define NPT_CHECK_FINEST(_result) NPT_CHECK_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_result))
-#define NPT_CHECK_FINEST_L(_logger,_result) NPT_CHECK_LL((_logger),NPT_LOG_LEVEL_FINEST,(_result))
-
-#define NPT_CHECK_LABEL_FATAL(_result,_label) NPT_CHECK_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_result),_label)
-#define NPT_CHECK_LABEL_FATAL_L(_logger,_result,_label) NPT_CHECK_LABEL_LL((_logger),NPT_LOG_LEVEL_FATAL,(_result),_label)
-#define NPT_CHECK_LABEL_SEVERE(_result,_label) NPT_CHECK_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_result),_label)
-#define NPT_CHECK_LABEL_SEVERE_L(_logger,_result,_label) NPT_CHECK_LABEL_LL((_logger),NPT_LOG_LEVEL_SEVERE,(_result),_label)
-#define NPT_CHECK_LABEL_WARNING(_result,_label) NPT_CHECK_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_result),_label)
-#define NPT_CHECK_LABEL_WARNING_L(_logger,_result,_label) NPT_CHECK_LABEL_LL((_logger),NPT_LOG_LEVEL_WARNING,(_result),_label)
-#define NPT_CHECK_LABEL_INFO(_result,_label) NPT_CHECK_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_result),_label)
-#define NPT_CHECK_LABEL_INFO_L(_logger,_result,_label) NPT_CHECK_LABEL_LL((_logger),NPT_LOG_LEVEL_INFO,(_result),_label)
-#define NPT_CHECK_LABEL_FINE(_result,_label) NPT_CHECK_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_result),_label)
-#define NPT_CHECK_LABEL_FINE_L(_logger,_result,_label) NPT_CHECK_LABEL_LL((_logger),NPT_LOG_LEVEL_FINE,(_result),_label)
-#define NPT_CHECK_LABEL_FINER(_result,_label) NPT_CHECK_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_result),_label)
-#define NPT_CHECK_LABEL_FINER_L(_logger,_result,_label) NPT_CHECK_LABEL_LL((_logger),NPT_LOG_LEVEL_FINER,(_result),_label)
-#define NPT_CHECK_LABEL_FINEST(_result,_label) NPT_CHECK_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_result),_label)
-#define NPT_CHECK_LABEL_FINEST_L(_logger,_result,_label) NPT_CHECK_LABEL_LL((_logger),NPT_LOG_LEVEL_FINEST,(_result),_label)
-
-#define NPT_CHECK_POINTER_FATAL(_p) NPT_CHECK_POINTER_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_p))
-#define NPT_CHECK_POINTER_FATAL_L(_logger,_p) NPT_CHECK_POINTER_LL(_logger,NPT_LOG_LEVEL_FATAL,(_p))
-#define NPT_CHECK_POINTER_SEVERE(_p) NPT_CHECK_POINTER_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_p))
-#define NPT_CHECK_POINTER_SEVERE_L(_logger,_p) NPT_CHECK_POINTER_LL(_logger,NPT_LOG_LEVEL_SEVERE,(_p))
-#define NPT_CHECK_POINTER_WARNING(_p) NPT_CHECK_POINTER_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_p))
-#define NPT_CHECK_POINTER_WARNING_L(_logger,_p) NPT_CHECK_POINTER_LL(_logger,NPT_LOG_LEVEL_WARNING,(_p))
-#define NPT_CHECK_POINTER_INFO(_p) NPT_CHECK_POINTER_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_p))
-#define NPT_CHECK_POINTER_INFO_L(_logger,_p) NPT_CHECK_POINTER_LL(_logger,NPT_LOG_LEVEL_INFO,(_p))
-#define NPT_CHECK_POINTER_FINE(_p) NPT_CHECK_POINTER_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_p))
-#define NPT_CHECK_POINTER_FINE_L(_logger,_p) NPT_CHECK_POINTER_LL(_logger,NPT_LOG_LEVEL_FINE,(_p))
-#define NPT_CHECK_POINTER_FINER(_p) NPT_CHECK_POINTER_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_p))
-#define NPT_CHECK_POINTER_FINER_L(_logger,_p) NPT_CHECK_POINTER_LL(_logger,NPT_LOG_LEVEL_FINER,(_p))
-#define NPT_CHECK_POINTER_FINEST(_p) NPT_CHECK_POINTER_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_p))
-#define NPT_CHECK_POINTER_FINEST_L(_logger,_p) NPT_CHECK_POINTER_LL(_logger,NPT_LOG_LEVEL_FINEST,(_p))
-
-#define NPT_CHECK_POINTER_LABEL_FATAL(_p,_label) NPT_CHECK_POINTER_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_FATAL_L(_logger,_p,_label) NPT_CHECK_POINTER_LABEL_LL(_logger,NPT_LOG_LEVEL_FATAL,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_SEVERE(_p,_label) NPT_CHECK_POINTER_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_SEVERE_L(_logger,_p,_label) NPT_CHECK_POINTER_LABEL_LL(_logger,NPT_LOG_LEVEL_SEVERE,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_WARNING(_p,_label) NPT_CHECK_POINTER_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_WARNING_L(_logger,_p,_label) NPT_CHECK_POINTER_LABEL_LL(_logger,NPT_LOG_LEVEL_WARNING,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_INFO(_p,_label) NPT_CHECK_POINTER_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_INFO_L(_logger,_p,_label) NPT_CHECK_POINTER_LABEL_LL(_logger,NPT_LOG_LEVEL_INFO,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_FINE(_p, _label) NPT_CHECK_POINTER_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_FINE_L(_logger,_p,_label) NPT_CHECK_POINTER_LABEL_LL(_logger,NPT_LOG_LEVEL_FINE,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_FINER(_p,_label) NPT_CHECK_POINTER_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_FINER_L(_logger,_p,_label) NPT_CHECK_POINTER_LABEL_LL(_logger,NPT_LOG_LEVEL_FINER,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_FINEST(_p,_label) NNPT_CHECK_POINTER_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_FINEST_L(_logger,_p,_label) NPT_CHECK_POINTER_LABEL_LL(_logger,NPT_LOG_LEVEL_FINEST,(_p),_label)
-
-#endif /* _NPT_LOGGING_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptMap.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptMap.h
deleted file mode 100644
index fc12b87..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptMap.h
+++ /dev/null
@@ -1,807 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Maps
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-
-#ifndef _NPT_MAP_H_
-#define _NPT_MAP_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptResults.h"
-#include "NptList.h"
-#include "NptHash.h"
-
-/*----------------------------------------------------------------------
-|   NPT_Map
-+---------------------------------------------------------------------*/
-template <typename K, typename V> 
-class NPT_Map 
-{
-public:
-    // types
-    class Entry {
-    public:
-        // constructor
-        Entry(const K& key, const V& value) : m_Key(key), m_Value(value) {}
-        Entry(const K& key) : m_Key(key) {}
-        
-        // accessors
-        const K& GetKey()   const { return m_Key;   }
-        const V& GetValue() const { return m_Value; }
-
-        // operators 
-        bool operator==(const Entry& other) const {
-            return m_Key == other.m_Key && m_Value == other.m_Value;
-        }
-
-    protected:
-        // methods
-        void SetValue(const V& value) { m_Value = value; }
-
-        // members
-        K m_Key;
-        V m_Value;
-
-        // friends
-        friend class NPT_Map<K,V>;
-    };
-
-    // constructors
-    NPT_Map<K,V>() {}
-    NPT_Map<K,V>(const NPT_Map<K,V>& copy);
-
-    // destructor
-    ~NPT_Map<K,V>();
-
-    // methods
-    NPT_Result   Put(const K& key, const V& value);
-    NPT_Result   Get(const K& key, V*& value) const; // WARNING: the second parameter is a POINTER on the value type!!!
-    bool         HasKey(const K& key) const { return GetEntry(key) != NULL; }
-    bool         HasValue(const V& value) const;
-    NPT_Result   Erase(const K& key);
-    NPT_Cardinal GetEntryCount() const         { return m_Entries.GetItemCount(); }
-    const NPT_List<Entry*>& GetEntries() const { return m_Entries; }
-    NPT_Result   Clear();
-
-    // operators
-    V&                  operator[](const K& key);
-    const NPT_Map<K,V>& operator=(const NPT_Map<K,V>& copy);
-    bool                operator==(const NPT_Map<K,V>& other) const;
-    bool                operator!=(const NPT_Map<K,V>& other) const;
-
-private:
-    // types
-    typedef typename NPT_List<Entry*>::Iterator ListIterator;
-
-    // methods
-    Entry* GetEntry(const K& key) const;
-
-    // members
-    NPT_List<Entry*> m_Entries;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::NPT_Map<K,V>
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-NPT_Map<K,V>::NPT_Map(const NPT_Map<K,V>& copy)
-{
-    *this = copy;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::~NPT_Map<K,V>
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-NPT_Map<K,V>::~NPT_Map()
-{
-    // call Clear to ensure we delete all entry objects
-    Clear();
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::Clear
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-NPT_Result
-NPT_Map<K,V>::Clear()
-{
-    m_Entries.Apply(NPT_ObjectDeleter<Entry>());
-    m_Entries.Clear();
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::GetEntry
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-typename NPT_Map<K,V>::Entry*
-NPT_Map<K,V>::GetEntry(const K& key) const
-{
-    typename NPT_List<Entry*>::Iterator entry = m_Entries.GetFirstItem();
-    while (entry) {
-        if ((*entry)->GetKey() == key) {
-            return *entry;
-        }
-        ++entry;
-    }
-
-    return NULL;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::Put
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-NPT_Result
-NPT_Map<K,V>::Put(const K& key, const V& value)
-{
-    Entry* entry = GetEntry(key);
-    if (entry == NULL) {
-        // no existing entry for that key, create one
-        m_Entries.Add(new Entry(key, value));
-    } else {
-        // replace the existing entry for that key
-        entry->SetValue(value);
-    }
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::Get
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-NPT_Result
-NPT_Map<K,V>::Get(const K& key, V*& value) const
-{
-    Entry* entry = GetEntry(key);
-    if (entry == NULL) {
-        // no existing entry for that key
-        value = NULL;
-        return NPT_ERROR_NO_SUCH_ITEM;
-    } else {
-        // found an entry with that key
-        value = &entry->m_Value;
-        return NPT_SUCCESS;
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::HasValue
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-bool
-NPT_Map<K,V>::HasValue(const V& value) const
-{
-    ListIterator entry = m_Entries.GetFirstItem();
-    while (entry) {
-        if (value == (*entry)->m_Value) {
-            return true;
-        }
-        ++entry;
-    }
-
-    return false;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::operator=
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-const NPT_Map<K,V>&
-NPT_Map<K,V>::operator=(const NPT_Map<K,V>& copy)
-{
-    // do nothing if we're assigning to ourselves
-    if (this == &copy) return copy;
-
-    // destroy all entries
-    Clear();
-
-    // copy all entries one by one
-    ListIterator entry = copy.m_Entries.GetFirstItem();
-    while (entry) {
-        m_Entries.Add(new Entry((*entry)->GetKey(), (*entry)->GetValue()));
-        ++entry;
-    }
-
-    return *this;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::Erase
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-NPT_Result
-NPT_Map<K,V>::Erase(const K& key)
-{
-    ListIterator entry = m_Entries.GetFirstItem();
-    while (entry) {
-        if ((*entry)->GetKey() == key) {
-            delete *entry; // do this before removing the entry from the
-                           // list, because Erase() will invalidate the
-                           // iterator item
-            m_Entries.Erase(entry);
-            return NPT_SUCCESS;
-        }
-        ++entry;
-    }
-
-    return NPT_ERROR_NO_SUCH_ITEM;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::operator==
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-bool
-NPT_Map<K,V>::operator==(const NPT_Map<K,V>& other) const
-{
-    // quick test
-    if (m_Entries.GetItemCount() != other.m_Entries.GetItemCount()) return false;
-
-    // compare all entries to all other entries
-    ListIterator entry = m_Entries.GetFirstItem();
-    while (entry) {
-        V* value;
-        if (NPT_SUCCEEDED(other.Get((*entry)->m_Key, value))) {
-            // the other map has an entry for this key, check the value
-            if (!(*value == (*entry)->m_Value)) return false;
-        } else {
-            // the other map does not have an entry for this key
-            return false;
-        }
-        ++entry;
-    }
-
-    return true;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::operator!=
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-bool
-NPT_Map<K,V>::operator!=(const NPT_Map<K,V>& other) const
-{
-    return !(*this == other);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::operator[]
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-V&
-NPT_Map<K,V>::operator[](const K& key)
-{
-    Entry* entry = GetEntry(key);
-    if (entry == NULL) {
-        // create a new "default" entry for this key
-        entry = new Entry(key);
-        m_Entries.Add(entry);
-    }
-     
-    return entry->m_Value;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF = NPT_Hash<K> > 
-class NPT_HashMap 
-{
-public:
-    // types
-    class Entry {
-    public:
-        // constructor
-        Entry(NPT_UInt32 hash_value, const K& key, const V& value) : m_HashValue(hash_value), m_Key(key), m_Value(value) {}
-        Entry(NPT_UInt32 hash_value, const K& key)                 : m_HashValue(hash_value), m_Key(key) {}
-        
-        // accessors
-        const K&   GetKey()       const { return m_Key;   }
-        const V&   GetValue()     const { return m_Value; }
-        NPT_UInt32 GetHashValue() const { return m_HashValue; }
-        
-        // operators 
-        bool operator==(const Entry& other) const {
-            return m_HashValue == other.m_HashValue && m_Key == other.m_Key && m_Value == other.m_Value;
-        }
-
-    protected:
-        // methods
-        void SetValue(const V& value) { m_Value = value; }
-
-        // members
-        NPT_UInt32 m_HashValue;
-        K          m_Key;
-        V          m_Value;
-
-        // friends
-        friend class NPT_HashMap<K,V,HF>;
-    };
-
-    class Iterator {
-    public:
-        Iterator() : m_Entry(NULL), m_Map(NULL) {}
-        Iterator(Entry** entry, const NPT_HashMap<K,V,HF>* map) : m_Entry(entry), m_Map(map) {}
-        Iterator(const Iterator& copy) : m_Entry(copy.m_Entry), m_Map(copy.m_Map) {}
-        const Entry&  operator*()  const { return **m_Entry; }
-        Iterator& operator++()  { // prefix
-            if (m_Map && m_Entry) {
-                do {
-                    ++m_Entry;
-                    if (m_Entry >= &m_Map->m_Buckets[1<<m_Map->m_BucketCountLog]) {
-                        m_Entry = NULL;
-                    } else {
-                        if (*m_Entry) break;
-                    }
-                } while (m_Entry);
-            }
-            return (*this); 
-        }
-        Iterator operator++(int) { // postfix
-            Iterator saved_this = *this;
-            ++(*this);
-            return saved_this;
-        }
-        operator bool() const {
-            return m_Entry != NULL;
-        }
-        bool operator==(const Iterator& other) const {
-            return m_Map == other.m_Map && m_Entry == other.m_Entry;
-        }
-        bool operator!=(const Iterator& other) const {
-            return !(*this == other);
-        }
-        void operator=(const Iterator& other) {
-            m_Entry = other.m_Entry;
-            m_Map   = other.m_Map;
-        }
-
-    private:
-        // friends
-        friend class NPT_HashMap<K,V,HF>;
-
-        // members
-        Entry**                    m_Entry;
-        const NPT_HashMap<K,V,HF>* m_Map;
-    };
-
-    // constructors
-    NPT_HashMap<K,V,HF>();
-    NPT_HashMap<K,V,HF>(const HF& hasher);
-    NPT_HashMap<K,V,HF>(const NPT_HashMap<K,V,HF>& copy);
-
-    // destructor
-    ~NPT_HashMap<K,V,HF>();
-
-    // methods
-    NPT_Result   Put(const K& key, const V& value);
-    NPT_Result   Get(const K& key, V*& value) const; // WARNING: the second parameter is a POINTER on the value type!!!
-    bool         HasKey(const K& key) const { return GetEntry(key) != NULL; }
-    bool         HasValue(const V& value) const;
-    NPT_Result   Erase(const K& key);
-    NPT_Cardinal GetEntryCount() const { return m_EntryCount; }
-    Iterator     GetEntries() const;
-    NPT_Result   Clear();
-    
-    // list operations
-    // keep these template members defined here because MSV6 does not let
-    // us define them later
-    template <typename X> 
-    NPT_Result Apply(const X& function) const
-    {                          
-        for (int i=0; i<(1<<m_BucketCountLog); i++) {
-            if (m_Buckets[i]) {
-                function(m_Buckets[i]);
-            }
-        }
-        return NPT_SUCCESS;
-    }
-
-    // operators
-    V&                         operator[](const K& key);
-    const NPT_HashMap<K,V,HF>& operator=(const NPT_HashMap<K,V,HF>& copy);
-    bool                       operator==(const NPT_HashMap<K,V,HF>& other) const;
-    bool                       operator!=(const NPT_HashMap<K,V,HF>& other) const;
-
-private:
-    // methods
-    Entry*     GetEntry(const K& key, NPT_UInt32* position=NULL) const;
-    NPT_Result AddEntry(Entry* entry);
-    void       AllocateBuckets(unsigned int count_log);
-    void       AdjustBuckets(NPT_Cardinal entry_count, bool allow_shrink=false);
-    
-    // members
-    HF           m_Hasher;
-    Entry**      m_Buckets;
-    NPT_Cardinal m_BucketCountLog;
-    NPT_Cardinal m_EntryCount;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V>::NPT_HashMap
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_HashMap<K,V,HF>::NPT_HashMap() :
-    m_Buckets(NULL),
-    m_EntryCount(0)
-{
-    AllocateBuckets(4);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V>::NPT_HashMap
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_HashMap<K,V,HF>::NPT_HashMap(const HF& hasher) :
-    m_Hasher(hasher),
-    m_Buckets(NULL),
-    m_EntryCount(0)
-{
-    AllocateBuckets(4);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V>::NPT_HashMap
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_HashMap<K,V,HF>::NPT_HashMap(const NPT_HashMap<K,V,HF>& copy) :
-    m_Buckets(NULL),
-    m_BucketCountLog(0),
-    m_EntryCount(0)
-{
-    *this = copy;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_MapMap<K,V,HF>::NPT_HashMap
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_HashMap<K,V,HF>::~NPT_HashMap()
-{
-    for (int i=0; i<(1<<m_BucketCountLog); i++) {
-        delete m_Buckets[i];
-    }
-    delete[] m_Buckets;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::AllocateBuckets
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-void
-NPT_HashMap<K,V,HF>::AllocateBuckets(unsigned int count_log)
-{
-    m_Buckets = new Entry*[1<<count_log];
-    m_BucketCountLog = count_log;
-    for (int i=0; i<(1<<count_log); i++) {
-        m_Buckets[i] = NULL;
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::AdjustBuckets
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-void
-NPT_HashMap<K,V,HF>::AdjustBuckets(NPT_Cardinal entry_count, bool allow_shrink)
-{
-    Entry** buckets = NULL;
-    unsigned int bucket_count = 1<<m_BucketCountLog;
-    if (2*entry_count >= bucket_count) {
-        // we need to grow
-        buckets = m_Buckets;
-        AllocateBuckets(m_BucketCountLog+1);
-    } else if (allow_shrink && (5*entry_count < bucket_count) && m_BucketCountLog > 4) {
-        // we need to shrink
-        buckets = m_Buckets;
-        AllocateBuckets(m_BucketCountLog-1);
-    }
-    if (buckets) {
-        m_EntryCount = 0;
-        for (unsigned int i=0; i<bucket_count; i++) {
-            if (buckets[i]) AddEntry(buckets[i]);
-        }
-        delete[] buckets;
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::Clear
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_Result
-NPT_HashMap<K,V,HF>::Clear()
-{
-    if (m_Buckets) {
-        for (int i=0; i<(1<<m_BucketCountLog); i++) {
-            delete m_Buckets[i];
-        }
-        delete[] m_Buckets;
-    }
-    m_EntryCount = 0;
-    AllocateBuckets(4);
-    
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::GetEntries
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-typename NPT_HashMap<K,V,HF>::Iterator
-NPT_HashMap<K,V,HF>::GetEntries() const
-{
-    for (int i=0; i<(1<<m_BucketCountLog); i++) {
-        if (m_Buckets[i]) {
-            return Iterator(&m_Buckets[i], this);
-        }
-    }
-    return Iterator(NULL, this);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::GetEntry
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-typename NPT_HashMap<K,V,HF>::Entry*
-NPT_HashMap<K,V,HF>::GetEntry(const K& key, NPT_UInt32* position) const
-{
-    NPT_UInt32 hash_value = m_Hasher(key);
-    NPT_UInt32 mask       = (1<<m_BucketCountLog)-1;
-    NPT_UInt32 cursor     = hash_value & mask;
-    while (m_Buckets[cursor]) {
-        Entry* entry = m_Buckets[cursor];
-        if (entry->m_HashValue == hash_value &&
-            entry->m_Key       == key) {
-            if (position) *position = cursor;
-            return entry;
-        }
-        cursor = (cursor + 1) & mask;
-    }
-    
-    return NULL;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::AddEntry
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_Result
-NPT_HashMap<K,V,HF>::AddEntry(Entry* entry)
-{
-    AdjustBuckets(m_EntryCount+1);
-
-    NPT_UInt32 hash_value = entry->m_HashValue;
-    NPT_UInt32 mask       = (1<<m_BucketCountLog)-1;
-    NPT_UInt32 cursor     = hash_value & mask;
-    while (m_Buckets[cursor]) {
-        cursor = (cursor + 1) & mask;
-    }
-    m_Buckets[cursor] = entry;
-    ++m_EntryCount;
-    
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::Put
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_Result
-NPT_HashMap<K,V,HF>::Put(const K& key, const V& value)
-{
-    Entry* entry = GetEntry(key);
-    if (entry == NULL) {
-        // no existing entry for that key, create one
-        return AddEntry(new Entry(m_Hasher(key), key, value));
-    } else {
-        // replace the existing entry for that key
-        entry->SetValue(value);
-    }
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::Get
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_Result
-NPT_HashMap<K,V,HF>::Get(const K& key, V*& value) const
-{
-    Entry* entry = GetEntry(key);
-    if (entry == NULL) {
-        // no existing entry for that key
-        value = NULL;
-        return NPT_ERROR_NO_SUCH_ITEM;
-    } else {
-        // found an entry with that key
-        value = &entry->m_Value;
-        return NPT_SUCCESS;
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::HasValue
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-bool
-NPT_HashMap<K,V,HF>::HasValue(const V& value) const
-{
-    for (int i=0; i<(1<<m_BucketCountLog); i++) {
-        if (m_Buckets[i] && m_Buckets[i]->m_Value == value) {
-            return true;
-        }
-    }
-
-    return false;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::Erase
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_Result
-NPT_HashMap<K,V,HF>::Erase(const K& key)
-{
-    NPT_UInt32 position;
-    Entry* entry = GetEntry(key, &position);
-    if (entry == NULL) {
-        return NPT_ERROR_NO_SUCH_ITEM;
-    }
-    
-    // mark the bucket as unoccupied
-    m_Buckets[position] = NULL;
-    
-    // look for buckets that need to be relocated:
-    // there should be no empty bucket between an entry's ideal hash bucket
-    // and its actual bucket.
-    NPT_UInt32 mask = (1<<m_BucketCountLog)-1;
-    for (NPT_UInt32 cursor = (position+1) & mask; m_Buckets[cursor]; cursor = (cursor + 1) & mask) {
-        NPT_UInt32 target = m_Buckets[cursor]->m_HashValue & mask;
-        // check if target is between position and cursor (modulo the bucket array size)
-        // |    position.target.cursor |
-        // |....cursor position.target.| or |.target..cursor position...|
-        if ( (position <= cursor) ?
-             ((position < target) && (target <= cursor)) :
-             ((position < target) || (target <= cursor)) ) {
-             continue;
-        }
-        
-        // move the bucket back
-        m_Buckets[position] = m_Buckets[cursor];
-        m_Buckets[cursor] = NULL;
-        position = cursor;
-    }
-        
-    // cleanup and adjust the counter and buckets
-    delete entry;
-    --m_EntryCount;
-    AdjustBuckets(m_EntryCount, true);
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::operator=
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-const NPT_HashMap<K,V,HF>&
-NPT_HashMap<K,V,HF>::operator=(const NPT_HashMap<K,V,HF>& copy)
-{
-    // do nothing if we're assigning to ourselves
-    if (this == &copy) return copy;
-
-    // destroy all entries
-    Clear();
-
-    // prepare to receive all the entries
-    AdjustBuckets(copy.m_EntryCount);
-    
-    // copy all entries
-    for (int i=0; i<1<<copy.m_BucketCountLog; i++) {
-        if (copy.m_Buckets[i]) {
-            AddEntry(new Entry(m_Hasher(copy.m_Buckets[i]->GetKey()),
-                               copy.m_Buckets[i]->GetKey(), 
-                               copy.m_Buckets[i]->GetValue()));
-        }
-    }
-    
-    return *this;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::operator==
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-bool
-NPT_HashMap<K,V,HF>::operator==(const NPT_HashMap<K,V,HF>& other) const
-{
-    // quick check
-    if (m_EntryCount != other.m_EntryCount) return false;
-    
-    // compare all entries to all other entries
-    for (int i=0; i<(1<<m_BucketCountLog); i++) {
-        Entry* entry = m_Buckets[i];
-        if (entry == NULL) continue;
-        Entry* other_entry = other.GetEntry(entry->m_Key);
-        if (other_entry == NULL || !(other_entry->m_Value == entry->m_Value)) {
-            return false;
-        }
-    }
-    
-    return true;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::operator!=
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-bool
-NPT_HashMap<K,V,HF>::operator!=(const NPT_HashMap<K,V,HF>& other) const
-{
-    return !(*this == other);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V>::operator[]
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-V&
-NPT_HashMap<K,V,HF>::operator[](const K& key)
-{
-    Entry* entry = GetEntry(key);
-    if (entry == NULL) {
-        // create a new "default" entry for this key
-        entry = new Entry(m_Hasher(key), key);
-        AddEntry(entry);
-    }
-     
-    return entry->m_Value;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_MapEntryValueDeleter
-+---------------------------------------------------------------------*/
-template <class T>
-class NPT_MapEntryValueDeleter {
-public:
-    void operator()(T* entry) const {
-        delete entry->GetValue();
-    }
-};
-
-#endif // _NPT_MAP_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptMessaging.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptMessaging.h
deleted file mode 100644
index 3e61919..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptMessaging.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Messaging System
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_MESSAGING_H_
-#define _NPT_MESSAGING_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConstants.h"
-#include "NptTypes.h"
-#include "NptResults.h"
-#include "NptList.h"
-#include "NptThreads.h"
-#include "NptDynamicCast.h"
-
-/*----------------------------------------------------------------------
-|   forward references
-+---------------------------------------------------------------------*/
-class NPT_Message;
-
-/*----------------------------------------------------------------------
-|   NPT_MessageHandler
-+---------------------------------------------------------------------*/
-class NPT_MessageHandler
-{
-public:
-    NPT_IMPLEMENT_DYNAMIC_CAST(NPT_MessageHandler)
-    
-    // methods
-    virtual ~NPT_MessageHandler() {}
-
-    // default message handler
-    virtual void OnMessage(NPT_Message*) {}
-
-    // this method is a central point of handling for received messages.
-    // it can be overloaded by subclasses that wish to process all 
-    // incoming messages
-    virtual NPT_Result HandleMessage(NPT_Message* message);
-};
-
-/*----------------------------------------------------------------------
-|   NPT_MessageHandlerProxy
-+---------------------------------------------------------------------*/
-class NPT_MessageHandlerProxy : public NPT_MessageHandler
-{
-public:
-    NPT_IMPLEMENT_DYNAMIC_CAST_D(NPT_MessageHandlerProxy, NPT_MessageHandler)
-
-    /**
-     * Create a proxy for a message handler.
-     * All calls to HandleMessage() and OnMessage() on the proxy
-     * are automatically forwarded to the handler.
-     * This class is useful in cases where a handler is passed
-     * asynchronously (for example in a message queue) and one wishes
-     * to guarantee right away that no more calls to the handler will be 
-     * made (because, for example, the handler needs to be deleted).
-     *
-     * The proxy object keeps a pointer to the handler, but does not own it.
-     */
-    NPT_MessageHandlerProxy(NPT_MessageHandler* handler);
-    
-    // destructor
-    virtual ~NPT_MessageHandlerProxy();
-
-    // NPT_MessageHandler methods
-    virtual void OnMessage(NPT_Message*);
-    virtual NPT_Result HandleMessage(NPT_Message* message);
-    
-    /**
-     * Detach the proxy from the handler implementation.
-     * After this call returns, calls will no longer be
-     * forwarded to the handler object. It is then safe, for example,
-     * to delete the handler.
-     */
-    void DetachHandler();
-    
-    /**
-     * Increment the reference count
-     */
-    void AddReference();
-
-    /**
-     * Decrement the reference count and delete if 0
-     */
-    void Release();
-    
-private:
-    // members
-    NPT_MessageHandler* m_Handler;
-    NPT_Cardinal        m_ReferenceCount;
-    NPT_Mutex           m_Lock;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Messsage
-+---------------------------------------------------------------------*/
-class NPT_Message
-{
-public:
-    // types
-    typedef const char* Type;
-
-    // static members
-    static Type const MessageType;
-
-    // methods
-    virtual           ~NPT_Message() {}
-    virtual Type       GetType() { return MessageType; }
-    virtual NPT_Result Dispatch(NPT_MessageHandler* handler) {
-        return DefaultDeliver(handler);
-    }
-    // this method should really be called 'Deliver', but this would
-    // cause a problem when subclasses overload it 
-    virtual NPT_Result DefaultDeliver(NPT_MessageHandler* handler) {
-        handler->OnMessage(this);
-        return NPT_SUCCESS;
-    }
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TerminateMesssage
-+---------------------------------------------------------------------*/
-class NPT_TerminateMessage : public NPT_Message
-{
-public:
-    // methods
-    NPT_Result Dispatch(NPT_MessageHandler* /*handler*/) {
-        return NPT_ERROR_TERMINATED;
-    }
-};
-
-/*----------------------------------------------------------------------
-|   NPT_MessageQueue
-+---------------------------------------------------------------------*/
-class NPT_MessageQueue
-{
-public:
-    // methods
-    virtual           ~NPT_MessageQueue() {}
-    virtual NPT_Result PumpMessage(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) = 0;
-    virtual NPT_Result QueueMessage(NPT_Message*        message, 
-                                    NPT_MessageHandler* handler) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_MessageReceiver
-+---------------------------------------------------------------------*/
-class NPT_MessageReceiver
-{
-public:
-    // methods
-    NPT_MessageReceiver() : m_Queue(NULL), m_Handler(NULL) {}
-    NPT_MessageReceiver(NPT_MessageHandler* handler) : 
-        m_Queue(NULL), m_Handler(handler) {}
-    NPT_MessageReceiver(NPT_MessageQueue* queue) : 
-        m_Queue(queue), m_Handler(NULL) {}
-    NPT_MessageReceiver(NPT_MessageHandler* handler, 
-                        NPT_MessageQueue*   queue) : 
-        m_Queue(queue), m_Handler(handler) {}
-    virtual ~NPT_MessageReceiver() {}
-    NPT_Result SetQueue(NPT_MessageQueue* queue) {
-        m_Queue = queue;
-        return NPT_SUCCESS;
-    }
-    NPT_Result SetHandler(NPT_MessageHandler* handler) {
-        m_Handler = handler;
-        return NPT_SUCCESS;
-    }
-    virtual NPT_Result PostMessage(NPT_Message* message) {
-        if (m_Queue) {
-            return m_Queue->QueueMessage(message, m_Handler);
-        } else {
-            return NPT_FAILURE;
-        }
-    }
-
-protected:
-    // members
-    NPT_MessageQueue*   m_Queue;
-    NPT_MessageHandler* m_Handler;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_MessageBroadcaster
-+---------------------------------------------------------------------*/
-class NPT_MessageBroadcaster
-{
-public:
-    // methods
-    NPT_MessageBroadcaster(NPT_Message* message) : m_Message(message) {}
-    NPT_Result operator()(NPT_MessageReceiver*& receiver) const {
-        receiver->PostMessage(m_Message);
-        return NPT_SUCCESS;
-    }
-
-private:
-    // members
-    NPT_Message* m_Message;
-};
-
-#endif // _NPT_MESSAGING_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptNetwork.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptNetwork.h
deleted file mode 100644
index 6486f03..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptNetwork.h
+++ /dev/null
@@ -1,250 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Network
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_NETWORK_H_
-#define _NPT_NETWORK_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptConstants.h"
-#include "NptStrings.h"
-#include "NptList.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const unsigned int NPT_NETWORK_MAX_MAC_ADDRESS_LENGTH  = 8;
-
-/*----------------------------------------------------------------------
-|   flags
-+---------------------------------------------------------------------*/
-#define NPT_NETWORK_INTERFACE_FLAG_LOOPBACK       0x01
-#define NPT_NETWORK_INTERFACE_FLAG_PROMISCUOUS    0x02
-#define NPT_NETWORK_INTERFACE_FLAG_BROADCAST      0x04
-#define NPT_NETWORK_INTERFACE_FLAG_MULTICAST      0x08
-#define NPT_NETWORK_INTERFACE_FLAG_POINT_TO_POINT 0x10
-
-/*----------------------------------------------------------------------
-|   workarounds
-+---------------------------------------------------------------------*/
-#if defined(_WIN32)
-#if defined(SetPort)
-#undef SetPort
-#endif
-#endif
-
-/*----------------------------------------------------------------------
-|   types
-+---------------------------------------------------------------------*/
-typedef unsigned int NPT_IpPort;
-
-/*----------------------------------------------------------------------
-|   NPT_IpAddress
-+---------------------------------------------------------------------*/
-class NPT_IpAddress
-{
-public:
-    // class members
-    static const NPT_IpAddress Any;
-
-    // constructors and destructor
-    NPT_IpAddress();
-    NPT_IpAddress(unsigned long address);
-    NPT_IpAddress(unsigned char a, unsigned char b, unsigned char c, unsigned char d);
-
-    // methods
-    NPT_Result       ResolveName(const char* name, 
-                                 NPT_Timeout timeout = NPT_TIMEOUT_INFINITE);
-    NPT_Result       Parse(const char* name);
-    NPT_Result       Set(unsigned long address);
-    NPT_Result       Set(const unsigned char bytes[4]);
-    const unsigned char* AsBytes() const;
-    unsigned long    AsLong() const;
-    NPT_String       ToString() const;
-    
-    // operators
-    bool             operator==(const NPT_IpAddress& other) const;
-    
-    // FIXME: temporary
-    NPT_String       m_HostName;
-
-private:
-    // members
-    unsigned char m_Address[4];
-};
-
-/*----------------------------------------------------------------------
-|   NPT_MacAddress
-+---------------------------------------------------------------------*/
-class NPT_MacAddress
-{
-public:
-    // typedef enum
-    typedef enum {
-        TYPE_UNKNOWN,
-        TYPE_LOOPBACK,
-        TYPE_ETHERNET,
-        TYPE_PPP,
-        TYPE_IEEE_802_11
-    } Type;
-    
-    // constructors and destructor
-    NPT_MacAddress() : m_Type(TYPE_UNKNOWN), m_Length(0) {}
-    NPT_MacAddress(Type           type,
-                   const unsigned char* addr, 
-                   unsigned int   length);
-    
-    // methods
-    void                 SetAddress(Type type, const unsigned char* addr,
-                                    unsigned int length);
-    Type                 GetType() const    { return m_Type; }
-    const unsigned char* GetAddress() const { return m_Address; }
-    unsigned int         GetLength() const  { return m_Length; }
-    NPT_String           ToString() const;
-    
-private:
-    // members
-    Type          m_Type;
-    unsigned char m_Address[NPT_NETWORK_MAX_MAC_ADDRESS_LENGTH];
-    unsigned int  m_Length;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_NetworkInterfaceAddress
-+---------------------------------------------------------------------*/
-class NPT_NetworkInterfaceAddress
-{
-public:
-    // constructors and destructor
-    NPT_NetworkInterfaceAddress(const NPT_IpAddress& primary,
-                                const NPT_IpAddress& broadcast,
-                                const NPT_IpAddress& destination,
-                                const NPT_IpAddress& netmask) :
-        m_PrimaryAddress(primary),
-        m_BroadcastAddress(broadcast),
-        m_DestinationAddress(destination),
-        m_NetMask(netmask) {}
-
-    // methods
-    const NPT_IpAddress& GetPrimaryAddress() const {
-        return m_PrimaryAddress;
-    }
-    const NPT_IpAddress& GetBroadcastAddress() const {
-        return m_BroadcastAddress;
-    }
-    const NPT_IpAddress& GetDestinationAddress() const {
-        return m_DestinationAddress;
-    }
-    const NPT_IpAddress& GetNetMask() const {
-        return m_NetMask;
-    }
-    
-    bool IsAddressInNetwork(const NPT_IpAddress& address) {
-        if (m_PrimaryAddress.AsLong() == address.AsLong()) return true;
-        if (m_NetMask.AsLong() == 0) return false;
-        return (m_PrimaryAddress.AsLong() & m_NetMask.AsLong()) == (address.AsLong() & m_NetMask.AsLong());
-    }
-
-private:
-    // members
-    NPT_IpAddress m_PrimaryAddress;
-    NPT_IpAddress m_BroadcastAddress;
-    NPT_IpAddress m_DestinationAddress;
-    NPT_IpAddress m_NetMask;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_NetworkInterface
-+---------------------------------------------------------------------*/
-class NPT_NetworkInterface
-{
-public:
-    // class methods
-    static NPT_Result GetNetworkInterfaces(NPT_List<NPT_NetworkInterface*>& interfaces);
-
-    // constructors and destructor
-    NPT_NetworkInterface(const char*           name,
-                         const NPT_MacAddress& mac,
-                         NPT_Flags             flags);
-    NPT_NetworkInterface(const char*           name,
-                         NPT_Flags             flags);
-   ~NPT_NetworkInterface() {}
-
-    // methods
-    NPT_Result AddAddress(const NPT_NetworkInterfaceAddress& address);
-    const NPT_String& GetName() const {
-        return m_Name;
-    }
-    const NPT_MacAddress& GetMacAddress() const {
-        return m_MacAddress;
-    }
-    void SetMacAddress(NPT_MacAddress::Type type,
-                       const unsigned char* addr, 
-                       unsigned int         length) {
-        m_MacAddress.SetAddress(type, addr, length);
-    }
-    NPT_Flags GetFlags() const { return m_Flags; }
-    const NPT_List<NPT_NetworkInterfaceAddress>& GetAddresses() const {
-        return m_Addresses;
-    }    
-    
-    bool IsAddressInNetwork(const NPT_IpAddress& address) {
-        NPT_List<NPT_NetworkInterfaceAddress>::Iterator iter = m_Addresses.GetFirstItem();
-        while (iter) {
-            if ((*iter).IsAddressInNetwork(address)) return true;
-           ++iter;
-        }
-        return false;
-    }
-    
-private:
-    // members
-    NPT_String                            m_Name;
-    NPT_MacAddress                        m_MacAddress;
-    NPT_Flags                             m_Flags;
-    NPT_List<NPT_NetworkInterfaceAddress> m_Addresses;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_NetworkNameResolver
-+---------------------------------------------------------------------*/
-class NPT_NetworkNameResolver
-{
-public:
-    // class methods
-    static NPT_Result Resolve(const char*              name, 
-                              NPT_List<NPT_IpAddress>& addresses,
-                              NPT_Timeout              timeout = NPT_TIMEOUT_INFINITE);
-};
-
-#endif // _NPT_NETWORK_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptQueue.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptQueue.h
deleted file mode 100644
index ecfe1a9..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptQueue.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Queue
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_QUEUE_H_
-#define _NPT_QUEUE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptConstants.h"
-
-/*----------------------------------------------------------------------
-|   NPT_QueueItem
-+---------------------------------------------------------------------*/
-class NPT_QueueItem;
-
-/*----------------------------------------------------------------------
-|   NPT_GenericQueue
-+---------------------------------------------------------------------*/
-class NPT_GenericQueue
-{
- public:
-    // class methods
-    static NPT_GenericQueue* CreateInstance(NPT_Cardinal max_items = 0);
-
-    // methods
-    virtual           ~NPT_GenericQueue() {}
-    virtual NPT_Result Push(NPT_QueueItem* item, 
-                           NPT_Timeout     timeout = NPT_TIMEOUT_INFINITE) = 0; 
-    virtual NPT_Result Pop(NPT_QueueItem*& item, 
-                           NPT_Timeout     timeout = NPT_TIMEOUT_INFINITE) = 0;
-    virtual NPT_Result Peek(NPT_QueueItem*& item, 
-                           NPT_Timeout     timeout = NPT_TIMEOUT_INFINITE) = 0;
- protected:
-    // methods
-    NPT_GenericQueue() {}
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Queue
-+---------------------------------------------------------------------*/
-template <class T>
-class NPT_Queue
-{
- public:
-    // methods
-    NPT_Queue(NPT_Cardinal max_items = 0) :
-        m_Delegate(NPT_GenericQueue::CreateInstance(max_items)) {}
-    virtual ~NPT_Queue<T>() { delete m_Delegate; }
-    virtual NPT_Result Push(T* item, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) {
-        return m_Delegate->Push(reinterpret_cast<NPT_QueueItem*>(item), timeout);
-    }
-    virtual NPT_Result Pop(T*& item, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) {
-        return m_Delegate->Pop(reinterpret_cast<NPT_QueueItem*&>(item), timeout);
-    }
-    virtual NPT_Result Peek(T*& item, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) {
-        return m_Delegate->Peek(reinterpret_cast<NPT_QueueItem*&>(item), timeout);
-    }
-
- protected:
-    // members
-    NPT_GenericQueue* m_Delegate;
-};
-
-#endif // _NPT_QUEUE_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptReferences.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptReferences.h
deleted file mode 100644
index c8e1f5a..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptReferences.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - References
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-
-#ifndef _NPT_REFERENCES_H_
-#define _NPT_REFERENCES_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConstants.h"
-#include "NptThreads.h"
-
-/*----------------------------------------------------------------------
-|   NPT_Reference
-+---------------------------------------------------------------------*/
-template <typename T>
-class NPT_Reference
-{
-public:
-    // constructors and destructor
-    NPT_Reference() : m_Object(NULL), m_Counter(NULL), m_Mutex(NULL), m_ThreadSafe(true) {}
-    explicit NPT_Reference(T* object, bool thread_safe = true) :
-        m_Object(object),
-        m_Counter(object?new NPT_Cardinal(1):NULL),
-        m_Mutex((object && thread_safe)?new NPT_Mutex():NULL),
-        m_ThreadSafe(thread_safe) {}
-    
-    NPT_Reference(const NPT_Reference<T>& ref) :
-        m_Object(ref.m_Object), m_Counter(ref.m_Counter), m_Mutex(ref.m_Mutex), m_ThreadSafe(ref.m_ThreadSafe) {
-        if (m_Mutex) m_Mutex->Lock();
-        if (m_Counter) ++(*m_Counter);
-        if (m_Mutex) m_Mutex->Unlock();
-    }
-
-    // this methods should be private, but this causes a problem on some
-    // compilers, because we need this function in order to implement
-    // the cast operator operator NPT_Reference<U>() below, which would
-    // have to be marked as a friend, and friend declarations with the 
-    // same class name confuses some compilers
-    NPT_Reference(T* object, NPT_Cardinal* counter, NPT_Mutex* mutex, bool thread_safe) : 
-        m_Object(object), m_Counter(counter), m_Mutex(mutex), m_ThreadSafe(thread_safe) {
-        if (m_Mutex) m_Mutex->Lock();
-        if (m_Counter) ++(*m_Counter);
-        if (m_Mutex) m_Mutex->Unlock();
-    }
-
-    ~NPT_Reference() {
-        Release();
-    }
-
-    // overloaded operators
-    NPT_Reference<T>& operator=(const NPT_Reference<T>& ref) {
-        if (this != &ref) {
-            Release();
-            m_Object = ref.m_Object;
-            m_Counter = ref.m_Counter;
-            m_Mutex = ref.m_Mutex;
-            m_ThreadSafe = ref.m_ThreadSafe;
-            
-            if (m_Mutex) m_Mutex->Lock();
-            if (m_Counter) ++(*m_Counter);
-            if (m_Mutex) m_Mutex->Unlock();
-        }
-        return *this;
-    }
-    NPT_Reference<T>& operator=(T* object) {
-        Release();
-        m_Object  = object;
-        m_Counter = object?new NPT_Cardinal(1):NULL;
-        m_Mutex   = (object && m_ThreadSafe)?new NPT_Mutex():NULL;
-        return *this;
-    }
-    T& operator*() const { return *m_Object; }
-    T* operator->() const { return m_Object; }
-
-    bool operator==(const NPT_Reference<T>& ref) const {
-        return m_Object == ref.m_Object;
-    } 
-    bool operator!=(const NPT_Reference<T>& ref) const {
-        return m_Object != ref.m_Object;
-    }
-
-    // overloaded cast operators
-    template <typename U> operator NPT_Reference<U>() {
-        return NPT_Reference<U>(m_Object, m_Counter, m_Mutex, m_ThreadSafe);
-    }
-
-    // methods
-    /**
-     * Returns the naked pointer value.
-     */
-    T* AsPointer() const { return m_Object; }
-    
-    /**
-     * Returns the reference counter value.
-     */
-    NPT_Cardinal GetCounter() const { return *m_Counter; }
-    
-    /**
-     * Returns whether this references a NULL object.
-     */
-    bool IsNull()  const { return m_Object == NULL; }
-    
-    /**
-     * Detach the reference from the shared object.
-     * The reference count is decremented, but the object is not deleted if the
-     * reference count becomes 0.
-     * After the method returns, this reference does not point to any shared object.
-     */
-    void Detach() {
-        Release(true);        
-    }
-    
-private:
-    // methods
-    void Release(bool detach_only = false) {
-        bool last_reference = false;
-        if (m_Mutex) m_Mutex->Lock();
-            
-        if (m_Counter && --(*m_Counter) == 0) {
-            delete m_Counter;
-            if (!detach_only) delete m_Object;
-            last_reference = true;
-        }
-        
-        m_Counter = NULL;
-        m_Object  = NULL;
-        
-        if (m_Mutex) {
-            NPT_Mutex* mutex = m_Mutex;
-            m_Mutex = NULL;
-            mutex->Unlock();
-            if (last_reference) delete mutex;
-        }
-        
-    }
-
-    // members
-    T*            m_Object;
-    NPT_Cardinal* m_Counter;
-    NPT_Mutex*    m_Mutex;
-    bool          m_ThreadSafe;
-};
-
-#endif // _NPT_REFERENCES_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptResults.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptResults.h
deleted file mode 100644
index 88025f7..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptResults.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Result Codes
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_RESULTS_H_
-#define _NPT_RESULTS_H_
-
-/*----------------------------------------------------------------------
-|   macros
-+---------------------------------------------------------------------*/
-#if defined(NPT_DEBUG)
-#include "NptDebug.h"
-#define NPT_CHECK(_x)               \
-do {                                \
-    NPT_Result _result = (_x);      \
-    if (_result != NPT_SUCCESS) {   \
-        NPT_Debug("%s(%d): @@@ NPT_CHECK failed, result=%d (%s)\n", __FILE__, __LINE__, _result, NPT_ResultText(_result)); \
-        return _result;             \
-    }                               \
-} while(0)
-#define NPT_CHECK_POINTER(_p)                 \
-do {                                          \
-    if ((_p) == NULL) {                       \
-        NPT_Debug("%s(%d): @@@ NULL pointer parameter\n", __FILE__, __LINE__); \
-        return NPT_ERROR_INVALID_PARAMETERS;  \
-    }                                         \
-} while(0)
-#define NPT_CHECK_LABEL(_x, label)  \
-do {                                \
-    NPT_Result _result = (_x);      \
-    if (_result != NPT_SUCCESS) {   \
-        NPT_Debug("%s(%d): @@@ NPT_CHECK failed, result=%d (%s)\n", __FILE__, __LINE__, _result, NPT_ResultText(_result)); \
-        goto label;                 \
-    }                               \
-} while(0)
-#define NPT_CHECK_POINTER_LABEL(_p, label)   \
-do {                                         \
-    if (_p == NULL) {                        \
-        NPT_Debug("%s(%d): @@@ NULL pointer parameter\n", __FILE__, __LINE__); \
-        goto label;                          \
-    }                                        \
-} while(0)
-#else
-#define NPT_CHECK(_x)               \
-do {                                \
-    NPT_Result _result = (_x);      \
-    if (_result != NPT_SUCCESS) {   \
-        return _result;             \
-    }                               \
-} while(0)
-#define NPT_CHECK_POINTER(_p)                               \
-do {                                                        \
-    if ((_p) == NULL) return NPT_ERROR_INVALID_PARAMETERS;  \
-} while(0)
-#define NPT_CHECK_LABEL(_x, label)  \
-do {                                \
-    NPT_Result _result = (_x);      \
-    if (_result != NPT_SUCCESS) {   \
-        goto label;                 \
-    }                               \
-} while(0)
-#define NPT_CHECK_POINTER_LABEL(_p, label)   \
-do {                                         \
-    if ((_p) == NULL) {                      \
-        goto label;                          \
-    }                                        \
-} while(0)
-#endif
-
-#define NPT_FAILED(result)              ((result) != NPT_SUCCESS)
-#define NPT_SUCCEEDED(result)           ((result) == NPT_SUCCESS)
-
-/*----------------------------------------------------------------------
-|   result codes
-+---------------------------------------------------------------------*/
-/** Result indicating that the operation or call succeeded */
-#define NPT_SUCCESS                     0
-
-/** Result indicating an unspecififed failure condition */
-#define NPT_FAILURE                     (-1)
-
-#if !defined(NPT_ERROR_BASE)
-#define NPT_ERROR_BASE -20000
-#endif
-
-// error bases
-#define NPT_ERROR_BASE_GENERAL        (NPT_ERROR_BASE-0)
-#define NPT_ERROR_BASE_LIST           (NPT_ERROR_BASE-100)
-#define NPT_ERROR_BASE_FILE           (NPT_ERROR_BASE-200)
-#define NPT_ERROR_BASE_IO             (NPT_ERROR_BASE-300)
-#define NPT_ERROR_BASE_SOCKET         (NPT_ERROR_BASE-400)
-#define NPT_ERROR_BASE_INTERFACES     (NPT_ERROR_BASE-500)
-#define NPT_ERROR_BASE_XML            (NPT_ERROR_BASE-600)
-#define NPT_ERROR_BASE_UNIX           (NPT_ERROR_BASE-700)
-#define NPT_ERROR_BASE_HTTP           (NPT_ERROR_BASE-800)
-#define NPT_ERROR_BASE_THREADS        (NPT_ERROR_BASE-900)
-#define NPT_ERROR_BASE_SERIAL_PORT    (NPT_ERROR_BASE-1000)
-#define NPT_ERROR_BASE_TLS            (NPT_ERROR_BASE-1100)
-
-// general errors
-#define NPT_ERROR_INVALID_PARAMETERS  (NPT_ERROR_BASE_GENERAL - 0)
-#define NPT_ERROR_PERMISSION_DENIED   (NPT_ERROR_BASE_GENERAL - 1)
-#define NPT_ERROR_OUT_OF_MEMORY       (NPT_ERROR_BASE_GENERAL - 2)
-#define NPT_ERROR_NO_SUCH_NAME        (NPT_ERROR_BASE_GENERAL - 3)
-#define NPT_ERROR_NO_SUCH_PROPERTY    (NPT_ERROR_BASE_GENERAL - 4)
-#define NPT_ERROR_NO_SUCH_ITEM        (NPT_ERROR_BASE_GENERAL - 5)
-#define NPT_ERROR_NO_SUCH_CLASS       (NPT_ERROR_BASE_GENERAL - 6)
-#define NPT_ERROR_OVERFLOW            (NPT_ERROR_BASE_GENERAL - 7)
-#define NPT_ERROR_INTERNAL            (NPT_ERROR_BASE_GENERAL - 8)
-#define NPT_ERROR_INVALID_STATE       (NPT_ERROR_BASE_GENERAL - 9)
-#define NPT_ERROR_INVALID_FORMAT      (NPT_ERROR_BASE_GENERAL - 10)
-#define NPT_ERROR_INVALID_SYNTAX      (NPT_ERROR_BASE_GENERAL - 11)
-#define NPT_ERROR_NOT_IMPLEMENTED     (NPT_ERROR_BASE_GENERAL - 12)
-#define NPT_ERROR_NOT_SUPPORTED       (NPT_ERROR_BASE_GENERAL - 13)
-#define NPT_ERROR_TIMEOUT             (NPT_ERROR_BASE_GENERAL - 14)
-#define NPT_ERROR_WOULD_BLOCK         (NPT_ERROR_BASE_GENERAL - 15)
-#define NPT_ERROR_TERMINATED          (NPT_ERROR_BASE_GENERAL - 16)
-#define NPT_ERROR_OUT_OF_RANGE        (NPT_ERROR_BASE_GENERAL - 17)
-#define NPT_ERROR_OUT_OF_RESOURCES    (NPT_ERROR_BASE_GENERAL - 18)
-#define NPT_ERROR_NOT_ENOUGH_SPACE    (NPT_ERROR_BASE_GENERAL - 19)
-#define NPT_ERROR_INTERRUPTED         (NPT_ERROR_BASE_GENERAL - 20)
-#define NPT_ERROR_CANCELLED           (NPT_ERROR_BASE_GENERAL - 21)
-
-/* standard error codes                                  */
-/* these are special codes to convey an errno            */
-/* the error code is (SHI_ERROR_BASE_ERRNO - errno)      */
-/* where errno is the positive integer from errno.h      */
-#define NPT_ERROR_BASE_ERRNO          (NPT_ERROR_BASE-2000)
-#define NPT_ERROR_ERRNO(e)            (NPT_ERROR_BASE_ERRNO - (e))
-
-/*----------------------------------------------------------------------
-|   functions
-+---------------------------------------------------------------------*/
-const char* NPT_ResultText(int result);
-
-#endif // _NPT_RESULTS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptRingBuffer.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptRingBuffer.h
deleted file mode 100644
index 990b4a6..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptRingBuffer.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Ring Buffer
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_RING_BUFFER_H_
-#define _NPT_RING_BUFFER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptReferences.h"
-
-/*----------------------------------------------------------------------
-|   NPT_RingBuffer
-+---------------------------------------------------------------------*/
-class NPT_RingBuffer
-{
- public:
-    // methods
-                  NPT_RingBuffer(NPT_Size size);
-                  NPT_RingBuffer(void* buffer, NPT_Size size);
-    virtual      ~NPT_RingBuffer();
-    NPT_Size      GetSpace() const;
-    NPT_Size      GetContiguousSpace() const;
-    NPT_Result    Write(const void* buffer, NPT_Size byte_count);
-    NPT_Size      GetAvailable() const;
-    NPT_Size      GetContiguousAvailable() const;
-    NPT_Result    Read(void* buffer, NPT_Size byte_count);
-    unsigned char ReadByte();
-    unsigned char PeekByte(NPT_Position offset);
-    NPT_Result    MoveIn(NPT_Position offset);
-    NPT_Result    MoveOut(NPT_Position offset);
-    NPT_Result    Flush();
-    NPT_Result    Close();
-    bool          IsClosed() { return m_Closed; }
-
-    // accessors
-    unsigned char* GetWritePointer()  { return m_In; }
-    unsigned char* GetReadPointer()   { return m_Out;}
-
- private:
-    // members
-    struct {
-        unsigned char* start;
-        unsigned char* end;
-    }              m_Data;
-    unsigned char* m_In;
-    unsigned char* m_Out;
-//    NPT_Size       m_Size;
-    bool           m_BufferIsLocal;
-    bool           m_Closed;
-};
-
-typedef NPT_Reference<NPT_RingBuffer> NPT_RingBufferReference;
-
-#endif // _NPT_RING_BUFFER_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSelectableMessageQueue.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSelectableMessageQueue.h
deleted file mode 100644
index 23dd499..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSelectableMessageQueue.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Selectable Message Queue
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_SELECTABLE_MESSAGE_QUEUE_H_
-#define _NPT_SELECTABLE_MESSAGE_QUEUE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptMessaging.h"
-#include "NptSimpleMessageQueue.h"
-
-/*----------------------------------------------------------------------
-|   NPT_SelectableMessageQueue
-+---------------------------------------------------------------------*/
-class NPT_SelectableMessageQueue : public NPT_SimpleMessageQueue
-{
-public:
-    // methods
-             NPT_SelectableMessageQueue();
-    virtual ~NPT_SelectableMessageQueue();
-    
-    // NPT_MessageQueue methods
-    virtual NPT_Result PumpMessage(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE);
-    virtual NPT_Result QueueMessage(NPT_Message*        message,
-                                    NPT_MessageHandler* handler);
-
-    // methods
-    int  GetEventFd() { return m_Pipe[0]; }
- 
-private:
-    // methods
-    NPT_Result FlushEvent();
-
-    // members
-    int m_Pipe[2];
-};
-
-
-#endif /* _NPT_SELECTABLE_MESSAGE_QUEUE_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSerialPort.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSerialPort.h
deleted file mode 100644
index 1e23a3d..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSerialPort.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Serial Ports
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_SERIAL_PORT_H_
-#define _NPT_SERIAL_PORT_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptStreams.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_NO_SUCH_SERIAL_PORT      = NPT_ERROR_BASE_SERIAL_PORT - 0;
-const int NPT_ERROR_SERIAL_PORT_NOT_OPEN     = NPT_ERROR_BASE_SERIAL_PORT - 1;
-const int NPT_ERROR_SERIAL_PORT_ALREADY_OPEN = NPT_ERROR_BASE_SERIAL_PORT - 2;
-const int NPT_ERROR_SERIAL_PORT_BUSY         = NPT_ERROR_BASE_SERIAL_PORT - 3;
-
-typedef enum {
-    NPT_SERIAL_PORT_PARITY_NONE,
-    NPT_SERIAL_PORT_PARITY_EVEN,
-    NPT_SERIAL_PORT_PARITY_ODD,
-    NPT_SERIAL_PORT_PARITY_MARK
-} NPT_SerialPortParity;
-
-typedef enum {
-    NPT_SERIAL_PORT_STOP_BITS_1,
-    NPT_SERIAL_PORT_STOP_BITS_1_5,
-    NPT_SERIAL_PORT_STOP_BITS_2
-} NPT_SerialPortStopBits;
-
-typedef enum {
-    NPT_SERIAL_PORT_FLOW_CONTROL_NONE,
-    NPT_SERIAL_PORT_FLOW_CONTROL_HARDWARE,
-    NPT_SERIAL_PORT_FLOW_CONTROL_XON_XOFF
-} NPT_SerialPortFlowControl;
-
-/*----------------------------------------------------------------------
-|   NPT_SerialPortInterface
-+---------------------------------------------------------------------*/
-class NPT_SerialPortInterface
-{
-public:
-    // constructors and destructor
-    virtual ~NPT_SerialPortInterface() {}
-
-    // methods
-    virtual NPT_Result Open(unsigned int              speed, 
-                            NPT_SerialPortStopBits    stop_bits,
-                            NPT_SerialPortFlowControl flow_control,
-                            NPT_SerialPortParity      parity) = 0;
-    virtual NPT_Result Close() = 0;
-    virtual NPT_Result GetInputStream(NPT_InputStreamReference& stream) = 0;
-    virtual NPT_Result GetOutputStream(NPT_OutputStreamReference& stream) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_SerialPort
-+---------------------------------------------------------------------*/
-class NPT_SerialPort : public NPT_SerialPortInterface
-{
-public:
-    // constructors and destructor
-    NPT_SerialPort(const char* name);
-   ~NPT_SerialPort() { delete m_Delegate; }
-
-    // NPT_SerialPortInterface methods
-    NPT_Result Open(unsigned int              speed, 
-                    NPT_SerialPortStopBits    stop_bits = NPT_SERIAL_PORT_STOP_BITS_1,
-                    NPT_SerialPortFlowControl flow_control = NPT_SERIAL_PORT_FLOW_CONTROL_NONE,
-                    NPT_SerialPortParity      parity = NPT_SERIAL_PORT_PARITY_NONE) {
-        return m_Delegate->Open(speed, stop_bits, flow_control, parity);
-    }
-    NPT_Result Close() {
-        return m_Delegate->Close();
-    }
-    NPT_Result GetInputStream(NPT_InputStreamReference& stream) {
-        return m_Delegate->GetInputStream(stream);
-    }
-    NPT_Result GetOutputStream(NPT_OutputStreamReference& stream) {
-        return m_Delegate->GetOutputStream(stream);
-    }
-
-protected:
-    // members
-    NPT_SerialPortInterface* m_Delegate;
-};
-
-#endif // _NPT_SERIAL_PORT_H_ 
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSimpleMessageQueue.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSimpleMessageQueue.h
deleted file mode 100644
index 158b6ff..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSimpleMessageQueue.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Simple Message Queue
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_SIMPLE_MESSAGE_QUEUE_H_
-#define _NPT_SIMPLE_MESSAGE_QUEUE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptThreads.h"
-#include "NptMessaging.h"
-#include "NptQueue.h"
-
-/*----------------------------------------------------------------------
-|   class references
-+---------------------------------------------------------------------*/
-class NPT_SimpleMessageCapsule;
-
-/*----------------------------------------------------------------------
-|   NPT_SimpleMessageQueue
-+---------------------------------------------------------------------*/
-class NPT_SimpleMessageQueue : public NPT_MessageQueue
-{
- public:
-    // members
-    NPT_SimpleMessageQueue();
-    virtual ~NPT_SimpleMessageQueue();
-
-    // NPT_MessageQueue methods
-    virtual NPT_Result QueueMessage(NPT_Message*        message, 
-                                    NPT_MessageHandler* handler);
-    virtual NPT_Result PumpMessage(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE);
-
- private:
-    // members
-    NPT_Queue<NPT_SimpleMessageCapsule> m_Queue;
-};
-
-#endif // _NPT_SIMPLE_MESSAGE_QUEUE_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSockets.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSockets.h
deleted file mode 100644
index 789939a..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSockets.h
+++ /dev/null
@@ -1,335 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Network Sockets
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_SOCKETS_H_
-#define _NPT_SOCKETS_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptConstants.h"
-#include "NptStreams.h"
-#include "NptStrings.h"
-#include "NptDataBuffer.h"
-#include "NptNetwork.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_CONNECTION_RESET      = NPT_ERROR_BASE_SOCKET - 0;
-const int NPT_ERROR_CONNECTION_ABORTED    = NPT_ERROR_BASE_SOCKET - 1;
-const int NPT_ERROR_CONNECTION_REFUSED    = NPT_ERROR_BASE_SOCKET - 2;
-const int NPT_ERROR_CONNECTION_FAILED     = NPT_ERROR_BASE_SOCKET - 3;
-const int NPT_ERROR_HOST_UNKNOWN          = NPT_ERROR_BASE_SOCKET - 4;
-const int NPT_ERROR_SOCKET_FAILED         = NPT_ERROR_BASE_SOCKET - 5;
-const int NPT_ERROR_GETSOCKOPT_FAILED     = NPT_ERROR_BASE_SOCKET - 6;
-const int NPT_ERROR_SETSOCKOPT_FAILED     = NPT_ERROR_BASE_SOCKET - 7;
-const int NPT_ERROR_SOCKET_CONTROL_FAILED = NPT_ERROR_BASE_SOCKET - 8;
-const int NPT_ERROR_BIND_FAILED           = NPT_ERROR_BASE_SOCKET - 9;
-const int NPT_ERROR_LISTEN_FAILED         = NPT_ERROR_BASE_SOCKET - 10;
-const int NPT_ERROR_ACCEPT_FAILED         = NPT_ERROR_BASE_SOCKET - 11;
-const int NPT_ERROR_ADDRESS_IN_USE        = NPT_ERROR_BASE_SOCKET - 12;
-const int NPT_ERROR_NETWORK_DOWN          = NPT_ERROR_BASE_SOCKET - 13;
-const int NPT_ERROR_NETWORK_UNREACHABLE   = NPT_ERROR_BASE_SOCKET - 14;
-const int NPT_ERROR_NOT_CONNECTED         = NPT_ERROR_BASE_SOCKET - 15;
-
-const unsigned int NPT_SOCKET_FLAG_CANCELLABLE = 1; // make the socket cancellable
-
-/*----------------------------------------------------------------------
-|   forward references
-+---------------------------------------------------------------------*/
-class NPT_Socket;
-
-/*----------------------------------------------------------------------
-|   NPT_SocketAddress
-+---------------------------------------------------------------------*/
-class NPT_SocketAddress 
-{
-public:
-    // constructors and destructor
-    NPT_SocketAddress() : m_Port(0) {}
-    NPT_SocketAddress(const NPT_IpAddress& address, NPT_IpPort port) :
-        m_IpAddress(address),
-        m_Port(port) {}
-
-    // methods
-    NPT_Result SetIpAddress(const NPT_IpAddress& address) {
-        m_IpAddress = address;
-        return NPT_SUCCESS;
-    }
-    const NPT_IpAddress& GetIpAddress() const { 
-        return m_IpAddress; 
-    }
-    NPT_Result SetPort(NPT_IpPort port) { 
-        m_Port = port; 
-        return NPT_SUCCESS; 
-    }
-    NPT_IpPort GetPort() const { 
-        return m_Port; 
-    }
-    NPT_String ToString() const;
-
-    // operators
-    bool operator==(const NPT_SocketAddress& other) const;
-
-private:
-    // members
-    NPT_IpAddress m_IpAddress;
-    NPT_IpPort    m_Port;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_SocketInfo
-+---------------------------------------------------------------------*/
-typedef struct {
-    NPT_SocketAddress local_address;
-    NPT_SocketAddress remote_address;
-} NPT_SocketInfo;
-
-/*----------------------------------------------------------------------
-|   NPT_SocketInterface
-+---------------------------------------------------------------------*/
-class NPT_SocketInterface
-{
- public:
-    virtual ~NPT_SocketInterface() {}
-
-    // interface methods
-    virtual NPT_Result Bind(const NPT_SocketAddress& address, bool reuse_address = true) = 0;
-    virtual NPT_Result Connect(const NPT_SocketAddress& address, NPT_Timeout timeout) = 0;
-    virtual NPT_Result WaitForConnection(NPT_Timeout timeout) = 0;
-    virtual NPT_Result GetInputStream(NPT_InputStreamReference& stream) = 0;
-    virtual NPT_Result GetOutputStream(NPT_OutputStreamReference& stream) = 0;
-    virtual NPT_Result GetInfo(NPT_SocketInfo& info) = 0;
-    virtual NPT_Result SetReadTimeout(NPT_Timeout timeout) = 0;
-    virtual NPT_Result SetWriteTimeout(NPT_Timeout timeout) = 0;
-    virtual NPT_Result Cancel(bool shutdown=true) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_UdpSocketInterface
-+---------------------------------------------------------------------*/
-class NPT_UdpSocketInterface
-{
- public:
-    virtual ~NPT_UdpSocketInterface() {}
-
-    // methods
-    virtual NPT_Result Send(const NPT_DataBuffer&    packet, 
-                            const NPT_SocketAddress* address = NULL) = 0;
-    virtual NPT_Result Receive(NPT_DataBuffer&    packet, 
-                               NPT_SocketAddress* address = NULL) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_UdpMulticastSocketInterface
-+---------------------------------------------------------------------*/
-class NPT_UdpMulticastSocketInterface
-{
- public:
-    virtual ~NPT_UdpMulticastSocketInterface() {}
-
-    // methods
-    virtual NPT_Result JoinGroup(const NPT_IpAddress& group, 
-                                 const NPT_IpAddress& iface) = 0;
-    virtual NPT_Result LeaveGroup(const NPT_IpAddress& group,
-                                  const NPT_IpAddress& iface) = 0;
-    virtual NPT_Result SetTimeToLive(unsigned char ttl) = 0;
-    virtual NPT_Result SetInterface(const NPT_IpAddress& iface) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TcpServerSocketInterface
-+---------------------------------------------------------------------*/
-class NPT_TcpServerSocketInterface
-{
- public:
-    virtual ~NPT_TcpServerSocketInterface() {}
-
-    // interface methods
-    virtual NPT_Result Listen(unsigned int max_clients) = 0;
-    virtual NPT_Result WaitForNewClient(NPT_Socket*& client, 
-                                        NPT_Timeout  timeout,
-                                        NPT_Flags    flags) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Socket
-+---------------------------------------------------------------------*/
-class NPT_Socket : public NPT_SocketInterface
-{
-public:
-    // constructor and destructor
-    explicit NPT_Socket(NPT_SocketInterface* delegate) : m_SocketDelegate(delegate) {}
-    virtual ~NPT_Socket();
-
-    // delegate NPT_SocketInterface methods
-    NPT_Result Bind(const NPT_SocketAddress& address, bool reuse_address = true) {             
-        return m_SocketDelegate->Bind(address, reuse_address);                            
-    }                                                               
-    NPT_Result Connect(const NPT_SocketAddress& address,            
-                       NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) {
-       return m_SocketDelegate->Connect(address, timeout);                 
-    }                                                               
-    NPT_Result WaitForConnection(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) {
-        return m_SocketDelegate->WaitForConnection(timeout);                 
-    } 
-    NPT_Result GetInputStream(NPT_InputStreamReference& stream) {   
-        return m_SocketDelegate->GetInputStream(stream);                   
-    }                                                               
-    NPT_Result GetOutputStream(NPT_OutputStreamReference& stream) { 
-    return m_SocketDelegate->GetOutputStream(stream);                      
-    }                                                               
-    NPT_Result GetInfo(NPT_SocketInfo& info) {                      
-        return m_SocketDelegate->GetInfo(info);                            
-    }                                                               
-    NPT_Result SetReadTimeout(NPT_Timeout timeout) {                      
-        return m_SocketDelegate->SetReadTimeout(timeout);                            
-    }                                                          
-    NPT_Result SetWriteTimeout(NPT_Timeout timeout) {                      
-        return m_SocketDelegate->SetWriteTimeout(timeout);                            
-    }                                                          
-    NPT_Result Cancel(bool shutdown=true) {                      
-        return m_SocketDelegate->Cancel(shutdown);                            
-    }                                                          
-
-protected:
-    // constructor
-    NPT_Socket() {}
-
-    // members
-    NPT_SocketInterface* m_SocketDelegate;
-};
-
-typedef NPT_Reference<NPT_Socket> NPT_SocketReference;
-
-/*----------------------------------------------------------------------
-|   NPT_UdpSocket
-+---------------------------------------------------------------------*/
-class NPT_UdpSocket : public NPT_Socket,
-                      public NPT_UdpSocketInterface
-{
- public:
-    // constructor and destructor
-             NPT_UdpSocket(NPT_Flags flags=NPT_SOCKET_FLAG_CANCELLABLE);
-    virtual ~NPT_UdpSocket();
-
-    // delegate NPT_UdpSocketInterface methods
-    NPT_Result Send(const NPT_DataBuffer&    packet,           
-                    const NPT_SocketAddress* address = NULL) {
-        return m_UdpSocketDelegate->Send(packet, address);              
-    }                                                         
-    NPT_Result Receive(NPT_DataBuffer&     packet,            
-                       NPT_SocketAddress*  address = NULL) {  
-        return m_UdpSocketDelegate->Receive(packet, address);           
-    }
-
-protected:
-    // constructor
-    NPT_UdpSocket(NPT_UdpSocketInterface* delegate);
-
-    // members
-    NPT_UdpSocketInterface* m_UdpSocketDelegate;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_UdpMulticastSocket
-+---------------------------------------------------------------------*/
-class NPT_UdpMulticastSocket : public NPT_UdpSocket, 
-                               public NPT_UdpMulticastSocketInterface
-{
-public:
-    // constructor and destructor
-             NPT_UdpMulticastSocket(NPT_Flags flags=NPT_SOCKET_FLAG_CANCELLABLE);
-    virtual ~NPT_UdpMulticastSocket();
-
-    // delegate NPT_UdpMulticastSocketInterface methods
-    NPT_Result JoinGroup(const NPT_IpAddress& group,            
-                         const NPT_IpAddress& iface =           
-                         NPT_IpAddress::Any) {                  
-        return m_UdpMulticastSocketDelegate->JoinGroup(group, iface);
-    }                                                           
-    NPT_Result LeaveGroup(const NPT_IpAddress& group,           
-                          const NPT_IpAddress& iface =          
-                          NPT_IpAddress::Any) {                 
-        return m_UdpMulticastSocketDelegate->LeaveGroup(group, iface);
-    }                                                          
-    NPT_Result SetTimeToLive(unsigned char ttl) {     
-        return m_UdpMulticastSocketDelegate->SetTimeToLive(ttl); 
-    }
-    NPT_Result SetInterface(const NPT_IpAddress& iface) {
-        return m_UdpMulticastSocketDelegate->SetInterface(iface);
-    }
-
-protected:
-    // members
-    NPT_UdpMulticastSocketInterface* m_UdpMulticastSocketDelegate;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TcpClientSocket
-+---------------------------------------------------------------------*/
-class NPT_TcpClientSocket : public NPT_Socket
-{
-public:
-    // constructors and destructor
-             NPT_TcpClientSocket(NPT_Flags flags=NPT_SOCKET_FLAG_CANCELLABLE);
-    virtual ~NPT_TcpClientSocket();
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TcpServerSocket
-+---------------------------------------------------------------------*/
-class NPT_TcpServerSocket : public NPT_Socket,
-                            public NPT_TcpServerSocketInterface
-{
-public:
-    // constructors and destructor
-             NPT_TcpServerSocket(NPT_Flags flags=NPT_SOCKET_FLAG_CANCELLABLE);
-    virtual ~NPT_TcpServerSocket();
-
-    // delegate NPT_TcpServerSocketInterface methods
-    NPT_Result Listen(unsigned int max_clients) {   
-        return m_TcpServerSocketDelegate->Listen(max_clients);
-    }
-    NPT_Result WaitForNewClient(NPT_Socket*& client, 
-                                NPT_Timeout  timeout = NPT_TIMEOUT_INFINITE,
-                                NPT_Flags    flags = 0) {
-        return m_TcpServerSocketDelegate->WaitForNewClient(client, timeout, flags);
-    }
-
-protected:
-    // members
-    NPT_TcpServerSocketInterface* m_TcpServerSocketDelegate;
-};
-
-#endif // _NPT_SOCKETS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptStack.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptStack.h
deleted file mode 100644
index 5078805..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptStack.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Stack
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-
-#ifndef _NPT_STACK_H_
-#define _NPT_STACK_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptResults.h"
-#include "NptTypes.h"
-#include "NptList.h"
-
-/*----------------------------------------------------------------------
-|   NPT_Stack
-+---------------------------------------------------------------------*/
-template <typename T> 
-class NPT_Stack : public NPT_List<T>
-{
-public:
-    // methods
-    NPT_Result Push(const T& value) {
-        // NOTE: we must use the this-> accessor here because the standard
-        // requires it when the member to look up is in a parent template
-        return this->Add(value);
-    }
-
-    NPT_Result Peek(T& value) {
-        // NOTE: we must use the this-> accessor here because the standard
-        // requires it when the member to look up is in a parent template
-        if (this->m_ItemCount == 0) return NPT_ERROR_NO_SUCH_ITEM;
-        value = this->m_Tail->m_Data;
-        return NPT_SUCCESS;
-    }
-
-    NPT_Result Pop(T& value) {
-        // NOTE: we must use the this-> accessor here because the standard
-        // requires it when the member to look up is in a parent template
-        if (this->m_ItemCount == 0) return NPT_ERROR_NO_SUCH_ITEM;
-        typename NPT_List<T>::Iterator tail = this->GetLastItem();
-        value = *tail;
-        return this->Erase(tail);
-    }
-};
-
-#endif // _NPT_STACK_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptStreams.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptStreams.h
deleted file mode 100644
index 6cdab10..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptStreams.h
+++ /dev/null
@@ -1,321 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Byte Streams
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_STREAMS_H_
-#define _NPT_STREAMS_H_
-
-/*----------------------------------------------------------------------
-|    includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptReferences.h"
-#include "NptConstants.h"
-#include "NptResults.h"
-#include "NptDataBuffer.h"
-#include "NptStrings.h"
-
-/*----------------------------------------------------------------------
-|    class references
-+---------------------------------------------------------------------*/
-class NPT_String;
-
-/*----------------------------------------------------------------------
-|    constants
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_READ_FAILED  = NPT_ERROR_BASE_IO - 0;
-const int NPT_ERROR_WRITE_FAILED = NPT_ERROR_BASE_IO - 1;
-const int NPT_ERROR_EOS          = NPT_ERROR_BASE_IO - 2;
-
-/*----------------------------------------------------------------------
-|    NPT_InputStream
-+---------------------------------------------------------------------*/
-class NPT_InputStream
-{
- public:
-    // constructor and destructor
-    virtual ~NPT_InputStream() {};
-
-    // methods
-    virtual NPT_Result Load(NPT_DataBuffer& buffer, NPT_Size max_read = 0);
-    virtual NPT_Result Read(void*     buffer, 
-                            NPT_Size  bytes_to_read, 
-                            NPT_Size* bytes_read = NULL) = 0;
-    virtual NPT_Result ReadFully(void*     buffer, 
-                                 NPT_Size  bytes_to_read);
-    virtual NPT_Result Seek(NPT_Position offset) = 0;
-    virtual NPT_Result Skip(NPT_Size offset);
-    virtual NPT_Result Tell(NPT_Position& offset) = 0;
-    virtual NPT_Result GetSize(NPT_LargeSize& size) = 0;
-    virtual NPT_Result GetAvailable(NPT_LargeSize& available) = 0;
-    
-    // data access methods
-    NPT_Result ReadUI64(NPT_UInt64& value);
-    NPT_Result ReadUI32(NPT_UInt32& value);
-    NPT_Result ReadUI24(NPT_UInt32& value);
-    NPT_Result ReadUI16(NPT_UInt16& value);
-    NPT_Result ReadUI08(NPT_UInt8&  value);    
-};
-
-typedef NPT_Reference<NPT_InputStream> NPT_InputStreamReference;
-
-/*----------------------------------------------------------------------
-|    NPT_OutputStream
-+---------------------------------------------------------------------*/
-class NPT_OutputStream
-{
-public:
-    // constructor and destructor
-    virtual ~NPT_OutputStream() {};
-
-    // methods
-    virtual NPT_Result Write(const void* buffer, 
-                             NPT_Size    bytes_to_write, 
-                             NPT_Size*   bytes_written = NULL) = 0;
-    virtual NPT_Result WriteFully(const void* buffer, 
-                                  NPT_Size    bytes_to_write);
-    virtual NPT_Result WriteString(const char* string_buffer);
-    virtual NPT_Result WriteLine(const char* line_buffer);
-    virtual NPT_Result Seek(NPT_Position offset) = 0;
-    virtual NPT_Result Tell(NPT_Position& offset) = 0;
-    virtual NPT_Result Flush() { return NPT_SUCCESS; }
-    
-    // data access methods
-    NPT_Result WriteUI64(NPT_UInt64 value);
-    NPT_Result WriteUI32(NPT_UInt32 value);
-    NPT_Result WriteUI24(NPT_UInt32 value);
-    NPT_Result WriteUI16(NPT_UInt16 value);
-    NPT_Result WriteUI08(NPT_UInt8  value);    
-};
-
-typedef NPT_Reference<NPT_OutputStream> NPT_OutputStreamReference;
-
-/*----------------------------------------------------------------------
-|    NPT_StreamToStreamCopy
-+---------------------------------------------------------------------*/
-NPT_Result NPT_StreamToStreamCopy(NPT_InputStream&  from, 
-                                  NPT_OutputStream& to,
-                                  NPT_Position      offset = 0,
-                                  NPT_LargeSize     size   = 0, /* 0 means the entire stream */
-                                  NPT_LargeSize*    bytes_written = NULL);
-
-/*----------------------------------------------------------------------
-|    NPT_DelegatingInputStream
-|
-|    Use this class as a base class if you need to inherit both from
-|    NPT_InputStream and NPT_OutputStream which share the Seek and Tell
-|    method. In this case, you override the  base-specific version of 
-|    those methods, InputSeek, InputTell, instead of the Seek and Tell 
-|    methods.
-+---------------------------------------------------------------------*/
-class NPT_DelegatingInputStream : public NPT_InputStream
-{
-public:
-    // NPT_InputStream methods
-    NPT_Result Seek(NPT_Position offset) {
-        return InputSeek(offset);
-    }
-    NPT_Result Tell(NPT_Position& offset) {
-        return InputTell(offset);
-    }
-
-private:
-    // methods
-    virtual NPT_Result InputSeek(NPT_Position  offset) = 0;
-    virtual NPT_Result InputTell(NPT_Position& offset) = 0;
-};
-
-/*----------------------------------------------------------------------
-|    NPT_DelegatingOutputStream
-|
-|    Use this class as a base class if you need to inherit both from
-|    NPT_InputStream and NPT_OutputStream which share the Seek and Tell
-|    method. In this case, you override the  base-specific version of 
-|    those methods, OutputSeek and OutputTell, instead of the Seek and 
-|    Tell methods.
-+---------------------------------------------------------------------*/
-class NPT_DelegatingOutputStream : public NPT_OutputStream
-{
-public:
-    // NPT_OutputStream methods
-    NPT_Result Seek(NPT_Position offset) {
-        return OutputSeek(offset);
-    }
-    NPT_Result Tell(NPT_Position& offset) {
-        return OutputTell(offset);
-    }
-
-private:
-    // methods
-    virtual NPT_Result OutputSeek(NPT_Position  offset) = 0;
-    virtual NPT_Result OutputTell(NPT_Position& offset) = 0;
-};
-
-/*----------------------------------------------------------------------
-|    NPT_MemoryStream
-+---------------------------------------------------------------------*/
-class NPT_MemoryStream : 
-    public NPT_DelegatingInputStream,
-    public NPT_DelegatingOutputStream
-{
-public:
-    // constructor and destructor
-    NPT_MemoryStream(NPT_Size initial_capacity = 0);
-    NPT_MemoryStream(const void* data, NPT_Size size);
-    virtual ~NPT_MemoryStream() {}
-
-    // accessors
-    const NPT_DataBuffer& GetBuffer() const { return m_Buffer; }
-
-    // NPT_InputStream methods
-    NPT_Result Read(void*     buffer, 
-                    NPT_Size  bytes_to_read, 
-                    NPT_Size* bytes_read = NULL);
-    NPT_Result GetSize(NPT_LargeSize& size)  { 
-        size = m_Buffer.GetDataSize();    
-        return NPT_SUCCESS;
-    }
-    NPT_Result GetAvailable(NPT_LargeSize& available) { 
-        available = (NPT_LargeSize)m_Buffer.GetDataSize()-m_ReadOffset; 
-        return NPT_SUCCESS;
-    }
-
-    // NPT_OutputStream methods
-    NPT_Result Write(const void* buffer, 
-                     NPT_Size    bytes_to_write, 
-                     NPT_Size*   bytes_written = NULL);
-
-    // methods delegated to m_Buffer
-    const NPT_Byte* GetData() const { return m_Buffer.GetData(); }
-    NPT_Byte*       UseData()       { return m_Buffer.UseData(); }
-    NPT_Size        GetDataSize() const   { return m_Buffer.GetDataSize(); }
-    NPT_Size        GetBufferSize() const { return m_Buffer.GetBufferSize();}
-
-    // methods
-    NPT_Result SetDataSize(NPT_Size size);
-
-private:
-    // NPT_DelegatingInputStream methods
-    NPT_Result InputSeek(NPT_Position offset);
-    NPT_Result InputTell(NPT_Position& offset) { 
-        offset = m_ReadOffset; 
-        return NPT_SUCCESS;
-    }
-
-    // NPT_DelegatingOutputStream methods
-    NPT_Result OutputSeek(NPT_Position offset);
-    NPT_Result OutputTell(NPT_Position& offset) {
-        offset = m_WriteOffset; 
-        return NPT_SUCCESS;
-    }
-
-protected:
-    // members
-    NPT_DataBuffer m_Buffer;
-    NPT_Size       m_ReadOffset;
-    NPT_Size       m_WriteOffset;
-};
-
-typedef NPT_Reference<NPT_MemoryStream> NPT_MemoryStreamReference;
-
-/*----------------------------------------------------------------------
-|   NPT_StringOutputStream
-+---------------------------------------------------------------------*/
-class NPT_StringOutputStream : public NPT_OutputStream
-{
-public:
-    // methods
-    NPT_StringOutputStream(NPT_Size size = 4096);
-    NPT_StringOutputStream(NPT_String* storage);
-    virtual ~NPT_StringOutputStream() ;
-
-    const NPT_String& GetString() const { return *m_String; }
-    NPT_Result Reset() { if (m_String) m_String->SetLength(0); return NPT_SUCCESS; }
-
-    // NPT_OutputStream methods
-    NPT_Result Write(const void* buffer, NPT_Size bytes_to_write, NPT_Size* bytes_written = NULL);
-
-    NPT_Result Seek(NPT_Position /*offset*/)  { return NPT_ERROR_NOT_SUPPORTED;   }
-    NPT_Result Tell(NPT_Position& offset) { offset = m_String->GetLength(); return NPT_SUCCESS; }
-
-protected:
-    NPT_String* m_String;
-    bool        m_StringIsOwned;
-};
-
-typedef NPT_Reference<NPT_StringOutputStream> NPT_StringOutputStreamReference;
-
-/*----------------------------------------------------------------------
-|   NPT_SubInputStream
-+---------------------------------------------------------------------*/
-class NPT_SubInputStream : public NPT_InputStream
-{
-public:
-    // constructor and destructor
-    NPT_SubInputStream(NPT_InputStreamReference& source, 
-                       NPT_Position              start,
-                       NPT_LargeSize             size); 
-
-    // methods
-    virtual NPT_Result Read(void*     buffer, 
-                            NPT_Size  bytes_to_read, 
-                            NPT_Size* bytes_read = NULL);
-    virtual NPT_Result Seek(NPT_Position offset);
-    virtual NPT_Result Tell(NPT_Position& offset);
-    virtual NPT_Result GetSize(NPT_LargeSize& size);
-    virtual NPT_Result GetAvailable(NPT_LargeSize& available);
-
-private:
-    NPT_InputStreamReference m_Source;
-    NPT_Position             m_Position;
-    NPT_Position             m_Start;
-    NPT_LargeSize            m_Size;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_NullOutputStream
-+---------------------------------------------------------------------*/
-class NPT_NullOutputStream : public NPT_OutputStream
-{
-public:
-    // methods
-    NPT_NullOutputStream() {}
-    virtual ~NPT_NullOutputStream() {}
-
-    // NPT_OutputStream methods
-    NPT_Result Write(const void* buffer, NPT_Size bytes_to_write, NPT_Size* bytes_written = NULL);
-
-    NPT_Result Seek(NPT_Position /*offset*/)  { return NPT_ERROR_NOT_SUPPORTED;   }
-    NPT_Result Tell(NPT_Position& /*offset*/)  { return NPT_ERROR_NOT_SUPPORTED;   }
-};
-
-typedef NPT_Reference<NPT_NullOutputStream> NPT_NullOutputStreamReference;
-
-#endif // _NPT_STREAMS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptStrings.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptStrings.h
deleted file mode 100644
index c445b33..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptStrings.h
+++ /dev/null
@@ -1,358 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - String Objects
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_STRINGS_H_
-#define _NPT_STRINGS_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-#if defined(NPT_CONFIG_HAVE_NEW_H)
-#include <new>
-#endif
-#include "NptTypes.h"
-#include "NptConstants.h"
-#include "NptList.h"
-#include "NptArray.h"
-#include "NptDebug.h"
-#include "NptHash.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_STRING_SEARCH_FAILED = -1;
-
-/*----------------------------------------------------------------------
-|   NPT_String
-+---------------------------------------------------------------------*/
-class NPT_String
-{
-public:
-    // factories
-    static NPT_String FromInteger(NPT_Int64 value);
-    static NPT_String FromIntegerU(NPT_UInt64 value);
-    static NPT_String Format(const char* format, ...);
-    
-    // constructors
-    NPT_String(const NPT_String& str);
-    NPT_String(const char* str);
-    NPT_String(const char* str, NPT_Size length);
-    NPT_String(char c, NPT_Cardinal repeat = 1);
-    NPT_String() : m_Chars(NULL) {}
-   ~NPT_String() { if (m_Chars) GetBuffer()->Destroy(); }
-
-    // string info and manipulations
-    bool       IsEmpty() const { return m_Chars == NULL || GetBuffer()->GetLength() == 0; }
-    NPT_Size   GetLength()   const { return m_Chars ? GetBuffer()->GetLength() : 0;    }
-    NPT_Size   GetCapacity() const { return m_Chars ? GetBuffer()->GetAllocated() : 0; }
-    NPT_Result SetLength(NPT_Size length, bool pad = false);
-    void       Assign(const char* chars, NPT_Size size);
-    void       Append(const char* chars, NPT_Size size);
-    void       Append(const char* s) { Append(s, StringLength(s)); }
-    int        Compare(const char* s, bool ignore_case = false) const;
-    static int Compare(const char* s1, const char* s2, bool ignore_case = false);
-    int        CompareN(const char* s, NPT_Size count, bool ignore_case = false) const;
-    static int CompareN(const char* s1, const char* s2, NPT_Size count, bool ignore_case = false);
-
-    // substrings
-    NPT_String SubString(NPT_Ordinal first, NPT_Size length) const;
-    NPT_String SubString(NPT_Ordinal first) const {
-        return SubString(first, GetLength());
-    }
-    NPT_String Left(NPT_Size length) const {
-        return SubString(0, length);
-    }
-    NPT_String Right(NPT_Size length) const {
-        return length >= GetLength() ? 
-               *this : 
-               SubString(GetLength()-length, length);
-    }
-    NPT_List<NPT_String> Split(const char* separator) const;
-    NPT_Array<NPT_String> SplitAny(const char* separator) const;
-    static NPT_String Join(NPT_List<NPT_String>& args, const char* separator);
-    
-    // buffer management
-    void       Reserve(NPT_Size length);
-
-    // hashing
-    NPT_UInt32 GetHash32() const;
-    NPT_UInt64 GetHash64() const;
-
-    // conversions
-    NPT_String ToLowercase() const;
-    NPT_String ToUppercase() const;
-    NPT_Result ToInteger(int& value, bool relaxed = true) const;
-    NPT_Result ToInteger(unsigned int& value, bool relaxed = true) const;
-    NPT_Result ToInteger(long& value, bool relaxed = true) const;
-    NPT_Result ToInteger(unsigned long& value, bool relaxed = true) const;
-    NPT_Result ToInteger32(NPT_Int32& value, bool relaxed = true) const;
-    NPT_Result ToInteger32(NPT_UInt32& value, bool relaxed = true) const;
-    NPT_Result ToInteger64(NPT_Int64& value, bool relaxed = true) const;
-    NPT_Result ToInteger64(NPT_UInt64& value, bool relaxed = true) const;
-    NPT_Result ToFloat(float& value, bool relaxed = true) const;
-    
-    // processing
-    void MakeLowercase();
-    void MakeUppercase();
-    const NPT_String& Replace(char a, char b);
-    const NPT_String& Replace(char a, const char* b);
-
-    // search
-    int  Find(char c, NPT_Ordinal start = 0, bool ignore_case = false) const;
-    int  Find(const char* s, NPT_Ordinal start = 0, bool ignore_case = false) const;
-    int  FindAny(const char* s, NPT_Ordinal start, bool ignore_case = false) const;
-    int  ReverseFind(char c, NPT_Ordinal start = 0, bool ignore_case = false) const;
-    int  ReverseFind(const char* s, NPT_Ordinal start = 0, bool ignore_case = false) const;
-    bool StartsWith(const char* s, bool ignore_case = false) const;
-    bool EndsWith(const char* s, bool ignore_case = false) const;
-
-    // editing
-    const NPT_String& Insert(const char* s, NPT_Ordinal where = 0);
-    const NPT_String& Erase(NPT_Ordinal start, NPT_Cardinal count = 1);
-    const NPT_String& Replace(const char* before, const char* after);
-    // void Replace(NPT_Ordinal start, NPT_Cardinal count, const char* s);
-    const NPT_String& TrimLeft();
-    const NPT_String& TrimLeft(char c);
-    const NPT_String& TrimLeft(const char* chars);
-    const NPT_String& TrimRight();
-    const NPT_String& TrimRight(char c);
-    const NPT_String& TrimRight(const char* chars);
-    const NPT_String& Trim();
-    const NPT_String& Trim(char c);
-    const NPT_String& Trim(const char* chars);
-
-    // type casting
-    operator char*() const        { return m_Chars ? m_Chars: &EmptyString; }
-    operator const char* () const { return m_Chars ? m_Chars: &EmptyString; }
-    const char* GetChars() const  { return m_Chars ? m_Chars: &EmptyString; }
-    char*       UseChars()        { return m_Chars ? m_Chars: &EmptyString; }
-
-    // operator overloading
-    NPT_String& operator=(const char* str);
-    NPT_String& operator=(const NPT_String& str);
-    NPT_String& operator=(char c);
-    const NPT_String& operator+=(const NPT_String& s) {
-        Append(s.GetChars(), s.GetLength());
-        return *this;
-    }
-    const NPT_String& operator+=(const char* s) {
-        Append(s);
-        return *this;
-    }
-    const NPT_String& operator+=(char c) {
-        Append(&c, 1);
-        return *this;
-    }
-    char operator[](int index) const {
-        NPT_ASSERT((unsigned int)index < GetLength());
-        return GetChars()[index];
-    }
-    char& operator[](int index) {
-        NPT_ASSERT((unsigned int)index < GetLength());
-        return UseChars()[index];
-    }
-
-    // friend operators
-    friend NPT_String operator+(const NPT_String& s1, const NPT_String& s2) {
-        return s1+s2.GetChars();
-    }
-    friend NPT_String operator+(const NPT_String& s1, const char* s2);
-    friend NPT_String operator+(const char* s1, const NPT_String& s2);
-    friend NPT_String operator+(const NPT_String& s, char c);
-    friend NPT_String operator+(char c, const NPT_String& s);
-
-protected:
-    // inner classes
-    class Buffer {
-    public:
-        // class methods
-        static Buffer* Allocate(NPT_Size allocated, NPT_Size length) {
-            void* mem = ::operator new(sizeof(Buffer)+allocated+1);
-            return new(mem) Buffer(allocated, length);
-        }
-        static char* Create(NPT_Size allocated, NPT_Size length=0) {
-            Buffer* shared = Allocate(allocated, length);
-            return shared->GetChars();
-        }
-        static char* Create(const char* copy) {
-            NPT_Size length = StringLength(copy);
-            Buffer* shared = Allocate(length, length);
-            CopyString(shared->GetChars(), copy);
-            return shared->GetChars();
-        }
-        static char* Create(const char* copy, NPT_Size length) {
-            Buffer* shared = Allocate(length, length);
-            CopyBuffer(shared->GetChars(), copy, length);
-            shared->GetChars()[length] = '\0';
-            return shared->GetChars();
-        }
-        static char* Create(char c, NPT_Cardinal repeat) {
-            Buffer* shared = Allocate(repeat, repeat);
-            char* s = shared->GetChars();
-            while (repeat--) {
-                *s++ = c;
-            }
-            *s = '\0';
-            return shared->GetChars();
-        }
-
-        // methods
-        char* GetChars() { 
-            // return a pointer to the first char
-            return reinterpret_cast<char*>(this+1); 
-        }
-        NPT_Size GetLength() const      { return m_Length; }
-        void SetLength(NPT_Size length) { m_Length = length; }
-        NPT_Size GetAllocated() const   { return m_Allocated; }
-        void Destroy() { ::operator delete((void*)this); }
-        
-    private:
-        // methods
-        Buffer(NPT_Size allocated, NPT_Size length = 0) : 
-            m_Length(length),
-            m_Allocated(allocated) {}
-        
-        // members
-        NPT_Cardinal m_Length;
-        NPT_Cardinal m_Allocated;
-        // the actual string data follows
-
-    };
-    
-    // members
-    char* m_Chars;
-
-private:
-    // friends
-    friend class Buffer;
-
-    // static members
-    static char EmptyString;
-
-    // methods
-    Buffer* GetBuffer() const { 
-        return reinterpret_cast<Buffer*>(m_Chars)-1;
-    }
-    void Reset() { 
-        if (m_Chars != NULL) {
-            delete GetBuffer(); 
-            m_Chars = NULL;
-        }
-    }
-    char* PrepareToWrite(NPT_Size length);
-    void PrepareToAppend(NPT_Size length, NPT_Size allocate);
-
-    // static methods
-    static void CopyString(char* dst, const char* src) {
-        while ((*dst++ = *src++)){}
-    }
-    
-    static void CopyBuffer(char* dst, const char* src, NPT_Size size) {
-        while (size--) *dst++ = *src++;
-    }
-    
-    static NPT_Size StringLength(const char* str) {
-        NPT_Size length = 0;
-        while (*str++) length++;
-        return length;
-    }
-};
-
-/*----------------------------------------------------------------------
-|   external operators
-+---------------------------------------------------------------------*/
-inline bool operator==(const NPT_String& s1, const NPT_String& s2) { 
-    return s1.Compare(s2) == 0; 
-}
-inline bool operator==(const NPT_String& s1, const char* s2) {
-    return s1.Compare(s2) == 0; 
-}
-inline bool operator==(const char* s1, const NPT_String& s2) {
-    return s2.Compare(s1) == 0; 
-}
-inline bool operator!=(const NPT_String& s1, const NPT_String& s2) {
-    return s1.Compare(s2) != 0; 
-}
-inline bool operator!=(const NPT_String& s1, const char* s2) {
-    return s1.Compare(s2) != 0; 
-}
-inline bool operator!=(const char* s1, const NPT_String& s2) {
-    return s2.Compare(s1) != 0; 
-}
-inline bool operator<(const NPT_String& s1, const NPT_String& s2) {
-    return s1.Compare(s2) < 0; 
-}
-inline bool operator<(const NPT_String& s1, const char* s2) {
-    return s1.Compare(s2) < 0; 
-}
-inline bool operator<(const char* s1, const NPT_String& s2) {
-    return s2.Compare(s1) > 0; 
-}
-inline bool operator>(const NPT_String& s1, const NPT_String& s2) {
-    return s1.Compare(s2) > 0; 
-}
-inline bool operator>(const NPT_String& s1, const char* s2) {
-    return s1.Compare(s2) > 0; 
-}
-inline bool operator>(const char* s1, const NPT_String& s2) {
-    return s2.Compare(s1) < 0; 
-}
-inline bool operator<=(const NPT_String& s1, const NPT_String& s2) {
-    return s1.Compare(s2) <= 0; 
-}
-inline bool operator<=(const NPT_String& s1, const char* s2) {
-    return s1.Compare(s2) <= 0; 
-}
-inline bool operator<=(const char* s1, const NPT_String& s2) {
-    return s2.Compare(s1) >= 0; 
-}
-inline bool operator>=(const NPT_String& s1, const NPT_String& s2) {
-    return s1.Compare(s2) >= 0; 
-}
-inline bool operator>=(const NPT_String& s1, const char* s2) {
-    return s1.Compare(s2) >= 0; 
-}
-inline bool operator>=(const char* s1, const NPT_String& s2) {
-    return s2.Compare(s1) <= 0; 
-}
-
-/*----------------------------------------------------------------------
-|   hashing
-+---------------------------------------------------------------------*/
-template <>
-struct NPT_Hash<NPT_String>
-{
-    NPT_UInt32 operator()(const NPT_String& s) const { return s.GetHash32(); }
-};
-
-
-#endif // _NPT_STRINGS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSystem.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSystem.h
deleted file mode 100644
index 224a058..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptSystem.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - System
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_SYSTEM_H_
-#define _NPT_SYSTEM_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptTime.h"
-
-/*----------------------------------------------------------------------
-|   NPT_System
-+---------------------------------------------------------------------*/
-class NPT_System
-{
-public:
-    // methods
-    static NPT_Result GetProcessId(NPT_UInt32& id);
-    static NPT_Result GetMachineName(NPT_String& name);
-    static NPT_Result GetCurrentTimeStamp(NPT_TimeStamp& now);
-    static NPT_Result Sleep(const NPT_TimeInterval& duration);
-    static NPT_Result SleepUntil(const NPT_TimeStamp& when);
-    static NPT_Result SetRandomSeed(unsigned int seed);
-    static NPT_UInt32 GetRandomInteger();
-    
-protected:
-    // constructor
-    NPT_System() {}
-};
-
-NPT_Result NPT_GetSystemMachineName(NPT_String& name);
-
-#endif // _NPT_SYSTEM_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptThreads.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptThreads.h
deleted file mode 100644
index 9a7455f..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptThreads.h
+++ /dev/null
@@ -1,318 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Threads
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_THREADS_H_
-#define _NPT_THREADS_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptConstants.h"
-#include "NptInterfaces.h"
-
-/*----------------------------------------------------------------------
-|   error codes
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_CALLBACK_HANDLER_SHUTDOWN = NPT_ERROR_BASE_THREADS-0;
-const int NPT_ERROR_CALLBACK_NOTHING_PENDING  = NPT_ERROR_BASE_THREADS-1;
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_THREAD_PRIORITY_MIN           = -15;
-const int NPT_THREAD_PRIORITY_IDLE          = -15;
-const int NPT_THREAD_PRIORITY_LOWEST        =  -2;
-const int NPT_THREAD_PRIORITY_BELOW_NORMAL  =  -1;
-const int NPT_THREAD_PRIORITY_NORMAL        =   0;
-const int NPT_THREAD_PRIORITY_ABOVE_NORMAL  =   1;
-const int NPT_THREAD_PRIORITY_HIGHEST       =   2;
-const int NPT_THREAD_PRIORITY_TIME_CRITICAL =  15;
-const int NPT_THREAD_PRIORITY_MAX           =  15;
-
-/*----------------------------------------------------------------------
-|   NPT_MutexInterface
-+---------------------------------------------------------------------*/
-class NPT_MutexInterface
-{
- public:
-    // methods
-    virtual           ~NPT_MutexInterface() {}
-    virtual NPT_Result Lock()   = 0;
-    virtual NPT_Result Unlock() = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Mutex
-+---------------------------------------------------------------------*/
-class NPT_Mutex : public NPT_MutexInterface
-{
- public:
-    // methods
-               NPT_Mutex();
-              ~NPT_Mutex() { delete m_Delegate; }
-    NPT_Result Lock()   { return m_Delegate->Lock();   }
-    NPT_Result Unlock() { return m_Delegate->Unlock(); }
-
- private:
-    // members
-    NPT_MutexInterface* m_Delegate;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_AutoLock
-+---------------------------------------------------------------------*/
-class NPT_AutoLock
-{
- public:
-    // methods
-     NPT_AutoLock(NPT_Mutex &mutex) : m_Mutex(mutex)   {
-        m_Mutex.Lock();
-    }
-    ~NPT_AutoLock() {
-        m_Mutex.Unlock(); 
-    }
-        
- private:
-    // members
-    NPT_Mutex& m_Mutex;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Lock
-+---------------------------------------------------------------------*/
-template <typename T> 
-class NPT_Lock : public T,
-                 public NPT_Mutex
-{
-};
-
-/*----------------------------------------------------------------------
-|   NPT_SingletonLock
-+---------------------------------------------------------------------*/
-class NPT_SingletonLock
-{
-public:
-    static NPT_Mutex& GetInstance() {
-        return Instance;
-    }
-    
-private:
-    static NPT_Mutex Instance;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_SharedVariableInterface
-+---------------------------------------------------------------------*/
-class NPT_SharedVariableInterface
-{
- public:
-    // methods
-    virtual           ~NPT_SharedVariableInterface() {}
-    virtual void       SetValue(int value)= 0;
-    virtual int        GetValue()         = 0;
-    virtual NPT_Result WaitUntilEquals(int value, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) = 0;
-    virtual NPT_Result WaitWhileEquals(int value, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_SharedVariable
-+---------------------------------------------------------------------*/
-class NPT_SharedVariable : public NPT_SharedVariableInterface
-{
- public:
-    // methods
-               NPT_SharedVariable(int value = 0);
-              ~NPT_SharedVariable() { delete m_Delegate; }
-    void SetValue(int value) { 
-        m_Delegate->SetValue(value); 
-    }
-    int GetValue() { 
-        return m_Delegate->GetValue(); 
-    }
-    NPT_Result WaitUntilEquals(int value, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) { 
-        return m_Delegate->WaitUntilEquals(value, timeout); 
-    }
-    NPT_Result WaitWhileEquals(int value, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) { 
-        return m_Delegate->WaitWhileEquals(value, timeout); 
-    }
-
- private:
-    // members
-    NPT_SharedVariableInterface* m_Delegate;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_AtomicVariableInterface
-+---------------------------------------------------------------------*/
-class NPT_AtomicVariableInterface
-{
- public:
-    // methods
-    virtual      ~NPT_AtomicVariableInterface() {}
-    virtual  int  Increment() = 0;
-    virtual  int  Decrement() = 0;
-    virtual  int  GetValue()  = 0;
-    virtual  void SetValue(int value)  = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_AtomicVariable
-+---------------------------------------------------------------------*/
-class NPT_AtomicVariable : public NPT_AtomicVariableInterface
-{
- public:
-    // methods
-         NPT_AtomicVariable(int value = 0);
-        ~NPT_AtomicVariable() { delete m_Delegate;             }
-    int  Increment()          { return m_Delegate->Increment();}
-    int  Decrement()          { return m_Delegate->Decrement();}
-    void SetValue(int value)  { m_Delegate->SetValue(value);   }
-    int  GetValue()           { return m_Delegate->GetValue(); }
-
- private:
-    // members
-    NPT_AtomicVariableInterface* m_Delegate;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Runnable
-+---------------------------------------------------------------------*/
-class NPT_Runnable
-{
-public:
-    virtual ~NPT_Runnable() {}  
-    virtual void Run() = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_ThreadInterface
-+---------------------------------------------------------------------*/
-class NPT_ThreadInterface: public NPT_Runnable, public NPT_Interruptible
-{
- public:
-    // methods
-    virtual           ~NPT_ThreadInterface() {}
-    virtual NPT_Result Start() = 0;
-    virtual NPT_Result Wait(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) = 0;
-    virtual NPT_Result SetPriority(int /*priority*/) { return NPT_SUCCESS; } 
-    virtual NPT_Result GetPriority(int& priority) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Thread
-+---------------------------------------------------------------------*/
-class NPT_Thread : public NPT_ThreadInterface
-{
- public:
-    // types
-    typedef unsigned long ThreadId;
-
-    // class methods
-    static ThreadId GetCurrentThreadId();
-    static NPT_Result SetCurrentThreadPriority(int priority);
-    static NPT_Result GetCurrentThreadPriority(int& priority);
-
-    // methods
-    explicit NPT_Thread(bool detached = false);
-    explicit NPT_Thread(NPT_Runnable& target, bool detached = false);
-   ~NPT_Thread() { delete m_Delegate; }
-
-    // NPT_ThreadInterface methods
-    NPT_Result Start() { 
-        return m_Delegate->Start(); 
-    } 
-    NPT_Result Wait(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE)  { 
-        return m_Delegate->Wait(timeout);  
-    }
-    NPT_Result SetPriority(int priority) {
-        return m_Delegate->SetPriority(priority);
-    }    
-    NPT_Result GetPriority(int& priority) {
-        return m_Delegate->GetPriority(priority);
-    }
-
-    // NPT_Runnable methods
-    virtual void Run() {}
-
-    // NPT_Interruptible methods
-    virtual NPT_Result Interrupt() { return m_Delegate->Interrupt(); }
-
- private:
-    // members
-    NPT_ThreadInterface* m_Delegate;
-};
-
-
-/*----------------------------------------------------------------------
-|   NPT_ThreadCallbackReceiver
-+---------------------------------------------------------------------*/
-class NPT_ThreadCallbackReceiver
-{
-public:
-    virtual ~NPT_ThreadCallbackReceiver() {}
-    virtual void OnCallback(void* args) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_ThreadCallbackSlot
-+---------------------------------------------------------------------*/
-class NPT_ThreadCallbackSlot
-{
-public:
-    // types
-    class NotificationHelper {
-    public:
-        virtual ~NotificationHelper() {};
-        virtual void Notify(void) = 0;
-    };
-
-    // constructor
-    NPT_ThreadCallbackSlot();
-
-    // methods
-    NPT_Result ReceiveCallback(NPT_ThreadCallbackReceiver& receiver, NPT_Timeout timeout = 0);
-    NPT_Result SendCallback(void* args);
-    NPT_Result SetNotificationHelper(NotificationHelper* helper);
-    NPT_Result Shutdown();
-
-protected:
-    // members
-    volatile void*      m_CallbackArgs;
-    volatile bool       m_Shutdown;
-    NPT_SharedVariable  m_Pending;
-    NPT_SharedVariable  m_Ack;
-    NPT_Mutex           m_ReadLock;
-    NPT_Mutex           m_WriteLock;
-    NotificationHelper* m_NotificationHelper;
-};
-
-#endif // _NPT_THREADS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTime.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTime.h
deleted file mode 100644
index ae02a48..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTime.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Time
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_TIME_H_
-#define _NPT_TIME_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptStrings.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#define NPT_DATETIME_YEAR_MIN 1901
-#define NPT_DATETIME_YEAR_MAX 2262
-
-/*----------------------------------------------------------------------
-|   NPT_TimeStamp
-+---------------------------------------------------------------------*/
-class NPT_TimeStamp
-{
- public:
-    // methods
-    NPT_TimeStamp(const NPT_TimeStamp& timestamp);
-    NPT_TimeStamp() : m_NanoSeconds(0) {}
-    NPT_TimeStamp(NPT_Int64 nanoseconds) : m_NanoSeconds(nanoseconds) {}
-    NPT_TimeStamp(double seconds);
-    NPT_TimeStamp& operator+=(const NPT_TimeStamp& time_stamp);
-    NPT_TimeStamp& operator-=(const NPT_TimeStamp& time_stamp);
-    bool operator==(const NPT_TimeStamp& t) const { return m_NanoSeconds == t.m_NanoSeconds; }
-    bool operator!=(const NPT_TimeStamp& t) const { return m_NanoSeconds != t.m_NanoSeconds; }
-    bool operator> (const NPT_TimeStamp& t) const { return m_NanoSeconds >  t.m_NanoSeconds; }
-    bool operator< (const NPT_TimeStamp& t) const { return m_NanoSeconds <  t.m_NanoSeconds; }
-    bool operator>=(const NPT_TimeStamp& t) const { return m_NanoSeconds >= t.m_NanoSeconds; }
-    bool operator<=(const NPT_TimeStamp& t) const { return m_NanoSeconds <= t.m_NanoSeconds; }
-
-    // accessors
-    void SetNanos(NPT_Int64 nanoseconds) { m_NanoSeconds = nanoseconds;          }
-    void SetMicros(NPT_Int64 micros)     { m_NanoSeconds = micros  * 1000;       }
-    void SetMillis(NPT_Int64 millis)     { m_NanoSeconds = millis  * 1000000;    }
-    void SetSeconds(NPT_Int64 seconds)   { m_NanoSeconds = seconds * 1000000000; }
-        
-    // conversion
-    operator double() const               { return (double)m_NanoSeconds/1E9; }
-    void FromNanos(NPT_Int64 nanoseconds) { m_NanoSeconds = nanoseconds;      }
-    NPT_Int64 ToNanos() const             { return m_NanoSeconds;             }
-    NPT_Int64 ToMicros() const            { return m_NanoSeconds/1000;        }
-    NPT_Int64 ToMillis() const            { return m_NanoSeconds/1000000;     }
-    NPT_Int64 ToSeconds() const           { return m_NanoSeconds/1000000000;  }
-    
-private:
-    // members
-    NPT_Int64 m_NanoSeconds;
-};
-
-/*----------------------------------------------------------------------
-|   operator+
-+---------------------------------------------------------------------*/
-inline 
-NPT_TimeStamp 
-operator+(const NPT_TimeStamp& t1, const NPT_TimeStamp& t2) 
-{
-    NPT_TimeStamp t = t1;
-    return t += t2;
-}
-
-/*----------------------------------------------------------------------
-|   operator-
-+---------------------------------------------------------------------*/
-inline 
-NPT_TimeStamp 
-operator-(const NPT_TimeStamp& t1, const NPT_TimeStamp& t2) 
-{
-    NPT_TimeStamp t = t1;
-    return t -= t2;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_TimeInterval
-+---------------------------------------------------------------------*/
-typedef NPT_TimeStamp NPT_TimeInterval;
-
-/*----------------------------------------------------------------------
-|   NPT_DateTime
-+---------------------------------------------------------------------*/
-class NPT_DateTime {
-public:
-    // types
-    enum Format {
-        FORMAT_ANSI,
-        FORMAT_W3C,
-        FORMAT_RFC_1123,  // RFC 822 updated by RFC 1123
-        FORMAT_RFC_1036   // RFC 850 updated by RFC 1036
-    };
-    
-    enum FormatFlags {
-        FLAG_EMIT_FRACTION      = 1,
-        FLAG_EXTENDED_PRECISION = 2
-    };
-    
-    // class methods
-    NPT_Int32 GetLocalTimeZone();
-    
-    // constructors
-    NPT_DateTime();
-    NPT_DateTime(const NPT_TimeStamp& timestamp, bool local=false);
-    
-    // methods
-    NPT_Result ChangeTimeZone(NPT_Int32 timezone);
-    NPT_Result FromTimeStamp(const NPT_TimeStamp& timestamp, bool local=false);
-    NPT_Result ToTimeStamp(NPT_TimeStamp& timestamp) const;
-    NPT_Result FromString(const char* date, Format format = FORMAT_ANSI);
-    NPT_String ToString(Format format = FORMAT_ANSI, NPT_Flags flags=0) const;
-    
-    // members
-    NPT_Int32 m_Year;        // year
-    NPT_Int32 m_Month;       // month of the year (1-12)
-    NPT_Int32 m_Day;         // day of the month (1-31)
-    NPT_Int32 m_Hours;       // hours (0-23)
-    NPT_Int32 m_Minutes;     // minutes (0-59)
-    NPT_Int32 m_Seconds;     // seconds (0-59)
-    NPT_Int32 m_NanoSeconds; // nanoseconds (0-999999999)
-    NPT_Int32 m_TimeZone;    // minutes offset from GMT
-};
-
-#endif // _NPT_TIME_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTls.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTls.h
deleted file mode 100644
index 4a392fd..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTls.h
+++ /dev/null
@@ -1,306 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - TLS/SSL Support
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_TLS_H_
-#define _NPT_TLS_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-#include "NptStreams.h"
-#include "NptTime.h"
-#include "NptHttp.h"
-
-/*----------------------------------------------------------------------
-|   error codes
-+---------------------------------------------------------------------*/
-const NPT_Result NPT_ERROR_INVALID_PASSWORD                     = (NPT_ERROR_BASE_TLS-1);
-const NPT_Result NPT_ERROR_TLS_INVALID_HANDSHAKE                = (NPT_ERROR_BASE_TLS-2);
-const NPT_Result NPT_ERROR_TLS_INVALID_PROTOCOL_MESSAGE         = (NPT_ERROR_BASE_TLS-3);
-const NPT_Result NPT_ERROR_TLS_INVALID_HMAC                     = (NPT_ERROR_BASE_TLS-4);
-const NPT_Result NPT_ERROR_TLS_INVALID_VERSION                  = (NPT_ERROR_BASE_TLS-5);
-const NPT_Result NPT_ERROR_TLS_INVALID_SESSION                  = (NPT_ERROR_BASE_TLS-6);
-const NPT_Result NPT_ERROR_TLS_NO_CIPHER                        = (NPT_ERROR_BASE_TLS-7);
-const NPT_Result NPT_ERROR_TLS_BAD_CERTIFICATE                  = (NPT_ERROR_BASE_TLS-8);
-const NPT_Result NPT_ERROR_TLS_INVALID_KEY                      = (NPT_ERROR_BASE_TLS-9);
-const NPT_Result NPT_ERROR_TLS_NO_CLIENT_RENEGOTIATION          = (NPT_ERROR_BASE_TLS-10);
-const NPT_Result NPT_ERROR_TLS_INVALID_FINISHED_MESSAGE         = (NPT_ERROR_BASE_TLS-11);
-const NPT_Result NPT_ERROR_TLS_NO_CERTIFICATE_DEFINED           = (NPT_ERROR_BASE_TLS-12);
-const NPT_Result NPT_ERROR_TLS_ALERT_HANDSHAKE_FAILED           = (NPT_ERROR_BASE_TLS-13); 
-const NPT_Result NPT_ERROR_TLS_ALERT_BAD_CERTIFICATE            = (NPT_ERROR_BASE_TLS-14);
-const NPT_Result NPT_ERROR_TLS_ALERT_INVALID_VERSION            = (NPT_ERROR_BASE_TLS-15);
-const NPT_Result NPT_ERROR_TLS_ALERT_BAD_RECORD_MAC             = (NPT_ERROR_BASE_TLS-16);
-const NPT_Result NPT_ERROR_TLS_ALERT_DECODE_ERROR               = (NPT_ERROR_BASE_TLS-17);
-const NPT_Result NPT_ERROR_TLS_ALERT_DECRYPT_ERROR              = (NPT_ERROR_BASE_TLS-18);
-const NPT_Result NPT_ERROR_TLS_ALERT_ILLEGAL_PARAMETER          = (NPT_ERROR_BASE_TLS-19);
-const NPT_Result NPT_ERROR_TLS_ALERT_UNEXPECTED_MESSAGE         = (NPT_ERROR_BASE_TLS-20);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_FAILURE              = (NPT_ERROR_BASE_TLS-21);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_NO_TRUST_ANCHOR      = (NPT_ERROR_BASE_TLS-22);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_BAD_SIGNATURE        = (NPT_ERROR_BASE_TLS-23);      
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_NOT_YET_VALID        = (NPT_ERROR_BASE_TLS-24);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_EXPIRED              = (NPT_ERROR_BASE_TLS-25);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_SELF_SIGNED          = (NPT_ERROR_BASE_TLS-26);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_INVALID_CHAIN        = (NPT_ERROR_BASE_TLS-27);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_UNSUPPORTED_DIGEST   = (NPT_ERROR_BASE_TLS-28);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_INVALID_PRIVATE_KEY  = (NPT_ERROR_BASE_TLS-29);
-const NPT_Result NPT_ERROR_TLS_DNS_NAME_MISMATCH                = (NPT_ERROR_BASE_TLS-30);
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const unsigned int NPT_TLS_NULL_WITH_NULL_NULL      = 0x00;
-const unsigned int NPT_TLS_RSA_WITH_RC4_128_MD5     = 0x04;
-const unsigned int NPT_TLS_RSA_WITH_RC4_128_SHA     = 0x05;
-const unsigned int NPT_TLS_RSA_WITH_AES_128_CBC_SHA = 0x2F;
-const unsigned int NPT_TLS_RSA_WITH_AES_256_CBC_SHA = 0x35;
-
-/*----------------------------------------------------------------------
-|   class references
-+---------------------------------------------------------------------*/
-class NPT_TlsContextImpl;
-class NPT_TlsSessionImpl;
-
-/*----------------------------------------------------------------------
-|   types
-+---------------------------------------------------------------------*/
-typedef enum {
-    NPT_TLS_KEY_FORMAT_RSA_PRIVATE,
-    NPT_TLS_KEY_FORMAT_PKCS8,
-    NPT_TLS_KEY_FORMAT_PKCS12
-} NPT_TlsKeyFormat;
-
-struct NPT_TlsTrustAnchorData {
-    const unsigned char* cert_data;
-    unsigned int         cert_size;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Tls
-+---------------------------------------------------------------------*/
-class NPT_Tls
-{
-public:
-    static const NPT_TlsTrustAnchorData* GetDefaultTrustAnchors(NPT_Ordinal indx=0);
-    static bool MatchDnsNames(const char*                 hostname,
-                              const NPT_List<NPT_String>& dns_names);
-    static bool MatchDnsName(const char* hostname, const char* dns_name);
-                              
-private:
-    NPT_Tls() {}; // don't instantiate 
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TlsContext
-+---------------------------------------------------------------------*/
-class NPT_TlsContext : public NPT_AutomaticCleaner::Singleton
-{
-public:
-    enum {
-        OPTION_VERIFY_LATER               = 1,
-        OPTION_REQUIRE_CLIENT_CERTIFICATE = 2,
-        OPTION_ADD_DEFAULT_TRUST_ANCHORS  = 4,
-        OPTION_NO_SESSION_CACHE           = 8
-    };
-    NPT_TlsContext(NPT_Flags options=0);
-   ~NPT_TlsContext();
-   
-    // methods
-    NPT_Result LoadKey(NPT_TlsKeyFormat     key_format, 
-                       const unsigned char* key_data,
-                       NPT_Size             key_data_size,
-                       const char*          password);
-      
-    NPT_Result SelfSignCertificate(const char* common_name,
-                                   const char* organization,
-                                   const char* organizational_name);
-                                   
-    /** 
-     * Add one trust anchor
-     */
-    NPT_Result AddTrustAnchor(const unsigned char* ta_data,
-                              NPT_Size             ta_data_size);
-    /**
-     * Add one or more trust anchors, from a list
-     * @param anchors Array of trust anchor data
-     * @param anchor_count Number of anchors in the array, or 0 if the array
-     * is terminated by a 'sentinel' (an anchor data with the field cert_data set
-     * to NULL and the field cert_size set to 0).
-     */
-    NPT_Result AddTrustAnchors(const NPT_TlsTrustAnchorData* anchors, 
-                               NPT_Cardinal                  anchor_count = 0);
-
-protected:
-    NPT_TlsContextImpl* m_Impl;
-    
-    // friends
-    friend class NPT_TlsSession;
-    friend class NPT_TlsClientSession;
-    friend class NPT_TlsServerSession;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TlsCertificateInfo
-+---------------------------------------------------------------------*/
-struct NPT_TlsCertificateInfo
-{
-    struct _subject {
-        NPT_String common_name;
-        NPT_String organization;
-        NPT_String organizational_name;
-    } subject;
-    struct _issuer {
-        NPT_String common_name;
-        NPT_String organization;
-        NPT_String organizational_name;
-    } issuer;
-    struct _fingerprint {
-        unsigned char sha1[20];
-        unsigned char md5[16];
-    } fingerprint;
-    NPT_DateTime issue_date;
-    NPT_DateTime expiration_date;
-    NPT_List<NPT_String> alternate_names;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TlsSession
-+---------------------------------------------------------------------*/
-class NPT_TlsSession
-{
-public:
-    virtual ~NPT_TlsSession();
-    virtual NPT_Result Handshake();
-    virtual NPT_Result GetHandshakeStatus();
-    virtual NPT_Result GetPeerCertificateInfo(NPT_TlsCertificateInfo& info, NPT_Ordinal position=0);
-    virtual NPT_Result VerifyPeerCertificate();
-    virtual NPT_Result VerifyDnsNameMatch(const char* hostname);
-    virtual NPT_Result GetSessionId(NPT_DataBuffer& session_id);
-    virtual NPT_UInt32 GetCipherSuiteId();
-    virtual NPT_Result GetInputStream(NPT_InputStreamReference& stream);
-    virtual NPT_Result GetOutputStream(NPT_OutputStreamReference& stream);
-    
-protected:
-    NPT_TlsSession(NPT_TlsContext&     context, 
-                   NPT_TlsSessionImpl* impl);
-
-    NPT_TlsContext&                   m_Context;
-    NPT_Reference<NPT_TlsSessionImpl> m_Impl;
-    NPT_InputStreamReference          m_InputStream;
-    NPT_OutputStreamReference         m_OutputStream;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TlsClientSession
-+---------------------------------------------------------------------*/
-class NPT_TlsClientSession : public NPT_TlsSession
-{
-public:
-    NPT_TlsClientSession(NPT_TlsContext&            context,
-                         NPT_InputStreamReference&  input,
-                         NPT_OutputStreamReference& output);
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TlsServerSession
-+---------------------------------------------------------------------*/
-class NPT_TlsServerSession : public NPT_TlsSession
-{
-public:
-    NPT_TlsServerSession(NPT_TlsContext&            context,
-                         NPT_InputStreamReference&  input,
-                         NPT_OutputStreamReference& output);
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpTlsConnector
-+---------------------------------------------------------------------*/
-#if defined(NPT_CONFIG_ENABLE_TLS)
-class NPT_HttpTlsConnector : public NPT_HttpClient::Connector
-{
-public:
-    enum {
-        OPTION_ACCEPT_SELF_SIGNED_CERTS = 1,
-        OPTION_ACCEPT_HOSTNAME_MISMATCH = 2
-    };
-    NPT_HttpTlsConnector(NPT_Flags options = 0);
-    NPT_HttpTlsConnector(NPT_TlsContext& tls_context, NPT_Flags options = 0);
-    virtual ~NPT_HttpTlsConnector() {}
-    NPT_TlsContext& GetTlsContext() { return m_TlsContext; }
-    
-    virtual NPT_Result VerifyPeer(NPT_TlsClientSession& session,
-                                  const char*           hostname);
-    
-    //  NPT_HttpClient::Connector methods
-    virtual NPT_Result Connect(const NPT_HttpUrl&           url,
-                               NPT_HttpClient&              client,
-                               const NPT_HttpProxyAddress*  proxy,
-                               bool                         reuse,
-                               NPT_HttpClient::Connection*& connection);
-
-private:
-    // class methods
-    static NPT_TlsContext& GetDefaultTlsContext();
-    
-    // class members
-    static NPT_TlsContext* DefaultTlsContext;
-    
-    // members
-    NPT_TlsContext& m_TlsContext;
-    NPT_Flags       m_Options;
-};
-#else
-class NPT_HttpTlsConnector : public NPT_HttpClient::Connector
-{
-public:
-    virtual ~NPT_HttpTlsConnector() {}
-    virtual NPT_Result Connect(const NPT_HttpUrl&           url,
-                               NPT_HttpClient&              client,
-                               const NPT_HttpProxyAddress*  proxy,
-                               bool                         reuse,
-                               NPT_HttpClient::Connection*& connection);
-};
-#endif
-
-/*----------------------------------------------------------------------
-|   Trust Anchors
-+-----------------------------------------------------------------*/
-/** 
- * Arrays of trust anchors (each array element is of type NPT_TlsTrustAnchorData
- * and the last element is a terminator element: the cert_data field is NULL
- * and the cert_size field is 0
- */ 
-#if defined(NPT_CONFIG_ENABLE_TLS)
-#include "NptTlsDefaultTrustAnchorsBase.h"
-#include "NptTlsDefaultTrustAnchorsExtended.h"
-#endif
-
-#endif // _NPT_TLS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTlsDefaultTrustAnchorsBase.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTlsDefaultTrustAnchorsBase.h
deleted file mode 100644
index 170cdb2..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTlsDefaultTrustAnchorsBase.h
+++ /dev/null
@@ -1,583 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Trust Anchors
-|
-|   This file is automatically generated by a script, do not edit!
-|
-| Copyright (c) 2002-2010, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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 file is automatically generated by GenTrustAnchorsTables.py, do not edit */
-
-#include "NptTls.h"
-
-extern const NPT_TlsTrustAnchorData NptTlsDefaultTrustAnchorsBase[137];
-
-/* Verisign/RSA Secure Server CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0000_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0000_Data[];
-
-/* GTE CyberTrust Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0001_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0001_Data[];
-
-/* GTE CyberTrust Global Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0002_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0002_Data[];
-
-/* Thawte Personal Basic CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0003_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0003_Data[];
-
-/* Thawte Personal Premium CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0004_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0004_Data[];
-
-/* Thawte Personal Freemail CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0005_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0005_Data[];
-
-/* Thawte Server CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0006_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0006_Data[];
-
-/* Thawte Premium Server CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0007_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0007_Data[];
-
-/* Equifax Secure CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0008_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0008_Data[];
-
-/* Digital Signature Trust Co. Global CA 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0009_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0009_Data[];
-
-/* Digital Signature Trust Co. Global CA 3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0010_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0010_Data[];
-
-/* Digital Signature Trust Co. Global CA 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0011_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0011_Data[];
-
-/* Digital Signature Trust Co. Global CA 4 */
-extern const unsigned int NptTlsTrustAnchor_Base_0012_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0012_Data[];
-
-/* Verisign Class 1 Public Primary Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0013_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0013_Data[];
-
-/* Verisign Class 2 Public Primary Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0014_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0014_Data[];
-
-/* Verisign Class 3 Public Primary Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0015_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0015_Data[];
-
-/* Verisign Class 1 Public Primary Certification Authority - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0016_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0016_Data[];
-
-/* Verisign Class 2 Public Primary Certification Authority - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0017_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0017_Data[];
-
-/* Verisign Class 3 Public Primary Certification Authority - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0018_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0018_Data[];
-
-/* Verisign Class 4 Public Primary Certification Authority - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0019_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0019_Data[];
-
-/* GlobalSign Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0020_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0020_Data[];
-
-/* GlobalSign Root CA - R2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0021_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0021_Data[];
-
-/* ValiCert Class 1 VA */
-extern const unsigned int NptTlsTrustAnchor_Base_0022_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0022_Data[];
-
-/* ValiCert Class 2 VA */
-extern const unsigned int NptTlsTrustAnchor_Base_0023_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0023_Data[];
-
-/* RSA Root Certificate 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0024_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0024_Data[];
-
-/* Verisign Class 1 Public Primary Certification Authority - G3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0025_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0025_Data[];
-
-/* Verisign Class 2 Public Primary Certification Authority - G3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0026_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0026_Data[];
-
-/* Verisign Class 3 Public Primary Certification Authority - G3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0027_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0027_Data[];
-
-/* Verisign Class 4 Public Primary Certification Authority - G3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0028_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0028_Data[];
-
-/* Entrust.net Secure Server CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0029_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0029_Data[];
-
-/* Entrust.net Secure Personal CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0030_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0030_Data[];
-
-/* Entrust.net Premium 2048 Secure Server CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0031_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0031_Data[];
-
-/* Baltimore CyberTrust Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0032_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0032_Data[];
-
-/* Equifax Secure Global eBusiness CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0033_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0033_Data[];
-
-/* Equifax Secure eBusiness CA 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0034_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0034_Data[];
-
-/* Equifax Secure eBusiness CA 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0035_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0035_Data[];
-
-/* Visa International Global Root 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0036_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0036_Data[];
-
-/* AddTrust Low-Value Services Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0037_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0037_Data[];
-
-/* AddTrust External Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0038_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0038_Data[];
-
-/* AddTrust Public Services Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0039_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0039_Data[];
-
-/* AddTrust Qualified Certificates Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0040_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0040_Data[];
-
-/* Verisign Time Stamping Authority CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0041_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0041_Data[];
-
-/* Thawte Time Stamping CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0042_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0042_Data[];
-
-/* Entrust.net Global Secure Server CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0043_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0043_Data[];
-
-/* Entrust.net Global Secure Personal CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0044_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0044_Data[];
-
-/* Entrust Root Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0045_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0045_Data[];
-
-/* AOL Time Warner Root Certification Authority 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0046_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0046_Data[];
-
-/* AOL Time Warner Root Certification Authority 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0047_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0047_Data[];
-
-/* beTRUSTed Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0048_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0048_Data[];
-
-/* beTRUSTed Root CA-Baltimore Implementation */
-extern const unsigned int NptTlsTrustAnchor_Base_0049_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0049_Data[];
-
-/* beTRUSTed Root CA - Entrust Implementation */
-extern const unsigned int NptTlsTrustAnchor_Base_0050_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0050_Data[];
-
-/* beTRUSTed Root CA - RSA Implementation */
-extern const unsigned int NptTlsTrustAnchor_Base_0051_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0051_Data[];
-
-/* RSA Security 2048 v3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0052_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0052_Data[];
-
-/* RSA Security 1024 v3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0053_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0053_Data[];
-
-/* GeoTrust Global CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0054_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0054_Data[];
-
-/* GeoTrust Global CA 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0055_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0055_Data[];
-
-/* GeoTrust Universal CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0056_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0056_Data[];
-
-/* GeoTrust Universal CA 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0057_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0057_Data[];
-
-/* UTN-USER First-Network Applications */
-extern const unsigned int NptTlsTrustAnchor_Base_0058_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0058_Data[];
-
-/* America Online Root Certification Authority 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0059_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0059_Data[];
-
-/* America Online Root Certification Authority 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0060_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0060_Data[];
-
-/* Visa eCommerce Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0061_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0061_Data[];
-
-/* TC TrustCenter, Germany, Class 2 CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0062_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0062_Data[];
-
-/* TC TrustCenter, Germany, Class 3 CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0063_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0063_Data[];
-
-/* Certum Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0064_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0064_Data[];
-
-/* Comodo AAA Services root */
-extern const unsigned int NptTlsTrustAnchor_Base_0065_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0065_Data[];
-
-/* Comodo Secure Services root */
-extern const unsigned int NptTlsTrustAnchor_Base_0066_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0066_Data[];
-
-/* Comodo Trusted Services root */
-extern const unsigned int NptTlsTrustAnchor_Base_0067_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0067_Data[];
-
-/* IPS Chained CAs root */
-extern const unsigned int NptTlsTrustAnchor_Base_0068_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0068_Data[];
-
-/* IPS CLASE1 root */
-extern const unsigned int NptTlsTrustAnchor_Base_0069_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0069_Data[];
-
-/* IPS CLASE3 root */
-extern const unsigned int NptTlsTrustAnchor_Base_0070_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0070_Data[];
-
-/* IPS CLASEA1 root */
-extern const unsigned int NptTlsTrustAnchor_Base_0071_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0071_Data[];
-
-/* IPS CLASEA3 root */
-extern const unsigned int NptTlsTrustAnchor_Base_0072_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0072_Data[];
-
-/* IPS Servidores root */
-extern const unsigned int NptTlsTrustAnchor_Base_0073_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0073_Data[];
-
-/* IPS Timestamping root */
-extern const unsigned int NptTlsTrustAnchor_Base_0074_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0074_Data[];
-
-/* QuoVadis Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0075_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0075_Data[];
-
-/* QuoVadis Root CA 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0076_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0076_Data[];
-
-/* QuoVadis Root CA 3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0077_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0077_Data[];
-
-/* Security Communication Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0078_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0078_Data[];
-
-/* Sonera Class 1 Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0079_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0079_Data[];
-
-/* Sonera Class 2 Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0080_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0080_Data[];
-
-/* Staat der Nederlanden Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0081_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0081_Data[];
-
-/* TDC Internet Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0082_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0082_Data[];
-
-/* TDC OCES Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0083_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0083_Data[];
-
-/* UTN DATACorp SGC Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0084_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0084_Data[];
-
-/* UTN USERFirst Email Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0085_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0085_Data[];
-
-/* UTN USERFirst Hardware Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0086_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0086_Data[];
-
-/* UTN USERFirst Object Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0087_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0087_Data[];
-
-/* Camerfirma Chambers of Commerce Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0088_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0088_Data[];
-
-/* Camerfirma Global Chambersign Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0089_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0089_Data[];
-
-/* NetLock Qualified (Class QA) Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0090_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0090_Data[];
-
-/* NetLock Notary (Class A) Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0091_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0091_Data[];
-
-/* NetLock Business (Class B) Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0092_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0092_Data[];
-
-/* NetLock Express (Class C) Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0093_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0093_Data[];
-
-/* XRamp Global CA Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0094_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0094_Data[];
-
-/* Go Daddy Class 2 CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0095_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0095_Data[];
-
-/* Starfield Class 2 CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0096_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0096_Data[];
-
-/* StartCom Ltd. */
-extern const unsigned int NptTlsTrustAnchor_Base_0097_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0097_Data[];
-
-/* StartCom Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0098_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0098_Data[];
-
-/* Firmaprofesional Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0099_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0099_Data[];
-
-/* Wells Fargo Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0100_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0100_Data[];
-
-/* Swisscom Root CA 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0101_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0101_Data[];
-
-/* DigiCert Assured ID Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0102_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0102_Data[];
-
-/* DigiCert Global Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0103_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0103_Data[];
-
-/* DigiCert High Assurance EV Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0104_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0104_Data[];
-
-/* Certplus Class 2 Primary CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0105_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0105_Data[];
-
-/* DST Root CA X3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0106_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0106_Data[];
-
-/* DST ACES CA X6 */
-extern const unsigned int NptTlsTrustAnchor_Base_0107_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0107_Data[];
-
-/* SwissSign Platinum CA - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0108_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0108_Data[];
-
-/* SwissSign Gold CA - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0109_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0109_Data[];
-
-/* SwissSign Silver CA - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0110_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0110_Data[];
-
-/* GeoTrust Primary Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0111_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0111_Data[];
-
-/* thawte Primary Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0112_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0112_Data[];
-
-/* VeriSign Class 3 Public Primary Certification Authority - G5 */
-extern const unsigned int NptTlsTrustAnchor_Base_0113_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0113_Data[];
-
-/* SecureTrust CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0114_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0114_Data[];
-
-/* Secure Global CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0115_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0115_Data[];
-
-/* COMODO Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0116_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0116_Data[];
-
-/* DigiNotar Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0117_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0117_Data[];
-
-/* Network Solutions Certificate Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0118_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0118_Data[];
-
-/* WellsSecure Public Root Certificate Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0119_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0119_Data[];
-
-/* IGC/A */
-extern const unsigned int NptTlsTrustAnchor_Base_0120_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0120_Data[];
-
-/* Security Communication EV RootCA1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0121_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0121_Data[];
-
-/* TC TrustCenter Class 2 CA II */
-extern const unsigned int NptTlsTrustAnchor_Base_0122_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0122_Data[];
-
-/* TC TrustCenter Class 3 CA II */
-extern const unsigned int NptTlsTrustAnchor_Base_0123_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0123_Data[];
-
-/* TC TrustCenter Universal CA I */
-extern const unsigned int NptTlsTrustAnchor_Base_0124_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0124_Data[];
-
-/* Deutsche Telekom Root CA 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0125_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0125_Data[];
-
-/* ComSign CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0126_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0126_Data[];
-
-/* ComSign Secured CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0127_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0127_Data[];
-
-/* Cybertrust Global Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0128_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0128_Data[];
-
-/* Buypass Class 2 CA 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0129_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0129_Data[];
-
-/* Buypass Class 3 CA 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0130_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0130_Data[];
-
-/* certSIGN ROOT CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0131_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0131_Data[];
-
-/* ApplicationCA - Japanese Government */
-extern const unsigned int NptTlsTrustAnchor_Base_0132_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0132_Data[];
-
-/* GeoTrust Primary Certification Authority - G3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0133_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0133_Data[];
-
-/* thawte Primary Root CA - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0134_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0134_Data[];
-
-/* GeoTrust Primary Certification Authority - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0135_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0135_Data[];
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTlsDefaultTrustAnchorsExtended.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTlsDefaultTrustAnchorsExtended.h
deleted file mode 100644
index 005a6f0..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTlsDefaultTrustAnchorsExtended.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Trust Anchors
-|
-|   This file is automatically generated by a script, do not edit!
-|
-| Copyright (c) 2002-2010, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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 file is automatically generated by GenTrustAnchorsTables.py, do not edit */
-
-#include "NptTls.h"
-
-extern const NPT_TlsTrustAnchorData NptTlsDefaultTrustAnchorsExtended[14];
-
-/* ABAecom (sub., Am. Bankers Assn.) Root CA */
-extern const unsigned int NptTlsTrustAnchor_Extended_0000_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0000_Data[];
-
-/* Taiwan GRCA */
-extern const unsigned int NptTlsTrustAnchor_Extended_0001_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0001_Data[];
-
-/* TURKTRUST Certificate Services Provider Root 1 */
-extern const unsigned int NptTlsTrustAnchor_Extended_0002_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0002_Data[];
-
-/* TURKTRUST Certificate Services Provider Root 2 */
-extern const unsigned int NptTlsTrustAnchor_Extended_0003_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0003_Data[];
-
-/* OISTE WISeKey Global Root GA CA */
-extern const unsigned int NptTlsTrustAnchor_Extended_0004_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0004_Data[];
-
-/* S-TRUST Authentication and Encryption Root CA 2005 PN */
-extern const unsigned int NptTlsTrustAnchor_Extended_0005_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0005_Data[];
-
-/* Microsec e-Szigno Root CA */
-extern const unsigned int NptTlsTrustAnchor_Extended_0006_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0006_Data[];
-
-/* Certigna */
-extern const unsigned int NptTlsTrustAnchor_Extended_0007_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0007_Data[];
-
-/* AC Ra\xC3\xADz Certic\xC3\xA1mara S.A. */
-extern const unsigned int NptTlsTrustAnchor_Extended_0008_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0008_Data[];
-
-/* ePKI Root Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Extended_0009_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0009_Data[];
-
-/* TUBITAK UEKAE Kok Sertifika Hizmet Saglayicisi - Surum 3 */
-extern const unsigned int NptTlsTrustAnchor_Extended_0010_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0010_Data[];
-
-/* CNNIC ROOT */
-extern const unsigned int NptTlsTrustAnchor_Extended_0011_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0011_Data[];
-
-/* EBG Elektronik Sertifika Hizmet Saglayicisi */
-extern const unsigned int NptTlsTrustAnchor_Extended_0012_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0012_Data[];
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTypes.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTypes.h
deleted file mode 100644
index 4c82174..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptTypes.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Types
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_TYPES_H_
-#define _NPT_TYPES_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-
-/*----------------------------------------------------------------------
-|   sized types (this assumes that ints are 32 bits)
-+---------------------------------------------------------------------*/
-typedef NPT_CONFIG_INT64_TYPE          NPT_Int64;
-typedef unsigned NPT_CONFIG_INT64_TYPE NPT_UInt64;
-typedef unsigned int                   NPT_UInt32;
-typedef int                            NPT_Int32;
-typedef unsigned short                 NPT_UInt16;
-typedef short                          NPT_Int16;
-typedef unsigned char                  NPT_UInt8;
-typedef char                           NPT_Int8;
-typedef float                          NPT_Float;
-
-/*----------------------------------------------------------------------
-|   named types       
-+---------------------------------------------------------------------*/
-typedef int           NPT_Result;
-typedef unsigned int  NPT_Cardinal;
-typedef unsigned int  NPT_Ordinal;
-typedef NPT_UInt32    NPT_Size;
-typedef NPT_UInt64    NPT_LargeSize;
-typedef NPT_Int32     NPT_Offset;
-typedef NPT_UInt64    NPT_Position;
-typedef NPT_Int32     NPT_Timeout;
-typedef void          NPT_Interface;
-typedef NPT_UInt8     NPT_Byte;
-typedef NPT_UInt32    NPT_Flags;
-typedef void*         NPT_Any;
-typedef const void*   NPT_AnyConst;
-
-/*----------------------------------------------------------------------
-|   limits       
-+---------------------------------------------------------------------*/
-#if defined(NPT_CONFIG_HAVE_LIMITS_H)
-#include <limits.h>
-#endif
-
-#if !defined(NPT_INT_MIN)
-#if defined(NPT_CONFIG_HAVE_INT_MIN)
-#define NPT_INT_MIN INT_MIN
-#endif
-#endif
-
-#if !defined(NPT_INT_MAX)
-#if defined(NPT_CONFIG_HAVE_INT_MAX)
-#define NPT_INT_MAX INT_MAX
-#endif
-#endif
-
-#if !defined(NPT_UINT_MAX)
-#if defined(NPT_CONFIG_HAVE_UINT_MAX)
-#define NPT_UINT_MAX UINT_MAX
-#endif
-#endif
-
-#if !defined(NPT_LONG_MIN)
-#if defined(NPT_CONFIG_HAVE_LONG_MIN)
-#define NPT_LONG_MIN LONG_MIN
-#endif
-#endif
-
-#if !defined(NPT_LONG_MAX)
-#if defined(NPT_CONFIG_HAVE_LONG_MAX)
-#define NPT_LONG_MAX LONG_MAX
-#endif
-#endif
-
-#if !defined(NPT_ULONG_MAX)
-#if defined(NPT_CONFIG_HAVE_ULONG_MAX)
-#define NPT_ULONG_MAX ULONG_MAX
-#endif
-#endif
-
-#if !defined(NPT_INT32_MAX)
-#define NPT_INT32_MAX 0x7FFFFFFF
-#endif
-
-#if !defined(NPT_INT32_MIN)
-#define NPT_INT32_MIN (-NPT_INT32_MAX - 1) 
-#endif
-
-#if !defined(NPT_UINT32_MAX)
-#define NPT_UINT32_MAX 0xFFFFFFFF
-#endif
-
-#if !defined(NPT_INT64_MAX)
-#if defined(NPT_CONFIG_HAVE_LLONG_MAX)
-#define NPT_INT64_MAX LLONG_MAX
-#else
-#define NPT_INT64_MAX 0x7FFFFFFFFFFFFFFFLL
-#endif
-#endif
-
-#if !defined(NPT_INT64_MIN)
-#if defined(NPT_CONFIG_HAVE_LLONG_MIN)
-#define NPT_INT64_MIN LLONG_MIN
-#else
-#define NPT_INT64_MIN (-NPT_INT64_MAX - 1LL) 
-#endif
-#endif
-
-#if !defined(NPT_UINT64_MAX)
-#if defined(NPT_CONFIG_HAVE_ULLONG_MAX)
-#define NPT_UINT64_MAX ULLONG_MAX
-#else
-#define NPT_UINT64_MAX 0xFFFFFFFFFFFFFFFFULL
-#endif
-#endif
-
-#endif // _NPT_TYPES_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptUri.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptUri.h
deleted file mode 100644
index 8ef46cb..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptUri.h
+++ /dev/null
@@ -1,320 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - URI
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_URI_H_
-#define _NPT_URI_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptStrings.h"
-#include "NptList.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const NPT_UInt16 NPT_URL_INVALID_PORT       = 0;
-const NPT_UInt16 NPT_URL_DEFAULT_HTTP_PORT  = 80;
-const NPT_UInt16 NPT_URL_DEFAULT_HTTPS_PORT = 443;
-
-/*----------------------------------------------------------------------
-|   NPT_Uri
-+---------------------------------------------------------------------*/
-class NPT_Uri {
-public:
-    // types
-    typedef enum {
-        SCHEME_ID_UNKNOWN,
-        SCHEME_ID_HTTP,
-        SCHEME_ID_HTTPS
-    } SchemeId;
-
-    // constants. use as a parameter to Encode()
-    static const char* const PathCharsToEncode;
-    static const char* const QueryCharsToEncode;
-    static const char* const FragmentCharsToEncode;
-    static const char* const UnsafeCharsToEncode;
-
-    // class methods
-    static NPT_String PercentEncode(const char* str, const char* chars, bool encode_percents=true);
-    static NPT_String PercentDecode(const char* str);
-    static SchemeId   ParseScheme(const NPT_String& scheme);
-
-    // methods
-    NPT_Uri() : m_SchemeId(SCHEME_ID_UNKNOWN) {}
-    virtual ~NPT_Uri() {}
-    const NPT_String& GetScheme() const {
-        return m_Scheme;
-    }
-    void SetScheme(const char* scheme);
-    NPT_Result SetSchemeFromUri(const char* uri);
-    SchemeId GetSchemeId() const {
-        return m_SchemeId;
-    }
-
-protected:
-    // members
-    NPT_String m_Scheme;
-    SchemeId   m_SchemeId;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_UrlQuery
-+---------------------------------------------------------------------*/
-class NPT_UrlQuery
-{
-public:
-    // class methods
-    static NPT_String UrlEncode(const char* str, bool encode_percents=true);
-    static NPT_String UrlDecode(const char* str);
-    
-    // types
-    struct Field {
-        Field(const char* name, const char* value, bool encoded);
-        NPT_String m_Name;
-        NPT_String m_Value;
-    };
-
-    // constructor
-    NPT_UrlQuery() {}
-    NPT_UrlQuery(const char* query);
-
-    // accessors
-    NPT_List<Field>& GetFields() { return m_Fields; }
-
-    // methods
-    NPT_Result  Parse(const char* query);
-    NPT_Result  SetField(const char* name, const char* value, bool encoded=false);
-    NPT_Result  AddField(const char* name, const char* value, bool encoded=false);
-    const char* GetField(const char* name);
-    NPT_String  ToString();
-
-private:
-    // members
-    NPT_List<Field> m_Fields;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Url
-+---------------------------------------------------------------------*/
-class NPT_Url : public NPT_Uri {
-public:
-    /**
-     * Default constructor. This does not construct a valid URL, but an
-     * uninitialized one that can later be initialized to a valid URL by
-     * parsing or setting some of its fields.
-     */
-    NPT_Url();
-    
-    /**
-     * Construct a URL by parsing an input string in its fully encoded form.
-     * If an error occurs during parsing (such as an invalid syntax), the
-     * URL will be in an invalid state (a call to IsValid() will return false).
-     *
-     * @param url The URL string in its encoded form
-     * @param default_port The default port number, or 0 if not specified
-     */
-    NPT_Url(const char* url, NPT_UInt16  default_port = 0);
-    
-    /**
-     * Construct a URL from its components. When constructing a URL from
-     * components, the components are assumed to be passed in their non-encoded
-     * form, and will thus be encoded automatically.
-     *
-     * @param scheme The URL scheme
-     * @param port The port number
-     * @param path The path
-     * @param query The query, if any, or NULL
-     * @param fragment The fragment, if any, or NULL
-     */
-    NPT_Url(const char* scheme,
-            const char* host, 
-            NPT_UInt16  port, 
-            const char* path,
-            const char* query = NULL,
-            const char* fragment = NULL);
-
-    /**
-     * Parse a URL from its fully encoded form.
-     *
-     * @param url The URL string in its encoded form
-     * @param default port The defautl port number, or 0 if not specified
-     */
-    NPT_Result Parse(const char* url, NPT_UInt16  default_port = 0);
-    
-    /**
-     * Parse just the path plus optional query and fragment from a fully encoded form.
-     *
-     * @param path_plus The URL path plus optional query and fragment
-     */
-    NPT_Result ParsePathPlus(const char* path_plus);
-    
-    /**
-     * Returns the host part of the URL, in its encoded form
-     */
-    const NPT_String& GetHost() const { return m_Host;     }
-    
-    /**
-     * Returns the port number of the URL.
-     */
-    NPT_UInt16 GetPort() const { return m_Port;     }
-
-    /**
-     * Returns the path part of the URL, in its encoded form
-     */
-    const NPT_String& GetPath() const { return m_Path; }
-    
-    /**
-     * Returns the path part of the URL, in its encoded or decoded form
-     */
-    NPT_String GetPath(bool decoded) const { return decoded?NPT_Uri::PercentDecode(m_Path):m_Path;}
-
-    /**
-     * Returns the query part of the URL, in its encoded form
-     */
-    const NPT_String& GetQuery() const { return m_Query; }
-    
-    /**
-     * Returns the fragment part of the URL, in its encoded form
-     */
-    const NPT_String& GetFragment() const { return m_Fragment; }
-    
-    /**
-     * Returns whether the URL is valid or not. Invalid URLs are uninitialized or
-     * not fully initialized URLs.
-     *
-     * @return true if the URL is valid, false if it is not.
-     */
-    virtual bool IsValid() const;
-    
-    /**
-     * Resets a URL to an uninitialized state.
-     */
-    void Reset();
-    
-    /**
-     * Returns whether the URL has a query part or not.
-     *
-     * @return true if the URL has a query part, false if it does not.
-     */
-    bool HasQuery() const { return m_HasQuery; } 
-
-    /**
-     * Returns whether the URL has a fragment part or not.
-     *
-     * @return true if the URL has a fragment part, false if it does not.
-     */
-    bool HasFragment() const { return m_HasFragment; }
-
-    /**
-     * Sets the host part of the URL.
-     *
-     * @param host The host part of the URL
-     */
-    NPT_Result SetHost(const char* host);
-    
-    /**
-     * Sets the port number of the URL.
-     *
-     * @param port The port number of the URL
-     */
-    NPT_Result SetPort(NPT_UInt16 port);
-    
-    /**
-     * Sets the path part of the URL.
-     *
-     * @param path The path part of the URL
-     * @param encoded Boolean flag indicating whether the path parameter is
-     * already encoded or not. If it is not already encoded, it will be
-     * automatically encoded.
-     */
-    NPT_Result SetPath(const char* path, bool encoded=false);
-    
-    /**
-     * Sets the query part of the URL.
-     * 
-     * @param query The query part of the URL
-     * @param encoded Boolean flag indicating whether the query parameter is
-     * already encoded or not. If it is not already encoded, it will be
-     * automatically encoded.
-     */     
-    NPT_Result SetQuery(const char* query, bool encoded=false);
-
-    /**
-     * Sets the fragment part of the URL.
-     * 
-     * @param query The fragment part of the URL
-     * @param encoded Boolean flag indicating whether the fragment parameter is
-     * already encoded or not. If it is not already encoded, it will be
-     * automatically encoded.
-     */     
-    NPT_Result SetFragment(const char* fragment, bool encoded=false);
-
-    /**
-     * Return the string representation of the URL in a way that can be used in 
-     * an HTTP request (i.e just the portion of the URL starting with the path)
-     *
-     * @param with_fragment Boolean flag specifiying whether the fragment part of 
-     * the URL should be included in the returned string or not.
-     */
-    virtual NPT_String ToRequestString(bool with_fragment = false) const;
-
-    /**
-     * Return the string representation of the URL.
-     *
-     * @param default_port default port number for the scheme. If the port number of
-     * the URL is not equal to the default port, then port number is explicitely 
-     * included in the string representation of the URL. 
-     * @param with_fragment Boolean flag specifiying whether the fragment part of 
-     * the URL should be included in the returned string or not.
-     */
-    virtual NPT_String ToStringWithDefaultPort(NPT_UInt16 default_port, bool with_fragment = true) const;
-
-    /**
-     * Return the string representation of the URL.
-     *
-     * @param with_fragment Boolean flag specifiying whether the fragment part of 
-     * the URL should be included in the returned string or not.
-     */
-    virtual NPT_String ToString(bool with_fragment = true) const;
-
-protected:
-    // members
-    NPT_String m_Host;
-    NPT_UInt16 m_Port;
-    NPT_String m_Path;
-    bool       m_HasQuery;
-    NPT_String m_Query;
-    bool       m_HasFragment;
-    NPT_String m_Fragment;
-};
-
-#endif // _NPT_URI_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptUtils.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptUtils.h
deleted file mode 100644
index 3a06d49..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptUtils.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/*****************************************************************
-|
-|   Neptune Utils
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_UTILS_H_
-#define _NPT_UTILS_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-#include "NptTypes.h"
-#include "NptStrings.h"
-#include "NptMap.h"
-#include "NptDataBuffer.h"
-#include "NptHash.h"
-
-#if defined (NPT_CONFIG_HAVE_STDIO_H)
-#include <stdio.h>
-#endif
-
-#if defined (NPT_CONFIG_HAVE_STRING_H)
-#include <string.h>
-#endif
-
-#if defined(NPT_CONFIG_HAVE_STDARG_H)
-#include <stdarg.h>
-#endif
-
-/*----------------------------------------------------------------------
-|   macros
-+---------------------------------------------------------------------*/
-#define NPT_ARRAY_SIZE(_a) (sizeof(_a)/sizeof((_a)[0]))
-
-/*----------------------------------------------------------------------
-|   byte I/O
-+---------------------------------------------------------------------*/
-extern void NPT_BytesFromInt64Be(unsigned char* buffer, NPT_UInt64 value);
-extern void NPT_BytesFromInt32Be(unsigned char* buffer, NPT_UInt32 value);
-extern void NPT_BytesFromInt24Be(unsigned char* buffer, NPT_UInt32 value);
-extern void NPT_BytesFromInt16Be(unsigned char* buffer, NPT_UInt16 value);
-extern NPT_UInt64 NPT_BytesToInt64Be(const unsigned char* buffer);
-extern NPT_UInt32 NPT_BytesToInt32Be(const unsigned char* buffer);
-extern NPT_UInt32 NPT_BytesToInt24Be(const unsigned char* buffer);
-extern NPT_UInt16 NPT_BytesToInt16Be(const unsigned char* buffer);
-
-extern void NPT_BytesFromInt64Le(unsigned char* buffer, NPT_UInt64 value);
-extern void NPT_BytesFromInt32Le(unsigned char* buffer, NPT_UInt32 value);
-extern void NPT_BytesFromInt24Le(unsigned char* buffer, NPT_UInt32 value);
-extern void NPT_BytesFromInt16Le(unsigned char* buffer, NPT_UInt16 value);
-extern NPT_UInt64 NPT_BytesToInt64Le(const unsigned char* buffer);
-extern NPT_UInt32 NPT_BytesToInt32Le(const unsigned char* buffer);
-extern NPT_UInt32 NPT_BytesToInt24Le(const unsigned char* buffer);
-extern NPT_UInt16 NPT_BytesToInt16Le(const unsigned char* buffer);
-
-/*----------------------------------------------------------------------
-|    conversion utilities
-+---------------------------------------------------------------------*/
-extern NPT_Result 
-NPT_ParseFloat(const char* str, float& result, bool relaxed = true);
-
-extern NPT_Result 
-NPT_ParseInteger(const char* str, long& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-extern NPT_Result 
-NPT_ParseInteger(const char* str, unsigned long& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-extern NPT_Result 
-NPT_ParseInteger(const char* str, int& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-extern NPT_Result 
-NPT_ParseInteger(const char* str, unsigned int& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-extern NPT_Result 
-NPT_ParseInteger32(const char* str, NPT_Int32& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-extern NPT_Result 
-NPT_ParseInteger32(const char* str, NPT_UInt32& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-extern NPT_Result 
-NPT_ParseInteger64(const char* str, NPT_Int64& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-extern NPT_Result 
-NPT_ParseInteger64(const char* str, NPT_UInt64& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-/*----------------------------------------------------------------------
-|    formatting
-+---------------------------------------------------------------------*/
-void
-NPT_FormatOutput(void        (*function)(void* parameter, const char* message),
-                 void*       function_parameter,
-                 const char* format, 
-                 va_list     args);
-
-void NPT_ByteToHex(NPT_Byte b, char* buffer, bool uppercase=false);
-NPT_Result NPT_HexToByte(const char* buffer, NPT_Byte& b);
-NPT_Result NPT_HexToBytes(const char* hex, NPT_DataBuffer& bytes);
-NPT_String NPT_HexString(const unsigned char* data, 
-                         NPT_Size             data_size,
-                         const char*          separator = NULL,
-                         bool                 uppercase=false);
-char NPT_NibbleToHex(unsigned int nibble, bool uppercase = true);
-int NPT_HexToNibble(char hex);
-
-/*----------------------------------------------------------------------
-|    parsing
-+---------------------------------------------------------------------*/
-NPT_Result 
-NPT_ParseMimeParameters(const char*                      encoded,
-                        NPT_Map<NPT_String, NPT_String>& parameters);
-
-/*----------------------------------------------------------------------
-|    environment variables
-+---------------------------------------------------------------------*/
-class NPT_Environment {
-public:
-    static NPT_Result Get(const char* name, NPT_String& value);
-    static NPT_Result Set(const char* name, const char* value);
-};
-// compat for older APIs
-#define NPT_GetEnvironment(_x,_y) NPT_Environment::Get(_x,_y)
-
-/*----------------------------------------------------------------------
-|   string utils
-+---------------------------------------------------------------------*/
-#if defined (NPT_CONFIG_HAVE_STDIO_H)
-#include <stdio.h>
-#endif
-
-#if defined (NPT_CONFIG_HAVE_STRING_H)
-#include <string.h>
-#endif
-
-#if defined (NPT_CONFIG_HAVE_SNPRINTF)
-#define NPT_FormatString NPT_snprintf
-#else
-int NPT_FormatString(char* str, NPT_Size size, const char* format, ...);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_VSNPRINTF)
-#define NPT_FormatStringVN(s,c,f,a) NPT_vsnprintf(s,c,f,a)
-#else
-extern int NPT_FormatStringVN(char *buffer, size_t count, const char *format, va_list argptr);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_MEMCPY)
-#define NPT_CopyMemory memcpy
-#else
-extern void NPT_CopyMemory(void* dest, void* src, NPT_Size size);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_STRCMP)
-#define NPT_StringsEqual(s1, s2) (strcmp((s1), (s2)) == 0)
-#else
-extern int NPT_StringsEqual(const char* s1, const char* s2);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_STRNCMP)
-#define NPT_StringsEqualN(s1, s2, n) (strncmp((s1), (s2), (n)) == 0)
-#else
-extern int NPT_StringsEqualN(const char* s1, const char* s2, unsigned long size);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_STRLEN)
-#define NPT_StringLength(s) (NPT_Size)(strlen(s))
-#else
-extern unsigned long NPT_StringLength(const char* s);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_STRCPY)
-#define NPT_CopyString(dst, src) ((void)NPT_strcpy((dst), (src)))
-#else
-extern void NPT_CopyString(char* dst, const char* src);
-#endif
-
-/**
- * Copy up to n characters from src to dst.
- * The destination buffer will be null-terminated, so it must
- * have enough space for n+1 characters (n from the source plus
- * the null terminator).
- */
-#if defined(NPT_CONFIG_HAVE_STRNCPY)
-#define NPT_CopyStringN(dst, src, n) \
-do { ((void)NPT_strncpy((dst), (src), n)); (dst)[(n)] = '\0'; } while(0)
-#else
-extern int NPT_CopyStringN(char* dst, const char* src, unsigned long n);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_MEMSET)
-#define NPT_SetMemory memset
-#else
-extern void NPT_SetMemory(void* dest, int c, NPT_Size size);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_MEMCMP)
-#define NPT_MemoryEqual(s1, s2, n) (memcmp((s1), (s2), (n)) == 0) 
-#else 
-extern int NPT_MemoryEqual(const void* s1, const void* s2, unsigned long n); 
-#endif
-
-#endif // _NPT_UTILS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptVersion.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptVersion.h
deleted file mode 100644
index ad34d90..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptVersion.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Version Info
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_VERSION_H_
-#define _NPT_VERSION_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#define NPT_NEPTUNE_VERSION        0x01010300
-#define NPT_NEPTUNE_VERSION_STRING "1.1.3"
-
-#endif // _NPT_VERSION_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptXml.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptXml.h
deleted file mode 100644
index b5d18ea..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptXml.h
+++ /dev/null
@@ -1,390 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Xml Support
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_XML_H_
-#define _NPT_XML_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptList.h"
-#include "NptStrings.h"
-#include "NptStreams.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_XML_INVALID_NESTING = NPT_ERROR_BASE_XML - 0;
-const int NPT_ERROR_XML_TAG_MISMATCH    = NPT_ERROR_BASE_XML - 1;
-const int NPT_ERROR_XML_NO_ROOT         = NPT_ERROR_BASE_XML - 2;
-const int NPT_ERROR_XML_MULTIPLE_ROOTS  = NPT_ERROR_BASE_XML - 3;
-
-#define NPT_XML_ANY_NAMESPACE "*"
-#define NPT_XML_NO_NAMESPACE  NULL
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class NPT_XmlProcessor;
-
-/*----------------------------------------------------------------------
-|   NPT_XmlAttribute
-+---------------------------------------------------------------------*/
-class NPT_XmlAttribute
-{
- public:
-    // methods
-    NPT_XmlAttribute(const char* name, const char* value);
-    NPT_XmlAttribute(const char* prefix, const char* name, const char* value) :
-        m_Prefix(prefix), m_Name(name), m_Value(value) {}
-    const NPT_String& GetPrefix() const { return m_Prefix; }
-    const NPT_String& GetName()   const { return m_Name;   }
-    const NPT_String& GetValue()  const { return m_Value;  }
-    void              SetValue(const char* value) { m_Value = value; }
-
- private:
-    // members
-    NPT_String m_Prefix;
-    NPT_String m_Name;
-    NPT_String m_Value;
-
-    NPT_XmlAttribute(const NPT_XmlAttribute& attribute) :
-        m_Prefix(attribute.m_Prefix), 
-        m_Name(attribute.m_Name), 
-        m_Value(attribute.m_Value) {}
-    NPT_XmlAttribute& operator=(const NPT_XmlAttribute& a);
-
-    // friends
-    friend class NPT_XmlAttributeFinder;
-    friend class NPT_XmlAttributeFinderWithPrefix;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlNamespaceMap
-+---------------------------------------------------------------------*/
-class NPT_XmlNamespaceMap
-{
-public:
-    // destructor
-    ~NPT_XmlNamespaceMap();
-
-    // methods   
-    NPT_Result        SetNamespaceUri(const char* prefix, const char* uri);
-    const NPT_String* GetNamespaceUri(const char* prefix);
-    const NPT_String* GetNamespacePrefix(const char* uri);
-
-private:
-    // types
-    class Entry {
-    public:
-        // constructor
-        Entry(const char* prefix, const char* uri) : 
-            m_Prefix(prefix), m_Uri(uri) {}
-
-        // members
-        NPT_String m_Prefix;
-        NPT_String m_Uri;
-    };
-
-    // members
-    NPT_List<Entry*> m_Entries;
-
-    // friends
-    friend class NPT_XmlWriter;
-    friend class NPT_XmlNodeWriter;
-    friend class NPT_XmlNodeCanonicalWriter;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlNode
-+---------------------------------------------------------------------*/
-class NPT_XmlElementNode;
-class NPT_XmlTextNode;
-class NPT_XmlNode
-{
- public:
-    // types
-    typedef enum {
-        DOCUMENT,
-        ELEMENT,
-        TEXT
-    } Type;
-
-    // methods
-    NPT_XmlNode(Type type) : m_Type(type), m_Parent(NULL) {}
-    virtual     ~NPT_XmlNode() {}
-    Type         GetType() const { return m_Type; }
-    NPT_XmlNode* GetParent() const { return m_Parent; }
-
-    // type casting
-    virtual NPT_XmlElementNode*       AsElementNode()       { return NULL; }
-    virtual const NPT_XmlElementNode* AsElementNode() const { return NULL; }
-    virtual NPT_XmlTextNode*          AsTextNode()          { return NULL; }
-    virtual const NPT_XmlTextNode*    AsTextNode() const    { return NULL; }
-
- protected:
-    // methods
-    virtual void SetParent(NPT_XmlNode* parent) { m_Parent = parent; }
-
-    // members  
-    Type         m_Type;
-    NPT_XmlNode* m_Parent;
-
-    // friends
-    friend class NPT_XmlNodeFinder;
-    friend class NPT_XmlSerializer;
-    friend class NPT_XmlWriter;
-    friend class NPT_XmlElementNode; // to allow access to SetParent()
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlElementNode
-+---------------------------------------------------------------------*/
-class NPT_XmlElementNode : public NPT_XmlNode
-{
- public:
-    // methods
-                            NPT_XmlElementNode(const char* tag);
-                            NPT_XmlElementNode(const char* prefix, const char* tag);
-    virtual                ~NPT_XmlElementNode();
-    NPT_List<NPT_XmlNode*>& GetChildren() { return m_Children; }
-    const NPT_List<NPT_XmlNode*>& 
-                            GetChildren() const { return m_Children; }
-    NPT_XmlElementNode*     GetChild(const char* tag, 
-                                     const char* namespc = NPT_XML_NO_NAMESPACE,
-                                     NPT_Ordinal n=0) const;
-    NPT_Result              AddChild(NPT_XmlNode* child);
-    NPT_Result              SetAttribute(const char* prefix,
-                                         const char* name, 
-                                         const char* value);
-    NPT_Result              SetAttribute(const char* name, 
-                                         const char* value);
-    NPT_Result              AddText(const char* text); 
-    NPT_List<NPT_XmlAttribute*>& 
-                            GetAttributes() { return m_Attributes; }
-    const NPT_List<NPT_XmlAttribute*>&
-                            GetAttributes() const { return m_Attributes; }
-    const NPT_String*       GetAttribute(const char* name,
-                                         const char* namespc = NPT_XML_NO_NAMESPACE) const;
-    const NPT_String&       GetPrefix() const { return m_Prefix; }
-    const NPT_String&       GetTag()    const { return m_Tag;    }
-    const NPT_String*       GetText(NPT_Ordinal n=0) const;
-
-    // bring all the namespace definitions used in this element of one of its descendants
-    // into the namespace map of this element so that it may be serialized as a
-    // standalone element without any prefixes with undefined namespace uris
-    NPT_Result              MakeStandalone();
-
-    // namespace methods   
-    const NPT_String* GetNamespace() const;
-    NPT_Result        SetNamespaceUri(const char* prefix, const char* uri);
-    const NPT_String* GetNamespaceUri(const char* prefix) const;
-    const NPT_String* GetNamespacePrefix(const char* uri) const;
-
-    // type casting
-    NPT_XmlElementNode*       AsElementNode()       { return this; }
-    const NPT_XmlElementNode* AsElementNode() const { return this; }
-
-protected:
-    // methods
-    void SetParent(NPT_XmlNode* parent);
-    void SetNamespaceParent(NPT_XmlElementNode* parent);
-    void RelinkNamespaceMaps();
-
-    NPT_Result AddAttribute(const char* name, const char* value);
-
-    // members  
-    NPT_String                  m_Prefix;
-    NPT_String                  m_Tag;
-    NPT_List<NPT_XmlNode*>      m_Children;
-    NPT_List<NPT_XmlAttribute*> m_Attributes;
-    NPT_XmlNamespaceMap*        m_NamespaceMap;
-    NPT_XmlElementNode*         m_NamespaceParent;
-
-    // friends
-    friend class NPT_XmlTagFinder;
-    friend class NPT_XmlSerializer;
-    friend class NPT_XmlWriter;
-    friend class NPT_XmlNodeWriter;
-    friend class NPT_XmlNodeCanonicalWriter;
-    friend class NPT_XmlParser;
-    friend class NPT_XmlProcessor;
-    friend class NPT_XmlNamespaceCollapser;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlTextNode
-+---------------------------------------------------------------------*/
-class NPT_XmlTextNode : public NPT_XmlNode
-{
- public:
-    // types
-    typedef enum {
-        CHARACTER_DATA,
-        IGNORABLE_WHITESPACE,
-        CDATA_SECTION,
-        ENTITY_REFERENCE,
-        COMMENT
-    } TokenType;
-
-    // constructor
-    NPT_XmlTextNode(TokenType token_type, const char* text);
-
-    // methods
-    const NPT_String& GetString() const { return m_Text; }
-
-    // type casting
-    NPT_XmlTextNode*       AsTextNode()       { return this; }
-    const NPT_XmlTextNode* AsTextNode() const { return this; }
-
- private:
-    // members  
-//    TokenType  m_TokenType;
-    NPT_String m_Text;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlParser
-+---------------------------------------------------------------------*/
-class NPT_XmlParser
-{
- public:
-    // methods
-             NPT_XmlParser(bool keep_whitespace = true);
-    virtual ~NPT_XmlParser();
-    virtual  NPT_Result Parse(const char*   xml, 
-                              NPT_XmlNode*& tree,
-                              bool          incremental=false);
-    virtual  NPT_Result Parse(const char*   xml, 
-                              NPT_Size      size,
-                              NPT_XmlNode*& tree,
-                              bool          incremental=false);
-    virtual  NPT_Result Parse(NPT_InputStream& stream, 
-                              NPT_XmlNode*&    tree,
-                              bool             incremental=false);
-    virtual  NPT_Result Parse(NPT_InputStream& stream, 
-                              NPT_Size&        size,
-                              NPT_XmlNode*&    tree,
-                              bool             incremental=false);
-    
- protected:
-    // NPT_XmlHandler methods
-    NPT_Result OnStartElement(const char* name);
-    NPT_Result OnElementAttribute(const char* name, const char* value);
-    NPT_Result OnEndElement(const char* name);
-    NPT_Result OnCharacterData(const char* data, NPT_Size size);
-    void       RemoveIgnorableWhitespace();
-
-    // members
-    NPT_XmlProcessor*   m_Processor;
-    NPT_XmlElementNode* m_Root;
-    NPT_XmlElementNode* m_CurrentElement;
-    bool                m_KeepWhitespace;
-
-private:
-    void Reset();
-    
-    // friends
-    friend class NPT_XmlProcessor;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlSerializer
-+---------------------------------------------------------------------*/
-class NPT_XmlSerializer
-{
-public:
-    // methods
-                       NPT_XmlSerializer(NPT_OutputStream* output,
-                                         NPT_Cardinal      indentation = 0,
-                                         bool              shrink_empty_elements = true,
-                                         bool              add_xml_decl = false);
-    virtual           ~NPT_XmlSerializer();
-    virtual NPT_Result StartDocument();
-    virtual NPT_Result EndDocument();
-    virtual NPT_Result StartElement(const char* prefix, const char* name);
-    virtual NPT_Result EndElement(const char* prefix, const char* name);
-    virtual NPT_Result Attribute(const char* prefix, const char* name, const char* value);
-    virtual NPT_Result Text(const char* text);
-    virtual NPT_Result CdataSection(const char* data);
-    virtual NPT_Result Comment(const char* comment);
-
-protected:
-    // methods
-    void       EscapeChar(unsigned char c, char* text);
-    NPT_Result ProcessPending();
-    NPT_Result OutputEscapedString(const char* text, bool attribute);
-    void       OutputIndentation(bool start);
-
-    // members
-    NPT_OutputStream* m_Output;
-    bool              m_ElementPending;
-    NPT_Cardinal      m_Depth;
-    NPT_Cardinal      m_Indentation;
-    NPT_String        m_IndentationPrefix;
-    bool              m_ElementHasText;
-    bool              m_ShrinkEmptyElements;
-    bool              m_AddXmlDecl;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlWriter
-+---------------------------------------------------------------------*/
-class NPT_XmlWriter
-{
-public:
-    // constructor
-    explicit NPT_XmlWriter(NPT_Cardinal indentation = 0) : m_Indentation(indentation) {}
-
-    // methods
-    NPT_Result Serialize(NPT_XmlNode&      node, 
-                         NPT_OutputStream& stream, 
-                         bool              add_xml_decl = false);
-
-private:
-    // members
-    NPT_Cardinal m_Indentation;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlCanonicalizer
-+---------------------------------------------------------------------*/
-class NPT_XmlCanonicalizer
-{
-public:
-    // methods
-    NPT_Result Serialize(NPT_XmlNode&      node, 
-                         NPT_OutputStream& stream, 
-                         bool              add_xml_decl = false);
-};
-
-#endif // _NPT_XML_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptZip.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptZip.h
deleted file mode 100644
index 3720451..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/NptZip.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Zip Support
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_ZIP_H_
-#define _NPT_ZIP_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-#include "NptStreams.h"
-#include "NptArray.h"
-#include "NptFile.h"
-
-/*----------------------------------------------------------------------
-|   class references
-+---------------------------------------------------------------------*/
-class NPT_ZipInflateState;
-class NPT_ZipDeflateState;
-
-/*----------------------------------------------------------------------
-|   NPT_ZipFile
-+---------------------------------------------------------------------*/
-const unsigned int NPT_ZIP_FILE_FLAG_ENCRYPTED = 0x01;
-const unsigned int NPT_ZIP_FILE_COMPRESSION_METHOD_NONE    = 0x00;
-const unsigned int NPT_ZIP_FILE_COMPRESSION_METHOD_DEFLATE = 0x08;
-
-class NPT_ZipFile
-{
-public:
-    // types
-    class Entry {
-    public:
-        Entry(const unsigned char* data);
-        NPT_String    m_Name;
-        NPT_UInt16    m_Flags;
-        NPT_UInt16    m_CompressionMethod;
-        NPT_UInt32    m_Crc32;
-        NPT_LargeSize m_CompressedSize;
-        NPT_LargeSize m_UncompressedSize;
-        NPT_UInt16    m_DiskNumber;
-        NPT_UInt16    m_InternalFileAttributes;
-        NPT_UInt32    m_ExternalFileAttributes;
-        NPT_Position  m_RelativeOffset;
-        NPT_UInt32    m_DirectoryEntrySize;
-    };
-    
-    // class methods
-    static NPT_Result Parse(NPT_InputStream& stream, NPT_ZipFile*& file);
-    static NPT_Result GetInputStream(Entry& entry, NPT_InputStreamReference& zip_stream, NPT_InputStream*& file_stream);
-    
-    // accessors
-    NPT_Array<Entry>& GetEntries() { return m_Entries; }
-    
-private:
-    // constructor
-    NPT_ZipFile();
-    
-    // members
-    NPT_Array<Entry> m_Entries;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Zip
-+---------------------------------------------------------------------*/
-const int NPT_ZIP_COMPRESSION_LEVEL_DEFAULT = -1;
-const int NPT_ZIP_COMPRESSION_LEVEL_MIN     = 0;
-const int NPT_ZIP_COMPRESSION_LEVEL_MAX     = 9;
-const int NPT_ZIP_COMPRESSION_LEVEL_NONE    = 0;
-class NPT_Zip 
-{
-public:
-    // class methods
-    static NPT_Result MapError(int err);
-
-    /** 
-     * Compressed data format
-     */
-    typedef enum {
-        ZLIB,
-        GZIP
-    } Format;
-        
-    /**
-     * Deflate (i.e compress) a buffer
-     */
-    static NPT_Result Deflate(const NPT_DataBuffer& in,
-                              NPT_DataBuffer&       out,
-                              int                   compression_level = NPT_ZIP_COMPRESSION_LEVEL_DEFAULT,
-                              Format                format = ZLIB);
-                              
-    /**
-     * Inflate (i.e decompress) a buffer
-     */
-    static NPT_Result Inflate(const NPT_DataBuffer& in,
-                              NPT_DataBuffer&       out,
-                              bool                  raw = false);
-    
-    /**
-     * Deflate (i.e compress) a file
-     */
-    static NPT_Result Deflate(NPT_File& in,
-                              NPT_File& out,
-                              int       compression_level = NPT_ZIP_COMPRESSION_LEVEL_DEFAULT,
-                              Format    format = GZIP);
-    
-};
-
-/*----------------------------------------------------------------------
-|   NPT_ZipInflatingInputStream
-+---------------------------------------------------------------------*/
-class NPT_ZipInflatingInputStream : public NPT_InputStream 
-{
-public:
-    NPT_ZipInflatingInputStream(NPT_InputStreamReference& source, bool raw = false);
-   ~NPT_ZipInflatingInputStream();
-   
-    // NPT_InputStream methods
-    virtual NPT_Result Read(void*     buffer, 
-                            NPT_Size  bytes_to_read, 
-                            NPT_Size* bytes_read = NULL);
-    virtual NPT_Result Seek(NPT_Position offset);
-    virtual NPT_Result Tell(NPT_Position& offset);
-    virtual NPT_Result GetSize(NPT_LargeSize& size);
-    virtual NPT_Result GetAvailable(NPT_LargeSize& available);
-
-private:
-    NPT_InputStreamReference m_Source;
-    NPT_Position             m_Position;
-    NPT_ZipInflateState*     m_State;
-    NPT_DataBuffer           m_Buffer;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_ZipInflatingOutputStream
-+---------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------
-|   NPT_ZipDeflatingInputStream
-+---------------------------------------------------------------------*/
-class NPT_ZipDeflatingInputStream : public NPT_InputStream 
-{
-public:
-    NPT_ZipDeflatingInputStream(NPT_InputStreamReference& source,
-                                int                       compression_level = NPT_ZIP_COMPRESSION_LEVEL_DEFAULT,
-                                NPT_Zip::Format           format = NPT_Zip::ZLIB);
-   ~NPT_ZipDeflatingInputStream();
-   
-    // NPT_InputStream methods
-    virtual NPT_Result Read(void*     buffer, 
-                            NPT_Size  bytes_to_read, 
-                            NPT_Size* bytes_read = NULL);
-    virtual NPT_Result Seek(NPT_Position offset);
-    virtual NPT_Result Tell(NPT_Position& offset);
-    virtual NPT_Result GetSize(NPT_LargeSize& size);
-    virtual NPT_Result GetAvailable(NPT_LargeSize& available);
-
-private:
-    NPT_InputStreamReference m_Source;
-    NPT_Position             m_Position;
-    bool                     m_Eos;
-    NPT_ZipDeflateState*     m_State;
-    NPT_DataBuffer           m_Buffer;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_ZipDeflatingOutputStream
-+---------------------------------------------------------------------*/
-/*class NPT_ZipDeflatingOutputStream : public NPT_OutputStream 
-{
-public:
-    NPT_ZipDeflatingOutputStream(NPT_OutputStreamReference& source,
-                                 int                        compression_level = NPT_ZIP_COMPRESSION_LEVEL_DEFAULT,
-                                 NPT_Zip::Format            format = NPT_Zip::ZLIB);
-   NPT_ZipDeflatingOutputStream();
-   
-    // NPT_OutputStream methods
-    virtual NPT_Result Write(void*     buffer, 
-                             NPT_Size  bytes_to_write, 
-                             NPT_Size* bytes_written = NULL);
-    virtual NPT_Result Seek(NPT_Position offset);
-    virtual NPT_Result Tell(NPT_Position& offset);
-
-private:
-    NPT_OutputStreamReference m_Output;
-    NPT_Position              m_Position;
-    bool                      m_Eos;
-    NPT_ZipDeflateState*      m_State;
-    NPT_DataBuffer            m_Buffer;
-}; */
-
-#endif // _NPT_ZIP_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/Platinum.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/Platinum.h
deleted file mode 100644
index a7f47a6..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/Platinum.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Top Level Include
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-| 
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
- ****************************************************************/
-/** @file
- Master Header file included by Platinum client applications.
- 
- Client Applications should only need to include this file, as it 
- includes all the more specific include files required to use the API
- */
-
-/** 
- at mainpage Platinum UPnP SDK
-
- at section intro Introduction
-
-The Platinum SDK contains all the software components necessary to 
-build and use the Platinum UPnP Framework. This includes
-the Platinum framework and the Neptune C++ runtime
-library.
-
- at section architecture Architecture
-
-The Platinum framework consists of a core framework that implements the UPnP
-core specifications including GENA, SOAP and SSDP. Building on top of that, the 
-Platinum framework provides the foundation for UPnP AV Media Server and 
-Media Renderer compliant implementations.
- 
-The Platinum framework leverages the Neptune C++ runtime library which offers an 
-elegant platform abstraction layer for multithreading, file system and 
-network operations. Additionally, it provides support for XML parsing, string and time
-manipulation, template based linked-lists, stacks and arrays, and a configurable 
-cross-platform logging system.
- 
-*/
-
-#ifndef _PLATINUM_H_
-#define _PLATINUM_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "PltUPnP.h"
-#include "PltCtrlPoint.h"
-#include "PltDeviceData.h"
-#include "PltHttpServer.h"
-#include "PltVersion.h"
-
-#include "PltMimeType.h"
-#include "PltProtocolInfo.h"
-#include "PltAction.h"
-#include "PltArgument.h"
-#include "PltConstants.h"
-#include "PltCtrlPointTask.h"
-#include "PltDatagramStream.h"
-#include "PltDeviceHost.h"
-#include "PltEvent.h"
-#include "PltHttp.h"
-#include "PltHttpClientTask.h"
-#include "PltHttpServer.h"
-#include "PltHttpServerTask.h"
-#include "PltService.h"
-#include "PltSsdp.h"
-#include "PltStateVariable.h"
-#include "PltTaskManager.h"
-#include "PltThreadTask.h"
-#include "PltUtilities.h"
-
-#include "PltMediaServer.h"
-#include "PltMediaBrowser.h"
-#include "PltMediaRenderer.h"
-#include "PltMediaController.h"
-#include "PltDidl.h"
-#include "PltFileMediaServer.h"
-#include "PltMediaCache.h"
-#include "PltMediaItem.h"
-#include "PltSyncMediaBrowser.h"
-
-#include "PltXbox360.h"
-#include "PltMediaConnect.h"
-
-#include "PltDownloader.h"
-#include "PltStreamPump.h"
-#include "PltFrameBuffer.h"
-#include "PltFrameServer.h"
-#include "PltFrameStream.h"
-#include "PltRingBufferStream.h"
-
-#endif /* _PLATINUM_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltAction.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltAction.h
deleted file mode 100644
index f457f3d..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltAction.h
+++ /dev/null
@@ -1,321 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Service Action
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
-   UPnP Service Action
- */
-
-#ifndef _PLT_ACTION_H_
-#define _PLT_ACTION_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltArgument.h"
-#include "PltDeviceData.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_Service;
-
-/*----------------------------------------------------------------------
-|   PLT_ActionDesc
-+---------------------------------------------------------------------*/
-/**
- The PLT_ActionDesc class provides information about a UPnP Service given action.
- This description has a name, a set of arguments and is associated to a service.
- */
-class PLT_ActionDesc
-{
-public:
-    /**
-     Constructor
-     @param name the action name
-     @param service the UPnP service the action is associated with
-     */
-    PLT_ActionDesc(const char* name, PLT_Service* service);
-   ~PLT_ActionDesc();
-
-    /**
-     Return an array of arguments
-     @return array of arguments
-     */
-    NPT_Array<PLT_ArgumentDesc*>& GetArgumentDescs() { 
-        return m_ArgumentDescs; 
-    }
-
-    /**
-     Return the action name.
-     @return action name.
-     */
-    const NPT_String& GetName() const { return m_Name;}
-    
-    /**
-     Look for an argument given a name.
-     @param name argument name
-     @return PLT_ArgumentDesc pointer
-     */
-    PLT_ArgumentDesc* GetArgumentDesc(const char* name);
-    
-    /**
-     Serialize action information to xml into an existing xml tree
-     @param node the xml Element to serialize action information
-     */
-    NPT_Result        GetSCPDXML(NPT_XmlElementNode* node);
-    
-    /**
-     Return the service the action is associated with
-     */
-    PLT_Service*      GetService();
-
-protected:
-    //members
-    NPT_String                   m_Name;
-    PLT_Service*                 m_Service;
-    NPT_Array<PLT_ArgumentDesc*> m_ArgumentDescs;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_Action
-+---------------------------------------------------------------------*/
-/** 
- The PLT_Action class provides a mechanism to call or verify the validity of a
- specific UPNP service action.
- Given a service, a UPnP Control Point would use this class to serialize a soap
- request. On the other side, a UPnP Device would use this class to verify
- a soap request and the validity of the action arguments.
- */
-class PLT_Action
-{
-public:
-    /**
-     Constructor
-     @param action_desc the action description
-     If you intend to send an action, you need to use the second constructor
-     and pass the root device of the device you wish to control.
-     */
-    PLT_Action(PLT_ActionDesc& action_desc);
-    
-    /**
-     Constructor
-     @param action_desc the action description
-     @param root_device a reference to the root device of the service the action
-     is associated with. This insures that the device won't be deleted if it goes 
-     away while we're waiting for a response for this action. This is important because
-     we only keep a reference to the PLT_ActionDesc which is own by the service operated
-     by the device (or embedded device).
-     */
-    PLT_Action(PLT_ActionDesc& action_desc, PLT_DeviceDataReference& root_device);
-    ~PLT_Action();
-
-    /**
-     Return the action description
-     @return the action description
-     */
-    PLT_ActionDesc& GetActionDesc() { return m_ActionDesc; }
-    
-    /**
-     Retrieve the string value of an argument given an argument name.
-     @param name the argument name
-     @param value the string value to retrieve
-     @return error if the argument is not found or if the type does not correspond.
-     */
-    NPT_Result GetArgumentValue(const char* name, NPT_String& value);
-    
-    /**
-     Retrieve the value of an argument given an argument name.
-     @param name the argument name
-     @param value the unsigned int value to retrieve
-     @return error if the argument is not found or if the type does not correspond.
-     */
-    NPT_Result GetArgumentValue(const char* name, NPT_UInt32& value);
-    
-    /**
-     Retrieve the value of an argument given an argument name.
-     @param name the argument name
-     @param value the int value to retrieve
-     @return error if the argument is not found or if the type does not correspond.
-     */
-    NPT_Result GetArgumentValue(const char* name, NPT_Int32& value);
-    
-    /**
-     Retrieve the value of an argument given an argument name.
-     @param name the argument name
-     @param value the bool value to retrieve
-     @return error if the argument is not found or if the type does not correspond.
-     */
-	NPT_Result GetArgumentValue(const char* name, bool& value);
-    
-    /**
-     Verify a value is valid for a given argument.
-     @param name the argument name
-     @param value the value to verify
-     */
-    NPT_Result VerifyArgumentValue(const char* name, const char* value);
-    
-    /**
-     Verify that all required arguments are set.
-     @param input boolean indicating whether input or output parameters 
-     should be verified
-     */
-    NPT_Result VerifyArguments(bool input);
-    
-    /**
-     Set the output argument value from the associated current state variable value.
-     @param name the state variable name
-     */
-    NPT_Result SetArgumentOutFromStateVariable(const char* name);
-    
-    /**
-     Set all the output argument values associated with state variables.
-     */
-    NPT_Result SetArgumentsOutFromStateVariable();
-    
-    /**
-     Set an argument value
-     @param name the argument name
-     @param value the argument value
-     */
-    NPT_Result SetArgumentValue(const char* name, const char* value);
-
-    /** 
-     Set the error code and description in case of failure.
-     @param code the code for the error
-     @param description a short description
-     */
-    NPT_Result SetError(unsigned int code, const char* description);
-    
-    /**
-     Return the error description and code for the failed action.
-     @param code optional pointer to receive the code
-     @return the error short description
-     */
-    const char* GetError(unsigned int* code = NULL);
-    
-    /**
-     Return the error code for the failed action.
-     @return the error code.
-     */
-    unsigned int GetErrorCode();
-    
-    /**
-     Called by a control point when serializing an action.
-     @param stream the stream to serialize the action to
-     */
-    NPT_Result    FormatSoapRequest(NPT_OutputStream& stream);
-    
-    /**
-     Called by a device when serializing a response to an action.
-     @param stream the stream to serialize the action to
-     */
-    NPT_Result    FormatSoapResponse(NPT_OutputStream& stream);
-
-    /**
-     Helper method for a device to serialize an action invocation error.
-     @param code optional pointer to receive the code
-     @param desc the error short description
-     @param stream the stream to serialize to
-     */
-    static NPT_Result FormatSoapError(unsigned int      code, 
-                                      NPT_String        desc, 
-                                      NPT_OutputStream& stream);
-
-private:
-    // methods
-    NPT_Result    SetArgumentOutFromStateVariable(PLT_ArgumentDesc* arg_desc);
-    PLT_Argument* GetArgument(const char* name);
-
-protected:
-    // members
-    PLT_ActionDesc&         m_ActionDesc;
-    PLT_Arguments           m_Arguments;
-    unsigned int            m_ErrorCode;
-    NPT_String              m_ErrorDescription;
-    
-    // keep reference of service root device to prevent it 
-    // from being released during action lifetime
-	PLT_DeviceDataReference m_RootDevice;
-};
-
-typedef NPT_Reference<PLT_Action> PLT_ActionReference;
-
-/*----------------------------------------------------------------------
-|   PLT_GetSCPDXMLIterator
-+---------------------------------------------------------------------*/
-/**
- The PLT_GetSCPDXMLIterator class provides a recursive way to serialize 
- an SCPD into an xml tree.
- */
-template <class T>
-class PLT_GetSCPDXMLIterator
-{
-public:
-    PLT_GetSCPDXMLIterator<T>(NPT_XmlElementNode* node) :
-        m_Node(node) {}
-      
-    NPT_Result operator()(T* const & data) const {
-        return data->GetSCPDXML(m_Node);
-    }
-
-private:
-    NPT_XmlElementNode* m_Node;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_ActionDescNameFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ActionDescNameFinder class provides a mechanism to find a PLT_ActionDesc 
- given an action name.
- */
-class PLT_ActionDescNameFinder
-{
-public:
-    // methods
-    PLT_ActionDescNameFinder(const char* name) : 
-        m_Name(name) {}
-    virtual ~PLT_ActionDescNameFinder() {}
-
-    bool operator()(const PLT_ActionDesc* const & action_desc) const {
-        return action_desc->GetName().Compare(m_Name, true) ? false : true;
-    }
-
-private:
-    // members
-    NPT_String   m_Name;
-};
-
-#endif /* _PLT_ACTION_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltArgument.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltArgument.h
deleted file mode 100644
index 4730e28..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltArgument.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Action Argument
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP Service Action Argument
- */
-
-#ifndef _PLT_ARGUMENT_H_
-#define _PLT_ARGUMENT_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_StateVariable;
-class PLT_Argument;
-class PLT_ActionDesc;
-typedef NPT_Array<PLT_Argument*> PLT_Arguments;
-
-/*----------------------------------------------------------------------
-|   PLT_ArgumentDesc
-+---------------------------------------------------------------------*/
-/**
- The PLT_ArgumentDesc class provides information about a given argument of a 
- UPnP Service given action.
- It has a name, a position, a direction (in/out), a PLT_StateVariable state 
- variable association and whether it is the return value of the action or not.
- */
-class PLT_ArgumentDesc
-{
-public:
-    PLT_ArgumentDesc(const char*        name,
-                     NPT_Ordinal        position,
-                     const char*        direction = "in",
-                     PLT_StateVariable* variable = NULL, 
-                     bool               has_ret = false);
-
-    // accessor methods
-    NPT_Result         GetSCPDXML(NPT_XmlElementNode* node);
-    const NPT_String&  GetName() const { return m_Name; }
-    const NPT_String&  GetDirection() const { return m_Direction; }
-    NPT_Ordinal        GetPosition() { return m_Position; }
-    PLT_StateVariable* GetRelatedStateVariable() { return m_RelatedStateVariable; }
-    bool               HasReturnValue() { return m_HasReturnValue; }
-
-protected:
-    NPT_String         m_Name;
-    NPT_Ordinal        m_Position;
-    NPT_String         m_Direction;
-    PLT_StateVariable* m_RelatedStateVariable;
-    bool               m_HasReturnValue;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_Argument
-+---------------------------------------------------------------------*/
-/** 
- The PLT_Argument class provides a mechanism to set or verify the validity of a
- specific UPNP service action argument.
- Typically, only a PLT_Action uses this class. Since an argument can be
- associated to a state variable, the argument is automatically updated when
- the associated state variable is changed 
- */
-class PLT_Argument
-{
-public:
-    PLT_Argument(PLT_ArgumentDesc& arg_desc);
-
-    // class methods
-    static NPT_Result CreateArgument(PLT_ActionDesc& action_desc, 
-                                     const char*     arg_name, 
-                                     const char*     arg_value,
-                                     PLT_Argument*&  arg);
-
-    // accessor methods
-    PLT_ArgumentDesc&  GetDesc() { return m_ArgDesc; }
-    NPT_Ordinal        GetPosition() { return m_ArgDesc.GetPosition(); }
-    NPT_Result         SetValue(const char* value);
-    const NPT_String&  GetValue();
-
-private:
-    NPT_Result         ValidateValue(const char* value);
-    
-protected:
-    PLT_ArgumentDesc&  m_ArgDesc;
-    NPT_String         m_Value;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_ArgumentNameFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ArgumentNameFinder class provides a mechanism to find a PLT_Argument given
- an argument name.
- */
-class PLT_ArgumentNameFinder
-{
-public:
-    // methods
-    PLT_ArgumentNameFinder(const char* name) : m_Name(name) {}
-
-    bool operator()(PLT_Argument* const & argument) const {
-        return argument->GetDesc().GetName().Compare(m_Name, true) ? false : true;
-    }
-
-private:
-    // members
-    NPT_String m_Name;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_ArgumentDescNameFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ArgumentDescNameFinder class provides a mechanism to find a PLT_ArgumentDesc given
- an argument name.
- */
-class PLT_ArgumentDescNameFinder
-{
-public:
-    // methods
-    PLT_ArgumentDescNameFinder(const char* name) : m_Name(name) {}
-
-    bool operator()(PLT_ArgumentDesc* const & arg_desc) const {
-        return arg_desc->GetName().Compare(m_Name, true) ? false : true;
-    }
-
-private:
-    // members
-    NPT_String m_Name;
-};
-
-#endif /* _PLT_ARGUMENT_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltConstants.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltConstants.h
deleted file mode 100644
index d674ea8..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltConstants.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - UPnP Constants
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP Constants
- */
-
-#ifndef _PLT_UPNP_CONSTANTS_H_
-#define _PLT_UPNP_CONSTANTS_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   PLT_Constants
-+---------------------------------------------------------------------*/
-/**
- The PLT_Constants class provides a way to globally set or get certain 
- UPnP constants.
- */
-class PLT_Constants
-{
-public:
-    // class methods
-    static PLT_Constants& GetInstance();
-    
-    PLT_Constants();
-    ~PLT_Constants() {};
-    
-    void SetDefaultDeviceLease(NPT_TimeInterval lease) { m_DefaultDeviceLease = new NPT_TimeInterval(lease); }
-    NPT_Reference<NPT_TimeInterval> GetDefaultDeviceLease() { return m_DefaultDeviceLease; }
-  
-    void SetDefaultSubscribeLease(NPT_TimeInterval lease) { m_DefaultSubscribeLease = new NPT_TimeInterval(lease); }
-    NPT_Reference<NPT_TimeInterval> GetDefaultSubscribeLease() { return m_DefaultSubscribeLease; }
-    
-    void SetDefaultUserAgent(const char* agent) { m_DefaultUserAgent = new NPT_String(agent); }
-    NPT_Reference<NPT_String> GetDefaultUserAgent() { return m_DefaultUserAgent; }
-    
-    void SetSearchMulticastTimeToLive(NPT_UInt32 ttl) { m_SearchMulticastTimeToLive = ttl; }
-    NPT_UInt32 GetSearchMulticastTimeToLive() { return m_SearchMulticastTimeToLive; }
-
-    void SetAnnounceMulticastTimeToLive(NPT_UInt32 ttl) { m_AnnounceMulticastTimeToLive = ttl; }
-    NPT_UInt32 GetAnnounceMulticastTimeToLive() { return m_AnnounceMulticastTimeToLive; }
-
-private:
-    // members
-    NPT_Reference<NPT_TimeInterval> m_DefaultDeviceLease;
-    NPT_Reference<NPT_TimeInterval> m_DefaultSubscribeLease;
-    NPT_Reference<NPT_String>       m_DefaultUserAgent;
-    NPT_UInt32                      m_SearchMulticastTimeToLive;
-    NPT_UInt32                      m_AnnounceMulticastTimeToLive;
-};
-
-#endif /* _PLT_UPNP_CONSTANTS_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltCtrlPoint.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltCtrlPoint.h
deleted file mode 100644
index 65baa7b..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltCtrlPoint.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Control Point
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP ControlPoint
- */
-
-#ifndef _PLT_CONTROL_POINT_H_
-#define _PLT_CONTROL_POINT_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltService.h"
-#include "PltSsdp.h"
-#include "PltDeviceData.h"
-#include "PltHttpServer.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_CtrlPointHouseKeepingTask;
-class PLT_SsdpSearchTask;
-class PLT_SsdpListenTask;
-class PLT_CtrlPointGetSCPDsTask;
-class PLT_CtrlPointGetSCPDRequest;
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPointListener class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPointListener class is an interface used to receive notifications when
- devices are found or removed from the network, actions responses and events
- are being received.
- */
-class PLT_CtrlPointListener
-{
-public:
-    virtual ~PLT_CtrlPointListener() {}
-
-    virtual NPT_Result OnDeviceAdded(PLT_DeviceDataReference& device) = 0;
-    virtual NPT_Result OnDeviceRemoved(PLT_DeviceDataReference& device) = 0;
-    virtual NPT_Result OnActionResponse(NPT_Result res, PLT_ActionReference& action, void* userdata) = 0;
-    virtual NPT_Result OnEventNotify(PLT_Service* service, NPT_List<PLT_StateVariable*>* vars) = 0;
-};
-
-typedef NPT_List<PLT_CtrlPointListener*> PLT_CtrlPointListenerList;
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPoint class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPoint class implements the base functionality of a UPnP ControlPoint.
- It searches and inpects devices, invoke actions on services and subscribes to 
- events. 
- */
-class PLT_CtrlPoint : public PLT_SsdpPacketListener,
-                      public PLT_SsdpSearchResponseListener,
-                      public NPT_HttpRequestHandler
-{
-public:
-    PLT_CtrlPoint(const char* search_criteria = "upnp:rootdevice"); // pass NULL to prevent repeated automatic search
-    virtual ~PLT_CtrlPoint();
-    
-    /**
-     Returns the port used by the internal HTTP server for all incoming event notifications.
-     @return port
-     */
-    virtual NPT_Result GetPort(NPT_UInt16& port);
-    
-    // delegation
-    virtual NPT_Result AddListener(PLT_CtrlPointListener* listener);
-    virtual NPT_Result RemoveListener(PLT_CtrlPointListener* listener);
-
-    // discovery
-    virtual void IgnoreUUID(const char* uuid);
-    virtual NPT_Result Search(const NPT_HttpUrl& url = NPT_HttpUrl("239.255.255.250", 1900, "*"), 
-                              const char*        target = "upnp:rootdevice", 
-                              NPT_Cardinal       mx = 5,
-                              NPT_TimeInterval   frequency = NPT_TimeInterval(50.), // pass NPT_TimeInterval(0.) for one time only
-                              NPT_TimeInterval   initial_delay = NPT_TimeInterval(0.));
-    virtual NPT_Result Discover(const NPT_HttpUrl& url = NPT_HttpUrl("239.255.255.250", 1900, "*"),
-                                const char*        target = "ssdp:all", 
-                                NPT_Cardinal       mx = 5,
-                                NPT_TimeInterval   frequency = NPT_TimeInterval(50.), // pass NPT_TimeInterval(0.) for one time only
-                                NPT_TimeInterval   initial_delay = NPT_TimeInterval(0.));
-    virtual NPT_Result InspectDevice(const NPT_HttpUrl& location,
-                                     const char*        uuid,
-                                     NPT_TimeInterval   leasetime = *PLT_Constants::GetInstance().GetDefaultDeviceLease());
-
-    // actions
-    virtual NPT_Result FindActionDesc(PLT_DeviceDataReference& device, 
-                                  const char*              service_type,
-                                  const char*              action_name,
-                                  PLT_ActionDesc*&         action_desc);
-    virtual NPT_Result CreateAction(PLT_DeviceDataReference& device,
-                                const char*              service_type,
-                                const char*              action_name,
-                                PLT_ActionReference&     action);
-    virtual NPT_Result InvokeAction(PLT_ActionReference& action,
-                                    void*                userdata = NULL);
-
-    // events
-    virtual NPT_Result Subscribe(PLT_Service* service, 
-                                 bool         cancel = false, 
-                                 void*        userdata = NULL);
-
-    // NPT_HttpRequestHandler methods
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request,
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response);
-
-    // PLT_SsdpSearchResponseListener methods
-    virtual NPT_Result ProcessSsdpSearchResponse(NPT_Result                    res, 
-                                                 const NPT_HttpRequestContext& context,
-                                                 NPT_HttpResponse*             response);
-    // PLT_SsdpPacketListener method
-    virtual NPT_Result OnSsdpPacket(const NPT_HttpRequest&        request, 
-                                    const NPT_HttpRequestContext& context);
-
-protected:
-
-    // State Variable Handling
-    virtual NPT_Result DecomposeLastChangeVar(NPT_List<PLT_StateVariable*>& vars);
-
-    // methods
-    virtual NPT_Result Start(PLT_SsdpListenTask* task);
-    virtual NPT_Result Stop(PLT_SsdpListenTask* task);
-
-    // SSDP & HTTP Notifications handling
-    virtual NPT_Result ProcessSsdpNotify(const NPT_HttpRequest&        request,
-                                         const NPT_HttpRequestContext& context);
-    virtual NPT_Result ProcessSsdpMessage(const NPT_HttpMessage&        message,
-                                          const NPT_HttpRequestContext& context,  
-                                          NPT_String&                   uuid);
-    virtual NPT_Result ProcessGetDescriptionResponse(NPT_Result                    res,
-                                                     const NPT_HttpRequest&        request, 
-                                                     const NPT_HttpRequestContext& context,
-                                                     NPT_HttpResponse*             response,
-                                                     NPT_TimeInterval              leasetime,
-                                                     NPT_String                    uuid);
-    virtual NPT_Result ProcessGetSCPDResponse(NPT_Result                    res,
-                                              const NPT_HttpRequest&        request,
-                                              const NPT_HttpRequestContext& context,
-                                              NPT_HttpResponse*             response,
-                                              PLT_DeviceDataReference&      device);
-    virtual NPT_Result ProcessActionResponse(NPT_Result                    res,
-                                             const NPT_HttpRequest&        request,
-                                             const NPT_HttpRequestContext& context,
-                                             NPT_HttpResponse*             response,
-                                             PLT_ActionReference&          action,
-                                             void*                         userdata);
-    virtual NPT_Result ProcessSubscribeResponse(NPT_Result                    res,
-                                                const NPT_HttpRequest&        request, 
-                                                const NPT_HttpRequestContext& context, 
-                                                NPT_HttpResponse*             response,
-                                                PLT_Service*                  service,
-                                                void*                         userdata);
-    virtual NPT_Result ProcessHttpNotify(const NPT_HttpRequest&        request,
-                                         const NPT_HttpRequestContext& context,
-                                         NPT_HttpResponse&             response);
-
-    // Device management
-    virtual NPT_Result AddDevice(PLT_DeviceDataReference& data);
-    virtual NPT_Result RemoveDevice(PLT_DeviceDataReference& data);
-    
-private:
-    // methods
-    PLT_ThreadTask* RenewSubscriber(PLT_EventSubscriberReference subscriber);
-    
-    NPT_Result AddPendingEventNotification(PLT_EventNotification *notification);
-    NPT_Result ProcessPendingEventNotifications();
-    NPT_Result ProcessEventNotification(PLT_EventSubscriberReference subscriber,
-                                        PLT_EventNotification*       notification,
-                                        NPT_List<PLT_StateVariable*> &vars);
-    
-    NPT_Result DoHouseKeeping();
-    NPT_Result FetchDeviceSCPDs(PLT_CtrlPointGetSCPDsTask* task,
-                                PLT_DeviceDataReference&   device, 
-                                NPT_Cardinal               level);
-
-    // Device management
-    NPT_Result FindDevice(const char* uuid, PLT_DeviceDataReference& device, bool return_root = false);
-    NPT_Result NotifyDeviceReady(PLT_DeviceDataReference& data);
-    NPT_Result NotifyDeviceRemoved(PLT_DeviceDataReference& data);
-    NPT_Result CleanupDevice(PLT_DeviceDataReference& data);
-    
-    NPT_Result ParseFault(PLT_ActionReference& action, NPT_XmlElementNode* fault);
-    PLT_SsdpSearchTask* CreateSearchTask(const NPT_HttpUrl&   url, 
-                                         const char*          target, 
-                                         NPT_Cardinal         mx, 
-                                         NPT_TimeInterval     frequency,
-                                         const NPT_IpAddress& address);
-    
-private:
-    friend class NPT_Reference<PLT_CtrlPoint>;
-    friend class PLT_UPnP;
-    friend class PLT_UPnP_CtrlPointStartIterator;
-    friend class PLT_UPnP_CtrlPointStopIterator;
-    friend class PLT_EventSubscriberRemoverIterator;
-    friend class PLT_CtrlPointGetDescriptionTask;
-    friend class PLT_CtrlPointGetSCPDsTask;
-    friend class PLT_CtrlPointInvokeActionTask;
-    friend class PLT_CtrlPointHouseKeepingTask;
-    friend class PLT_CtrlPointSubscribeEventTask;
-
-    NPT_List<NPT_String>                         m_UUIDsToIgnore;
-    PLT_CtrlPointListenerList                    m_ListenerList;
-    PLT_HttpServerReference                      m_EventHttpServer;
-    PLT_TaskManagerReference                     m_TaskManager;
-    NPT_Mutex                                    m_Lock;
-    NPT_List<PLT_DeviceDataReference>            m_RootDevices;
-    NPT_List<PLT_EventSubscriberReference>       m_Subscribers;
-    NPT_String                                   m_SearchCriteria;
-    bool                                         m_Started;
-    NPT_List<PLT_EventNotification *>            m_PendingNotifications;
-    NPT_List<NPT_String>                         m_PendingInspections;
-};
-
-typedef NPT_Reference<PLT_CtrlPoint> PLT_CtrlPointReference;
-
-#endif /* _PLT_CONTROL_POINT_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltCtrlPointTask.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltCtrlPointTask.h
deleted file mode 100644
index 48e2044..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltCtrlPointTask.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Control Point Tasks
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP ControlPoint Tasks
- */
-
-#ifndef _PLT_CONTROL_POINT_TASK_H_
-#define _PLT_CONTROL_POINT_TASK_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttpClientTask.h"
-#include "PltDatagramStream.h"
-#include "PltDeviceData.h"
-#include "PltCtrlPoint.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_Action;
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPointGetDescriptionTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPointGetDescriptionTask class fetches the description xml document
- from a UPnP device
- */
-class PLT_CtrlPointGetDescriptionTask : public PLT_HttpClientSocketTask
-{
-public:
-    PLT_CtrlPointGetDescriptionTask(const NPT_HttpUrl& url,
-                                    PLT_CtrlPoint*     ctrl_point,
-                                    NPT_TimeInterval   leasetime,
-                                    NPT_String         uuid);
-    virtual ~PLT_CtrlPointGetDescriptionTask();
-
-protected:
-    // PLT_HttpClientSocketTask methods
-    NPT_Result ProcessResponse(NPT_Result                    res, 
-                               const NPT_HttpRequest&        request, 
-                               const NPT_HttpRequestContext& context, 
-                               NPT_HttpResponse*             response);
-
-protected:
-    PLT_CtrlPoint*   m_CtrlPoint;
-    NPT_TimeInterval m_LeaseTime;
-    NPT_String       m_UUID;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPointGetSCPDRequest class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPointGetSCPDRequest class is used by a PLT_CtrlPointGetSCPDsTask task
- to fetch a specific SCPD xml document for a given service of a given device.
- */
-class PLT_CtrlPointGetSCPDRequest : public NPT_HttpRequest
-{
-public:
-    PLT_CtrlPointGetSCPDRequest(PLT_DeviceDataReference& device,
-                                const char*              url,
-                                const char*              method = "GET",
-                                const char*              protocol = NPT_HTTP_PROTOCOL_1_1) : // 1.1 for pipelining
-        NPT_HttpRequest(url, method, protocol), m_Device(device) {}
-    virtual ~PLT_CtrlPointGetSCPDRequest() {}
-
-    // members
-    PLT_DeviceDataReference m_Device;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPointGetSCPDsTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPointGetSCPDsTask class fetches the SCPD xml document of one or more
- services for a given device. 
- */
-class PLT_CtrlPointGetSCPDsTask : public PLT_HttpClientSocketTask
-{
-public:
-    PLT_CtrlPointGetSCPDsTask(PLT_CtrlPoint* ctrl_point, PLT_DeviceDataReference& root_device);
-    virtual ~PLT_CtrlPointGetSCPDsTask() {}
-
-    NPT_Result AddSCPDRequest(PLT_CtrlPointGetSCPDRequest* request) {
-        return PLT_HttpClientSocketTask::AddRequest((NPT_HttpRequest*)request);
-    }
-
-    // override to prevent calling this directly
-    NPT_Result AddRequest(NPT_HttpRequest*) {
-        // only queuing PLT_CtrlPointGetSCPDRequest allowed
-        return NPT_ERROR_NOT_SUPPORTED;
-    }
-
-protected:
-    // PLT_HttpClientSocketTask methods
-    NPT_Result ProcessResponse(NPT_Result                    res, 
-                               const NPT_HttpRequest&        request, 
-                               const NPT_HttpRequestContext& context, 
-                               NPT_HttpResponse*             response);   
-
-protected:
-    PLT_CtrlPoint*          m_CtrlPoint;
-    PLT_DeviceDataReference m_RootDevice;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPointInvokeActionTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPointInvokeActionTask class is used by a PLT_CtrlPoint to invoke
- a specific action of a given service for a given device.
- */
-class PLT_CtrlPointInvokeActionTask : public PLT_HttpClientSocketTask
-{
-public:
-    PLT_CtrlPointInvokeActionTask(NPT_HttpRequest*     request,
-                                  PLT_CtrlPoint*       ctrl_point, 
-                                  PLT_ActionReference& action,
-                                  void*                userdata);
-    virtual ~PLT_CtrlPointInvokeActionTask();
-
-protected:
-    // PLT_HttpClientSocketTask methods
-    NPT_Result ProcessResponse(NPT_Result                    res, 
-                               const NPT_HttpRequest&        request, 
-                               const NPT_HttpRequestContext& context, 
-                               NPT_HttpResponse*             response);   
-
-protected:
-    PLT_CtrlPoint*      m_CtrlPoint;
-    PLT_ActionReference m_Action;
-    void*               m_Userdata;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPointHouseKeepingTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPointHouseKeepingTask class is used by a PLT_CtrlPoint to keep 
- track of expired devices and autmatically renew event subscribers. 
- */
-class PLT_CtrlPointHouseKeepingTask : public PLT_ThreadTask
-{
-public:
-    PLT_CtrlPointHouseKeepingTask(PLT_CtrlPoint*   ctrl_point, 
-                                  NPT_TimeInterval timer = NPT_TimeInterval(5.));
-
-protected:
-    ~PLT_CtrlPointHouseKeepingTask() {}
-
-    // PLT_ThreadTask methods
-    virtual void DoRun();
-
-protected:
-    PLT_CtrlPoint*   m_CtrlPoint;
-    NPT_TimeInterval m_Timer;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPointSubscribeEventTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPointSubscribeEventTask class is used to subscribe, renew or cancel
- a subscription for a given service of a given device.
- */
-class PLT_CtrlPointSubscribeEventTask : public PLT_HttpClientSocketTask
-{
-public:
-    PLT_CtrlPointSubscribeEventTask(NPT_HttpRequest*         request,
-                                    PLT_CtrlPoint*           ctrl_point, 
-									PLT_DeviceDataReference& device,
-                                    PLT_Service*             service,
-                                    void*                    userdata = NULL);
-    virtual ~PLT_CtrlPointSubscribeEventTask();
-    
-protected:
-    // PLT_HttpClientSocketTask methods
-    NPT_Result ProcessResponse(NPT_Result                    res, 
-                               const NPT_HttpRequest&        request, 
-                               const NPT_HttpRequestContext& context, 
-                               NPT_HttpResponse*             response);
-
-protected:
-    PLT_CtrlPoint*          m_CtrlPoint;
-    PLT_Service*            m_Service;
-	PLT_DeviceDataReference m_Device; // force to keep a reference to device owning m_Service
-    void*                   m_Userdata;
-};
-
-#endif /* _PLT_CONTROL_POINT_TASK_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDatagramStream.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDatagramStream.h
deleted file mode 100644
index 0e132b9..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDatagramStream.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Datagram Stream
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- Datagram Input/Output Neptune streams
- */
-
-#ifndef _PLT_DATAGRAM_H_
-#define _PLT_DATAGRAM_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   PLT_InputDatagramStream
-+---------------------------------------------------------------------*/
-/**
- The PLT_InputDatagramStream class is a simple buffered input stream 
- used when reading SSDP packets on a UDP socket. It allows to use Neptune
- HTTP parsing as if reading on a TCP socket.
- */
-class PLT_InputDatagramStream : public NPT_InputStream
-{
-public:
-    // methods
-    PLT_InputDatagramStream(NPT_UdpSocket* socket,
-                            NPT_Size       buffer_size = 2000);
-    virtual ~PLT_InputDatagramStream();
-    
-    NPT_Result GetInfo(NPT_SocketInfo& info);
-
-    // NPT_InputStream methods
-    NPT_Result Read(void*     buffer, 
-                    NPT_Size  bytes_to_read, 
-                    NPT_Size* bytes_read = 0);
-
-    NPT_Result Seek(NPT_Position offset) { NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-    NPT_Result Skip(NPT_Size offset) { NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-    NPT_Result Tell(NPT_Position& offset){ NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-    NPT_Result GetSize(NPT_LargeSize& size)   { NPT_COMPILER_UNUSED(size); return NPT_FAILURE; }
-    NPT_Result GetAvailable(NPT_LargeSize& available) { NPT_COMPILER_UNUSED(available); return NPT_FAILURE; }
-        
-protected:
-    NPT_UdpSocket*      m_Socket;
-    NPT_SocketInfo      m_Info;
-    NPT_DataBuffer      m_Buffer;
-    NPT_Position        m_BufferOffset;
-};
-
-typedef NPT_Reference<PLT_InputDatagramStream> PLT_InputDatagramStreamReference;
-
-/*----------------------------------------------------------------------
-|   PLT_OutputDatagramStream
-+---------------------------------------------------------------------*/
-/**
- The PLT_OutputDatagramStream class is a simple buffered output stream 
- used when writing SSDP packets on a UDP socket. It allows to use Neptune
- HTTP client as if writing on a TCP socket.
- */
-class PLT_OutputDatagramStream : public NPT_OutputStream
-{
-public:
-    // methods
-    PLT_OutputDatagramStream(NPT_UdpSocket*           socket, 
-                             NPT_Size                 size = 4096,
-                             const NPT_SocketAddress* address = NULL);
-    virtual ~PLT_OutputDatagramStream();
-
-    // NPT_OutputStream methods
-    NPT_Result Write(const void* buffer, NPT_Size bytes_to_write, NPT_Size* bytes_written = NULL);
-    NPT_Result Flush();
-
-    NPT_Result Seek(NPT_Position offset)  { NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-    NPT_Result Tell(NPT_Position& offset) { NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-
-protected:
-    NPT_UdpSocket*     m_Socket;
-    NPT_DataBuffer     m_Buffer;
-    NPT_SocketAddress* m_Address;
-};
-
-typedef NPT_Reference<PLT_OutputDatagramStream> PLT_OutputDatagramStreamReference;
-
-#endif /* _PLT_DATAGRAM_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDeviceData.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDeviceData.h
deleted file mode 100644
index 364ede7..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDeviceData.h
+++ /dev/null
@@ -1,260 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Device Data
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP Device information
- */
-
-#ifndef _PLT_DEVICE_DATA_H_
-#define _PLT_DEVICE_DATA_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltConstants.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_Service;
-class PLT_DeviceData;
-
-typedef NPT_Reference<PLT_DeviceData> PLT_DeviceDataReference;
-typedef NPT_List<PLT_DeviceDataReference> PLT_DeviceDataReferenceList;
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceIcon class
-+---------------------------------------------------------------------*/
-/** 
- The PLT_DeviceIcon class represents a given instance of a UPnP device icon.
- */
-class PLT_DeviceIcon
-{
-public:
-    PLT_DeviceIcon(const char* mimetype = "", 
-                   NPT_Int32   width = 0, 
-                   NPT_Int32   height = 0,
-                   NPT_Int32   depth = 0,
-                   const char* urlpath = "") :
-        m_MimeType(mimetype),
-        m_Width(width),
-        m_Height(height),
-        m_Depth(depth),
-        m_UrlPath(urlpath) {}
-    virtual ~PLT_DeviceIcon() {}
-   
-    NPT_String  m_MimeType;
-    NPT_Int32   m_Width;
-    NPT_Int32   m_Height;
-    NPT_Int32   m_Depth;
-    NPT_String  m_UrlPath;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceData class
-+---------------------------------------------------------------------*/
-/**
- The PLT_DeviceData class holds information about a device being advertised or
- found by a control point. It maintains a list of services and 
- embedded devices if any.
- */
-class PLT_DeviceData
-{
-public:
-    PLT_DeviceData(
-        NPT_HttpUrl      description_url = NPT_HttpUrl(NULL, 0, "/description.xml"), 
-        const char*      uuid = "",
-        NPT_TimeInterval lease_time = *PLT_Constants::GetInstance().GetDefaultDeviceLease(),
-        const char*      device_type = "",
-        const char*      friendly_name = "");
-
-    /* methods */
-    virtual NPT_Result  GetDescription(NPT_String& desc);
-    virtual NPT_String  GetDescriptionUrl(const char* ip_address = NULL);
-    virtual NPT_HttpUrl GetURLBase();
-    virtual NPT_HttpUrl NormalizeURL(const NPT_String& url);
-    virtual NPT_Result  GetDescription(NPT_XmlElementNode* parent, NPT_XmlElementNode** device = NULL);
-    virtual NPT_String  GetIconUrl(const char* mimetype = NULL, NPT_Int32 maxsize = 0, NPT_Int32 maxdepth = 0);
-    
-    bool                    IsRoot()              { return m_ParentUUID.IsEmpty();   }
-    const NPT_TimeInterval& GetLeaseTime()        const { return m_LeaseTime;        }
-    const NPT_String&       GetUUID()             const { return m_UUID;             }
-    const NPT_String&       GetFriendlyName()     const { return m_FriendlyName;     }
-    const NPT_String&       GetType()             const { return m_DeviceType;       }
-    const NPT_String&       GetModelDescription() const { return m_ModelDescription; }
-    const NPT_String&       GetParentUUID()       const { return m_ParentUUID;       }
-    const NPT_IpAddress&    GetLocalIP()          const { return m_LocalIfaceIp;     }
-
-    const NPT_Array<PLT_Service*>&            GetServices()        const { return m_Services; }
-    const NPT_Array<PLT_DeviceDataReference>& GetEmbeddedDevices() const { return m_EmbeddedDevices; }
-
-    NPT_Result FindEmbeddedDevice(const char* uuid, PLT_DeviceDataReference& device);
-    NPT_Result FindEmbeddedDeviceByType(const char* type, PLT_DeviceDataReference& device);
-    NPT_Result FindServiceById(const char* id, PLT_Service*& service);
-    NPT_Result FindServiceByType(const char* type, PLT_Service*& service);
-	NPT_Result FindServiceByName(const char* name, PLT_Service*& service);
-    NPT_Result FindServiceBySCPDURL(const char* url, PLT_Service*& service, bool recursive = false);
-    NPT_Result FindServiceByControlURL(const char* url, PLT_Service*& service, bool recursive = false);
-    NPT_Result FindServiceByEventSubURL(const char* url, PLT_Service*& service, bool recursive = false);
-
-    /* called by PLT_Device subclasses */
-    NPT_Result AddEmbeddedDevice(PLT_DeviceDataReference& device);
-    NPT_Result RemoveEmbeddedDevice(PLT_DeviceDataReference& device);
-    NPT_Result AddService(PLT_Service* service);
-	NPT_Result RemoveService(PLT_Service* service);
-    
-    /* BOOTID UPnP 1/1 */
-    void SetBootId(NPT_UInt32 bootId);
-    void SetNextBootId(NPT_UInt32 nextBootId);
-    NPT_UInt32 GenerateNextBootId();
-
-    operator const char* ();
-
-protected:
-    virtual ~PLT_DeviceData();
-    
-    virtual void       Cleanup();
-    virtual NPT_Result OnAddExtraInfo(NPT_XmlElementNode* /*device_node*/) { return NPT_SUCCESS; }
-    
-
-private:
-    /* called by PLT_CtrlPoint when an existing device location is updated */
-    NPT_Result    SetDescriptionUrl(NPT_HttpUrl& url);
-    NPT_Result    SetLeaseTime(NPT_TimeInterval lease_time, NPT_TimeStamp lease_time_last_update = 0.);
-    NPT_Result    SetURLBase(NPT_HttpUrl& url_base);
-    NPT_TimeStamp GetLeaseTimeLastUpdate();
-    void          UpdateConfigId();
-    
-    /* class methods */
-    static NPT_Result SetDescription(PLT_DeviceDataReference&      root_device,
-                                     NPT_TimeInterval              leasetime,
-                                     NPT_HttpUrl                   description_url,
-                                     const char*                   description, 
-                                     const NPT_HttpRequestContext& context);
-    static NPT_Result SetDescriptionDevice(PLT_DeviceDataReference&      device,
-                                           NPT_XmlElementNode*           device_node, 
-                                           const NPT_HttpRequestContext& context);
-
-public:
-    NPT_String m_Manufacturer;
-    NPT_String m_ManufacturerURL;
-    NPT_String m_ModelDescription;
-    NPT_String m_ModelName;
-    NPT_String m_ModelNumber;
-    NPT_String m_ModelURL;
-    NPT_String m_SerialNumber;
-    NPT_String m_UPC;
-    NPT_String m_PresentationURL;
-    NPT_String m_DlnaDoc;
-    NPT_String m_DlnaCap;
-    NPT_String m_AggregationFlags;
-
-protected:
-    friend class NPT_Reference<PLT_DeviceData>;
-    friend class PLT_CtrlPoint;
-    friend class PLT_DeviceReadyIterator;
-    friend class PLT_DeviceHost;
-
-    //members
-    NPT_String                         m_ParentUUID;
-    NPT_String                         m_UUID;
-    NPT_HttpUrl                        m_URLDescription;
-    NPT_HttpUrl                        m_URLBase;
-    NPT_String                         m_DeviceType;
-    NPT_String                         m_FriendlyName;
-    NPT_TimeInterval                   m_LeaseTime;
-    NPT_TimeStamp                      m_LeaseTimeLastUpdate;
-    NPT_Array<PLT_Service*>            m_Services;
-    NPT_Array<PLT_DeviceDataReference> m_EmbeddedDevices;
-    NPT_Array<PLT_DeviceIcon>          m_Icons;
-
-    /* IP address of interface used when retrieving device description.
-       We need the info for the control point subscription callback */
-    NPT_IpAddress                      m_LocalIfaceIp; 
-    NPT_String                         m_Representation;
-    
-private:
-    NPT_UInt32                         m_BootId;
-    NPT_UInt32                         m_NextBootId;
-    NPT_UInt32                         m_ConfigId;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceDataFinder
-+---------------------------------------------------------------------*/
-/**
- The PLT_DeviceDataFinder class returns a PLT_DeviceData instance given
- a device UUID.
- */
-class PLT_DeviceDataFinder
-{
-public:
-    // methods
-    PLT_DeviceDataFinder(const char* uuid) : m_UUID(uuid) {}
-    virtual ~PLT_DeviceDataFinder() {}
-
-    bool operator()(const PLT_DeviceDataReference& data) const {
-        return data->GetUUID().Compare(m_UUID, true) ? false : true;
-    }
-
-private:
-    // members
-    NPT_String m_UUID;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceDataFinderByType
-+---------------------------------------------------------------------*/
-/**
- The PLT_DeviceDataFinderByType class returns a PLT_DeviceData instance 
- given a device type.
- */
-class PLT_DeviceDataFinderByType
-{
-public:
-    // methods
-    PLT_DeviceDataFinderByType(const char* type) : m_Type(type) {}
-    virtual ~PLT_DeviceDataFinderByType() {}
-
-    bool operator()(const PLT_DeviceDataReference& data) const {
-        return data->GetType().Compare(m_Type, true) ? false : true;
-    }
-
-private:
-    // members
-    NPT_String m_Type;
-};
-
-#endif /* _PLT_DEVICE_DATA_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDeviceHost.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDeviceHost.h
deleted file mode 100644
index 9c31484..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDeviceHost.h
+++ /dev/null
@@ -1,341 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Device Host
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP Device
- */
-
-#ifndef _PLT_DEVICE_HOST_H_
-#define _PLT_DEVICE_HOST_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltDeviceData.h"
-#include "PltSsdp.h"
-#include "PltTaskManager.h"
-#include "PltAction.h"
-#include "PltHttp.h"
-#include "PltHttpServer.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_SsdpDeviceAnnounceTask;
-class PLT_SsdpListenTask;
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceHost class
-+---------------------------------------------------------------------*/
-/**
- UPnP Device Host.
- The PLT_DeviceHost class is a base class for implementing a UPnP Device. It handles 
- network announcements and responses to searches from ControlPoints. ControlPoint
- action invocations are also received and delegated to derived classes. A 
- PLT_DeviceHost also takes care of eventing when services state variables change.
- */
-class PLT_DeviceHost : public PLT_DeviceData,
-                       public PLT_SsdpPacketListener,
-                       public NPT_HttpRequestHandler
-{
-public:
-    /**
-     Creates a new instance of UPnP Device Host.
-     @param description_path Relative path for description url
-     @param uuid UPnP device unique id
-     @param device_type UPnP device type
-     @param friendly_name Name advertised for UPnP device
-     @param show_ip Flag to indicate if device IP should be appended to friendly name
-     @param port local port for the device host internal HTTP server, 0 for randomly
-     selected.
-     @param port_rebind Flag to indicate if device host should automatically try to look 
-     for another port if failing to choose the one passed.
-     */
-    PLT_DeviceHost(const char*  description_path = "/",
-                   const char*  uuid = "",
-                   const char*  device_type = "",
-                   const char*  friendly_name = "",
-                   bool         show_ip = false,
-                   NPT_UInt16   port = 0,
-                   bool         port_rebind = false);
-    virtual ~PLT_DeviceHost();
-    
-    virtual void SetExtraBroadcast(bool broadcast) { m_ExtraBroascast = broadcast; }
-     
-    /**
-     When a UPnP device comes up, the specifications require that a SSDP bye-bye
-     sequence is sent to force the removal of the device in case it wasn't sent
-     properly during the last shutdown.
-     @param bye_bye_first Boolean to indicate that SSDP bye-bye sequence should 
-     be sent first or not.
-     */
-    virtual void SetByeByeFirst(bool bye_bye_first) { m_ByeByeFirst = bye_bye_first; }
-    
-    /**
-     Returns the port used by the internal HTTP server for all incoming requests.
-     @return port
-     */
-    virtual NPT_UInt16 GetPort() { return m_Port; };
-    
-    /**
-     Sets the lease time.
-     @param lease_time Lease Time
-     */
-    NPT_Result SetLeaseTime(NPT_TimeInterval lease_time) { return PLT_DeviceData::SetLeaseTime(lease_time); }
-
-protected:
-    /**
-     NPT_HttpRequestHandler method for setting up the response of an incoming
-     HTTP request.
-     @param request the request received
-     @param context the context of the request
-     @param response the response to set up
-     */
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request,
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response);
-
-    /**
-     Static method similar to Announce.
-     @param device the device to announce
-     @param request the SSDP pre formatted request
-     @param socket the network socket to use to send the request
-     @param type PLT_SsdpAnnounceType enum if the announce is a SSDP bye-bye, update or alive.
-     */
-    static NPT_Result Announce(PLT_DeviceData*      device,
-                               NPT_HttpRequest&     request,
-                               NPT_UdpSocket&       socket,
-                               PLT_SsdpAnnounceType type);
-    /**
-     Called during SSDP announce. The HTTP request is already configured with
-     the right method and host.
-     @param request the SSDP pre formatted request
-     @param socket the network socket to use to send the request
-     @param type PLT_SsdpAnnounceType enum if the announce is a SSDP bye-bye, update or alive.
-     */
-    NPT_Result Announce(NPT_HttpRequest&     request,
-                        NPT_UdpSocket&       socket,
-                        PLT_SsdpAnnounceType type) {
-        return Announce(this, request, socket, type);
-    }
-
-    /**
-     PLT_SsdpPacketListener method called when a M-SEARCH SSDP packet is received.
-     @param request SSDP packet
-     @param context the context of the request
-     */
-    virtual NPT_Result OnSsdpPacket(const NPT_HttpRequest&        request, 
-                                    const NPT_HttpRequestContext& context);
-
-    /**
-     Static method similar to SendSsdpSearchResponse.
-     @param device the device to announce
-     @param response the SSDP pre formatted response
-     @param socket the network socket to use to send the request
-     @param st the original request search target
-     @param addr the remote address to send the response back to in case the socket
-     is not already connected.
-     */
-    static NPT_Result SendSsdpSearchResponse(PLT_DeviceData*          device, 
-                                             NPT_HttpResponse&        response, 
-                                             NPT_UdpSocket&           socket, 
-                                             const char*              st,
-                                             const NPT_SocketAddress* addr = NULL);
-    /**
-     Called by PLT_SsdpDeviceSearchResponseTask when responding to a M-SEARCH
-     SSDP request.
-     @param response the SSDP pre formatted response
-     @param socket the network socket to use to send the request
-     @param st the original request search target
-     @param addr the remote address to send the response back to in case the socket
-     is not already connected.
-     */
-    virtual NPT_Result SendSsdpSearchResponse(NPT_HttpResponse&        response, 
-                                              NPT_UdpSocket&           socket, 
-                                              const char*              st,
-                                              const NPT_SocketAddress* addr = NULL) {
-        return SendSsdpSearchResponse(this, response, socket, st, addr);
-    }
-    
-public:
-    /**
-     Add UPnP icon information to serve from file system.
-     @param icon the icon information including url path
-     @param fileroot the file system root path 
-     @param urlroot the url root path of the icon url to match to fileroot
-     Note: As an exemple, if the icon url path is "/images/icon1.jpg", the fileroot
-     is "/Users/joe/www" and the urlroot is "/", when a request is made for
-     "/images/icon1.jpg", the file is expected to be found at 
-     "/Users/joe/www/images/icon1.jpg". If the urlroot were "/images", the file 
-     would be expected to be found at "/Users/joe/www/icon1.jpg".
-     */
-    virtual NPT_Result AddIcon(const PLT_DeviceIcon& icon, 
-                               const char*           fileroot,
-                               const char*           urlroot = "/");
-    
-    /**
-     Add UPnP icon information to serve using static image.
-     @param icon the icon information including url path
-     @param data the image data
-     @param size the image data size
-     @param copy boolean to indicate the data should be copied internally
-     */
-    virtual NPT_Result AddIcon(const PLT_DeviceIcon& icon, 
-                               const void*           data, 
-                               NPT_Size              size, 
-                               bool                  copy = true);
-
-protected:
-    /**
-     Required method for setting up UPnP services of device host 
-     (and any embedded). Called when device starts.
-     */
-    virtual NPT_Result SetupServices() = 0;
-    
-    /**
-     Default implementation for registering device icon resources. Override to 
-     use different ones. Called when device starts.
-     */
-    virtual NPT_Result SetupIcons();
-    
-    /** 
-     Default implementation for setting up device host. This calls SetupServices
-     and SetupIcons when device starts.
-     */
-    virtual NPT_Result SetupDevice();
-    
-    /**
-     Called by PLT_TaskManager when the device is started.
-     @param task the SSDP listening task to attach to for receiving 
-     SSDP M-SEARCH messages.
-     */
-    virtual NPT_Result Start(PLT_SsdpListenTask* task);
-    
-    /**
-     Called by PLT_TaskManager when the device is stoped.
-     @param task the SSDP listening task to detach from to stop receiving 
-     SSDP M-SEARCH messages.
-     */
-    virtual NPT_Result Stop(PLT_SsdpListenTask* task);
-    
-    /**
-     This mehod is called when an action performed by a control point has been 
-     received and needs to be answered.
-     @param action the action information to answer
-     @param context the context information including the HTTP request and
-     local and remote socket information (IP & port).
-     */
-    virtual NPT_Result OnAction(PLT_ActionReference&          action, 
-                                const PLT_HttpRequestContext& context);
-    
-    /**
-     This method is called when a control point is requesting the device
-     description.
-     @param request the HTTP request
-     @param context the context information including local and remote socket information.
-     @param response the response to setup.
-     */
-    virtual NPT_Result ProcessGetDescription(NPT_HttpRequest&              request,
-                                             const NPT_HttpRequestContext& context,
-                                             NPT_HttpResponse&             response);
-    
-    /**
-     This method is called when a control point is requesting a service SCPD.
-     @param service the service
-     @param request the HTTP request
-     @param context the context information including local and remote socket information.
-     @param response the response to setup.
-     */
-    virtual NPT_Result ProcessGetSCPD(PLT_Service*                  service,
-                                      NPT_HttpRequest&              request,
-                                      const NPT_HttpRequestContext& context,
-                                      NPT_HttpResponse&             response);
-    
-    /**
-     This method is called when a "GET" request for a resource other than the device
-     description, SCPD, or icons has been received.
-     @param request the HTTP request
-     @param context the context information including local and remote socket information.
-     @param response the response to setup.
-     */
-    virtual NPT_Result ProcessHttpGetRequest(NPT_HttpRequest&              request,
-                                             const NPT_HttpRequestContext& context,
-                                             NPT_HttpResponse&             response);
-    
-    /**
-     This method is called when a "POST" request has been received. This is usually
-     an UPnP service action invocation. This will deserialize the request and call
-     the OnAction method.
-     @param request the HTTP request
-     @param context the context information including local and remote socket information.
-     @param response the response to setup.
-     */
-    virtual NPT_Result ProcessHttpPostRequest(NPT_HttpRequest&              request,
-                                              const NPT_HttpRequestContext& context,
-                                              NPT_HttpResponse&             response);
-    
-    /**
-     This method is called when a request from a subscriber has been received. This is
-     for any new subscritions, existing subscrition renewal or cancellation.
-     @param request the HTTP request
-     @param context the context information including local and remote socket information.
-     @param response the response to setup.
-     */
-    virtual NPT_Result ProcessHttpSubscriberRequest(NPT_HttpRequest&              request,
-                                                    const NPT_HttpRequestContext& context,
-                                                    NPT_HttpResponse&             response);
-
-protected:
-    friend class PLT_UPnP;
-    friend class PLT_UPnP_DeviceStartIterator;
-    friend class PLT_UPnP_DeviceStopIterator;
-    friend class PLT_Service;
-    friend class NPT_Reference<PLT_DeviceHost>;
-    friend class PLT_SsdpDeviceSearchResponseInterfaceIterator;
-    friend class PLT_SsdpDeviceSearchResponseTask;
-    friend class PLT_SsdpAnnounceInterfaceIterator;
-
-    PLT_TaskManagerReference m_TaskManager;
-    PLT_HttpServerReference  m_HttpServer;
-    bool                     m_ExtraBroascast;
-    NPT_UInt16               m_Port;
-    bool                     m_PortRebind;
-    bool                     m_ByeByeFirst;
-    bool                     m_Started;
-};
-
-typedef NPT_Reference<PLT_DeviceHost> PLT_DeviceHostReference;
-
-#endif /* _PLT_DEVICE_HOST_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDidl.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDidl.h
deleted file mode 100644
index f6eaf14..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDidl.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - DIDL handling
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Didl
- */
-
-#ifndef _PLT_DIDL_H_
-#define _PLT_DIDL_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltMediaItem.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#define PLT_FILTER_MASK_ALL                         0xFFFFFFFF
-
-#define PLT_FILTER_MASK_CREATOR                     0x00000001
-#define PLT_FILTER_MASK_ARTIST                      0x00000002
-#define PLT_FILTER_MASK_ALBUM                       0x00000004
-#define PLT_FILTER_MASK_GENRE                       0x00000008
-#define PLT_FILTER_MASK_ALBUMARTURI                 0x00000010
-#define PLT_FILTER_MASK_DESCRIPTION                 0x00000020
-#define PLT_FILTER_MASK_SEARCHABLE                  0x00000040
-#define PLT_FILTER_MASK_CHILDCOUNT                  0x00000080
-#define PLT_FILTER_MASK_ORIGINALTRACK               0x00000100
-#define PLT_FILTER_MASK_ACTOR                       0x00000200
-#define PLT_FILTER_MASK_AUTHOR                      0x00000400
-#define PLT_FILTER_MASK_DATE                        0x00000800
-#define PLT_FILTER_MASK_PROGRAMTITLE                0x00001000
-#define PLT_FILTER_MASK_SERIESTITLE                 0x00002000
-#define PLT_FILTER_MASK_EPISODE                     0x00004000
-#define PLT_FILTER_MASK_TITLE                       0x00008000
-
-#define PLT_FILTER_MASK_RES                         0x00010000
-#define PLT_FILTER_MASK_RES_DURATION                0x00020000
-#define PLT_FILTER_MASK_RES_SIZE                    0x00040000
-#define PLT_FILTER_MASK_RES_PROTECTION              0x00080000
-#define PLT_FILTER_MASK_RES_RESOLUTION              0x00100000
-#define PLT_FILTER_MASK_RES_BITRATE                 0x00200000
-#define PLT_FILTER_MASK_RES_BITSPERSAMPLE           0x00400000
-#define PLT_FILTER_MASK_RES_NRAUDIOCHANNELS			0x00800000
-#define PLT_FILTER_MASK_RES_SAMPLEFREQUENCY			0x01000000
-
-#define PLT_FILTER_MASK_LONGDESCRIPTION             0x02000000
-#define PLT_FILTER_MASK_ICON                        0x04000000
-
-#define PLT_FILTER_MASK_TOC							0x02000000
-#define PLT_FILTER_MASK_SEARCHCLASS					0x04000000
-#define PLT_FILTER_MASK_REFID                       0x08000000
-
-#define PLT_FILTER_FIELD_TITLE                      "dc:title"
-#define PLT_FILTER_FIELD_CREATOR                    "dc:creator"
-#define PLT_FILTER_FIELD_DATE                       "dc:date"
-#define PLT_FILTER_FIELD_ARTIST                     "upnp:artist"
-#define PLT_FILTER_FIELD_ACTOR                      "upnp:actor"
-#define PLT_FILTER_FIELD_AUTHOR                     "upnp:author"
-#define PLT_FILTER_FIELD_ALBUM                      "upnp:album"
-#define PLT_FILTER_FIELD_GENRE                      "upnp:genre"
-#define PLT_FILTER_FIELD_ALBUMARTURI                "upnp:albumArtURI"
-#define PLT_FILTER_FIELD_ALBUMARTURI_DLNAPROFILEID  "upnp:albumArtURI at dlna:profileID"
-#define PLT_FILTER_FIELD_DESCRIPTION                "dc:description"
-#define PLT_FILTER_FIELD_LONGDESCRIPTION            "upnp:longDescription"
-#define PLT_FILTER_FIELD_ICON                       "upnp:icon"
-#define PLT_FILTER_FIELD_ORIGINALTRACK              "upnp:originalTrackNumber"
-#define PLT_FILTER_FIELD_PROGRAMTITLE               "upnp:programTitle"
-#define PLT_FILTER_FIELD_SERIESTITLE                "upnp:seriesTitle"
-#define PLT_FILTER_FIELD_EPISODE                    "upnp:episodeNumber"
-#define PLT_FILTER_FIELD_SEARCHCLASS				"upnp:searchClass"
-#define PLT_FILTER_FIELD_SEARCHABLE                 "@searchable"
-#define PLT_FILTER_FIELD_CHILDCOUNT                 "@childcount"
-#define PLT_FILTER_FIELD_CONTAINER_CHILDCOUNT       "container at childCount"
-#define PLT_FILTER_FIELD_CONTAINER_SEARCHABLE       "container at searchable"
-#define PLT_FILTER_FIELD_REFID                      "@refID"
-
-#define PLT_FILTER_FIELD_RES                        "res"
-#define PLT_FILTER_FIELD_RES_DURATION               "res at duration"
-#define PLT_FILTER_FIELD_RES_DURATION_SHORT         "@duration"
-#define PLT_FILTER_FIELD_RES_SIZE                   "res at size"
-#define PLT_FILTER_FIELD_RES_PROTECTION             "res at protection"
-#define PLT_FILTER_FIELD_RES_RESOLUTION             "res at resolution"
-#define PLT_FILTER_FIELD_RES_BITRATE                "res at bitrate"
-#define PLT_FILTER_FIELD_RES_BITSPERSAMPLE          "res at bitsPerSample"
-#define PLT_FILTER_FIELD_RES_NRAUDIOCHANNELS        "res at nrAudioChannels"
-#define PLT_FILTER_FIELD_RES_SAMPLEFREQUENCY        "res at sampleFrequency"
-
-extern const char* didl_header;
-extern const char* didl_footer;
-extern const char* didl_namespace_dc;
-extern const char* didl_namespace_upnp;
-extern const char* didl_namespace_dlna;
-
-/*----------------------------------------------------------------------
-|   PLT_Didl
-+---------------------------------------------------------------------*/
-/**
- DIDL manipulation.
- The PLT_Didl class provides a mechanism to (de)serialize a PLT_MediaObject or
- list of PLT_MediaObject (PLT_MediaObjectList).
- */
-class PLT_Didl
-{
-public:
-    static NPT_Result  ToDidl(PLT_MediaObject&  object, 
-                              const NPT_String& filter, 
-                              NPT_String&       didl);
-    static NPT_Result  FromDidl(const char* didl, 
-                                PLT_MediaObjectListReference& objects);
-    static void        AppendXmlEscape(NPT_String& out, const char* in);
-    static void        AppendXmlUnEscape(NPT_String& out, const char* in);
-    static NPT_Result  ParseTimeStamp(const NPT_String& timestamp, NPT_UInt32& seconds);
-    static NPT_String  FormatTimeStamp(NPT_UInt32 seconds);
-    static NPT_Result  ParseTimeStamp(const NPT_String& in, NPT_TimeStamp& timestamp) {
-        NPT_UInt32 seconds;
-        NPT_Result res = ParseTimeStamp(in, seconds);
-        timestamp = NPT_TimeStamp((double)seconds);
-        return res;
-    }
-
-    static NPT_UInt32  ConvertFilterToMask(const NPT_String& filter);
-};
-
-#endif /* _PLT_DIDL_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDownloader.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDownloader.h
deleted file mode 100644
index 9581ec2..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltDownloader.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Downloader
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_DOWNLOADER_H_
-#define _PLT_DOWNLOADER_H_
-
-/*----------------------------------------------------------------------
-|   Includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttpClientTask.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_Downloader;
-
-/*----------------------------------------------------------------------
-|   types
-+---------------------------------------------------------------------*/
-typedef enum {
-    PLT_DOWNLOADER_IDLE,
-    PLT_DOWNLOADER_STARTED,
-    PLT_DOWNLOADER_DOWNLOADING,
-    PLT_DOWNLOADER_ERROR,
-    PLT_DOWNLOADER_SUCCESS
-} Plt_DowloaderState;
-
-/*----------------------------------------------------------------------
-|   PLT_Downloader class
-+---------------------------------------------------------------------*/
-class PLT_Downloader : public PLT_HttpClientSocketTask
-{
-public:
-    PLT_Downloader(NPT_HttpUrl&               url, 
-                   NPT_OutputStreamReference& output);
-    virtual ~PLT_Downloader();
-    
-    Plt_DowloaderState GetState() { return m_State; }
-
-    // PLT_HttpClientTask method
-    NPT_Result ProcessResponse(NPT_Result                    res, 
-                               const NPT_HttpRequest&        request, 
-                               const NPT_HttpRequestContext& context, 
-                               NPT_HttpResponse*             response);
-
-protected:
-    virtual void DoRun();
-    virtual void DoAbort();
-    
-private:
-    // members
-    NPT_HttpUrl               m_URL;
-    NPT_OutputStreamReference m_Output;
-    Plt_DowloaderState        m_State;
-};
-
-#endif /* _PLT_DOWNLOADER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltEvent.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltEvent.h
deleted file mode 100644
index de754bb..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltEvent.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Event
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP Eventing
- */
-
-#ifndef _PLT_EVENT_H_
-#define _PLT_EVENT_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttpClientTask.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_StateVariable;
-class PLT_DeviceData;
-class PLT_Service;
-class PLT_TaskManager;
-class PLT_CtrlPoint;
-
-/*----------------------------------------------------------------------
-|   PLT_EventNotification class
-+---------------------------------------------------------------------*/
-/**
- The PLT_EventNotification class represents an event notification for a given
- service to a given subscriber 
- */
-class PLT_EventNotification
-{
-public:
-    ~PLT_EventNotification() {}
-
-    static PLT_EventNotification* Parse(const NPT_HttpRequest&        request,
-                                        const NPT_HttpRequestContext& context,
-                                        NPT_HttpResponse&             response);
-
-
-    NPT_TimeStamp                 m_ReceptionTime;
-    NPT_HttpUrl                   m_RequestUrl;
-    NPT_String                    m_SID;
-    NPT_Ordinal                   m_EventKey;
-    NPT_String                    m_XmlBody;
-    
-protected:
-    PLT_EventNotification() : m_EventKey(0) {}
-};
-
-/*----------------------------------------------------------------------
-|   PLT_EventSubscriber class
-+---------------------------------------------------------------------*/
-/**
- The PLT_EventSubscriber class represents an event subscription for a given service
- from a UPnP ControlPoint.
- */
-class PLT_EventSubscriber
-{
-public:
-    PLT_EventSubscriber(PLT_TaskManagerReference task_manager,
-                        PLT_Service*             service,
-                        const char*              sid,
-                        NPT_Timeout              timeout_secs = -1);
-    ~PLT_EventSubscriber();
-
-    PLT_Service*      GetService();
-    NPT_Ordinal       GetEventKey();
-    NPT_Result        SetEventKey(NPT_Ordinal value);
-    NPT_SocketAddress GetLocalIf();
-    NPT_Result        SetLocalIf(NPT_SocketAddress value);
-    NPT_TimeStamp     GetExpirationTime();
-    NPT_Result        SetTimeout(NPT_Timeout seconds = -1);
-    const NPT_String& GetSID() const { return m_SID; }
-    NPT_Result        FindCallbackURL(const char* callback_url);
-    NPT_Result        AddCallbackURL(const char* callback_url);
-    NPT_Result        Notify(NPT_List<PLT_StateVariable*>& vars);
-    
-protected:
-    //members
-    PLT_TaskManagerReference  m_TaskManager;
-    PLT_Service*              m_Service;
-    NPT_Ordinal               m_EventKey;
-    PLT_HttpClientSocketTask* m_SubscriberTask;
-    NPT_String                m_SID;
-    NPT_SocketAddress         m_LocalIf;
-    NPT_Array<NPT_String>     m_CallbackURLs;
-    NPT_TimeStamp             m_ExpirationTime;
-};
-
-typedef NPT_Reference<PLT_EventSubscriber> PLT_EventSubscriberReference;
-
-/*----------------------------------------------------------------------
-|   PLT_EventSubscriberFinderBySID
-+---------------------------------------------------------------------*/
-/**
- The PLT_EventSubscriberFinderBySID class returns an instance of a PLT_EventSubscriber
- given its subscriber ID.
- */
-class PLT_EventSubscriberFinderBySID
-{
-public:
-    // methods
-    PLT_EventSubscriberFinderBySID(const char* sid) : m_SID(sid) {}
-
-    bool operator()(PLT_EventSubscriberReference const & sub) const {
-        return m_SID.Compare(sub->GetSID(), true) ? false : true;
-    }
-
-private:
-    // members
-    NPT_String m_SID;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_EventSubscriberFinderByCallbackURL
-+---------------------------------------------------------------------*/
-/**
- The PLT_EventSubscriberFinderByCallbackURL class returns an instance of a 
- PLT_EventSubscriber given its subscriber callback url.
- */
-class PLT_EventSubscriberFinderByCallbackURL
-{
-public:
-    // methods
-    PLT_EventSubscriberFinderByCallbackURL(const char* callback_url) : 
-      m_CallbackURL(callback_url) {}
-
-    bool operator()(PLT_EventSubscriberReference const & sub) const {
-        return NPT_SUCCEEDED(sub->FindCallbackURL(m_CallbackURL));
-    }
-
-private:
-    // members
-    NPT_String m_CallbackURL;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_EventSubscriberFinderByService
-+---------------------------------------------------------------------*/
-/**
- The PLT_EventSubscriberFinderByService class returns an instance of a 
- PLT_EventSubscriber given a UPnP service.
- */
-class PLT_EventSubscriberFinderByService
-{
-public:
-    // methods
-    PLT_EventSubscriberFinderByService(PLT_Service* service) : m_Service(service) {}
-    virtual ~PLT_EventSubscriberFinderByService() {}
-    bool operator()(PLT_EventSubscriberReference const & eventSub) const;
-
-private:
-    // members
-    PLT_Service* m_Service;
-};
-
-#endif /* _PLT_EVENT_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltFileMediaServer.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltFileMediaServer.h
deleted file mode 100644
index 49ff9d8..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltFileMediaServer.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - File Media Server
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Filesystem based Media Server sample implementation 
- */
-
-#ifndef _PLT_FILE_MEDIA_SERVER_H_
-#define _PLT_FILE_MEDIA_SERVER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltMediaServer.h"
-#include "PltMediaCache.h"
-
-/*----------------------------------------------------------------------
-|   PLT_FileMediaServerDelegate
-+---------------------------------------------------------------------*/
-/**
- File Media Server Delegate.
- The PLT_FileMediaServerDelegate class is an example of a PLT_MediaServerDelegate
- implementation for a file system backed Media Server.
- */
-class PLT_FileMediaServerDelegate : public PLT_MediaServerDelegate
-{
-public:
-    // class methods
-    static NPT_String BuildSafeResourceUri(const NPT_HttpUrl& base_uri, 
-                                           const char*        host, 
-                                           const char*        file_path);
-    // constructor & destructor
-    PLT_FileMediaServerDelegate(const char* url_root, const char* file_root, bool use_cache = false);
-    virtual ~PLT_FileMediaServerDelegate();
-    
-protected:
-    // PLT_MediaServerDelegate methods
-    virtual NPT_Result OnBrowseMetadata(PLT_ActionReference&          action, 
-                                        const char*                   object_id, 
-                                        const char*                   filter,
-                                        NPT_UInt32                    starting_index,
-                                        NPT_UInt32                    requested_count,
-                                        const char*                   sort_criteria,
-                                        const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnBrowseDirectChildren(PLT_ActionReference&          action, 
-                                              const char*                   object_id, 
-                                              const char*                   filter,
-                                              NPT_UInt32                    starting_index,
-                                              NPT_UInt32                    requested_count,
-                                              const char*                   sort_criteria,
-                                              const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnSearchContainer(PLT_ActionReference&          action, 
-                                         const char*                   object_id, 
-                                         const char*                   search_criteria,
-                                         const char*                   filter,
-                                         NPT_UInt32                    starting_index,
-                                         NPT_UInt32                    requested_count,
-                                         const char*                   sort_criteria, 
-                                         const PLT_HttpRequestContext& context);
-    virtual NPT_Result ProcessFileRequest(NPT_HttpRequest&              request, 
-                                          const NPT_HttpRequestContext& context,
-                                          NPT_HttpResponse&             response);
-    
-    // overridable methods
-    virtual NPT_Result ExtractResourcePath(const NPT_HttpUrl& url, NPT_String& file_path);
-    virtual NPT_String BuildResourceUri(const NPT_HttpUrl& base_uri, const char* host, const char* file_path);
-    virtual NPT_Result ServeFile(const NPT_HttpRequest&        request, 
-                                 const NPT_HttpRequestContext& context,
-                                 NPT_HttpResponse&             response,
-                                 const NPT_String&             file_path);
-    virtual NPT_Result GetFilePath(const char* object_id, NPT_String& filepath);
-    virtual bool       ProcessFile(const NPT_String&, const char* filter = NULL) { NPT_COMPILER_UNUSED(filter); return true;}
-    virtual PLT_MediaObject* BuildFromFilePath(const NPT_String&             filepath, 
-                                               const PLT_HttpRequestContext& context,
-                                               bool                          with_count = true,
-                                               bool                          keep_extension_in_title = false,
-                                               bool                          allip = false);
-    
-protected:
-    friend class PLT_MediaItem;
-    
-    NPT_String  m_UrlRoot;
-    NPT_String  m_FileRoot;
-    bool        m_FilterUnknownOut;
-    bool        m_UseCache;
-    
-    PLT_MediaCache<NPT_Reference<NPT_List<NPT_String> >, NPT_TimeStamp> m_DirCache;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_FileMediaServer
-+---------------------------------------------------------------------*/
-/**
- File Media Server.
- The PLT_FileMediaServer class is an example of a PLT_MediaServer implementation
- for a file system backed Media Server.
- */
-class PLT_FileMediaServer : public PLT_MediaServer,
-                            public PLT_FileMediaServerDelegate
-{
-public:    // constructor
-    PLT_FileMediaServer(const char*  file_root,
-                        const char*  friendly_name,
-                        bool         show_ip = false,
-                        const char*  uuid = NULL,
-                        NPT_UInt16   port = 0,
-                        bool         port_rebind = false) :
-        PLT_MediaServer(friendly_name, 
-                        show_ip,
-                        uuid, 
-                        port,
-                        port_rebind),
-        PLT_FileMediaServerDelegate("/", file_root) {SetDelegate(this);}
-
-protected:
-    virtual ~PLT_FileMediaServer() {}
-};
-
-#endif /* _PLT_FILE_MEDIA_SERVER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltFrameBuffer.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltFrameBuffer.h
deleted file mode 100644
index aa270df..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltFrameBuffer.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Frame Buffer
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_FRAME_BUFFER_H_
-#define _PLT_FRAME_BUFFER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   PLT_FrameBuffer
-+---------------------------------------------------------------------*/
-class PLT_FrameBuffer 
-{
- public:
-    // constructor & destructor
-    PLT_FrameBuffer(const char* mime_type);
-    virtual ~PLT_FrameBuffer();
-    
-    void Reset();
-    void Abort();
-    void AddReader()    { m_Readers.Increment(); }
-    void RemoveReader() { m_Readers.Decrement(); }
-    int  GetNbReaders() { return m_Readers.GetValue(); }
-    const char* GetMimeType() { return m_MimeType; }
-
-    // data buffer handling methods
-    virtual NPT_Result SetNextFrame(const NPT_Byte* buffer, NPT_Size bufferSize);
-    virtual NPT_Result GetNextFrame(NPT_UInt32&     last_frame_index, 
-                                    NPT_DataBuffer& buffer, 
-                                    NPT_Timeout     timeout = NPT_TIMEOUT_INFINITE);
-
- protected:
-    // members
-    NPT_String         m_MimeType;
-    bool               m_Aborted;
-    NPT_SharedVariable m_FrameIndex;
-    NPT_DataBuffer     m_Frame;
-    NPT_Mutex          m_FrameLock;
-    NPT_AtomicVariable m_Readers;
-};
-
-#endif // _PLT_FRAME_BUFFER_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltFrameServer.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltFrameServer.h
deleted file mode 100644
index 62a730a..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltFrameServer.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Frame Server
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_FRAME_SERVER_H_
-#define _PLT_FRAME_SERVER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttpServer.h"
-#include "PltFrameBuffer.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_SocketPolicyServer;
-
-/*----------------------------------------------------------------------
-|   PLT_StreamValidator class
-+---------------------------------------------------------------------*/
-class PLT_StreamValidator
-{
-public:
-    virtual ~PLT_StreamValidator() {}
-    virtual bool OnNewRequestAccept(const NPT_HttpRequest&          request, 
-                                    const NPT_HttpRequestContext&   context,
-                                    NPT_HttpResponse&               response, 
-                                    NPT_Reference<PLT_FrameBuffer>& buffer) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_HttpStreamRequestHandler
-+---------------------------------------------------------------------*/
-class PLT_HttpStreamRequestHandler : public NPT_HttpRequestHandler
-{
-public:
-    // constructor
-    PLT_HttpStreamRequestHandler(PLT_StreamValidator& stream_validator) :
-        m_StreamValidator(stream_validator) {}
-
-    // NPT_HttpRequestHandler methods
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request, 
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response);
-
-private:
-    PLT_StreamValidator& m_StreamValidator;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_FrameServer class
-+---------------------------------------------------------------------*/
-class PLT_FrameServer : public PLT_HttpServer
-{
-public:
-    PLT_FrameServer(const char*          resource_name,
-                    PLT_StreamValidator& stream_validator,
-                    NPT_IpAddress        address = NPT_IpAddress::Any,
-                    NPT_UInt16           port = 0,
-                    bool                 policy_server_enabled = false);
-    virtual ~PLT_FrameServer();
-    
-    virtual NPT_Result Start();
-
-protected:
-    PLT_SocketPolicyServer* m_PolicyServer;
-    PLT_StreamValidator&    m_StreamValidator;
-    bool                    m_PolicyServerEnabled;
-};
-
-#endif /* _PLT_FRAME_SERVER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltFrameStream.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltFrameStream.h
deleted file mode 100644
index 0eda3c3..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltFrameStream.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Frame Stream
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_FRAMESTREAM_H_
-#define _PLT_FRAMESTREAM_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltFrameBuffer.h"
-
-/*----------------------------------------------------------------------
-|   PLT_InputFrameStream
-+---------------------------------------------------------------------*/
-class PLT_InputFrameStream : public NPT_InputStream
-{
-public:
-    // methods
-    PLT_InputFrameStream(NPT_Reference<PLT_FrameBuffer>& frame_buffer,
-                         const char*                     boundary);
-    virtual ~PLT_InputFrameStream();
-
-    // NPT_InputStream methods
-    NPT_Result Read(void*     buffer, 
-                    NPT_Size  bytes_to_read, 
-                    NPT_Size* bytes_read = 0);
-
-    NPT_Result Seek(NPT_Position offset)      { NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-    NPT_Result Skip(NPT_Size offset)          { NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-    NPT_Result Tell(NPT_Position& offset)     { NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-    NPT_Result GetSize(NPT_LargeSize& size)   { NPT_COMPILER_UNUSED(size);   return NPT_FAILURE; }
-    NPT_Result GetAvailable(NPT_LargeSize& available);
-        
-private:
-    NPT_Result FillBuffer();
-
-protected:
-    NPT_Reference<PLT_FrameBuffer> m_FrameBuffer;
-    NPT_MemoryStream               m_Part;
-    NPT_UInt32                     m_LastFrameIndex;
-    NPT_String                     m_Boundary;
-    bool                           m_Eos;
-};
-
-typedef NPT_Reference<PLT_InputFrameStream> PLT_InputFrameStreamReference;
-
-#endif /* _PLT_FRAMESTREAM_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltHttp.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltHttp.h
deleted file mode 100644
index fc3d1b5..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltHttp.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - HTTP Helper
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- HTTP utilities
- */
-
-#ifndef _PLT_HTTP_H_
-#define _PLT_HTTP_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltVersion.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#if !defined(PLT_HTTP_DEFAULT_USER_AGENT)
-#define PLT_HTTP_DEFAULT_USER_AGENT "UPnP/1.0 DLNADOC/1.50 Platinum/" PLT_PLATINUM_SDK_VERSION_STRING
-#endif
-
-#if !defined(PLT_HTTP_DEFAULT_SERVER)
-#define PLT_HTTP_DEFAULT_SERVER "UPnP/1.0 DLNADOC/1.50 Platinum/" PLT_PLATINUM_SDK_VERSION_STRING
-#endif
-
-/*----------------------------------------------------------------------
-|   types
-+---------------------------------------------------------------------*/
-typedef enum {
-	PLT_DEVICE_UNKNOWN,
-	PLT_DEVICE_XBOX,
-	PLT_DEVICE_PS3,
-	PLT_DEVICE_WMP,
-    PLT_DEVICE_SONOS,
-    PLT_DEVICE_MAC,
-    PLT_DEVICE_WINDOWS,
-    PLT_DEVICE_VLC
-} PLT_DeviceSignature;
-
-/*----------------------------------------------------------------------
-|   PLT_HttpHelper
-+---------------------------------------------------------------------*/
-/**
- The PLT_HttpHelper class is a set of utility functions for manipulating 
- HTTP headers, entities and messages.
- */
-class PLT_HttpHelper {
-public:
-    static bool         IsConnectionKeepAlive(NPT_HttpMessage& message);
-    static bool         IsBodyStreamSeekable(NPT_HttpMessage& message);
-
-    static NPT_Result   ToLog(NPT_LoggerReference logger, int level, const char* prefix, NPT_HttpRequest* request);
-    static NPT_Result   ToLog(NPT_LoggerReference logger, int level, const char* prefix, const NPT_HttpRequest& request);
-    static NPT_Result   ToLog(NPT_LoggerReference logger, int level, const char* prefix, NPT_HttpResponse* response);
-    static NPT_Result   ToLog(NPT_LoggerReference logger, int level, const char* prefix, const NPT_HttpResponse& response);
-
-    static NPT_Result   GetContentType(const NPT_HttpMessage& message, NPT_String& type);
-    static NPT_Result   GetContentLength(const NPT_HttpMessage& message, NPT_LargeSize& len);
-
-    static NPT_Result   GetHost(const NPT_HttpRequest& request, NPT_String& value);
-    static void         SetHost(NPT_HttpRequest& request, const char* host);
-	static PLT_DeviceSignature GetDeviceSignature(const NPT_HttpRequest& request);
-
-    static NPT_Result   SetBody(NPT_HttpMessage& message, NPT_String& text, NPT_HttpEntity** entity = NULL);
-    static NPT_Result   SetBody(NPT_HttpMessage& message, const char* text, NPT_HttpEntity** entity = NULL);
-    static NPT_Result   SetBody(NPT_HttpMessage& message, const void* body, NPT_LargeSize len, NPT_HttpEntity** entity = NULL);
-    static NPT_Result   SetBody(NPT_HttpMessage& message, NPT_InputStreamReference stream, NPT_HttpEntity** entity = NULL);
-    static NPT_Result   GetBody(const NPT_HttpMessage& message, NPT_String& body);
-    static NPT_Result   ParseBody(const NPT_HttpMessage& message, NPT_XmlElementNode*& xml);
-
-	static void			SetBasicAuthorization(NPT_HttpRequest& request, const char* username, const char* password);
-};
-
-/*----------------------------------------------------------------------
-|   PLT_HttpRequestContext
-+---------------------------------------------------------------------*/
-/** 
- The PLT_HttpRequestContext class holds information about the request sent, the
- local & remote ip addresses and ports associated with a connection. It is used
- mostly when processing a HTTP response.
- */
-class PLT_HttpRequestContext : public NPT_HttpRequestContext {
-public:
-    // constructors and destructor
-    PLT_HttpRequestContext(const NPT_HttpRequest& request) : 
-        m_Request(request) {}
-    PLT_HttpRequestContext(const NPT_HttpRequest& request, const NPT_HttpRequestContext& context) :
-        NPT_HttpRequestContext(&context.GetLocalAddress(), &context.GetRemoteAddress()),
-        m_Request(request) {}
-    virtual ~PLT_HttpRequestContext() {}
-    
-    const NPT_HttpRequest& GetRequest() const { return m_Request; }
-	PLT_DeviceSignature GetDeviceSignature() { return PLT_HttpHelper::GetDeviceSignature(m_Request); }
-    
-private:
-    const NPT_HttpRequest& m_Request;
-};
-
-/*----------------------------------------------------------------------
-|   macros
-+---------------------------------------------------------------------*/
-#if defined(NPT_CONFIG_ENABLE_LOGGING)
-#define PLT_LOG_HTTP_MESSAGE_L(_logger, _level, _prefix, _msg) \
-    PLT_HttpHelper::ToLog((_logger), (_level), (_prefix), (_msg))
-#define PLT_LOG_HTTP_MESSAGE(_level, _prefix, _msg) \
-	PLT_HttpHelper::ToLog((_NPT_LocalLogger), (_level), (_prefix), (_msg))
-
-#else /* NPT_CONFIG_ENABLE_LOGGING */
-#define PLT_LOG_HTTP_MESSAGE_L(_logger, _level, _prefix, _msg)
-#define PLT_LOG_HTTP_MESSAGE(_level, _prefix, _msg)
-#endif /* NPT_CONFIG_ENABLE_LOGGING */
-
-/*----------------------------------------------------------------------
-|   PLT_HttpRequestHandler
-+---------------------------------------------------------------------*/
-/**
- The PLT_HttpRequestHandler class delegates the handling of the response of a
- received HTTP request by a HTTP Server.
- */
-class PLT_HttpRequestHandler : public NPT_HttpRequestHandler
-{
-public:
-    PLT_HttpRequestHandler(NPT_HttpRequestHandler* delegate) : 
-        m_Delegate(delegate) {}
-    virtual ~PLT_HttpRequestHandler() {}
-
-    // NPT_HttpRequestHandler methods
-    NPT_Result SetupResponse(NPT_HttpRequest&              request, 
-                             const NPT_HttpRequestContext& context,
-                             NPT_HttpResponse&             response) {
-        return m_Delegate->SetupResponse(request, context, response);
-    }
-
-private:
-    NPT_HttpRequestHandler* m_Delegate;
-};
-
-#endif /* _PLT_HTTP_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltHttpClientTask.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltHttpClientTask.h
deleted file mode 100644
index 293c592..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltHttpClientTask.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - HTTP Client Tasks
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- HTTP Client tasks
- */
-
-#ifndef _PLT_HTTP_CLIENT_TASK_H_
-#define _PLT_HTTP_CLIENT_TASK_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttp.h"
-#include "PltThreadTask.h"
-
-/*----------------------------------------------------------------------
-|   PLT_HttpClientSocketTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_HttpClientSocketTask class is the base class used to send a HTTP request
- asynchronously using a task (thread). It supports persistent connections
- and HTTP pipelining with automatic fallback and reconnection when HTTP 1.0 
- is used.
- */
-class PLT_HttpClientSocketTask : public PLT_ThreadTask
-{
-friend class PLT_ThreadTask;
-
-public:
-    PLT_HttpClientSocketTask(NPT_HttpRequest* request = NULL, 
-                             bool             wait_forever = false);
-    virtual ~PLT_HttpClientSocketTask();
-
-    virtual NPT_Result AddRequest(NPT_HttpRequest* request);
-    virtual NPT_Result SetHttpClientConfig(const NPT_HttpClient::Config& config);
-
-protected:
-    // PLT_ThreadTask methods
-    virtual void DoAbort();
-    virtual void DoRun();
-
-    virtual NPT_Result ProcessResponse(NPT_Result                    res, 
-                                       const NPT_HttpRequest&        request, 
-                                       const NPT_HttpRequestContext& context,
-                                       NPT_HttpResponse*             response);
-
-private:
-    NPT_Result GetNextRequest(NPT_HttpRequest*& request, NPT_Timeout timeout_ms);
-
-protected:
-    NPT_HttpClient              m_Client;
-    bool                        m_WaitForever;
-    NPT_Queue<NPT_HttpRequest>  m_Requests;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_HttpClientTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_HttpClientTask class is a templatized version of PLT_HttpClientSocketTask
- to support arbitrary delegation of HTTP response handling.
- */
-template <class T>
-class PLT_HttpClientTask : public PLT_HttpClientSocketTask
-{
-public:
-    PLT_HttpClientTask<T>(const NPT_HttpUrl& url, T* data) : 
-        PLT_HttpClientSocketTask(new NPT_HttpRequest(url, 
-                                                     "GET", 
-                                                     NPT_HTTP_PROTOCOL_1_1)), 
-                                 m_Data(data) {}
- protected:
-    virtual ~PLT_HttpClientTask<T>() {}
-
-protected:
-    // PLT_HttpClientSocketTask method
-    NPT_Result ProcessResponse(NPT_Result                    res, 
-                               const NPT_HttpRequest&        request, 
-                               const NPT_HttpRequestContext& context, 
-                               NPT_HttpResponse*             response) {
-        return m_Data->ProcessResponse(res, request, context, response);
-    }
-
-protected:
-    T* m_Data;
-};
-
-#endif /* _PLT_HTTP_CLIENT_TASK_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltHttpServer.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltHttpServer.h
deleted file mode 100644
index 562e141..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltHttpServer.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - HTTP Server
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- HTTP Server
- */
-
-#ifndef _PLT_HTTP_SERVER_H_
-#define _PLT_HTTP_SERVER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttpServerTask.h"
-
-/*----------------------------------------------------------------------
-|   PLT_HttpServer class
-+---------------------------------------------------------------------*/
-/**
- The PLT_HttpServer class provides an asynchronous way to handle multiple HTTP requests
- concurrently. Pipelining requests and keep-alive connections are supported.
- */
-class PLT_HttpServer : public NPT_HttpRequestHandler,
-                       public NPT_HttpServer
-{
-public:
-    PLT_HttpServer(NPT_IpAddress address = NPT_IpAddress::Any,
-                   NPT_IpPort    port = 0,
-                   bool          allow_random_port_on_bind_failure = false,
-                   NPT_Cardinal  max_clients = 50,
-                   bool          reuse_address = false);
-    virtual ~PLT_HttpServer();
-    
-    // class methods
-    static NPT_Result ServeFile(const NPT_HttpRequest&        request, 
-                                const NPT_HttpRequestContext& context,
-                                NPT_HttpResponse&             response, 
-                                NPT_String                    file_path);
-    static NPT_Result ServeStream(const NPT_HttpRequest&        request, 
-                                  const NPT_HttpRequestContext& context,
-                                  NPT_HttpResponse&             response,
-                                  NPT_InputStreamReference&     stream, 
-                                  const char*                   content_type);
-
-    // NPT_HttpRequestHandler methods
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request,
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response);
-
-    // methods
-    virtual NPT_Result   Start();
-    virtual NPT_Result   Stop();
-    virtual unsigned int GetPort() { return m_Port; }
-
-private:
-    PLT_TaskManagerReference        m_TaskManager;
-    NPT_Reference<NPT_HttpServer>   m_Server;
-    NPT_IpAddress                   m_Address;
-    NPT_IpPort                      m_Port;
-    bool                            m_AllowRandomPortOnBindFailure;
-    bool                            m_ReuseAddress;
-    bool                            m_Running;
-    bool                            m_Aborted;
-};
-
-typedef NPT_Reference<PLT_HttpServer> PLT_HttpServerReference;
-
-#endif /* _PLT_HTTP_SERVER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltHttpServerTask.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltHttpServerTask.h
deleted file mode 100644
index 58b2a3f..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltHttpServerTask.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - HTTP Server Tasks
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- HTTP Server Tasks
- */
-
-#ifndef _PLT_HTTP_SERVER_TASK_H_
-#define _PLT_HTTP_SERVER_TASK_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttp.h"
-#include "PltDatagramStream.h"
-#include "PltThreadTask.h"
-
-/*----------------------------------------------------------------------
-|   PLT_HttpServerSocketTask class
-+---------------------------------------------------------------------*/
-/** 
- The PLT_HttpServerSocketTask class is a task used for handling one or more HTTP 
- requests from a client. It is created by a PLT_HttpListenTask instance upon
- receiving a connection request. A PLT_HttpServer will handle the delegation for
- setting up the HTTP response.
- */
-class PLT_HttpServerSocketTask : public PLT_ThreadTask
-{
-    friend class PLT_ThreadTask;
-
-public:
-    PLT_HttpServerSocketTask(NPT_Socket* socket, bool stay_alive_forever = false);
-
-protected:
-    virtual ~PLT_HttpServerSocketTask();
-
-protected:
-    // Request callback handler
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request, 
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response) = 0;
-
-    // overridables
-    virtual NPT_Result GetInputStream(NPT_InputStreamReference& stream);
-    virtual NPT_Result GetInfo(NPT_SocketInfo& info);
-
-    // PLT_ThreadTask methods
-    virtual void DoAbort() { if (m_Socket) m_Socket->Cancel(); }
-    virtual void DoRun();
-
-private:
-    virtual NPT_Result Read(NPT_BufferedInputStreamReference& buffered_input_stream, 
-                            NPT_HttpRequest*&                 request,
-                            NPT_HttpRequestContext*           context = NULL);
-    virtual NPT_Result Write(NPT_HttpResponse* response, 
-                             bool&             keep_alive, 
-                             bool              headers_only = false);
-    virtual NPT_Result RespondToClient(NPT_HttpRequest&              request, 
-                                       const NPT_HttpRequestContext& context,
-                                       NPT_HttpResponse*&            response);
-    virtual NPT_Result SendResponseHeaders(NPT_HttpResponse* response,
-                                           NPT_OutputStream& output_stream,
-                                           bool&             keep_alive);
-    virtual NPT_Result SendResponseBody(NPT_HttpResponse* response,
-                                        NPT_OutputStream& output_stream);
-
-protected:
-    NPT_Socket*         m_Socket;
-    bool                m_StayAliveForever;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_HttpServerTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_HttpServerTask class is a version of PLT_HttpServerSocketTask that supports 
- delegation of HTTP request handling.
- */
-class PLT_HttpServerTask : public PLT_HttpServerSocketTask
-{
-public:
-    PLT_HttpServerTask(NPT_HttpRequestHandler* handler, 
-                       NPT_Socket*             socket, 
-                       bool                    keep_alive = false) : 
-        PLT_HttpServerSocketTask(socket, keep_alive), m_Handler(handler) {}
-
-protected:
-    virtual ~PLT_HttpServerTask() {}
-
-    NPT_Result SetupResponse(NPT_HttpRequest&              request, 
-                             const NPT_HttpRequestContext& context,
-                             NPT_HttpResponse&             response) {
-        return m_Handler->SetupResponse(request, context, response);
-    }
-
-protected:
-    NPT_HttpRequestHandler* m_Handler;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_HttpListenTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_HttpListenTask class is used by a PLT_HttpServer to listen for incoming
- connections and spawn a new task for handling each request.
- */
-class PLT_HttpListenTask : public PLT_ThreadTask
-{
-public:
-    PLT_HttpListenTask(NPT_HttpRequestHandler* handler, 
-                       NPT_TcpServerSocket*    socket, 
-                       bool                    owns_socket = true) : 
-        m_Handler(handler), m_Socket(socket), m_OwnsSocket(owns_socket) {}
-
-protected:
-    virtual ~PLT_HttpListenTask() { 
-        if (m_OwnsSocket && m_Socket) delete m_Socket;
-    }
-
-protected:
-    // PLT_ThreadTask methods
-    virtual void DoAbort() { if (m_Socket) m_Socket->Cancel(); }
-    virtual void DoRun();
-
-protected:
-    NPT_HttpRequestHandler* m_Handler;
-    NPT_TcpServerSocket*    m_Socket;
-    bool                    m_OwnsSocket;
-};
-
-#endif /* _PLT_HTTP_SERVER_TASK_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltLeaks.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltLeaks.h
deleted file mode 100644
index 73d1e3a..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltLeaks.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Leaks
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_LEAKS_H_
-#define _PLT_LEAKS_H_ 
-
-/*----------------------------------------------------------------------
-|   functions
-+---------------------------------------------------------------------*/
-#if defined(__cplusplus)
-extern "C" {
-#endif 
-
-void PLT_Leak_Enable(void);
-
-#if defined(__cplusplus)
-}
-#endif 
-
-#endif /* _PLT_LEAKS_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaBrowser.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaBrowser.h
deleted file mode 100644
index 2ee032b..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaBrowser.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media Browser (Media Server Control Point)
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Media Controller implementation.
- */
-
-#ifndef _PLT_MEDIA_BROWSER_H_
-#define _PLT_MEDIA_BROWSER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "PltCtrlPoint.h"
-#include "PltMediaItem.h"
-
-/*----------------------------------------------------------------------
-|   PLT_BrowseInfo
-+---------------------------------------------------------------------*/
-/**
- The PLT_BrowseInfo struct is used to marshall Browse or Search action 
- response results across different threads of execution.
- */
-typedef struct {
-    NPT_String                   object_id;
-    PLT_MediaObjectListReference items;
-    NPT_UInt32                   si;
-    NPT_UInt32                   nr;
-    NPT_UInt32                   tm;
-    NPT_UInt32                   uid;
-} PLT_BrowseInfo;
-
-/*----------------------------------------------------------------------
-|   PLT_MediaBrowserDelegate
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaBrowserDelegate class is an interface for receiving PLT_MediaBrowser
- events or action responses.
- */
-class PLT_MediaBrowserDelegate
-{
-public:
-    virtual ~PLT_MediaBrowserDelegate() {}
-    
-    virtual bool OnMSAdded(PLT_DeviceDataReference& /* device */) { return true; }
-    virtual void OnMSRemoved(PLT_DeviceDataReference& /* device */) {}
-    virtual void OnMSStateVariablesChanged(
-        PLT_Service*                  /*service*/, 
-        NPT_List<PLT_StateVariable*>* /*vars*/) {}
-
-    // ContentDirectory
-    virtual void OnBrowseResult(
-        NPT_Result               /*res*/, 
-        PLT_DeviceDataReference& /*device*/, 
-        PLT_BrowseInfo*          /*info*/, 
-        void*                    /*userdata*/) {}
-
-	virtual void OnSearchResult(
-        NPT_Result               /*res*/, 
-        PLT_DeviceDataReference& /*device*/, 
-        PLT_BrowseInfo*          /*info*/, 
-        void*                    /*userdata*/) {}
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaBrowser
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaBrowser class implements a UPnP AV Media Server control point.
- */
-class PLT_MediaBrowser : public PLT_CtrlPointListener
-{
-public:
-    PLT_MediaBrowser(PLT_CtrlPointReference&   ctrl_point,
-                     PLT_MediaBrowserDelegate* delegate = NULL);
-    virtual ~PLT_MediaBrowser();
-
-    // ContentDirectory service
-    virtual NPT_Result Browse(PLT_DeviceDataReference& device, 
-                              const char*              object_id, 
-                              NPT_UInt32               start_index,
-                              NPT_UInt32               count = 30, // DLNA recommendations
-                              bool                     browse_metadata = false,
-                              const char*              filter = "dc:date,upnp:genre,res,res at duration,res at size,upnp:albumArtURI,upnp:originalTrackNumber,upnp:album,upnp:artist,upnp:author", // explicitely specify res otherwise WMP won't return a URL!
-                              const char*              sort_criteria = "",
-                              void*                    userdata = NULL);
-
-	virtual NPT_Result Search(PLT_DeviceDataReference& device, 
-		                      const char*              container_id,
-							  const char*              search_criteria,
-				              NPT_UInt32               start_index,
-					          NPT_UInt32               count = 30, // DLNA recommendations
-                              const char*              filter = "dc:date,upnp:genre,res,res at duration,res at size,upnp:albumArtURI,upnp:originalTrackNumber,upnp:album,upnp:artist,upnp:author", // explicitely specify res otherwise WMP won't return a URL!
-						  	  void*                    userdata = NULL);
-
-    // methods
-    virtual const NPT_Lock<PLT_DeviceDataReferenceList>& GetMediaServers() { return m_MediaServers; }
-    virtual NPT_Result FindServer(const char* uuid, PLT_DeviceDataReference& device);    
-    virtual void SetDelegate(PLT_MediaBrowserDelegate* delegate) { m_Delegate = delegate; }
-
-protected:
-    // PLT_CtrlPointListener methods
-    virtual NPT_Result OnDeviceAdded(PLT_DeviceDataReference& device);
-    virtual NPT_Result OnDeviceRemoved(PLT_DeviceDataReference& device);
-    virtual NPT_Result OnActionResponse(NPT_Result res, PLT_ActionReference& action, void* userdata);
-    virtual NPT_Result OnEventNotify(PLT_Service* service, NPT_List<PLT_StateVariable*>* vars);
-    
-    // ContentDirectory service responses
-    virtual NPT_Result OnBrowseResponse(NPT_Result               res, 
-                                        PLT_DeviceDataReference& device, 
-                                        PLT_ActionReference&     action, 
-                                        void*                    userdata);
-
-	virtual NPT_Result OnSearchResponse(NPT_Result               res, 
-                                        PLT_DeviceDataReference& device, 
-                                        PLT_ActionReference&     action, 
-                                        void*                    userdata);
-    
-protected:
-    PLT_CtrlPointReference                m_CtrlPoint;
-    PLT_MediaBrowserDelegate*             m_Delegate;
-    NPT_Lock<PLT_DeviceDataReferenceList> m_MediaServers;
-};
-
-#endif /* _PLT_MEDIA_BROWSER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaCache.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaCache.h
deleted file mode 100644
index 8e365d8..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaCache.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media Cache
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- Simple Object Caching utility.
- */
-
-#ifndef _PLT_MEDIA_CACHE_H_
-#define _PLT_MEDIA_CACHE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   PLT_MediaCache
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaCache template provides a way to hold references to object in 
- memory. 
- */ 
-template <typename T, typename U>
-class PLT_MediaCache
-{
-public:
-    typedef typename NPT_Map<NPT_String,T>::Entry ElementEntry;
-    typedef typename NPT_List<ElementEntry*>::Iterator ElementIterator;
-
-    PLT_MediaCache<T,U>() {}
-    virtual ~PLT_MediaCache<T,U>() {}
-
-    NPT_Result Put(const char* root, const char* key, T& value, U* tag = NULL);
-    NPT_Result Get(const char* root, const char* key, T& value, U* tag = NULL);
-    NPT_Result Clear(const char* root, const char* key);
-    NPT_Result Clear(const char* root = NULL);
-
-private:
-    // methods
-    NPT_String GenerateKey(const char* root, const char* key);
-
-private:
-    // members
-    NPT_Mutex              m_Mutex;
-    NPT_Map<NPT_String, T> m_Items;
-    NPT_Map<NPT_String, U> m_Tags;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaCache::GenerateKey
-+---------------------------------------------------------------------*/
-template <typename T, typename U>
-inline
-NPT_String
-PLT_MediaCache<T,U>::GenerateKey(const char* root, const char* key)
-{
-    // TODO: There could be collision
-    NPT_String result = root;
-    result += "/";
-    result += key;
-    return result;
-}
-
-/*----------------------------------------------------------------------
-|   PLT_MediaCache::Put
-+---------------------------------------------------------------------*/
-template <typename T, typename U>
-inline
-NPT_Result
-PLT_MediaCache<T,U>::Put(const char* root,
-                         const char* key, 
-                         T&          value,
-                         U*          tag)
-{
-    NPT_AutoLock lock(m_Mutex);
-
-    NPT_String fullkey = GenerateKey(root, key);
-    if (fullkey.GetLength() == 0) return NPT_ERROR_INVALID_PARAMETERS;
-
-    m_Items.Erase(fullkey);
-    NPT_CHECK(m_Items.Put(fullkey, value));
-    
-    if (tag) NPT_CHECK(m_Tags.Put(fullkey, *tag));
-    
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   PLT_MediaCache::Get
-+---------------------------------------------------------------------*/
-template <typename T, typename U>
-inline
-NPT_Result
-PLT_MediaCache<T,U>::Get(const char* root,
-                         const char* key,
-                         T&          value,
-                         U*          tag /* = NULL */)
-{
-    NPT_AutoLock lock(m_Mutex);
-
-    NPT_String fullkey = GenerateKey(root, key);
-    if (fullkey.GetLength() == 0) return NPT_ERROR_INVALID_PARAMETERS;
-    
-    T* _value = NULL;
-    NPT_CHECK(m_Items.Get(fullkey, _value));
-    
-    U* _tag;
-    if (tag) {
-        m_Tags.Get(fullkey, _tag);
-        if (_tag) *tag = *_tag;
-    }
-
-    value = *_value;
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   PLT_MediaCache::Clear
-+---------------------------------------------------------------------*/
-template <typename T, typename U>
-inline
-NPT_Result 
-PLT_MediaCache<T,U>::Clear(const char* root, const char* key) 
-{
-    NPT_AutoLock lock(m_Mutex);
-
-    NPT_String fullkey = GenerateKey(root, key);
-    if (fullkey.GetLength() == 0) return NPT_ERROR_INVALID_PARAMETERS;
-
-    ElementIterator entries = m_Items.GetEntries().GetFirstItem();
-    ElementIterator entry;
-    while (entries) {
-        entry = entries++;
-        if ((*entry)->GetKey() == (fullkey)) {
-            m_Items.Erase(fullkey);
-            m_Tags.Erase(fullkey);
-            return NPT_SUCCESS;
-        }
-    }
-
-    return NPT_ERROR_NO_SUCH_ITEM;
-}
-
-/*----------------------------------------------------------------------
-|   PLT_MediaCache::Clear
-+---------------------------------------------------------------------*/
-template <typename T, typename U>
-inline
-NPT_Result
-PLT_MediaCache<T,U>::Clear(const char* root)
-{
-    NPT_AutoLock lock(m_Mutex);
-
-    if (!root || root[0]=='\0') 
-        return m_Items.Clear();
-
-    NPT_String key = GenerateKey(root, "");
-    ElementIterator entries = m_Items.GetEntries().GetFirstItem();
-    ElementIterator entry;
-    while (entries) {
-        entry = entries++;
-        NPT_String entry_key = (*entry)->GetKey();
-        if (entry_key.StartsWith(key)) {
-            m_Items.Erase(entry_key);
-            m_Tags.Erase(entry_key);
-        }
-    }
-
-    return NPT_SUCCESS;
-}
-
-#endif /* _PLT_MEDIA_CACHE_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaConnect.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaConnect.h
deleted file mode 100644
index c9ada41..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaConnect.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*****************************************************************
-|
-|      Platinum - AV Media Connect Device
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_MEDIA_CONNECT_H_
-#define _PLT_MEDIA_CONNECT_H_
-
-/*----------------------------------------------------------------------
-|       includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltFileMediaServer.h"
-
-/*----------------------------------------------------------------------
-|   PLT_MediaConnect
-+---------------------------------------------------------------------*/
-class PLT_MediaConnect : public PLT_MediaServer
-{
-public:
-    // class methods
-    static NPT_Result GetMappedObjectId(const char* object_id, 
-                                        NPT_String& mapped_object_id);
-    
-    // constructor
-    PLT_MediaConnect(const char*  friendly_name,
-                     bool         add_hostname = true,
-                     const char*  udn = NULL,
-                     NPT_UInt16   port = 0,
-                     bool         port_rebind = false);
-
-protected:
-    virtual ~PLT_MediaConnect();
-    
-    // PLT_DeviceHost methods
-    virtual NPT_Result SetupServices();
-    virtual NPT_Result OnAction(PLT_ActionReference&          action, 
-                                const PLT_HttpRequestContext& context);
-    virtual NPT_Result ProcessGetDescription(NPT_HttpRequest&              request,
-                                             const NPT_HttpRequestContext& context,
-                                             NPT_HttpResponse&             response);
-    virtual NPT_Result ProcessGetSCPD(PLT_Service*                  service,
-                                      NPT_HttpRequest&              request,
-                                      const NPT_HttpRequestContext& context,
-                                      NPT_HttpResponse&             response);
-
-    // X_MS_MediaReceiverRegistrar
-    virtual NPT_Result OnIsAuthorized(PLT_ActionReference&  action);
-    virtual NPT_Result OnRegisterDevice(PLT_ActionReference&  action);
-    virtual NPT_Result OnIsValidated(PLT_ActionReference&  action);
-
-protected:
-	NPT_Mutex   m_Lock;
-    bool        m_AddHostname;
-};
-
-/*----------------------------------------------------------------------
- |   PLT_FileMediaConnectDelegate class
- +---------------------------------------------------------------------*/
-class PLT_FileMediaConnectDelegate : public PLT_FileMediaServerDelegate
-{
-public:
-    // constructor & destructor
-    PLT_FileMediaConnectDelegate(const char* url_root, const char* file_root) :
-        PLT_FileMediaServerDelegate(url_root, file_root) {}
-    virtual ~PLT_FileMediaConnectDelegate() {}
-    
-    // PLT_FileMediaServerDelegate methods
-    virtual NPT_Result GetFilePath(const char* object_id, NPT_String& filepath);
-    virtual NPT_Result OnSearchContainer(PLT_ActionReference&          action, 
-                                         const char*                   object_id, 
-                                         const char*                   search_criteria,
-                                         const char*                   filter,
-                                         NPT_UInt32                    starting_index,
-                                         NPT_UInt32                    requested_count,
-                                         const char*                   sort_criteria, 
-                                         const PLT_HttpRequestContext& context);
-};
-
-#endif /* _PLT_MEDIA_CONNECT_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaController.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaController.h
deleted file mode 100644
index 672c12a..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaController.h
+++ /dev/null
@@ -1,344 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media Controller (Media Renderer Control Point)
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-| 
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_MEDIA_CONTROLLER_H_
-#define _PLT_MEDIA_CONTROLLER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "PltCtrlPoint.h"
-#include "PltMediaItem.h"
-
-/*----------------------------------------------------------------------
-|   Defines
-+---------------------------------------------------------------------*/
-typedef NPT_List<NPT_String> PLT_StringList;
-
-typedef struct {
-    PLT_StringList play_media;
-    PLT_StringList rec_media;
-    PLT_StringList rec_quality_modes;
-} PLT_DeviceCapabilities;
-
-typedef struct {
-    NPT_UInt32    num_tracks;
-    NPT_TimeStamp media_duration;
-    NPT_String    cur_uri;
-    NPT_String    cur_metadata;
-    NPT_String    next_uri;
-    NPT_String    next_metadata;
-    NPT_String    play_medium;
-    NPT_String    rec_medium;
-    NPT_String    write_status;
-} PLT_MediaInfo;
-
-typedef struct {
-    NPT_UInt32    track;
-    NPT_TimeStamp track_duration;
-    NPT_String    track_metadata;
-    NPT_String    track_uri;
-    NPT_TimeStamp rel_time;
-    NPT_TimeStamp abs_time;
-    NPT_Int32     rel_count;
-    NPT_Int32     abs_count;
-} PLT_PositionInfo;
-
-typedef struct {
-    NPT_String cur_transport_state;
-    NPT_String cur_transport_status;
-    NPT_String cur_speed;
-} PLT_TransportInfo;
-
-typedef struct {
-    NPT_String play_mode;
-    NPT_String rec_quality_mode;
-} PLT_TransportSettings;
-
-typedef struct {
-    NPT_UInt32 rcs_id;
-    NPT_UInt32 avtransport_id;
-    NPT_String protocol_info;
-    NPT_String peer_connection_mgr;
-    NPT_UInt32 peer_connection_id;
-    NPT_String direction;
-    NPT_String status;
-} PLT_ConnectionInfo;
-
-/*----------------------------------------------------------------------
-|   PLT_MediaControllerDelegate
-+---------------------------------------------------------------------*/
-class PLT_MediaControllerDelegate
-{
-public:
-    virtual ~PLT_MediaControllerDelegate() {}
-
-    virtual bool OnMRAdded(PLT_DeviceDataReference& /* device */) { return true; }
-    virtual void OnMRRemoved(PLT_DeviceDataReference& /* device */) {}
-    virtual void OnMRStateVariablesChanged(PLT_Service*                  /* service */, 
-                                           NPT_List<PLT_StateVariable*>* /* vars */) {}
-
-    // AVTransport
-    virtual void OnGetCurrentTransportActionsResult(
-        NPT_Result               /* res */, 
-        PLT_DeviceDataReference& /* device */,
-        PLT_StringList*          /* actions */, 
-        void*                    /* userdata */) {}
-
-    virtual void OnGetDeviceCapabilitiesResult(
-        NPT_Result               /* res */, 
-        PLT_DeviceDataReference& /* device */,
-        PLT_DeviceCapabilities*  /* capabilities */,
-        void*                    /* userdata */) {}
-
-    virtual void OnGetMediaInfoResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        PLT_MediaInfo*           /* info */,
-        void*                    /* userdata */) {}
-
-    virtual void OnGetPositionInfoResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        PLT_PositionInfo*        /* info */,
-        void*                    /* userdata */) {}
-
-    virtual void OnGetTransportInfoResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        PLT_TransportInfo*       /* info */,
-        void*                    /* userdata */) {}
-
-    virtual void OnGetTransportSettingsResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        PLT_TransportSettings*   /* settings */,
-        void*                    /* userdata */) {}
-
-    virtual void OnNextResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-    virtual void OnPauseResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}  
-
-    virtual void OnPlayResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-    virtual void OnPreviousResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-    virtual void OnSeekResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-    virtual void OnSetAVTransportURIResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-    virtual void OnSetPlayModeResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-    virtual void OnStopResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-        
-    // ConnectionManager
-    virtual void OnGetCurrentConnectionIDsResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        PLT_StringList*          /* ids */,
-        void*                    /* userdata */) {}
-
-    virtual void OnGetCurrentConnectionInfoResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        PLT_ConnectionInfo*      /* info */,
-        void*                    /* userdata */) {}
-
-    virtual void OnGetProtocolInfoResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        PLT_StringList*          /* sources */,
-        PLT_StringList*          /* sinks */,
-        void*                    /* userdata */) {}
-        
-    // RenderingControl
-    virtual void OnSetMuteResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-    virtual void OnGetMuteResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        const char*              /* channel */,
-        bool                     /* mute */,
-        void*                    /* userdata */) {}
-
-	virtual void OnSetVolumeResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-	virtual void OnGetVolumeResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-		const char*              /* channel */,
-    	NPT_UInt32				 /* volume */,
-	    void*                    /* userdata */) {}
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaController
-+---------------------------------------------------------------------*/
-class PLT_MediaController : public PLT_CtrlPointListener
-{
-public:
-    PLT_MediaController(PLT_CtrlPointReference&      ctrl_point, 
-                        PLT_MediaControllerDelegate* delegate = NULL);
-    virtual ~PLT_MediaController();
-
-    // public methods
-    virtual void SetDelegate(PLT_MediaControllerDelegate* delegate) {
-        m_Delegate = delegate;
-    }
-
-    // PLT_CtrlPointListener methods
-    virtual NPT_Result OnDeviceAdded(PLT_DeviceDataReference& device);
-    virtual NPT_Result OnDeviceRemoved(PLT_DeviceDataReference& device);
-    virtual NPT_Result OnActionResponse(NPT_Result res, PLT_ActionReference& action, void* userdata);
-    virtual NPT_Result OnEventNotify(PLT_Service* service, NPT_List<PLT_StateVariable*>* vars);
-
-    // AVTransport
-    NPT_Result GetCurrentTransportActions(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result GetDeviceCapabilities(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result GetMediaInfo(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result GetPositionInfo(PLT_DeviceDataReference& device,  NPT_UInt32 instance_id, void* userdata);
-    NPT_Result GetTransportInfo(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result GetTransportSettings(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result Next(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result Pause(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result Play(PLT_DeviceDataReference&  device, NPT_UInt32 instance_id, NPT_String speed, void* userdata);
-    NPT_Result Previous(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result Seek(PLT_DeviceDataReference&  device, NPT_UInt32 instance_id, NPT_String unit, NPT_String target, void* userdata);
-    bool       CanSetNextAVTransportURI(PLT_DeviceDataReference& device);
-    NPT_Result SetAVTransportURI(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, const char* uri, const char* metadata, void* userdata);
-    NPT_Result SetNextAVTransportURI(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, const char* next_uri, const char* next_metadata, void* userdata);
-    NPT_Result SetPlayMode(PLT_DeviceDataReference&  device, NPT_UInt32 instance_id, NPT_String new_play_mode, void* userdata);
-    NPT_Result Stop(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-
-    // ConnectionManager
-    NPT_Result GetCurrentConnectionIDs(PLT_DeviceDataReference& device, void* userdata);
-    NPT_Result GetCurrentConnectionInfo(PLT_DeviceDataReference& device, NPT_UInt32 connection_id, void* userdata);
-    NPT_Result GetProtocolInfo(PLT_DeviceDataReference& device, void* userdata);
-    
-    // RenderingControl
-    NPT_Result SetMute(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, const char* channel, bool mute, void* userdata);
-    NPT_Result GetMute(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, const char* channel, void* userdata);
-	NPT_Result SetVolume(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, const char* channel, int volume, void* userdata);
-	NPT_Result GetVolume(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, const char* channel, void* userdata);	
-
-    // VariableStates    
-    virtual NPT_Result GetProtocolInfoSink(const NPT_String& device_uuid, NPT_List<NPT_String>& sinks);
-    virtual NPT_Result GetTransportState(const NPT_String&  device_uuid, NPT_String& state);
-    virtual NPT_Result GetVolumeState(const NPT_String&  device_uuid, NPT_UInt32& volume);
-    
-    // methods
-    virtual NPT_Result FindRenderer(const char* uuid, PLT_DeviceDataReference& device);
-    virtual NPT_Result FindMatchingProtocolInfo(NPT_List<NPT_String>& sinks, const char* protocol_info);
-    virtual NPT_Result FindBestResource(PLT_DeviceDataReference& device, PLT_MediaObject& item, NPT_Cardinal& resource_index);
-
-private:
-    NPT_Result InvokeActionWithInstance(PLT_ActionReference& action, NPT_UInt32 instance_id, void* userdata = NULL);
-
-    NPT_Result OnGetCurrentTransportActionsResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    NPT_Result OnGetDeviceCapabilitiesResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    NPT_Result OnGetMediaInfoResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    NPT_Result OnGetPositionInfoResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    NPT_Result OnGetTransportInfoResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    NPT_Result OnGetTransportSettingsResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-
-    NPT_Result OnGetCurrentConnectionIDsResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    NPT_Result OnGetCurrentConnectionInfoResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    NPT_Result OnGetProtocolInfoResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    
-    NPT_Result OnGetMuteResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-	NPT_Result OnGetVolumeResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-
-public:
-    static void ParseCSV(const char* csv, PLT_StringList& values) {
-        const char* start = csv;
-        const char* p = start;
-
-        // look for the , character
-        while (*p) {
-            if (*p == ',') {
-                NPT_String val(start, (int)(p-start));
-                val.Trim(' ');
-                values.Add(val);
-                start = p + 1;
-            }
-            p++;
-        }
-
-        // last one
-        NPT_String last(start, (int)(p-start));
-        last.Trim(' ');
-        if (last.GetLength()) {
-            values.Add(last);
-        }
-    }
-
-private:
-    PLT_CtrlPointReference                m_CtrlPoint;
-    PLT_MediaControllerDelegate*          m_Delegate;
-    NPT_Lock<PLT_DeviceDataReferenceList> m_MediaRenderers;
-};
-
-typedef NPT_Reference<PLT_MediaController> PLT_MediaControllerReference;
-
-#endif /* _PLT_MEDIA_CONTROLLER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaItem.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaItem.h
deleted file mode 100644
index 81f3dc8..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaItem.h
+++ /dev/null
@@ -1,304 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media Item
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Media Object reprensentation.
- */
-
-#ifndef _PLT_MEDIA_ITEM_H_
-#define _PLT_MEDIA_ITEM_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttp.h"
-#include "PltProtocolInfo.h"
-
-/*----------------------------------------------------------------------
-|   typedefs
-+---------------------------------------------------------------------*/
-/**
- The PLT_ObjectClass struct is used to assign a type to a PLT_MediaObject.
- */
-typedef struct { 
-    NPT_String type;
-    NPT_String friendly_name;
-} PLT_ObjectClass;
-
-typedef struct { 
-    NPT_String type;
-    NPT_String friendly_name;
-    bool       include_derived;
-} PLT_SearchClass;
-
-typedef struct {
-    NPT_String name;
-    NPT_String role;
-} PLT_PersonRole;
-
-class PLT_PersonRoles  : public NPT_List<PLT_PersonRole>
-{
-public:
-    NPT_Result Add(const NPT_String& name, const NPT_String& role = "");
-    NPT_Result ToDidl(NPT_String& didl, const NPT_String& tag);
-    NPT_Result FromDidl(const NPT_Array<NPT_XmlElementNode*>& nodes);
-};
-
-typedef struct {
-    NPT_String allowed_use; // (CSV)
-    NPT_String validity_start;
-    NPT_String validity_end;
-    NPT_String remaining_time;
-    NPT_String usage_info;
-    NPT_String rights_info_uri;
-    NPT_String content_info_uri;
-} PLT_Constraint;
-
-typedef struct {
-    PLT_PersonRoles artists;
-    PLT_PersonRoles actors;
-    PLT_PersonRoles authors;
-    NPT_String      producer; //TODO: can be multiple
-    NPT_String      director; //TODO: can be multiple
-    NPT_String      publisher; //TODO: can be multiple
-    NPT_String      contributor; // should match m_Creator (dc:creator) //TODO: can be multiple
-} PLT_PeopleInfo;
-
-typedef struct {
-    NPT_List<NPT_String> genres;
-    NPT_String album; //TODO: can be multiple
-    NPT_String playlist; // dc:title of the playlist item the content belongs too //TODO: can be multiple
-} PLT_AffiliationInfo;
-
-typedef struct {
-    NPT_String description;
-    NPT_String long_description;
-    NPT_String icon_uri;
-    NPT_String region;
-    NPT_String rating;
-    NPT_String rights; //TODO: can be multiple
-    NPT_String date;
-    NPT_String language;
-} PLT_Description;
-
-typedef struct {
-    NPT_String uri;
-    NPT_String dlna_profile;
-} PLT_AlbumArtInfo;
-
-typedef struct {
-    NPT_List<PLT_AlbumArtInfo> album_arts;
-    NPT_String artist_discography_uri;
-    NPT_String lyrics_uri;
-    NPT_List<NPT_String> relations; // dc:relation
-} PLT_ExtraInfo;
-
-typedef struct {
-    NPT_UInt32 dvdregioncode;
-    NPT_UInt32 original_track_number;
-    NPT_String toc;
-    NPT_String user_annotation; //TODO: can be multiple
-} PLT_MiscInfo;
-
-typedef struct {
-    NPT_UInt64 total;
-    NPT_UInt64 used;
-    NPT_UInt64 free;
-    NPT_UInt64 max_partition;
-    NPT_UInt64 medium;
-} PLT_StorageInfo;
-
-typedef struct {
-    NPT_String program_title;
-    NPT_String series_title;
-    NPT_UInt32 episode_number;
-} PLT_RecordedInfo;
-
-/*----------------------------------------------------------------------
-|   PLT_MediaItemResource
-+---------------------------------------------------------------------*/
-class PLT_MediaItemResource
-{
-public:
-    PLT_MediaItemResource();
-    ~PLT_MediaItemResource() {}
-
-    NPT_String       m_Uri;
-    PLT_ProtocolInfo m_ProtocolInfo;
-    NPT_UInt32       m_Duration; /* seconds */
-    NPT_LargeSize    m_Size;
-    NPT_String       m_Protection;
-    NPT_UInt32       m_Bitrate; /* bytes/seconds */
-    NPT_UInt32       m_BitsPerSample;
-    NPT_UInt32       m_SampleFrequency;
-    NPT_UInt32       m_NbAudioChannels;
-    NPT_String       m_Resolution;
-    NPT_UInt32       m_ColorDepth;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaObject
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaObject class is any data entity that can be returned by a
- ContentDirectory Service from a browsing or searching action. This is the
- base class from which PLT_MediaItem and PLT_MediaContainer derive.
- */
-class PLT_MediaObject
-{
-protected:
-    NPT_IMPLEMENT_DYNAMIC_CAST(PLT_MediaObject)
-
-    PLT_MediaObject() : m_Restricted(true) {}
-
-public:
-    virtual ~PLT_MediaObject() {}
-
-    bool IsContainer() { return m_ObjectClass.type.StartsWith("object.container"); }
-
-    static const char* GetUPnPClass(const char* filename, 
-                                    const PLT_HttpRequestContext* context = NULL);
-
-    virtual NPT_Result Reset();
-    virtual NPT_Result ToDidl(const NPT_String& filter, NPT_String& didl);
-    virtual NPT_Result ToDidl(NPT_UInt32 mask, NPT_String& didl);
-    virtual NPT_Result FromDidl(NPT_XmlElementNode* entry);
-
-public:
-    /* common properties */
-    PLT_ObjectClass     m_ObjectClass;
-    NPT_String          m_ObjectID;
-    NPT_String          m_ParentID;
-    NPT_String          m_ReferenceID;
-
-    /* metadata */
-    NPT_String          m_Title;
-    NPT_String          m_Creator;
-    NPT_String          m_Date;
-    PLT_PeopleInfo      m_People;
-    PLT_AffiliationInfo m_Affiliation;
-    PLT_Description     m_Description;
-    PLT_RecordedInfo    m_Recorded;
-
-    /* properties */
-    bool m_Restricted;
-
-    /* extras */
-    PLT_ExtraInfo m_ExtraInfo;
-
-    /* miscellaneous info */
-    PLT_MiscInfo m_MiscInfo;
-
-    /* resources related */
-    NPT_Array<PLT_MediaItemResource> m_Resources;
-
-    /* original DIDL for Control Points to pass to a renderer when invoking SetAVTransportURI */
-    NPT_String m_Didl;    
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaItem
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaItem class represents a first-level class derived directly from
- PLT_MediaObject. It most often represents a single piece of AV data. 
- */
-class PLT_MediaItem : public PLT_MediaObject
-{
-public:
-    NPT_IMPLEMENT_DYNAMIC_CAST_D(PLT_MediaItem, PLT_MediaObject)
-
-    PLT_MediaItem();
-    virtual ~PLT_MediaItem();
-
-    // PLT_MediaObject methods
-    NPT_Result ToDidl(const NPT_String& filter, NPT_String& didl);
-    NPT_Result ToDidl(NPT_UInt32 mask, NPT_String& didl);
-    NPT_Result FromDidl(NPT_XmlElementNode* entry);
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaContainer
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaContainer class represents a first-level class derived directly
- from PLT_MediaObject. A PLT_MediaContainer represents a collection of 
- PLT_MediaObject instances.
- */
-class PLT_MediaContainer : public PLT_MediaObject
-{
-public:
-    NPT_IMPLEMENT_DYNAMIC_CAST_D(PLT_MediaContainer, PLT_MediaObject)
-
-    PLT_MediaContainer();
-    virtual ~PLT_MediaContainer();
-
-    // PLT_MediaObject methods
-    NPT_Result Reset();
-    NPT_Result ToDidl(const NPT_String& filter, NPT_String& didl);
-    NPT_Result ToDidl(NPT_UInt32 mask, NPT_String& didl);
-    NPT_Result FromDidl(NPT_XmlElementNode* entry);
-
-public:
-    NPT_List<PLT_SearchClass> m_SearchClasses;
-
-    /* properties */
-    bool m_Searchable;
-
-    /* container info related */
-    NPT_Int32  m_ChildrenCount;    
-    NPT_UInt32 m_ContainerUpdateID;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaObjectList
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaObjectList class is a list of PLT_MediaObject instances.
- */
-class PLT_MediaObjectList : public NPT_List<PLT_MediaObject*>
-{
-public:
-    PLT_MediaObjectList();
-
-protected:
-    virtual ~PLT_MediaObjectList(void);
-    friend class NPT_Reference<PLT_MediaObjectList>;
-};
-
-typedef NPT_Reference<PLT_MediaObjectList> PLT_MediaObjectListReference;
-typedef NPT_Reference<PLT_MediaObject> PLT_MediaObjectReference;
-
-#endif /* _PLT_MEDIA_ITEM_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaRenderer.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaRenderer.h
deleted file mode 100644
index d596838..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaRenderer.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media Renderer Device
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-| 
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_MEDIA_RENDERER_H_
-#define _PLT_MEDIA_RENDERER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "PltDeviceHost.h"
-
-/*----------------------------------------------------------------------
-|   PLT_MediaRendererDelegate
-+---------------------------------------------------------------------*/
-class PLT_MediaRendererDelegate
-{
-public:
-    virtual ~PLT_MediaRendererDelegate() {}
-
-    // ConnectionManager
-    virtual NPT_Result OnGetCurrentConnectionInfo(PLT_ActionReference& action) = 0;
-
-    // AVTransport
-    virtual NPT_Result OnNext(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnPause(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnPlay(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnPrevious(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnSeek(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnStop(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnSetAVTransportURI(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnSetPlayMode(PLT_ActionReference& action) = 0;
-
-    // RenderingControl
-    virtual NPT_Result OnSetVolume(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnSetVolumeDB(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnGetVolumeDBRange(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnSetMute(PLT_ActionReference& action) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaRenderer
-+---------------------------------------------------------------------*/
-class PLT_MediaRenderer : public PLT_DeviceHost
-{
-public:
-    PLT_MediaRenderer(const char*  friendly_name,
-                      bool         show_ip = false,
-                      const char*  uuid = NULL,
-                      unsigned int port = 0,
-                      bool         port_rebind = false);
-    // methods
-    virtual void SetDelegate(PLT_MediaRendererDelegate* delegate) { m_Delegate = delegate; }
-
-    // PLT_DeviceHost methods
-    virtual NPT_Result SetupServices();
-    virtual NPT_Result OnAction(PLT_ActionReference&          action, 
-                                const PLT_HttpRequestContext& context);
-
-protected:
-    virtual ~PLT_MediaRenderer();
-
-    // PLT_MediaRendererInterface methods
-    // ConnectionManager
-    virtual NPT_Result OnGetCurrentConnectionInfo(PLT_ActionReference& action);
-
-    // AVTransport
-    virtual NPT_Result OnNext(PLT_ActionReference& action);
-    virtual NPT_Result OnPause(PLT_ActionReference& action);
-    virtual NPT_Result OnPlay(PLT_ActionReference& action);
-    virtual NPT_Result OnPrevious(PLT_ActionReference& action);
-    virtual NPT_Result OnSeek(PLT_ActionReference& action);
-    virtual NPT_Result OnStop(PLT_ActionReference& action);
-    virtual NPT_Result OnSetAVTransportURI(PLT_ActionReference& action);
-    virtual NPT_Result OnSetPlayMode(PLT_ActionReference& action);
-
-    // RenderingControl
-    virtual NPT_Result OnSetVolume(PLT_ActionReference& action);
-    virtual NPT_Result OnSetVolumeDB(PLT_ActionReference &action);
-    virtual NPT_Result OnGetVolumeDBRange(PLT_ActionReference &action);
-    virtual NPT_Result OnSetMute(PLT_ActionReference& action);
-
-private:
-    PLT_MediaRendererDelegate* m_Delegate;
-};
-
-#endif /* _PLT_MEDIA_RENDERER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaServer.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaServer.h
deleted file mode 100644
index fb4f9f3..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaServer.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media Server Device
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Media Server.
- */
-
-#ifndef _PLT_MEDIA_SERVER_H_
-#define _PLT_MEDIA_SERVER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltDeviceHost.h"
-#include "PltMediaItem.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#define MAX_PATH_LENGTH 1024
-
-/*----------------------------------------------------------------------
-|   PLT_MediaServerDelegate
-+---------------------------------------------------------------------*/
-/** 
- The PLT_MediaServerDelegate class is an interface for delegating the handling 
- of the required UPnP AV ContentDirectory service actions. It also handles 
- resource HTTP requests (downloading).
- */
-class PLT_MediaServerDelegate
-{
-public:
-    PLT_MediaServerDelegate() {}
-    virtual ~PLT_MediaServerDelegate() {}
-    
-    virtual NPT_Result OnBrowseMetadata(PLT_ActionReference&          /*action*/, 
-                                        const char*                   /*object_id*/, 
-                                        const char*                   /*filter*/,
-                                        NPT_UInt32                    /*starting_index*/,
-                                        NPT_UInt32                    /*requested_count*/,
-                                        const char*                   /*sort_criteria*/,
-                                        const PLT_HttpRequestContext& /*context*/) = 0;
-    virtual NPT_Result OnBrowseDirectChildren(PLT_ActionReference&          /*action*/, 
-                                              const char*                   /*object_id*/, 
-                                              const char*                   /*filter*/,
-                                              NPT_UInt32                    /*starting_index*/,
-                                              NPT_UInt32                    /*requested_count*/,
-                                              const char*                   /*sort_criteria*/, 
-                                              const PLT_HttpRequestContext& /*context*/) = 0;
-    virtual NPT_Result OnSearchContainer(PLT_ActionReference&          /*action*/, 
-                                         const char*                   /*container_id*/, 
-                                         const char*                   /*search_criteria*/,
- 										 const char*                   /*filter*/,
-                                         NPT_UInt32                    /*starting_index*/,
-                                         NPT_UInt32                    /*requested_count*/,
-                                         const char*                   /*sort_criteria*/, 
-                                         const PLT_HttpRequestContext& /*context*/) = 0;
-    virtual NPT_Result ProcessFileRequest(NPT_HttpRequest&              /*request*/,
-                                          const NPT_HttpRequestContext& /*context*/,
-                                          NPT_HttpResponse&             /*response*/) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaServer
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaServer class implements the base class for a UPnP AV 
- Media Server device.
- */
-class PLT_MediaServer : public PLT_DeviceHost
-{
-public:
-    /* BrowseFlags */
-    enum BrowseFlags {
-        BROWSEMETADATA,
-        BROWSEDIRECTCHILDREN
-    };
-    
-    // class methods
-    static NPT_Result ParseBrowseFlag(const char* str, BrowseFlags& flag);
-    static NPT_Result ParseSort(const NPT_String& sort, NPT_List<NPT_String>& list);
-
-    // constructor
-    PLT_MediaServer(const char*  friendly_name,
-                    bool         show_ip = false,
-                    const char*  uuid = NULL,
-                    NPT_UInt16   port = 0,
-                    bool         port_rebind = false);
-    
-    // methods
-    virtual void SetDelegate(PLT_MediaServerDelegate* delegate) { m_Delegate = delegate; }
-    PLT_MediaServerDelegate* GetDelegate() { return m_Delegate; }
-    virtual void UpdateSystemUpdateID(NPT_UInt32 update);
-    virtual void UpdateContainerUpdateID(const char* id, NPT_UInt32 update);
-    
-protected:
-    virtual ~PLT_MediaServer();
-    
-    // PLT_DeviceHost methods
-    virtual NPT_Result SetupServices();
-    virtual NPT_Result OnAction(PLT_ActionReference&          action, 
-                                const PLT_HttpRequestContext& context);
-    virtual NPT_Result ProcessHttpGetRequest(NPT_HttpRequest&              request, 
-                                             const NPT_HttpRequestContext& context,
-                                             NPT_HttpResponse&             response);
-    
-    // ConnectionManager
-    virtual NPT_Result OnGetCurrentConnectionIDs(PLT_ActionReference&          action, 
-                                                 const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnGetProtocolInfo(PLT_ActionReference&          action, 
-                                         const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnGetCurrentConnectionInfo(PLT_ActionReference&          action, 
-                                                  const PLT_HttpRequestContext& context);
-
-    // ContentDirectory
-    virtual NPT_Result OnGetSortCapabilities(PLT_ActionReference&          action, 
-                                             const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnGetSearchCapabilities(PLT_ActionReference&          action, 
-                                               const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnGetSystemUpdateID(PLT_ActionReference&          action, 
-                                           const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnBrowse(PLT_ActionReference&          action, 
-                                const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnSearch(PLT_ActionReference&          action, 
-                                const PLT_HttpRequestContext& context);
-
-    // overridable methods
-    virtual NPT_Result OnBrowseMetadata(PLT_ActionReference&          action, 
-                                        const char*                   object_id, 
-                                        const char*                   filter,
-                                        NPT_UInt32                    starting_index,
-                                        NPT_UInt32                    requested_count,
-                                        const char*                   sort_criteria,
-                                        const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnBrowseDirectChildren(PLT_ActionReference&          action, 
-                                              const char*                   object_id, 
-                                              const char*                   filter,
-                                              NPT_UInt32                    starting_index,
-                                              NPT_UInt32                    requested_count,
-                                              const char*                   sort_criteria, 
-                                              const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnSearchContainer(PLT_ActionReference&          action, 
-                                         const char*                   container_id, 
-                                         const char*                   search_criteria,
- 										 const char*                   filter,
-                                         NPT_UInt32                    starting_index,
-                                         NPT_UInt32                    requested_count,
-                                         const char*                   sort_criteria, 
-                                         const PLT_HttpRequestContext& context);
-    
-private:
-    PLT_MediaServerDelegate* m_Delegate;
-};
-
-#endif /* _PLT_MEDIA_SERVER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaServerObject.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaServerObject.h
deleted file mode 100644
index ceeeb64..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMediaServerObject.h
+++ /dev/null
@@ -1,87 +0,0 @@
-//
-//  PltMediaServerObject.h
-//  Platinum
-//
-//  Created by Sylvain on 9/14/10.
-//  Copyright 2010 Plutinosoft LLC. All rights reserved.
-//
-
-#import "NptConfig.h"
-
-#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
-#include <UIKit/UIKit.h>
-#else
-#import <Cocoa/Cocoa.h>
-#endif
-
-#import "PltUPnPObject.h"
-
-// define 
-#if !defined(_PLATINUM_H_)
-typedef class PLT_HttpRequestContext PLT_HttpRequestContext;
-typedef class NPT_HttpResponse NPT_HttpResponse;
-#endif
-
-/*----------------------------------------------------------------------
-|   PLT_MediaServerObject
-+---------------------------------------------------------------------*/
- at interface PLT_MediaServerObject : PLT_DeviceHostObject {
-    id delegate;
-}
-
- at property (nonatomic, assign) id delegate; // we do not retain to avoid circular ref count
- at end
-
-/*----------------------------------------------------------------------
-|   PLT_MediaServerBrowseCapsule
-+---------------------------------------------------------------------*/
- at interface PLT_MediaServerBrowseCapsule : PLT_ActionObject {
-    NSString*               objectId;
-    NPT_UInt32              start;
-    NPT_UInt32              count;
-    NSString*               filter;
-    NSString*               sort;
-    PLT_HttpRequestContext* context;
-}
-
-- (id)initWithAction:(PLT_Action*)action objectId:(const char*)objectId filter:(const char*)filter start:(NPT_UInt32)start count:(NPT_UInt32)count sort:(const char*)sort context:(PLT_HttpRequestContext*)context;
-
- at property (readonly, assign) NSString* objectId;
- at property (readonly) NPT_UInt32 start;
- at property (readonly) NPT_UInt32 count;
- at property (readonly, assign) NSString* filter;
- at property (readonly, assign) NSString* sort;
- at end
-
-/*----------------------------------------------------------------------
-|   PLT_MediaServerSearchCapsule
-+---------------------------------------------------------------------*/
- at interface PLT_MediaServerSearchCapsule : PLT_MediaServerBrowseCapsule {
-    NSString* search;
-}
-
-- (id)initWithAction:(PLT_Action*)action objectId:(const char*)objectId search:(const char*)search filter:(const char*)filter start:(NPT_UInt32)start count:(NPT_UInt32)count sort:(const char*)sort context:(PLT_HttpRequestContext*)context;
-
- at property (readonly, assign) NSString* search;
- at end
-
-/*----------------------------------------------------------------------
-|   PLT_MediaServerFileRequestCapsule
-+---------------------------------------------------------------------*/
- at interface PLT_MediaServerFileRequestCapsule : NSObject {
-    NPT_HttpResponse*       response;
-    PLT_HttpRequestContext* context;
-}
-
-- (id)initWithResponse:(NPT_HttpResponse*)response context:(PLT_HttpRequestContext*)context;
- at end
-
-/*----------------------------------------------------------------------
-|   PLT_MediaServerDelegateObject
-+---------------------------------------------------------------------*/
- at protocol PLT_MediaServerDelegateObject
-- (NPT_Result)onBrowseMetadata:(PLT_MediaServerBrowseCapsule*)info;
-- (NPT_Result)onBrowseDirectChildren:(PLT_MediaServerBrowseCapsule*)info;
-- (NPT_Result)onSearchContainer:(PLT_MediaServerSearchCapsule*)info;
-- (NPT_Result)onFileRequest:(PLT_MediaServerFileRequestCapsule*)info;
- at end
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMetadataHandler.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMetadataHandler.h
deleted file mode 100644
index d1709bd..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMetadataHandler.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Metadata Handler
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_METADATA_HANDLER_H_
-#define _PLT_METADATA_HANDLER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   PLT_MetadataHandler class
-+---------------------------------------------------------------------*/
-class PLT_MetadataHandler
-{
-public:
-    virtual ~PLT_MetadataHandler() {}
-
-    // metadata overridables
-    virtual bool HandleExtension(const char* extension) = 0;
-    virtual NPT_Result  Load(NPT_InputStream&  stream, 
-                             NPT_TimeInterval  sleeptime = NPT_TimeInterval(.01), 
-                             NPT_TimeInterval  timeout = NPT_TimeInterval(30.)) = 0;
-    virtual NPT_Result  Save(NPT_OutputStream& stream,
-                             NPT_TimeInterval  sleeptime = NPT_TimeInterval(.01), 
-                             NPT_TimeInterval  timeout = NPT_TimeInterval(30.)) = 0;
-
-    virtual const char* GetLicenseData(NPT_String& licenseData) = 0;
-    virtual NPT_Result  GetCoverArtData(char*& caData, int& len) = 0;
-    virtual const char* GetContentID(NPT_String& value) = 0;
-    virtual const char* GetTitle(NPT_String& value) = 0;
-    virtual const char* GetDescription(NPT_String& value) = 0;
-    virtual NPT_Result  GetDuration(NPT_UInt32& seconds) = 0;
-    virtual const char* GetProtection(NPT_String& protection) = 0;
-    virtual NPT_Result  GetYear(NPT_Size& year) = 0;
-    
-    // helper functions
-    virtual NPT_Result  Load(const char* filename);
-    virtual NPT_Result  Save(const char* filename);
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MetadataHandlerFinder
-+---------------------------------------------------------------------*/
-class PLT_MetadataHandlerFinder
-{
-public:
-    // methods
-    PLT_MetadataHandlerFinder(const char* extension) : m_Extension(extension) {}
-    bool operator()(PLT_MetadataHandler* const & handler) const {
-        return handler->HandleExtension(m_Extension) ? true : false;
-    }
-
-private:
-    // members
-    NPT_String m_Extension;
-};
-
-#endif /* _PLT_METADATA_HANDLER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMimeType.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMimeType.h
deleted file mode 100644
index 0af0a89..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltMimeType.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media MimeType
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Media MimeType.
- */
-
-#ifndef _PLT_MIMETYPE_H_
-#define _PLT_MIMETYPE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttp.h"
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_HttpRequestContext;
-
-/*----------------------------------------------------------------------
-|   PLT_MimeType
-+---------------------------------------------------------------------*/
-class PLT_MimeType
-{
-public:
-    virtual ~PLT_MimeType() {}
-
-    static const char* GetMimeType(const NPT_String&             filename, 
-                                   const PLT_HttpRequestContext* context = NULL);
-    static const char* GetMimeType(const NPT_String&   filename,
-                                   PLT_DeviceSignature signature = PLT_DEVICE_UNKNOWN);
-    
-    static const char* GetMimeTypeFromExtension(const NPT_String&             extension, 
-                                                const PLT_HttpRequestContext* context = NULL);
-    static const char* GetMimeTypeFromExtension(const NPT_String&   extension,
-                                                PLT_DeviceSignature signature = PLT_DEVICE_UNKNOWN);
-
-private:
-    PLT_MimeType() {}
-
-};
-
-#endif /* _PLT_MIMETYPE_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltProtocolInfo.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltProtocolInfo.h
deleted file mode 100644
index d86ef0c..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltProtocolInfo.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media Protocol Info
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-| 
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Media Object Protocol Info.
- */
-
-#ifndef _PLT_PROTOCOL_INFO_H_
-#define _PLT_PROTOCOL_INFO_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttp.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_HttpRequestContext;
-
-/*----------------------------------------------------------------------
-|   typedefs
-+---------------------------------------------------------------------*/
-typedef struct PLT_HttpFileRequestHandler_DefaultDlnaExtMapEntry {
-    const char* mime_type;
-    const char* dlna_ext;
-} PLT_HttpFileRequestHandler_DefaultDlnaExtMapEntry ;
-
-/*----------------------------------------------------------------------
-|   PLT_ProtocolInfo
-+---------------------------------------------------------------------*/
-/**
- The PLT_ProtocolInfo class holds information about the protocol info of a 
- given UPnP Media Item resource.
- */
-class PLT_ProtocolInfo
-{
-public:
-    class FieldEntry {
-    public:
-        FieldEntry(const char* key, const char* value) :
-            m_Key(key), m_Value(value) {}
-        NPT_String m_Key;
-        NPT_String m_Value;
-    };
-
-    // class methods
-    static NPT_String  GetMimeTypeFromProtocolInfo(const char* protocol_info);
-    
-    static const char* GetDlnaExtension(const char* mime_type, 
-                                        const PLT_HttpRequestContext* context = NULL);
-    static const char* GetDlnaExtension(const char* mime_type, 
-                                        PLT_DeviceSignature signature = PLT_DEVICE_UNKNOWN);
-    
-    static PLT_ProtocolInfo GetProtocolInfo(const char* filename, 
-                                            bool with_dlna_extension = true, 
-                                            const PLT_HttpRequestContext* context = NULL);
-    static PLT_ProtocolInfo GetProtocolInfo(const char* filename, 
-                                            bool with_dlna_extension = true, 
-                                            PLT_DeviceSignature signature = PLT_DEVICE_UNKNOWN);
-    
-    static PLT_ProtocolInfo GetProtocolInfoFromMimeType(const char* mime_type, 
-                                                        bool with_dlna_extension = true, 
-                                                        const PLT_HttpRequestContext* context = NULL);
-    static PLT_ProtocolInfo GetProtocolInfoFromMimeType(const char* mime_type, 
-                                                        bool with_dlna_extension = true, 
-                                                        PLT_DeviceSignature signature = PLT_DEVICE_UNKNOWN);
-
-    // methods
-    PLT_ProtocolInfo();
-    //PLT_ProtocolInfo(NPT_String protocol_info);
-    PLT_ProtocolInfo(const char* protocol_info);
-    PLT_ProtocolInfo(const char* protocol,
-                     const char* mask,
-                     const char* content_type,
-                     const char* extra);
-    const NPT_String& GetProtocol()     const { return m_Protocol;  }
-    const NPT_String& GetMask()         const { return m_Mask; }
-    const NPT_String& GetContentType()  const { return m_ContentType;  }
-    const NPT_String& GetExtra()        const { return m_Extra; }
-    
-    const NPT_String& GetDLNA_PN()      const { return m_DLNA_PN; }
-
-    bool IsValid() { return m_Valid; }
-
-    NPT_String ToString() const;
-
-    bool Match(const PLT_ProtocolInfo& other) const;
-
-private:
-	typedef enum {
-		PLT_PROTINFO_PARSER_STATE_START,
-		PLT_PROTINFO_PARSER_STATE_PN,
-		PLT_PROTINFO_PARSER_STATE_OP,
-		PLT_PROTINFO_PARSER_STATE_PS,
-		PLT_PROTINFO_PARSER_STATE_CI,
-		PLT_PROTINFO_PARSER_STATE_FLAGS,
-		PLT_PROTINFO_PARSER_STATE_MAXSP,
-		PLT_PROTINFO_PARSER_STATE_OTHER
-	} PLT_ProtocolInfoParserState;
-
-    NPT_Result SetProtocolInfo(const char* protocol_info);
-    NPT_Result ValidateField(const char*  val, 
-                        const char*  valid_chars, 
-                        NPT_Cardinal num_chars = 0); // 0 means variable number of chars
-    NPT_Result ParseExtra(NPT_List<FieldEntry>& entries);
-    NPT_Result ValidateExtra();
-
-private:
-    NPT_String           m_Protocol;
-    NPT_String           m_Mask;
-    NPT_String           m_ContentType;
-    NPT_String           m_Extra;
-    
-    NPT_String           m_DLNA_PN;    // DLNA.ORG_PN Parameter (pn-param)
-    NPT_String           m_DLNA_OP;    // Operations Parameter (op-param)
-    NPT_String           m_DLNA_PS;    // Server-Side PlaySpeeds Parameter (ps-param)
-    NPT_String           m_DLNA_CI;    // Conversion Indicator Flag (ci-param)
-    NPT_String           m_DLNA_FLAGS; // Flags Parameter (flags-param)
-    NPT_String           m_DLNA_MAXSP; // Maximum RTSP Speed Header value (maxsp-param)
-    NPT_List<FieldEntry> m_DLNA_OTHER; // Vendor-defined 4th field Parameters (other-param)
-    
-    bool                 m_Valid;
-};
-
-#endif /* _PLT_PROTOCOL_INFO_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltRingBufferStream.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltRingBufferStream.h
deleted file mode 100644
index d8ecd11..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltRingBufferStream.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Ring buffer stream
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_RING_BUFFER_STREAM_H_
-#define _PLT_RING_BUFFER_STREAM_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptStreams.h"
-#include "NptRingBuffer.h"
-#include "NptThreads.h"
-
-/*----------------------------------------------------------------------
-|   PLT_RingBufferStream class
-+---------------------------------------------------------------------*/
-class PLT_RingBufferStream : public NPT_DelegatingInputStream,   
-                             public NPT_DelegatingOutputStream
-{
-public:
-    PLT_RingBufferStream(NPT_Size buffer_size = 4096, bool blocking = true);
-    PLT_RingBufferStream(NPT_RingBufferReference& buffer, bool blocking = true);
-    virtual ~PLT_RingBufferStream();
-    
-    // methods
-    bool IsAborted() { return m_Aborted; }
-    
-    // NPT_InputStream methods
-    NPT_Result Read(void*     buffer, 
-                    NPT_Size  bytes_to_read, 
-                    NPT_Size* bytes_read = NULL);
-    NPT_Result GetSize(NPT_LargeSize& size)  {
-        NPT_COMPILER_UNUSED(size);
-        return NPT_ERROR_NOT_SUPPORTED;
-    }
-    NPT_Result GetSpace(NPT_LargeSize& space) { 
-        NPT_AutoLock autoLock(m_Lock);
-        space = m_RingBuffer->GetSpace();
-        return NPT_SUCCESS;
-    }
-    NPT_Result GetAvailable(NPT_LargeSize& available) { 
-        NPT_AutoLock autoLock(m_Lock);
-        available = m_RingBuffer->GetAvailable();
-        return NPT_SUCCESS;
-    }
-
-    // NPT_OutputStream methods
-    NPT_Result Write(const void* buffer, 
-                     NPT_Size    bytes_to_write, 
-                     NPT_Size*   bytes_written = NULL);
-    NPT_Result Flush();
-    NPT_Result SetEOS();
-    NPT_Result Abort();
-
-protected:
-    // NPT_DelegatingInputStream methods
-    NPT_Result InputSeek(NPT_Position offset) {
-        NPT_COMPILER_UNUSED(offset);
-        return NPT_ERROR_NOT_SUPPORTED;
-    }
-    NPT_Result InputTell(NPT_Position& offset) { 
-        NPT_AutoLock autoLock(m_Lock);
-        offset = m_TotalBytesRead; 
-        return NPT_SUCCESS;
-    }
-
-    // NPT_DelegatingOutputStream methods
-    NPT_Result OutputSeek(NPT_Position offset) {
-        NPT_COMPILER_UNUSED(offset);
-        return NPT_ERROR_NOT_SUPPORTED;
-    }
-    NPT_Result OutputTell(NPT_Position& offset) {
-        NPT_AutoLock autoLock(m_Lock);
-        offset = m_TotalBytesWritten; 
-        return NPT_SUCCESS;
-    }
-
-private:
-    NPT_RingBufferReference m_RingBuffer;
-    NPT_Offset              m_TotalBytesRead;
-    NPT_Offset              m_TotalBytesWritten;
-    NPT_Mutex               m_Lock;
-    bool                    m_Blocking;
-    bool                    m_Eos;
-    bool                    m_Aborted;
-};
-
-typedef NPT_Reference<PLT_RingBufferStream> PLT_RingBufferStreamReference;
-
-#endif // _PLT_RING_BUFFER_STREAM_H_ 
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltService.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltService.h
deleted file mode 100644
index 84959f2..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltService.h
+++ /dev/null
@@ -1,521 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Service
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP Service
- */
-
-#ifndef _PLT_SERVICE_H_
-#define _PLT_SERVICE_H_
-
-/*----------------------------------------------------------------------
-|    includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltEvent.h"
-#include "PltArgument.h"
-#include "PltStateVariable.h"
-#include "PltAction.h"
-
-/*----------------------------------------------------------------------
-|    forward declarations
-+---------------------------------------------------------------------*/
-class PLT_DeviceData;
-
-/*----------------------------------------------------------------------
-|    PLT_Service class
-+---------------------------------------------------------------------*/
-/**
- UPnP Service.
- The PLT_Service class holds information about a UPnP service of a given device.
- It maintains a list of actions and state variables. A PLT_DeviceData instance can own 
- one or more PLT_Service instances. When a PLT_Service is advertised as part of a
- a UPnP Device (PLT_DeviceHost), it also maintains a list of subscribers to nofify when
- state variables change.
- */
-class PLT_Service
-{
-public:
-    // methods
-    /**
-     Create an instance of a UPnP Service either hosted or discovered.
-     @param device Pointer to the PLT_DeviceData the service is associated to
-     @param type String representing the UPnP service type
-     @param id String representing the UPnP service id
-     @param name A String to create unique service SCPD, control and eventing urls
-     @param last_change_namespace A String for the LastChange state variable namespace if any
-     */
-    PLT_Service(PLT_DeviceData* device,
-                const char*     type, 
-                const char*     id,
-                const char*     name,
-                const char*     last_change_namespace = NULL);
-    virtual ~PLT_Service();
-    
-    // methods
-    /**
-     When service is hosted by a PLT_DeviceHost, this setups the SCPD, control and event urls.
-     @param service_name the service name used to format unique urls
-     */
-    NPT_Result InitURLs(const char* service_name);
-    
-    /**
-     Verify the service has been properly initialized or is a valid discovered service.
-     @return true if valid.
-     */
-    bool IsValid() {  return (m_ActionDescs.GetItemCount() > 0); }
-    
-    /**
-     When a PLT_DeviceHost needs to change more than one state variables at a time
-     but would rather send only one event with all state variable changes, this can be 
-     used to pause and resume the automatic eventing.
-     @param pause Flag to indicate if eventing should be paused or resumed 
-     */
-    NPT_Result PauseEventing(bool pause = true);
-
-    // class methods
-    static bool IsTrue(const NPT_String& value) {
-        if (value.Compare("1", true)    && 
-            value.Compare("true", true) && 
-            value.Compare("yes", true)) {
-            return false;
-        }
-        return true;
-    }
-
-    // accessor methods
-    /**
-     Set the SCPD url for control points to be able to fetch the SCPD xml document.
-     @param url relative path of SCPD url
-     */
-    NPT_Result SetSCPDURL(const char* url)     { m_SCPDURL = url; return NPT_SUCCESS; }
-    
-    /*
-     Set the Service Control url for control points to be able to invoke actions.
-     @param url relative path of control url
-     */
-    NPT_Result SetControlURL(const char* url)  { m_ControlURL = url; return NPT_SUCCESS; };
-    
-    /**
-     Set the Service Event subscription url for control points to be able to subscribe
-     to events.
-     @param url relative path of even url
-     */
-    NPT_Result SetEventSubURL(const char* url) { m_EventSubURL = url; return NPT_SUCCESS; };
-    
-    /**
-     Return the SCPD url associated with this service.
-     @param absolute flag to indicate if absolute url including ip and port should
-     be returned
-     @return SCPD url
-     */
-    NPT_String GetSCPDURL(bool absolute = false);
-    
-    /**
-     Return the Control url associated with this service.
-     @param absolute flag to indicate if absolute url including ip and port should
-     be returned
-     @return Control url
-     */
-    NPT_String GetControlURL(bool absolute = false);
-    
-    /**
-     Return the Event subscription url associated with this service.
-     @param absolute flag to indicate if absolute url including ip and port should
-     be returned
-     @return Event url
-     */
-    NPT_String GetEventSubURL(bool absolute = false);
-    
-    /**
-     Return the service id.
-     @return service id
-     */
-    const NPT_String& GetServiceID() const { return m_ServiceID;   }
-    
-    /**
-     Return the service type.
-     @return service type
-     */
-    const NPT_String& GetServiceType() const { return m_ServiceType; }
-
-    /**
-     Return the service friendly name.
-     @return service name
-     */
-    const NPT_String& GetServiceName() const { return m_ServiceName; } 
-
-    /**
-     Return the PLT_DeviceData* the service is associated with.
-     @return PLT_DeviceData pointer
-     */
-    PLT_DeviceData* GetDevice() { return m_Device;      }
-    
-    /**
-     When a control point discover a new service with a higher version number
-     than it can work with, a lower version can be set to force backward 
-     compatibility.
-     @param version Integer specifying the version to use
-     */
-    NPT_Result ForceVersion(NPT_Cardinal version);
-
-    /**
-     Return the service SCPD xml document.
-     @param xml String to receive document
-     */
-    NPT_Result GetSCPDXML(NPT_String& xml);
-    
-    /**
-     Set the service SCPD xml document.
-     @param xml String SCPD xml document
-     */
-    NPT_Result SetSCPDXML(const char* xml);
-    
-    /**
-     Populate the UPnP Device description document with service information.
-     @param parent XML Element where to insert the service XML Element
-     @param service Pointer to service XML Element node newly created so it can be
-     extended with additional non standard information.
-     */
-    NPT_Result GetDescription(NPT_XmlElementNode* parent, NPT_XmlElementNode** service = NULL);
-
-    /**
-     Set a new value for a given state variable. The service keeps track of which
-     state variables have changed and events are being triggered by a PLT_ServiceEventTask
-     when necessary.
-     @param name state variable name
-     @param value new State Variable value.
-     */
-    NPT_Result SetStateVariable(const char* name, const char* value);
-    
-    /**
-     Certain state variables notifications must not be sent faster than a certain 
-     rate according to the UPnP specs. This sets the rate for a given state variable.
-     @param name state variable name
-     @param rate a time interval specifying the minimum interval allowed between
-     notifications.
-     */
-    NPT_Result SetStateVariableRate(const char* name, NPT_TimeInterval rate);
-    
-    /**
-     Certain state variables require extra xml attributes when serialized.
-     @param name state variable name
-     @param key the attribute name
-     @param value the attribute value
-     */
-	NPT_Result SetStateVariableExtraAttribute(const char* name, const char* key, const char* value);
-    
-    /**
-     Helper function to increment a state variable representing a number.
-     @param name state variable name
-     */
-    NPT_Result IncStateVariable(const char* name);
-    
-    /**
-     Return the PLT_StateVariable pointer given a state variable name.
-     @param name state variable name
-     @return PLT_StateVariable pointer
-     */
-    PLT_StateVariable* FindStateVariable(const char* name);
-    
-    /**
-     Return the state variable value given a state variable name.
-     @param name state variable name
-     @param value state variable value output
-     */
-    NPT_Result GetStateVariableValue(const char* name, NPT_String& value);
-    
-    /**
-     Return whether a service is capable of sending events.
-     @return true if sending events
-     */
-    bool IsSubscribable();
-    
-    /**
-     Return the list of state variables.
-     @return list of state variable pointers.
-     */
-    const NPT_List<PLT_StateVariable*>& GetStateVariables() const { return m_StateVars; }
-
-    /**
-     Return the PLT_ActionDesc given an action name
-     @param name action name
-     @return PLT_ActioDesc pointer
-     */
-    PLT_ActionDesc* FindActionDesc(const char* name);
-    
-    /**
-     Return an array of actions descriptions PLT_ActionDesc.
-     @return array of PLT_ActionDesc pointers.
-     */
-    const NPT_Array<PLT_ActionDesc*>& GetActionDescs() const { return m_ActionDescs; }
-
-private:    
-    /**
-     A task to send events.
-     The PLT_ServiceEventTask is started when receiving a first subscription. It
-     monitors if some state variables have changed and sends events to all
-     subscribers if so.
-     */
-    class PLT_ServiceEventTask : public PLT_ThreadTask {
-    public:
-        PLT_ServiceEventTask(PLT_Service* service) : m_Service(service) {}
-        
-        void DoRun() { 
-            while (!IsAborting(100)) m_Service->NotifyChanged();
-        }
-        
-    private:
-        PLT_Service* m_Service;
-    };
-    
-    // methods
-    void Cleanup();
-    
-    /**
-     Called by a PLT_StateVariable to keep track of what events need to be 
-     sent by the PLT_ServiceEventTask task.
-     @param var PLT_StateVariable pointer
-     */
-    NPT_Result AddChanged(PLT_StateVariable* var);
-    
-    /**
-     Certain UPnP services combine state variable changes into one single
-     state variable called "LastChange". This function updates the LastChange
-     state variable by looking through the list passed for state variables that
-     are not individually evented.
-     */
-    NPT_Result UpdateLastChange(NPT_List<PLT_StateVariable*>& vars);
-    
-    /**
-     Send state variable change events to all subscribers.
-     */
-    NPT_Result NotifyChanged();
-
-    // Events
-    /**
-     Called by PLT_DeviceHost when it receives a request for a new subscription.
-     */
-    NPT_Result ProcessNewSubscription(
-        PLT_TaskManagerReference task_manager,
-        const NPT_SocketAddress& addr, 
-        const NPT_String&        callback_urls, 
-        int                      timeout, 
-        NPT_HttpResponse&        response);
-    
-    /**
-     Called by PLT_DeviceHost when it receives a request renewing an existing
-     subscription.
-     */
-    NPT_Result ProcessRenewSubscription(
-        const NPT_SocketAddress& addr, 
-        const NPT_String&        sid, 
-        int                      timeout,
-        NPT_HttpResponse&        response);
-    
-    /**
-     Called by PLT_DeviceHost when it receives a request to cancel an existing
-     subscription.
-     */
-    NPT_Result ProcessCancelSubscription(
-        const NPT_SocketAddress& addr, 
-        const NPT_String&        sid, 
-        NPT_HttpResponse&        response);
-
-
-protected:
-    // friends that need to call private functions
-    friend class PLT_StateVariable; // AddChanged
-    friend class PLT_DeviceHost;    // ProcessXXSubscription
-    
-    //members
-    PLT_DeviceData*                         m_Device;
-    NPT_String                              m_ServiceType;
-    NPT_String                              m_ServiceID;
-	NPT_String                              m_ServiceName;
-    NPT_String                              m_SCPDURL;
-    NPT_String                              m_ControlURL;
-    NPT_String                              m_EventSubURL;
-    PLT_ServiceEventTask*                   m_EventTask;
-    NPT_Array<PLT_ActionDesc*>              m_ActionDescs;
-    NPT_List<PLT_StateVariable*>            m_StateVars;
-    NPT_Mutex                               m_Lock;
-    NPT_List<PLT_StateVariable*>            m_StateVarsChanged;
-    NPT_List<PLT_StateVariable*>            m_StateVarsToPublish;
-    NPT_List<PLT_EventSubscriberReference>  m_Subscribers;
-    bool                                    m_EventingPaused;
-    NPT_String                              m_LastChangeNamespace;
-};
-
-/*----------------------------------------------------------------------
-|    PLT_ServiceSCPDURLFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ServiceSCPDURLFinder class returns an instance of a PLT_Service given a 
- service SCPD url.
- */
-class PLT_ServiceSCPDURLFinder
-{
-public:
-    // methods
-    PLT_ServiceSCPDURLFinder(const char* url) : m_URL(url) {}
-    virtual ~PLT_ServiceSCPDURLFinder() {}
-    bool operator()(PLT_Service* const & service) const;
-
-private:
-    // members
-    NPT_String m_URL;
-};
-
-/*----------------------------------------------------------------------
-|    PLT_ServiceControlURLFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ServiceControlURLFinder class returns an instance of a PLT_Service 
- given a service control url.
- */
-class PLT_ServiceControlURLFinder
-{
-public:
-    // methods
-    PLT_ServiceControlURLFinder(const char* url) : m_URL(url) {}
-    virtual ~PLT_ServiceControlURLFinder() {}
-    bool operator()(PLT_Service* const & service) const;
-
-private:
-    // members
-    NPT_String m_URL;
-};
-
-/*----------------------------------------------------------------------
-|    PLT_ServiceEventSubURLFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ServiceEventSubURLFinder class returns an instance of a PLT_Service 
- given a service event subscription url.
- */
-class PLT_ServiceEventSubURLFinder
-{
-public:
-    // methods
-    PLT_ServiceEventSubURLFinder(const char* url) : m_URL(url) {}
-    virtual ~PLT_ServiceEventSubURLFinder() {}
-    bool operator()(PLT_Service* const & service) const;
-
-private:
-    // members
-    NPT_String m_URL;
-};
-
-/*----------------------------------------------------------------------
-|    PLT_ServiceIDFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ServiceIDFinder class returns an instance of a PLT_Service given a 
- service id.
- */
-class PLT_ServiceIDFinder
-{
-public:
-    // methods
-    PLT_ServiceIDFinder(const char* id) : m_Id(id) {}
-    virtual ~PLT_ServiceIDFinder() {}
-    bool operator()(PLT_Service* const & service) const;
-
-private:
-    // members
-    NPT_String m_Id;
-};
-
-/*----------------------------------------------------------------------
-|    PLT_ServiceTypeFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ServiceTypeFinder class returns an instance of a PLT_Service given a 
- service type.
- */
-class PLT_ServiceTypeFinder
-{
-public:
-    // methods
-    PLT_ServiceTypeFinder(const char* type) : m_Type(type) {}
-    virtual ~PLT_ServiceTypeFinder() {}
-    bool operator()(PLT_Service* const & service) const;
-
-private:
-    // members
-    NPT_String m_Type;
-};
-
-/*----------------------------------------------------------------------
-|    PLT_ServiceNameFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ServiceNameFinder class returns an instance of a PLT_Service given a 
- service name.
- */
-class PLT_ServiceNameFinder
-{
-public:
-    // methods
-    PLT_ServiceNameFinder(const char* name) : m_Name(name) {}
-    virtual ~PLT_ServiceNameFinder() {}
-    bool operator()(PLT_Service* const & service) const;
-
-private:
-    // members
-    NPT_String m_Name;
-};
-
-/*----------------------------------------------------------------------
-|    PLT_LastChangeXMLIterator
-+---------------------------------------------------------------------*/
-/**
- The PLT_LastChangeXMLIterator class is used to serialize the LastChange variable
- changes into xml given a list of state variables.
- */
-class PLT_LastChangeXMLIterator
-{
-public:
-    // methods
-    PLT_LastChangeXMLIterator(NPT_XmlElementNode* node) : m_Node(node) {}
-    virtual ~PLT_LastChangeXMLIterator() {}
-
-    NPT_Result operator()(PLT_StateVariable* const & var) const;
-
-private:
-    NPT_XmlElementNode* m_Node;
-};
-
-#endif /* _PLT_SERVICE_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltSsdp.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltSsdp.h
deleted file mode 100644
index 21015e5..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltSsdp.h
+++ /dev/null
@@ -1,389 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - SSDP
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP SSDP
- */
-
-#ifndef _PLT_SSDP_H_
-#define _PLT_SSDP_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltThreadTask.h"
-#include "PltHttpServerTask.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_DeviceHost;
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpAnnounceType
-+---------------------------------------------------------------------*/
-typedef enum {
-    PLT_ANNOUNCETYPE_BYEBYE,
-    PLT_ANNOUNCETYPE_ALIVE,
-    PLT_ANNOUNCETYPE_UPDATE
-} PLT_SsdpAnnounceType;
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpPacketListener class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpPacketListener class is an interface for handling SSDP packets
- (M-SEARCH and NOTIFY).
- */
-class PLT_SsdpPacketListener
-{
-public:
-    virtual ~PLT_SsdpPacketListener() {}
-    virtual NPT_Result OnSsdpPacket(const NPT_HttpRequest&        request, 
-                                    const NPT_HttpRequestContext& context) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpSearchResponseListener class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpSearchResponseListener class is an interface for handling SSDP M-SEARCH 
- responses.
- */
-class PLT_SsdpSearchResponseListener
-{
-public:
-    virtual ~PLT_SsdpSearchResponseListener() {}
-    virtual NPT_Result ProcessSsdpSearchResponse(NPT_Result                    res,  
-                                                 const NPT_HttpRequestContext& context,
-                                                 NPT_HttpResponse*             response) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpSender class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpSender class provides a mechanism to format and send SSDP packets.
- */
-class PLT_SsdpSender
-{
-public:
-    static NPT_Result SendSsdp(NPT_HttpRequest&   request, 
-                               const char*        usn,
-                               const char*        nt,
-                               NPT_UdpSocket&     socket,
-                               bool               notify,
-                               const NPT_SocketAddress* addr = NULL);
-     
-    static NPT_Result SendSsdp(NPT_HttpResponse&  response,
-                               const char*        usn,
-                               const char*        nt,
-                               NPT_UdpSocket&     socket,
-                               bool               notify, 
-                               const NPT_SocketAddress* addr = NULL);
-
-private:
-    static NPT_Result FormatPacket(NPT_HttpMessage&   message,
-                                   const char*        usn,
-                                   const char*        nt,
-                                   NPT_UdpSocket&     socket,
-                                   bool               notify);
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpDeviceSearchResponseInterfaceIterator class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpDeviceSearchResponseInterfaceIterator class looks for the best network
- interface to use then sends a SSDP M-SEARCH response.
- */
-class PLT_SsdpDeviceSearchResponseInterfaceIterator
-{
-public:
-    PLT_SsdpDeviceSearchResponseInterfaceIterator(PLT_DeviceHost*   device, 
-                                                  NPT_SocketAddress remote_addr,
-                                                  const char*       st) :
-        m_Device(device), m_RemoteAddr(remote_addr), m_ST(st)  {}
-    virtual ~PLT_SsdpDeviceSearchResponseInterfaceIterator() {}
-      
-    NPT_Result operator()(NPT_NetworkInterface*& if_addr) const;
-
-private:
-    PLT_DeviceHost*   m_Device;
-    NPT_SocketAddress m_RemoteAddr;
-    NPT_String        m_ST;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpDeviceSearchResponseTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpDeviceSearchResponseTask class is used by a PLT_DeviceHost to respond
- to SSDP M-SEARCH requests from UPnP ControlPoints.
- */
-class PLT_SsdpDeviceSearchResponseTask : public PLT_ThreadTask
-{
-public:
-    PLT_SsdpDeviceSearchResponseTask(PLT_DeviceHost*   device, 
-                                     NPT_SocketAddress remote_addr,
-                                     const char*       st) : 
-        m_Device(device), m_RemoteAddr(remote_addr), m_ST(st) {}
-
-protected:
-    virtual ~PLT_SsdpDeviceSearchResponseTask() {}
-
-    // PLT_ThreadTask methods
-    virtual void DoRun();
-    
-protected:
-    PLT_DeviceHost*     m_Device;
-    NPT_SocketAddress   m_RemoteAddr;
-    NPT_String          m_ST;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpAnnounceInterfaceIterator class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpAnnounceInterfaceIterator class is used to send SSDP announcements 
- given a list of network interaces. 
- */
-class PLT_SsdpAnnounceInterfaceIterator
-{
-public:
-    PLT_SsdpAnnounceInterfaceIterator(PLT_DeviceHost* device, PLT_SsdpAnnounceType type, bool broadcast = false) :
-        m_Device(device), m_Type(type), m_Broadcast(broadcast) {}
-      
-    NPT_Result operator()(NPT_NetworkInterface*& if_addr) const;
-
-private:
-    PLT_DeviceHost*         m_Device;
-    PLT_SsdpAnnounceType    m_Type;
-    bool                    m_Broadcast;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpInitMulticastIterator class
-+---------------------------------------------------------------------*/
-/** 
- The PLT_SsdpInitMulticastIterator class is used to join a multicast group 
- given a list of IP addresses.
- */
-class PLT_SsdpInitMulticastIterator
-{
-public:
-    PLT_SsdpInitMulticastIterator(NPT_UdpMulticastSocket* socket) :
-        m_Socket(socket) {}
-
-    NPT_Result operator()(NPT_IpAddress& if_addr) const {
-        NPT_IpAddress addr;
-        addr.ResolveName("239.255.255.250");
-        // OSX bug, since we're reusing the socket, we need to leave group first
-        // before joining it
-        m_Socket->LeaveGroup(addr, if_addr);
-        return m_Socket->JoinGroup(addr, if_addr);
-    }
-
-private:
-    NPT_UdpMulticastSocket* m_Socket;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpDeviceAnnounceTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpDeviceAnnounceTask class is a task to send UPnP Device SSDP announcements
- (alive or byebye). It can be setup to automatically repeat after an interval.
- */
-class PLT_SsdpDeviceAnnounceTask : public PLT_ThreadTask
-{
-public:
-    PLT_SsdpDeviceAnnounceTask(PLT_DeviceHost*  device, 
-                               NPT_TimeInterval repeat,
-                               bool             is_byebye_first = false,
-                               bool             extra_broadcast = false) : 
-        m_Device(device), 
-        m_Repeat(repeat),
-        m_IsByeByeFirst(is_byebye_first),
-        m_ExtraBroadcast(extra_broadcast) {}
-
-protected:
-    virtual ~PLT_SsdpDeviceAnnounceTask() {}
-
-    // PLT_ThreadTask methods
-    virtual void DoRun();
-
-protected:
-    PLT_DeviceHost*             m_Device;
-    NPT_TimeInterval            m_Repeat;
-    bool                        m_IsByeByeFirst;
-    bool                        m_ExtraBroadcast;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_NetworkInterfaceAddressSearchIterator class
-+---------------------------------------------------------------------*/
-/**
- The PLT_NetworkInterfaceAddressSearchIterator class returns the network interface
- given an IP address.
- */
-class PLT_NetworkInterfaceAddressSearchIterator
-{
-public:
-    PLT_NetworkInterfaceAddressSearchIterator(NPT_String ip) : m_Ip(ip)  {}
-    virtual ~PLT_NetworkInterfaceAddressSearchIterator() {}
-
-    NPT_Result operator()(NPT_NetworkInterface*& addr) const {
-        NPT_List<NPT_NetworkInterfaceAddress>::Iterator niaddr = addr->GetAddresses().GetFirstItem();
-        if (!niaddr) return NPT_FAILURE;
-
-        return (m_Ip.Compare((*niaddr).GetPrimaryAddress().ToString(), true) == 0) ? NPT_SUCCESS : NPT_FAILURE;
-    }
-
-private:
-    NPT_String m_Ip;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpPacketListenerIterator class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpPacketListenerIterator class iterates through a list of 
- PLT_SsdpPacketListener instances to notify of a new SSDP incoming packet.
- */
-class PLT_SsdpPacketListenerIterator
-{
-public:
-    PLT_SsdpPacketListenerIterator(NPT_HttpRequest&              request, 
-                                   const NPT_HttpRequestContext& context) :
-      m_Request(request), m_Context(context) {}
-
-    NPT_Result operator()(PLT_SsdpPacketListener*& listener) const {
-        return listener->OnSsdpPacket(m_Request, m_Context);
-    }
-
-private:
-    NPT_HttpRequest&              m_Request;
-    const NPT_HttpRequestContext& m_Context;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpListenTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpListenTask class is used to listen for incoming SSDP packets and 
- keep track of a list of PLT_SsdpPacketListener listeners to notify when a new 
- SSDP packet has arrived.
- */
-class PLT_SsdpListenTask : public PLT_HttpServerSocketTask
-{
-public:
-    PLT_SsdpListenTask(NPT_Socket* socket) : 
-        PLT_HttpServerSocketTask(socket, true) {
-        // Change read time out for UDP because iPhone 3.0 seems to hang
-        // after reading everything from the socket even though
-        // more stuff arrived
-#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
-        m_Socket->SetReadTimeout(10000);
-#endif
-    }
-
-    NPT_Result AddListener(PLT_SsdpPacketListener* listener) {
-        NPT_AutoLock lock(m_Mutex);
-        m_Listeners.Add(listener);
-        return NPT_SUCCESS;
-    }
-
-    NPT_Result RemoveListener(PLT_SsdpPacketListener* listener) {
-        NPT_AutoLock lock(m_Mutex);
-        m_Listeners.Remove(listener);
-        return NPT_SUCCESS;
-    }
-    
-    // PLT_Task methods
-    void DoAbort();
-
-protected:
-    virtual ~PLT_SsdpListenTask() {}
-
-    // PLT_HttpServerSocketTask methods
-    NPT_Result GetInputStream(NPT_InputStreamReference& stream);
-    NPT_Result GetInfo(NPT_SocketInfo& info);
-    NPT_Result SetupResponse(NPT_HttpRequest&              request, 
-                             const NPT_HttpRequestContext& context,
-                             NPT_HttpResponse&             response);
-
-protected:
-    PLT_InputDatagramStreamReference  m_Datagram;
-    NPT_List<PLT_SsdpPacketListener*> m_Listeners;
-    NPT_Mutex                         m_Mutex;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpSearchTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpSearchTask class is a task used by a PLT_CtrlPoint to issue a SSDP
- M-SEARCH request. It can be set to repeat at a certain frequencey.
- */
-class PLT_SsdpSearchTask : public PLT_ThreadTask
-{
-public:
-    PLT_SsdpSearchTask(NPT_UdpSocket*                  socket,
-                       PLT_SsdpSearchResponseListener* listener, 
-                       NPT_HttpRequest*                request,
-                       NPT_TimeInterval                frequency = NPT_TimeInterval(0.)); // pass 0 for one time
-
-protected:
-    virtual ~PLT_SsdpSearchTask();
-
-    // PLT_ThreadTask methods
-    virtual void DoAbort();
-    virtual void DoRun();
-
-    virtual NPT_Result ProcessResponse(NPT_Result                    res, 
-                                       const NPT_HttpRequest&        request,  
-                                       const NPT_HttpRequestContext& context,
-                                       NPT_HttpResponse*             response);
-
-private:
-    PLT_SsdpSearchResponseListener* m_Listener;
-    NPT_HttpRequest*                m_Request;
-    NPT_TimeInterval                m_Frequency;
-    bool                            m_Repeat;
-    NPT_UdpSocket*                  m_Socket;
-};
-
-#endif /* _PLT_SSDP_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltStateVariable.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltStateVariable.h
deleted file mode 100644
index 46ec9e9..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltStateVariable.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Service State Variable
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP State Variable
- */
-
-#ifndef _PLT_STATE_VARIABLE_H_
-#define _PLT_STATE_VARIABLE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_Argument;
-class PLT_Service;
-
-/*----------------------------------------------------------------------
-|   NPT_AllowedValueRange struct
-+---------------------------------------------------------------------*/
-/**
- The NPT_AllowedValueRange struct holds the min, max and step value allowed of
- a UPnP Service state variable.
- */
-typedef struct {
-    NPT_Int32 min_value;
-    NPT_Int32 max_value;
-    NPT_Int32 step;
-} NPT_AllowedValueRange;
-
-/*----------------------------------------------------------------------
-|   PLT_StateVariable class
-+---------------------------------------------------------------------*/
-/**
- The PLT_StateVariable class maintains the state of a UPnP Service state variable. 
- It is used by a PLT_DeviceHost instance to notify subscribers of a change or by a
- subscriber (PLT_CtrlPoint) when a service state variable change notification
- has been received.
- */
-class PLT_StateVariable
-{
-public:
-    PLT_StateVariable(PLT_Service* service);
-    ~PLT_StateVariable();
-
-    /**
-     Populate the SCPD xml document with state variable information.
-     @param node XML Element where to insert the state variable XML Element
-     */
-    NPT_Result GetSCPDXML(NPT_XmlElementNode* node);
-    
-    /**
-     Return the PLT_Service that this state variable is associated with.
-     @return PLT_Service pointer.
-     */
-    PLT_Service* GetService();
-    
-    /**
-     Return whether the state variable is eventable directly or indirectly. A state
-     variable sends events indirectly when part of the "LastChange" state variable.
-     @param indirectly Boolean to test if the state variable is sending events indirectly
-     @return Whether the state variable sends events according to the input flag specified.
-     */
-    bool IsSendingEvents(bool indirectly = false);
-    
-    /**
-     Force the state variable to send events directly.
-     */
-    void DisableIndirectEventing();
-    
-    /**
-     Certain state variables notifications must not be sent faster than a certain 
-     rate according to the UPnP specs. This sets the rate for a given state variable.
-     @param rate time interval to respect between notifications.
-     */
-    NPT_Result SetRate(NPT_TimeInterval rate);
-    
-    /**
-     Set the state variable value. The value is first validated to make sure
-     it is an allowed value. Once the value is validated, it is marked for eventing by
-     calling the PLT_Service AddChanged function.
-     @param value new state variable value. Can be a comma separated list of values.
-     */
-    NPT_Result SetValue(const char* value);
-    
-    /**
-     Validate the new value of the state variable.
-     @param value new state variable value. Can be a comma separated list of values.
-     */
-    NPT_Result ValidateValue(const char* value);
-    
-    /**
-     Certain state variables require extra xml attributes when serialized.
-     @param name the attribute name
-     @param value the attribute value
-     */
-	NPT_Result SetExtraAttribute(const char* name, const char* value);
-
-    /**
-     Return the state variable name.
-     @return state variable name.
-     */
-    const NPT_String& GetName()     const { return m_Name;     }
-    
-    /**
-     Return the current state variable value.
-     @return state variable current value.
-     */
-    const NPT_String& GetValue()    const { return m_Value;    }
-    
-    /**
-     Return the state variable data type.
-     @return state variable data type.
-     */
-    const NPT_String& GetDataType() const { return m_DataType; }
-    
-    /**
-     Return the state variable allowed value range if any.
-     @return state variable value range pointer or null if none.
-     */
-	const NPT_AllowedValueRange* GetAllowedValueRange() const { return m_AllowedValueRange; }
-
-    /**
-     Helper function to return a state variable given a list of state variables
-     and a state variable name.
-     @param vars list of state variables
-     @param name state variable name to look for
-     @return PLT_StateVariable pointer.
-     */
-    static PLT_StateVariable* Find(NPT_List<PLT_StateVariable*>& vars, 
-                                   const char*                   name);
-
-protected:
-    /**
-     Return whether the state variable value changed and subscribers need to
-     be notified.
-     */
-    bool IsReadyToPublish();
-    
-    /**
-     Serialize the state variable into xml.
-     */
-	NPT_Result Serialize(NPT_XmlElementNode& node);
-
-protected:
-    friend class PLT_Service;
-    friend class PLT_LastChangeXMLIterator;
-
-    //members
-    PLT_Service*            m_Service;
-    NPT_AllowedValueRange*  m_AllowedValueRange;
-    NPT_String              m_Name;
-    NPT_String              m_DataType;
-    NPT_String              m_DefaultValue;
-    bool                    m_IsSendingEvents;
-    bool                    m_IsSendingEventsIndirectly;
-    NPT_TimeInterval        m_Rate;
-    NPT_TimeStamp           m_LastEvent;
-    NPT_Array<NPT_String*>  m_AllowedValues;
-    NPT_String              m_Value;
-
-	NPT_Map<NPT_String,NPT_String> m_ExtraAttributes;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_StateVariableNameFinder
-+---------------------------------------------------------------------*/
-/**
- The PLT_StateVariableNameFinder class returns the PLT_StateVariable instance
- given a state variable name.
- */
-class PLT_StateVariableNameFinder 
-{
-public:
-    // methods
-    PLT_StateVariableNameFinder(const char* name) : m_Name(name) {}
-    virtual ~PLT_StateVariableNameFinder() {}
-
-    bool operator()(const PLT_StateVariable* const & state_variable) const {
-        return state_variable->GetName().Compare(m_Name, true) ? false : true;
-    }
-
-private:
-    // members
-    NPT_String   m_Name;
-};
-
-#endif /* _PLT_STATE_VARIABLE_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltStreamPump.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltStreamPump.h
deleted file mode 100644
index 58ef256..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltStreamPump.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Stream Pump
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_STREAM_PUMP_H_
-#define _PLT_STREAM_PUMP_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptStreams.h"
-#include "NptRingBuffer.h"
-
-/*----------------------------------------------------------------------
-|   PLT_PipeInputStream
-+---------------------------------------------------------------------*/
-class PLT_PipeInputStream
-{
-public:
-    // constructor and destructor
-    virtual ~PLT_PipeInputStream() {};
-
-    // methods
-    virtual NPT_Result Receive(NPT_InputStream& stream, NPT_Size max_bytes_to_read, NPT_Size* bytes_read = 0) = 0;
-};
-
-typedef NPT_Reference<PLT_PipeInputStream> PLT_PipeInputStreamReference;
-
-/*----------------------------------------------------------------------
-|   PLT_PipeOutputStream
-+---------------------------------------------------------------------*/
-class PLT_PipeOutputStream
-{
-public:
-    // constructor and destructor
-    virtual ~PLT_PipeOutputStream() {};
-
-    // methods
-    virtual NPT_Result Transmit(NPT_OutputStream& stream) = 0;
-};
-
-typedef NPT_Reference<PLT_PipeOutputStream> PLT_PipeOutputStreamReference;
-
-/*----------------------------------------------------------------------
-|   PLT_StreamPump class
-+---------------------------------------------------------------------*/
-class PLT_StreamPump
-{
-public:
-    virtual ~PLT_StreamPump();
-
-protected:
-    // methods
-    PLT_StreamPump(NPT_Size size = 65535);
-    NPT_Result PullData(NPT_InputStream& input, NPT_Size max_bytes_to_read);
-    NPT_Result PushData(NPT_OutputStream& output, NPT_Size& bytes_written);
-
-    // members
-    NPT_RingBuffer*     m_RingBuffer;
-    NPT_Offset          m_TotalBytesRead;
-    NPT_Offset          m_TotalBytesWritten;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_PipeInputStreamPump class
-+---------------------------------------------------------------------*/
-class PLT_PipeInputStreamPump : public PLT_StreamPump,
-                                public PLT_PipeInputStream
-{
-public:
-    PLT_PipeInputStreamPump(NPT_OutputStreamReference& output, NPT_Size size = 65535);
-    virtual ~PLT_PipeInputStreamPump();
-
-    NPT_Result Receive(NPT_InputStream& input, NPT_Size max_bytes_to_read, NPT_Size* bytes_read);
-
-protected:
-    NPT_OutputStreamReference   m_Output;
-    NPT_Result                  m_LastRes;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_PipeInputStreamPump class
-+---------------------------------------------------------------------*/
-class PLT_PipeOutputStreamPump : public PLT_StreamPump,
-                                 public PLT_PipeOutputStream
-{
-public:
-    PLT_PipeOutputStreamPump(NPT_InputStreamReference& input, 
-                             NPT_Size                  size = 65535,
-                             NPT_Size                  max_bytes_to_read = 0);
-    virtual ~PLT_PipeOutputStreamPump();
-
-    NPT_Result Transmit(NPT_OutputStream& output);
-
-protected:
-    NPT_InputStreamReference    m_Input;
-    NPT_Size                    m_MaxBytesToRead;
-    NPT_Result                  m_LastRes;
-};
-
-
-#endif // _PLT_STREAM_PUMP_H_ 
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltSyncMediaBrowser.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltSyncMediaBrowser.h
deleted file mode 100644
index 0fe43b5..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltSyncMediaBrowser.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Synchronous Media Browser
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Media Controller synchronous implementation.
- */
-
-#ifndef _PLT_SYNC_MEDIA_BROWSER_
-#define _PLT_SYNC_MEDIA_BROWSER_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltCtrlPoint.h"
-#include "PltMediaBrowser.h"
-#include "PltMediaCache.h"
-
-/*----------------------------------------------------------------------
-|   types
-+---------------------------------------------------------------------*/
-typedef NPT_Map<NPT_String, PLT_DeviceDataReference>         PLT_DeviceMap;
-typedef NPT_Map<NPT_String, PLT_DeviceDataReference>::Entry  PLT_DeviceMapEntry;
-
-typedef struct PLT_BrowseData {
-    NPT_SharedVariable shared_var;
-    NPT_Result         res;
-    PLT_BrowseInfo     info;
-} PLT_BrowseData;
-
-typedef NPT_Reference<PLT_BrowseData> PLT_BrowseDataReference;
-
-/*----------------------------------------------------------------------
-|   PLT_MediaContainerListener
-+---------------------------------------------------------------------*/
-class PLT_MediaContainerChangesListener
-{
-public:
-    virtual ~PLT_MediaContainerChangesListener() {}
-    virtual void OnContainerChanged(PLT_DeviceDataReference& device, 
-                                    const char*              item_id, 
-                                    const char*              update_id) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SyncMediaBrowser
-+---------------------------------------------------------------------*/
-class PLT_SyncMediaBrowser : public PLT_MediaBrowser,
-                             public PLT_MediaBrowserDelegate
-{
-public:
-    PLT_SyncMediaBrowser(PLT_CtrlPointReference&            ctrlPoint, 
-                         bool                               use_cache = false, 
-                         PLT_MediaContainerChangesListener* listener = NULL);
-    virtual ~PLT_SyncMediaBrowser();
-
-    // PLT_MediaBrowser methods
-    virtual NPT_Result OnDeviceAdded(PLT_DeviceDataReference& device);
-    virtual NPT_Result OnDeviceRemoved(PLT_DeviceDataReference& device);
-
-    // PLT_MediaBrowserDelegate methods
-    virtual void OnMSStateVariablesChanged(PLT_Service*                  service, 
-                                           NPT_List<PLT_StateVariable*>* vars);
-    virtual void OnBrowseResult(NPT_Result               res, 
-                                PLT_DeviceDataReference& device, 
-                                PLT_BrowseInfo*          info, 
-                                void*                    userdata);
-
-    // methods
-    void       SetContainerListener(PLT_MediaContainerChangesListener* listener) {
-        m_ContainerListener = listener;
-    }
-    NPT_Result BrowseSync(PLT_DeviceDataReference&      device, 
-                          const char*                   id, 
-                          PLT_MediaObjectListReference& list,
-                          bool                          metadata = false,
-                          NPT_Int32                     start = 0,
-                          NPT_Cardinal                  max_results = 0); // 0 means all
-
-    const NPT_Lock<PLT_DeviceMap>& GetMediaServersMap() const { return m_MediaServers; }
-    bool IsCached(const char* uuid, const char* object_id);
-
-protected:
-    NPT_Result BrowseSync(PLT_BrowseDataReference& browse_data,
-                          PLT_DeviceDataReference& device, 
-                          const char*              object_id,
-                          NPT_Int32                index, 
-                          NPT_Int32                count,
-                          bool                     browse_metadata = false,
-                          const char*              filter = "dc:date,upnp:genre,res,res at duration,res at size,upnp:albumArtURI,upnp:album,upnp:artist,upnp:author,searchable,childCount", // explicitely specify res otherwise WMP won't return a URL!
-                          const char*              sort = "");
-private:
-    NPT_Result Find(const char* ip, PLT_DeviceDataReference& device);
-    NPT_Result WaitForResponse(NPT_SharedVariable& shared_var);
-
-private:
-    NPT_Lock<PLT_DeviceMap>              m_MediaServers;
-    PLT_MediaContainerChangesListener*   m_ContainerListener;
-    bool                                 m_UseCache;
-    PLT_MediaCache<PLT_MediaObjectListReference,NPT_String> m_Cache;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceMapFinderByIp
-+---------------------------------------------------------------------*/
-class PLT_DeviceMapFinderByIp
-{
-public:
-    // methods
-    PLT_DeviceMapFinderByIp(const char* ip) : m_IP(ip) {}
-
-    bool operator()(const PLT_DeviceMapEntry* const& entry) const {
-        const PLT_DeviceDataReference& device = entry->GetValue();
-        return (device->GetURLBase().GetHost() == m_IP);
-    }
-
-private:
-    // members
-    NPT_String m_IP;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceFinderByUUID
-+---------------------------------------------------------------------*/
-class PLT_DeviceMapFinderByUUID
-{
-public:
-    // methods
-    PLT_DeviceMapFinderByUUID(const char* uuid) : m_UUID(uuid) {}
-
-    bool operator()(const PLT_DeviceMapEntry* const& entry) const {
-        PLT_DeviceDataReference device = entry->GetValue();
-        return device->GetUUID() == m_UUID;
-    }
-
-private:
-    // members
-    NPT_String m_UUID;
-};
-
-#endif /* _PLT_SYNC_MEDIA_BROWSER_ */
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltTaskManager.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltTaskManager.h
deleted file mode 100644
index cf8f4cb..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltTaskManager.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Task Manager
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- Runnable Tasks Manager
- */
-
-#ifndef _PLT_TASKMANAGER_H_
-#define _PLT_TASKMANAGER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_ThreadTask;
-
-/*----------------------------------------------------------------------
-|   PLT_TaskManager class
-+---------------------------------------------------------------------*/
-/**
- The PLT_TaskManager class maintains a list of runnable tasks. During shutdown, it
- can stop all running tasks. Additionally, it can limit the number of
- tasks that can run at any given time.
- */
-class PLT_TaskManager
-{
-public:
-    /**
-     Create a new Task Manager.
-     @param max_tasks Maximum number of concurrent tasks that the task manager
-     will allow. When the value is reached, a thread calling AddTask will block until
-     a task has finished.
-     */
-	PLT_TaskManager(NPT_Cardinal max_tasks = 0);
-	virtual ~PLT_TaskManager();
-
-    /**
-     Start a new new task and associates it with this task manager.
-     @param task new task
-     @param delay optional time interval to wait before launching the new task
-     @param auto_destroy a flag to indicate if the task is owned by someone else
-     and thus should not destroy itself when done.
-     */
-    virtual NPT_Result StartTask(PLT_ThreadTask*   task, 
-                                 NPT_TimeInterval* delay = NULL,
-                                 bool              auto_destroy = true);
-    
-    /**
-     Stop all tasks associated with this task manager.
-     */
-    NPT_Result Abort();
-    
-    /**
-     Reset task manager after an Abort so new tasks can be queued.
-     */
-    NPT_Result Reset();
-
-    /**
-     Returns the max number of concurrent tasks allowed. 0 for no limit.
-     */
-    NPT_Cardinal GetMaxTasks() { return m_MaxTasks; }
-
-private:
-    friend class PLT_ThreadTask;
-
-    // called by PLT_ThreadTask
-    NPT_Result AddTask(PLT_ThreadTask* task);
-    NPT_Result RemoveTask(PLT_ThreadTask* task);
-
-private:
-    NPT_List<PLT_ThreadTask*>  m_Tasks;
-    NPT_Mutex                  m_TasksLock;
-    NPT_Mutex                  m_CallbackLock;
-    NPT_Queue<int>*            m_Queue;
-    NPT_Cardinal               m_MaxTasks;
-    NPT_Cardinal               m_RunningTasks;
-    bool                       m_Stopping;
-};
-
-typedef NPT_Reference<PLT_TaskManager> PLT_TaskManagerReference;
-
-#endif /* _PLT_TASKMANAGER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltThreadTask.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltThreadTask.h
deleted file mode 100644
index 8315999..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltThreadTask.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Thread Tasks
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- Runnable Task
- */
-
-#ifndef _PLT_THREADTASK_H_
-#define _PLT_THREADTASK_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltTaskManager.h"
-
-/*----------------------------------------------------------------------
-|   PLT_ThreadTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_ThreadTask class is a base class for executing a given task in a worker
- thread. A PLT_ThreadTask is usually always associated to a PLT_TaskManager 
- which maintains a list to stop and destroy tasks when finished.
- */
-class PLT_ThreadTask : public NPT_Runnable
-{
-public:
-    friend class PLT_TaskManager;
-
-    /**
-     When a task is not managed by a PLT_TaskManager, the owner must call
-     this to stop and destroy it.
-     */
-    NPT_Result Kill();
-    
-protected:
-    /**
-     Return whether this task is in the process of stopping.
-     @param timeout number of milliseconds to wait
-     @return boolean indicating if the task is stopping
-     */
-    virtual bool IsAborting(NPT_Timeout timeout) {
-        return NPT_SUCCEEDED(m_Abort.WaitUntilEquals(1, timeout));
-    }
-    
-    /**
-     Start a task by associating it with a task manager.
-     @param task_manager PLT_TaskManager pointer
-     @param delay optional time interval to wait before launching the new task
-     @param auto_destroy a flag to indicate if the task is owned by someone else
-     and thus should not destroy itself when done.
-     */
-    NPT_Result Start(PLT_TaskManager*  task_manager = NULL, 
-                     NPT_TimeInterval* delay = NULL,
-                     bool              auto_destroy = true);
-    /**
-     Stop the task. This is either called by a task manager or the Kill method.
-     @param blocking Whether the method should block until the task has finished.
-     */
-    NPT_Result Stop(bool blocking = true);
-    
-    /**
-     This method to override in derived classes is called when the task is about
-     to start. 
-     */
-    virtual void DoInit()    {}
-    
-    /**
-     This method to override in derived classes is called when the task is about
-     to stop.
-     */
-    virtual void DoAbort()   {}
-    
-    /**
-     This method to override in derived classes is the main task loop.
-     */
-    virtual void DoRun()     {}
-    
-    /**
-     A PLT_ThreadTask base class is never instantiated directly.
-     */
-    PLT_ThreadTask();
-    
-    /**
-     The task manager will destroy the task when finished if m_AutoDestroy is 
-     true otherwise the owner of this task must use the Kill method.
-     */
-    virtual ~PLT_ThreadTask();
-    
-private:    
-    NPT_Result StartThread();
-    
-    // NPT_Thread methods
-    void Run();
-
-protected:
-    // members
-    PLT_TaskManager*    m_TaskManager;
-
-private:
-    // members
-    NPT_SharedVariable  m_Started;
-    NPT_SharedVariable  m_Abort;
-    NPT_Thread*         m_Thread;
-    bool                m_AutoDestroy;
-    NPT_TimeInterval    m_Delay;
-};
-
-#endif /* _PLT_THREADTASK_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltUPnP.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltUPnP.h
deleted file mode 100644
index 7822bf3..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltUPnP.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - UPnP Engine
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP Devices and ControlPoints Manager
- */
-
-#ifndef _PLT_UPNP_H_
-#define _PLT_UPNP_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "PltTaskManager.h"
-#include "PltCtrlPoint.h"
-#include "PltDeviceHost.h"
-#include "PltUtilities.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#define PLT_DLNA_SSDP_DELAY       0.05f
-#define PLT_DLNA_SSDP_DELAY_GROUP 0.2f
-
-/*----------------------------------------------------------------------
-|   forward definitions
-+---------------------------------------------------------------------*/
-class PLT_SsdpListenTask;
-
-/*----------------------------------------------------------------------
-|   PLT_UPnP class
-+---------------------------------------------------------------------*/
-/**
- The PLT_UPnP class maintains a list of devices (PLT_DeviceHost) to advertise and/or 
- control points (PLT_CtrlPoint).
- */
-class PLT_UPnP
-{
-public:
-    /**
-     Create a UPnP instance.
-     */
-    PLT_UPnP();
-    ~PLT_UPnP();
-
-    /**
-     Add and start a device inside this UPnP context.
-     @param device device to start.
-     */
-    NPT_Result AddDevice(PLT_DeviceHostReference& device);
-    
-    /**
-     Add and start a control point inside this UPnP context.
-     @param ctrlpoint control point to start.
-     */
-    NPT_Result AddCtrlPoint(PLT_CtrlPointReference& ctrlpoint);
-
-    /**
-     Remove an existing device from this UPnP context.
-     @param device device to stop.
-     */
-    NPT_Result RemoveDevice(PLT_DeviceHostReference& device);
-    
-    /**
-     Remove an existing control point from this UPnP context.
-     @param ctrlpoint control point to stop.
-     */
-    NPT_Result RemoveCtrlPoint(PLT_CtrlPointReference& ctrlpoint);
-
-    /**
-     Start the UPnP context and all existing devices and control points
-     associated with it.
-     */
-    NPT_Result Start();
-    
-    /**
-     Stop the UPnP context and all existing devices and control points
-     associated with it.
-     */
-    NPT_Result Stop();
-    
-    /**
-     Return the UPnP Engine state.
-     @return True if the UPnP engine is running.
-     */
-    bool IsRunning() { return m_Started; }
-
-    /**
-     When a device and a control point are added to the same UPnP context, it is
-     desired that the device be not discovered by the control point. For example when
-     creating a combo UPnP Renderer/CtrlPoint. This methods tells the control point
-     to ignore devices associated with the same UPnP context.
-     @param ignore boolean to ignore devices in context
-     */
-	void SetIgnoreLocalUUIDs(bool ignore) { m_IgnoreLocalUUIDs = ignore; }
-
-private:
-    // members
-    NPT_Mutex                           m_Lock;
-    NPT_List<PLT_DeviceHostReference>   m_Devices;
-    NPT_List<PLT_CtrlPointReference>    m_CtrlPoints;
-    NPT_Reference<PLT_TaskManager>      m_TaskManager;
-
-    // Since we can only have one socket listening on port 1900, 
-    // we create it in here and we will attach every control points
-    // and devices to it when they're added
-    bool                                m_Started;
-    PLT_SsdpListenTask*                 m_SsdpListenTask; 
-	bool								m_IgnoreLocalUUIDs;
-};
-
-#endif /* _PLT_UPNP_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltUPnPObject.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltUPnPObject.h
deleted file mode 100644
index b7bf9e7..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltUPnPObject.h
+++ /dev/null
@@ -1,65 +0,0 @@
-//
-//  PltUPnPObject.h
-//  Platinum
-//
-//  Created by Sylvain on 9/14/10.
-//  Copyright 2010 Plutinosoft LLC. All rights reserved.
-//
-
-#import "NptConfig.h"
-#import "NptTypes.h"
-#import "NptResults.h"
-
-#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
-#include <UIKit/UIKit.h>
-#else
-#import <Cocoa/Cocoa.h>
-#endif
-
-
-#if !defined(_PLATINUM_H_)
-typedef struct PLT_UPnP PLT_UPnP;
-typedef struct PLT_Action PLT_Action;
-typedef struct PLT_DeviceHostReference PLT_DeviceHostReference;
-#endif
-
-/*----------------------------------------------------------------------
-|   PLT_ActionObject
-+---------------------------------------------------------------------*/
- at interface PLT_ActionObject : NSObject {
- at private
-    PLT_Action* action;
-}
-
-- (id)initWithAction:(PLT_Action *)_action;
-- (NPT_Result)setValue:(NSString*)value forArgument:(NSString*)argument;
-- (NPT_Result)setErrorCode:(unsigned int)code withDescription:(NSString*)description;
- at end
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceHostObject
-+---------------------------------------------------------------------*/
- at interface PLT_DeviceHostObject : NSObject {
- at private
-    PLT_DeviceHostReference* device;
-}
-
-- (id)initWithDeviceHost:(PLT_DeviceHostReference*)device;
- at end
-
-/*----------------------------------------------------------------------
-|   PLT_UPnPObject
-+---------------------------------------------------------------------*/
- at interface PLT_UPnPObject : NSObject {
- at private
-    PLT_UPnP* upnp;
-}
-
-- (NPT_Result)start;
-- (NPT_Result)stop;
-- (bool)isRunning;
-
-- (NPT_Result)addDevice:(PLT_DeviceHostObject*)device;
-- (NPT_Result)removeDevice:(PLT_DeviceHostObject*)device;
-
- at end
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltUtilities.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltUtilities.h
deleted file mode 100644
index bdc1340..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltUtilities.h
+++ /dev/null
@@ -1,765 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Utilities
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_UTILITIES_H_
-#define _PLT_UTILITIES_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   PLT_XmlAttributeFinder
-+---------------------------------------------------------------------*/
-/**
- The PLT_XmlAttributeFinder class is used to determine if an attribute 
- exists given an xml element node, an attribute name and namespace.
- */
-class PLT_XmlAttributeFinder
-{
-public:
-    // if 'namespc' is NULL, we're looking for ANY namespace
-    // if 'namespc' is '\0', we're looking for NO namespace
-    // if 'namespc' is non-empty, look for that SPECIFIC namespace
-    PLT_XmlAttributeFinder(const NPT_XmlElementNode& element, 
-                           const char*               name, 
-                           const char*               namespc) : 
-      m_Element(element), m_Name(name), m_Namespace(namespc) {}
-
-    bool operator()(const NPT_XmlAttribute* const & attribute) const {
-        if (attribute->GetName() == m_Name) {
-            if (m_Namespace) {
-                const NPT_String& prefix = attribute->GetPrefix();
-                if (m_Namespace[0] == '\0') {
-                    // match if the attribute has NO namespace
-                    return prefix.IsEmpty();
-                } else {
-                    // match if the attribute has the SPECIFIC namespace
-                    // we're looking for
-                    const NPT_String* namespc = m_Element.GetNamespaceUri(prefix);
-                    return namespc && *namespc == m_Namespace;
-                }
-            } else {
-                // ANY namespace will match
-                return true;
-            }
-        } else {
-            return false;
-        }
-    }
-
-private:
-    const NPT_XmlElementNode& m_Element;
-    const char*               m_Name;
-    const char*               m_Namespace;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_XmlHelper
-+---------------------------------------------------------------------*/
-/**
- The PLT_XmlHelper class is a set of utility functions for manipulating 
- xml documents and DOM trees.
- */
-class PLT_XmlHelper
-{
-public:
-
-    // static methods
-
-    static NPT_Result Parse(const NPT_String& xml, NPT_XmlElementNode*& tree) {
-        // reset tree
-        tree = NULL;
-
-        // parse body
-        NPT_XmlParser parser;
-        NPT_XmlNode*  node;
-        NPT_Result result = parser.Parse(xml, node);
-        if (NPT_FAILED(result)) {
-            //NPT_LOG_FINEST_1("Failed to parse %s", xml.IsEmpty()?"(empty string)":xml.GetChars());
-            NPT_CHECK(result);
-        }
-
-        tree = node->AsElementNode();
-        if (!tree) {
-            delete node;
-            return NPT_FAILURE;
-        }
-        
-        return NPT_SUCCESS;
-    }
-
-    static NPT_Result GetChildText(NPT_XmlElementNode* node, 
-                                   const char*         tag, 
-                                   NPT_String&         value,
-                                   const char*         namespc = "",
-                                   NPT_Cardinal        max_size = 1024) {
-        value = "";
-
-        if (!node) return NPT_FAILURE;
-
-        // special case "" means we look for the same namespace as the parent
-        if (namespc && namespc[0] == '\0') {
-            namespc = node->GetNamespace()?node->GetNamespace()->GetChars():NPT_XML_NO_NAMESPACE;
-        }
-
-        NPT_XmlElementNode* child = node->GetChild(tag, namespc);
-        if (!child) return NPT_FAILURE;
-
-        const NPT_String* text = child->GetText();
-        // DLNA 7.3.17
-        value = text?text->SubString(0, max_size):"";
-        return NPT_SUCCESS;
-    }
-                                   
-    static NPT_Result RemoveAttribute(NPT_XmlElementNode* node, 
-                                      const char*         name,
-                                      const char*         namespc = "") {
-        if (!node) return NPT_FAILURE;
-
-        // special case "" means we look for the same namespace as the parent
-        if (namespc && namespc[0] == '\0') {
-            namespc = node->GetNamespace()?node->GetNamespace()->GetChars():NPT_XML_NO_NAMESPACE;
-        }
-
-        NPT_List<NPT_XmlAttribute*>::Iterator attribute;
-        attribute = node->GetAttributes().Find(PLT_XmlAttributeFinder(*node, name, namespc));
-        if (!attribute) return NPT_FAILURE;
-
-        delete *attribute;
-        NPT_CHECK(node->GetAttributes().Erase(attribute));
-
-        return NPT_SUCCESS;
-    }
-                                   
-    static NPT_Result GetAttribute(NPT_XmlElementNode* node, 
-                                   const char*         name,
-                                   NPT_XmlAttribute*&  attr,
-                                   const char*         namespc = "") {
-        attr = NULL;
-
-        if (!node) return NPT_FAILURE;
-
-        // special case "" means we look for the same namespace as the parent
-        if (namespc && namespc[0] == '\0') {
-            namespc = node->GetNamespace()?node->GetNamespace()->GetChars():NPT_XML_NO_NAMESPACE;
-        }
-
-        NPT_List<NPT_XmlAttribute*>::Iterator attribute;
-        attribute = node->GetAttributes().Find(PLT_XmlAttributeFinder(*node, name, namespc));
-        if (!attribute) {
-            //NPT_Debug("Failed to find attribute [%s]:%s", namespc, name);
-            return NPT_FAILURE;
-        }
-
-        attr = (*attribute);
-        return NPT_SUCCESS;
-    }
-
-    static NPT_Result GetAttribute(NPT_XmlElementNode* node, 
-                                   const char*         name,
-                                   NPT_String&         value,
-                                   const char*         namespc = "",
-                                   NPT_Cardinal        max_size = 1024) {
-        value = "";
-        
-        NPT_XmlAttribute* attribute = NULL;
-        NPT_Result result = GetAttribute(node, name, attribute, namespc);
-        if (NPT_FAILED(result)) return result;
-        
-        if (!attribute) return NPT_FAILURE;
-        // DLNA 7.3.17 truncate to 1024 bytes
-        value = attribute->GetValue().SubString(0, max_size);
-        return NPT_SUCCESS;
-    }
-
-    static NPT_Result SetAttribute(NPT_XmlElementNode* node, 
-                                   const char*         name,
-                                   const char*         value,
-                                   const char*         namespc = "") {
-        NPT_XmlAttribute* attribute = NULL;
-        NPT_CHECK(GetAttribute(node, name, attribute, namespc));
-        if (!attribute) return NPT_FAILURE;
-
-        attribute->SetValue(value);
-        return NPT_SUCCESS;
-    }
-
-    static NPT_Result AddChildText(NPT_XmlElementNode* node,
-                                   const char*         tag,
-                                   const char*         text,
-                                   const char*         prefix = NULL) {
-        if (!node) return NPT_FAILURE;
-        NPT_XmlElementNode* child = new NPT_XmlElementNode(prefix, tag);
-        child->AddText(text);
-        return node->AddChild(child);
-    }
-
-    static bool IsMatch(const NPT_XmlNode* const & node, const char* tag, const char* namespc_mapped) {
-        // if m_Namespace is NULL, we're looking for ANY namespace
-        // if m_Namespace is '\0', we're looking for NO namespace
-        // if m_Namespace is non-empty, look for that SPECIFIC namespace
-        
-        const NPT_XmlElementNode* element = node->AsElementNode();
-        // is tag the same (case sensitive)?
-        if (element && element->GetTag() == tag) {
-            if (namespc_mapped) {
-                // look for a SPECIFIC namespace or NO namespace
-                const NPT_String* namespc = element->GetNamespace();
-                if (namespc) {
-                    // the element has a namespace, match if it is equal to
-                    // what we're looking for
-                    return *namespc == namespc_mapped;
-                } else {
-                    // the element does not have a namespace, match if we're
-                    // looking for NO namespace
-                    return namespc_mapped[0] == '\0';
-                }
-            } else {
-                // ANY namespace will match
-                return true;
-            }
-        }
-        return false;
-    } 
-
-    static NPT_Result GetChildren(NPT_XmlElementNode*              node,
-                                  NPT_Array<NPT_XmlElementNode*>&  children,
-                                  const char*                      tag,
-                                  const char*                      namespc = "") {
-        if (!node) return NPT_FAILURE;
-
-        // special case "" means we look for the same namespace as the parent
-        if (namespc && namespc[0] == '\0') {
-            namespc = node->GetNamespace()?node->GetNamespace()->GetChars():NPT_XML_NO_NAMESPACE;
-        }
-
-        const char* namespc_mapped = (namespc==NULL)?"":(namespc[0]=='*' && namespc[1]=='\0')?NULL:namespc;
-
-        // get all children first
-        NPT_List<NPT_XmlNode*>& allchildren = node->GetChildren();
-
-        // iterate through children and add only elements with matching tag
-        NPT_List<NPT_XmlNode*>::Iterator child = allchildren.GetFirstItem();
-        while  (child) {
-            if (IsMatch(*child, tag, namespc_mapped)) {
-                children.Add((*child)->AsElementNode());
-            }
-            ++child;
-        }
-        return NPT_SUCCESS;
-    }
-
-    static NPT_XmlElementNode* GetChild(NPT_XmlElementNode* node,
-                                        const char*         tag,
-                                        const char*         namespc = "") {
-        if (!node) return NULL;
-
-        // special case "" means we look for the same namespace as the parent
-        if (namespc && namespc[0] == '\0') {
-            namespc = node->GetNamespace()?node->GetNamespace()->GetChars():NPT_XML_NO_NAMESPACE;
-        }
-
-        return node->GetChild(tag, namespc);
-    }
-
-    static NPT_Result GetChild(NPT_XmlElementNode*  parent,
-                               NPT_XmlElementNode*& child,
-                               NPT_Ordinal          n = 0) {
-        if (!parent) return NPT_FAILURE;
-
-        // reset child
-        child = NULL;
-
-        // get all children first
-        NPT_List<NPT_XmlNode*>::Iterator children = parent->GetChildren().GetFirstItem();
-        while  (children) {
-            if ((*children)->AsElementNode() && n-- == 0) {
-                child = (*children)->AsElementNode();
-                return NPT_SUCCESS;
-            }
-            children++;
-        }
-
-        return NPT_FAILURE;
-    }
-
-    static NPT_Result Serialize(NPT_XmlNode& node, NPT_String& xml, bool add_header = true, NPT_Int8 indentation = 0) {
-        NPT_XmlWriter writer(indentation);
-        NPT_StringOutputStreamReference stream(new NPT_StringOutputStream(&xml));
-        NPT_CHECK(writer.Serialize(node, *stream, add_header));
-        return NPT_SUCCESS;
-    }
-
-	static NPT_String Serialize(NPT_XmlNode& node, bool add_header = true, NPT_Int8 indentation = 0) {
-		NPT_XmlWriter writer(indentation);
-		NPT_String xml;
-		NPT_StringOutputStreamReference stream(new NPT_StringOutputStream(&xml));
-		if (NPT_FAILED(writer.Serialize(node, *stream, add_header))) {
-			NPT_Debug("Failed to serialize xml node");
-			return "";
-		}
-
-		return xml;
-	}
-private:
-    // members
-};
-
-/*----------------------------------------------------------------------
-|   NPT_StringFinder
-+---------------------------------------------------------------------*/
-/**
- The NPT_StringFinder class is used to determine if a string is found 
- as part of a list of strings.
- */
-class NPT_StringFinder
-{
-public:
-    // methods
-    explicit NPT_StringFinder(NPT_String& value, bool ignore_case = false) :
-        m_Value(value.GetChars()), m_IgnoreCase(ignore_case) {}
- 
-    explicit NPT_StringFinder(const char* value, bool ignore_case = false) :
-        m_Value(value), m_IgnoreCase(ignore_case) {}
-    
-    virtual ~NPT_StringFinder() {}
-    
-    bool operator()(const NPT_String* const & value) const {
-        return value->Compare(m_Value, m_IgnoreCase) ? false : true;
-    }
-    bool operator()(const NPT_String& value) const {
-        return value.Compare(m_Value, m_IgnoreCase) ? false : true;
-    }
-    
-private:
-    // members
-    const char*  m_Value;
-    bool         m_IgnoreCase;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_IpAddressFinder
-+---------------------------------------------------------------------*/
-/**
- The NPT_IpAddressFinder class is used to determine if a IP Address is found 
- as part of a list of IP Addresses.
- */
-class NPT_IpAddressFinder
-{
-public:
-    // methods
-    NPT_IpAddressFinder(NPT_IpAddress ip) : m_Value(ip) {}
-    virtual ~NPT_IpAddressFinder() {}
-    
-    bool operator()(const NPT_IpAddress* const & value) const {
-        return *value == m_Value;
-    }
-    bool operator()(const NPT_IpAddress& value) const {
-        return value == m_Value;
-    }
-    
-private:
-    // members
-    NPT_IpAddress m_Value;
-};
-
-
-/*----------------------------------------------------------------------
-|   PLT_UPnPMessageHelper class
-+---------------------------------------------------------------------*/
-/**
- The PLT_UPnPMessageHelper class is a set of utility functions for manipulating 
- specific UPnP HTTP headers.
- */
-class PLT_UPnPMessageHelper
-{
-public:
-    // methods
-    static const NPT_String* GetST(const NPT_HttpMessage& message) { 
-        return message.GetHeaders().GetHeaderValue("ST"); 
-    }
-    static NPT_Result SetST(NPT_HttpMessage& message, 
-                            const char*      st) { 
-        return message.GetHeaders().SetHeader("ST", st); 
-    }
-    
-    static const NPT_String* GetNT(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue("NT"); 
-    }
-    static NPT_Result SetNT(NPT_HttpMessage& message, 
-                            const char*      nt) { 
-        return message.GetHeaders().SetHeader("NT", nt); 
-    }
-    
-    static const NPT_String* GetNTS(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue("NTS"); 
-    }
-    static NPT_Result SetNTS(NPT_HttpMessage& message, 
-                             const char*      nts) { 
-        return message.GetHeaders().SetHeader("NTS", nts); 
-    }
-    
-    static const NPT_String* GetMAN(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue("MAN"); 
-    }
-    static NPT_Result SetMAN(NPT_HttpMessage& message, 
-                             const char*      man) { 
-        return message.GetHeaders().SetHeader("MAN", man); 
-    }
-    
-    static const NPT_String* GetLocation(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue("Location"); 
-    }
-    static NPT_Result SetLocation(NPT_HttpMessage& message, 
-                                  const char*      location) { 
-        return message.GetHeaders().SetHeader("Location", location); 
-    }
-    
-    static const NPT_String* GetServer(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue(NPT_HTTP_HEADER_SERVER); 
-    }
-    static NPT_Result SetServer(NPT_HttpMessage& message, 
-                                const char*      server, 
-                                bool             replace = true) { 
-        return message.GetHeaders().SetHeader(
-                                              NPT_HTTP_HEADER_SERVER, 
-                                              server, 
-                                              replace); 
-    }
-    
-    static const NPT_String* GetUSN(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue("USN"); 
-    }
-    static NPT_Result SetUSN(NPT_HttpMessage& message, 
-                             const char*      usn) { 
-        return message.GetHeaders().SetHeader("USN", usn); 
-    }
-    
-    static const NPT_String* GetCallbacks(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue("CALLBACK"); 
-    }
-    static NPT_Result SetCallbacks(NPT_HttpMessage& message, const char* callbacks) {
-        return message.GetHeaders().SetHeader("CALLBACK", callbacks); 
-    }
-    
-    static const NPT_String* GetSID(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue("SID"); 
-    }
-    static NPT_Result SetSID(NPT_HttpMessage& message, 
-                             const char*      sid) { 
-        return message.GetHeaders().SetHeader("SID", sid); 
-    }
-    
-    static NPT_Result GetLeaseTime(const NPT_HttpMessage& message, NPT_TimeInterval& lease) {
-        const NPT_String* cc = 
-        message.GetHeaders().GetHeaderValue("Cache-Control");
-        NPT_CHECK_POINTER(cc);
-        return ExtractLeaseTime(*cc, lease);
-    }
-    static NPT_Result SetLeaseTime(NPT_HttpMessage& message, const NPT_TimeInterval& lease) {
-        return message.GetHeaders().SetHeader("Cache-Control",
-                                              "max-age="+NPT_String::FromInteger(lease.ToSeconds())); 
-    }
-    
-    static NPT_Result GetBootId(const NPT_HttpMessage& message, NPT_UInt32& bootId) {
-        bootId = 0;
-        const NPT_String* bid = message.GetHeaders().GetHeaderValue("BOOTID.UPNP.ORG");
-        NPT_CHECK_POINTER(bid);
-        return NPT_ParseInteger32(*bid, bootId, false);
-    }
-    static NPT_Result SetBootId(NPT_HttpMessage& message, const NPT_UInt32& bootId) {
-        return message.GetHeaders().SetHeader("BOOTID.UPNP.ORG",
-                                              NPT_String::FromInteger(bootId));
-    }
-    
-    static NPT_Result GetNextBootId(const NPT_HttpMessage& message, NPT_UInt32& nextBootId) {
-        nextBootId = 0;
-        const NPT_String* nbid = message.GetHeaders().GetHeaderValue("NEXTBOOTID.UPNP.ORG");
-        NPT_CHECK_POINTER(nbid);
-        return NPT_ParseInteger32(*nbid, nextBootId, false);
-    }
-    static NPT_Result SetNextBootId(NPT_HttpMessage&  message, const NPT_UInt32& nextBootId) {
-        return message.GetHeaders().SetHeader("NEXTBOOTID.UPNP.ORG",
-                                              NPT_String::FromInteger(nextBootId));
-    }
-    
-    static NPT_Result GetConfigId(const NPT_HttpMessage& message, NPT_UInt32& configId) {
-        configId = 0;
-        const NPT_String* cid = message.GetHeaders().GetHeaderValue("CONFIGID.UPNP.ORG");
-        NPT_CHECK_POINTER(cid);
-        return NPT_ParseInteger32(*cid, configId, false);
-    }
-    static NPT_Result SetConfigId(NPT_HttpMessage&  message, const NPT_UInt32& configId) {
-        return message.GetHeaders().SetHeader("CONFIGID.UPNP.ORG", NPT_String::FromInteger(configId));
-    }
-    
-    static NPT_Result GetTimeOut(const NPT_HttpMessage& message, NPT_Int32& seconds) {
-        seconds = 0;
-        const NPT_String* timeout = 
-        message.GetHeaders().GetHeaderValue("TIMEOUT"); 
-        NPT_CHECK_POINTER(timeout);
-        return ExtractTimeOut(*timeout, seconds); 
-    }
-    static NPT_Result SetTimeOut(NPT_HttpMessage& message, const NPT_Int32 seconds) {
-        if (seconds >= 0) {
-            return message.GetHeaders().SetHeader("TIMEOUT", "Second-"+NPT_String::FromInteger(seconds));
-        } else {
-            return message.GetHeaders().SetHeader("TIMEOUT", "Second-infinite");
-        }
-    }
-    
-    static NPT_Result SetDate(NPT_HttpMessage& message) {
-        NPT_TimeStamp now;
-        NPT_System::GetCurrentTimeStamp(now);
-        NPT_DateTime date(now);
-        
-        return message.GetHeaders().SetHeader("Date", date.ToString(NPT_DateTime::FORMAT_RFC_1123)); 
-    }
-    
-    static NPT_Result GetIfModifiedSince(const NPT_HttpMessage& message, NPT_DateTime& date) {
-        const NPT_String* value = message.GetHeaders().GetHeaderValue("If-Modified-Since");
-        if (!value) return NPT_FAILURE;
-        
-        // Try RFC 1123, RFC 1036, then ANSI
-        if (NPT_SUCCEEDED(date.FromString(*value, NPT_DateTime::FORMAT_RFC_1123))) 
-            return NPT_SUCCESS;
-        
-        if (NPT_SUCCEEDED(date.FromString(*value, NPT_DateTime::FORMAT_RFC_1036)))
-            return NPT_SUCCESS;
-        
-        return date.FromString(*value, NPT_DateTime::FORMAT_ANSI);
-    }            
-    static NPT_Result SetIfModifiedSince(NPT_HttpMessage& message, const NPT_DateTime& date) {
-        return message.GetHeaders().SetHeader("If-Modified-Since",
-                                              date.ToString(NPT_DateTime::FORMAT_RFC_1123));
-    }
-    
-    static NPT_Result GetMX(const NPT_HttpMessage& message, NPT_UInt32& value) {
-        value = 0;
-        const NPT_String* mx = 
-        message.GetHeaders().GetHeaderValue("MX");
-        NPT_CHECK_POINTER(mx);
-        return NPT_ParseInteger32(*mx, value, false); // no relax to be UPnP compliant
-    }
-    static NPT_Result SetMX(NPT_HttpMessage& message, const NPT_UInt32 mx) {
-        return message.GetHeaders().SetHeader("MX",
-                                              NPT_String::FromInteger(mx)); 
-    }
-    
-    static NPT_Result GetSeq(const NPT_HttpMessage& message, NPT_UInt32& value) {
-        value = 0;
-        const NPT_String* seq = 
-        message.GetHeaders().GetHeaderValue("SEQ");
-        NPT_CHECK_POINTER(seq);
-        return NPT_ParseInteger32(*seq, value);
-    }
-    static NPT_Result SetSeq(NPT_HttpMessage& message, const NPT_UInt32 seq) {
-        return message.GetHeaders().SetHeader("SEQ",
-                                              NPT_String::FromInteger(seq)); 
-    }
-    
-    static const char* GenerateUUID(int count, NPT_String& uuid) {
-        uuid = "";
-        for (int i=0;i<(count<100?count:100);i++) {
-            int random = NPT_System::GetRandomInteger();
-            uuid += (char)((random % 25) + 66);
-        }
-        return uuid;
-    }
-    
-    static const char* GenerateSerialNumber(NPT_String& sn, int count = 40) {
-        sn = "{";
-        for (int i=0;i<count;i++) {
-            char nibble = (char)(NPT_System::GetRandomInteger() % 16);
-            sn += (nibble < 10) ? ('0' + nibble) : ('a' + (nibble-10));
-        }
-        sn += "}";
-        return sn;
-    }
-    
-    static const char* GenerateGUID(NPT_String& guid) {
-        guid = "";
-        for (int i=0;i<32;i++) {
-            char nibble = (char)(NPT_System::GetRandomInteger() % 16);
-            guid += (nibble < 10) ? ('0' + nibble) : ('a' + (nibble-10));
-            if (i == 7 || i == 11 || i == 15 || i == 19) {
-                guid += '-';
-            }
-        }
-        return guid;
-    }
-    
-    static NPT_Result ExtractLeaseTime(const NPT_String& cache_control, NPT_TimeInterval& lease) {
-        NPT_Int32 value;
-        if (cache_control.StartsWith("max-age=", true) &&
-            NPT_SUCCEEDED(NPT_ParseInteger32(cache_control.GetChars()+8, value))) {
-            lease.SetSeconds(value);
-            return NPT_SUCCESS;
-        }
-        return NPT_FAILURE;
-    }
-    
-    static NPT_Result ExtractTimeOut(const char* timeout, NPT_Int32& len) {
-        NPT_String temp = timeout;
-        if (temp.CompareN("Second-", 7, true)) {
-            return NPT_ERROR_INVALID_FORMAT;
-        }
-        
-        if (temp.Compare("Second-infinite", true) == 0) {
-            len = NPT_TIMEOUT_INFINITE;
-            return NPT_SUCCESS;
-        }
-        return temp.SubString(7).ToInteger(len);
-    }
-    
-    static NPT_Result GetIPAddresses(NPT_List<NPT_IpAddress>& ips, bool with_localhost = false) {
-        NPT_List<NPT_NetworkInterface*> if_list;
-        NPT_CHECK(GetNetworkInterfaces(if_list, with_localhost));
-        
-        NPT_List<NPT_NetworkInterface*>::Iterator iface = if_list.GetFirstItem();
-        while (iface) {
-            NPT_IpAddress ip = (*(*iface)->GetAddresses().GetFirstItem()).GetPrimaryAddress();
-            if (ip.ToString().Compare("0.0.0.0") && 
-                (with_localhost || ip.ToString().Compare("127.0.0.1"))) {
-                ips.Add(ip);
-            }
-            ++iface;
-        }
-        
-        if (with_localhost && !ips.Find(NPT_IpAddressFinder(NPT_IpAddress(127, 0, 0, 1)))) {
-            NPT_IpAddress localhost;
-            localhost.Parse("127.0.0.1");
-            ips.Add(localhost);
-        }
-        
-        if_list.Apply(NPT_ObjectDeleter<NPT_NetworkInterface>());
-        return NPT_SUCCESS;
-    }
-    
-    static NPT_Result GetNetworkInterfaces(NPT_List<NPT_NetworkInterface*>& if_list, 
-                                           bool with_localhost = false) {
-        NPT_CHECK(_GetNetworkInterfaces(if_list, with_localhost, false));
-        
-        // if no valid interfaces or if requested, add localhost interface
-        if (if_list.GetItemCount() == 0) {
-            NPT_CHECK(_GetNetworkInterfaces(if_list, true, true));
-        }
-        return NPT_SUCCESS;
-    }
-    
-	static NPT_Result GetMACAddresses(NPT_List<NPT_String>& addresses) {
-        NPT_List<NPT_NetworkInterface*> if_list;
-        NPT_CHECK(GetNetworkInterfaces(if_list));
-        
-        NPT_List<NPT_NetworkInterface*>::Iterator iface = if_list.GetFirstItem();
-        while (iface) {
-            NPT_String ip = (*(*iface)->GetAddresses().GetFirstItem()).GetPrimaryAddress().ToString();
-            if (ip.Compare("0.0.0.0") && ip.Compare("127.0.0.1")) {
-				addresses.Add((*iface)->GetMacAddress().ToString());
-            }
-            ++iface;
-        }
-        
-        if_list.Apply(NPT_ObjectDeleter<NPT_NetworkInterface>());
-        return NPT_SUCCESS;
-    }
-    
-    
-	static bool IsLocalNetworkAddress(const NPT_IpAddress& address) {
-		if (address.ToString() == "127.0.0.1") return true;
-        
-		NPT_List<NPT_NetworkInterface*> if_list;
-        NPT_NetworkInterface::GetNetworkInterfaces(if_list);
-        
-		NPT_List<NPT_NetworkInterface*>::Iterator iface = if_list.GetFirstItem();
-        while (iface) {
-			if((*iface)->IsAddressInNetwork(address)) return true;
-            ++iface;
-        }
-        
-		if_list.Apply(NPT_ObjectDeleter<NPT_NetworkInterface>());
-		return false;
-	}
-    
-private:
-    
-    static NPT_Result _GetNetworkInterfaces(NPT_List<NPT_NetworkInterface*>& if_list,
-                                            bool include_localhost = false,
-                                            bool only_localhost = false) {
-        NPT_List<NPT_NetworkInterface*> _if_list;
-        NPT_CHECK(NPT_NetworkInterface::GetNetworkInterfaces(_if_list));
-        
-        NPT_NetworkInterface* iface;
-        while (NPT_SUCCEEDED(_if_list.PopHead(iface))) {
-            // only interested in non PTP & multicast capable interfaces
-            if ((iface->GetAddresses().GetItemCount() == 0) ||
-                !(iface->GetFlags() & NPT_NETWORK_INTERFACE_FLAG_MULTICAST) ||
-                 (iface->GetFlags() & NPT_NETWORK_INTERFACE_FLAG_POINT_TO_POINT)) {
-                delete iface;
-                continue;
-            }
-            
-            NPT_String ip = iface->GetAddresses().GetFirstItem()->GetPrimaryAddress().ToString();
-            
-            if (iface->GetFlags() & NPT_NETWORK_INTERFACE_FLAG_LOOPBACK) {
-                if (include_localhost || only_localhost) {
-                    if_list.Add(iface);
-                    continue;
-                }
-            } else if (ip.Compare("0.0.0.0") && !only_localhost) {
-                if_list.Add(iface);
-                continue;
-            }
-            
-            delete iface;
-        }
-        
-        // cleanup any remaining items in list if we breaked early
-        _if_list.Apply(NPT_ObjectDeleter<NPT_NetworkInterface>());
-        return NPT_SUCCESS;
-    }
-};
-
-#endif // _PLT_UTILITIES_H_
-
-
-
-
-
-
-
-
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltVersion.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltVersion.h
deleted file mode 100644
index 5101009..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltVersion.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Version Info
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-| 
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_VERSION_H_
-#define _PLT_VERSION_H_
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#define PLT_PLATINUM_SDK_VERSION            0x00010513
-#define PLT_PLATINUM_SDK_VERSION_STRING     "1.0.5.13"
-
-#endif // _PLT_VERSION_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltXbox360.h b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltXbox360.h
deleted file mode 100644
index 6bae726..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Headers/PltXbox360.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - XBox 360
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-| 
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_XBOX360_H_
-#define _PLT_XBOX360_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "PltMediaRenderer.h"
-
-class PLT_Xbox360 : public PLT_MediaRenderer
-{
-public:
-    PLT_Xbox360(const char*  uuid        = NULL, 
-                unsigned int port        = 0,
-                bool         port_rebind = false);
-
-protected:
-    // PLT_DeviceHost methods
-    virtual NPT_Result SetupServices();
-    virtual NPT_Result SetupIcons();
-    virtual NPT_Result InitServiceURLs(PLT_Service* service, const char* service_name);
-    
-    virtual NPT_Result Announce(PLT_DeviceData*      device, 
-                                NPT_HttpRequest&     request,
-                                NPT_UdpSocket&       socket,
-                                PLT_SsdpAnnounceType type);
-
-    // PLT_DeviceData methods
-    virtual NPT_Result GetDescription(NPT_String& desc) { return PLT_MediaRenderer::GetDescription(desc); }
-    virtual NPT_Result GetDescription(NPT_XmlElementNode*  parent, 
-                                      NPT_XmlElementNode** device = NULL);
-
-protected:
-    virtual ~PLT_Xbox360();
-
-    virtual NPT_Result AnnouncePresence(NPT_UdpSocket& socket, 
-                                        const char*    serial_number);
-};
-
-#endif /* _PLT_XBOX360_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Platinum b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Platinum
deleted file mode 100644
index 58f5bd4..0000000
Binary files a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Platinum and /dev/null differ
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Resources/Info.plist b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Resources/Info.plist
deleted file mode 100644
index 1cb3e89..0000000
Binary files a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/A/Resources/Info.plist and /dev/null differ
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/Current b/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/Current
deleted file mode 100644
index 8c7e5a6..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-ios/Release/Platinum.framework/Versions/Current
+++ /dev/null
@@ -1 +0,0 @@
-A
\ No newline at end of file
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Headers b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Headers
deleted file mode 100644
index a177d2a..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Headers
+++ /dev/null
@@ -1 +0,0 @@
-Versions/Current/Headers
\ No newline at end of file
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Platinum b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Platinum
deleted file mode 100644
index 0e4a619..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Platinum
+++ /dev/null
@@ -1 +0,0 @@
-Versions/Current/Platinum
\ No newline at end of file
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Resources b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Resources
deleted file mode 100644
index 953ee36..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Resources
+++ /dev/null
@@ -1 +0,0 @@
-Versions/Current/Resources
\ No newline at end of file
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/Neptune.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/Neptune.h
deleted file mode 100644
index 8ea4fa1..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/Neptune.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Toplevel Include
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NEPTUNE_H_
-#define _NEPTUNE_H_
-
-/*----------------------------------------------------------------------
-|   flags
-+---------------------------------------------------------------------*/
-#define NPT_EXTERNAL_USE /* do not expose internal definitions */
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-#include "NptCommon.h"
-#include "NptResults.h"
-#include "NptTypes.h"
-#include "NptConstants.h"
-#include "NptReferences.h"
-#include "NptStreams.h"
-#include "NptBufferedStreams.h"
-#include "NptFile.h"
-#include "NptNetwork.h"
-#include "NptSockets.h"
-#include "NptTime.h"
-#include "NptThreads.h"
-#include "NptSystem.h"
-#include "NptMessaging.h"
-#include "NptQueue.h"
-#include "NptSimpleMessageQueue.h"
-#include "NptSelectableMessageQueue.h"
-#include "NptXml.h"
-#include "NptStrings.h"
-#include "NptArray.h"
-#include "NptList.h"
-#include "NptMap.h"
-#include "NptStack.h"
-#include "NptUri.h"
-#include "NptHttp.h"
-#include "NptDataBuffer.h"
-#include "NptUtils.h"
-#include "NptRingBuffer.h"
-#include "NptBase64.h"
-#include "NptConsole.h"
-#include "NptLogging.h"
-#include "NptSerialPort.h"
-#include "NptVersion.h"
-#include "NptDynamicLibraries.h"
-#include "NptDynamicCast.h"
-#include "NptDigest.h"
-#include "NptCrypto.h"
-
-// optional modules
-#include "NptZip.h"
-#include "NptTls.h"
-
-#endif // _NEPTUNE_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptArray.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptArray.h
deleted file mode 100644
index 721bac8..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptArray.h
+++ /dev/null
@@ -1,522 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Arrays
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-
-#ifndef _NPT_ARRAY_H_
-#define _NPT_ARRAY_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-#if defined(NPT_CONFIG_HAVE_NEW_H)
-#include <new>
-#endif
-#include "NptTypes.h"
-#include "NptResults.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_ARRAY_INITIAL_MAX_SIZE = 128; // bytes
-
-/*----------------------------------------------------------------------
-|   NPT_Array
-+---------------------------------------------------------------------*/
-template <typename T> 
-class NPT_Array 
-{
-public:
-    // types
-    typedef T Element;
-    typedef T* Iterator;
-
-    // methods
-    NPT_Array<T>(): m_Capacity(0), m_ItemCount(0), m_Items(0) {}
-    explicit NPT_Array<T>(NPT_Cardinal count);
-    NPT_Array<T>(NPT_Cardinal count, const T& item);
-    NPT_Array<T>(const T* items, NPT_Cardinal item_count);
-   ~NPT_Array<T>();
-    NPT_Array<T>(const NPT_Array<T>& copy);
-    NPT_Array<T>& operator=(const NPT_Array<T>& copy);
-    bool          operator==(const NPT_Array<T>& other) const;
-    bool          operator!=(const NPT_Array<T>& other) const;
-    NPT_Cardinal GetItemCount() const { return m_ItemCount; }
-    NPT_Result   Add(const T& item);
-    T& operator[](NPT_Ordinal pos)             { return m_Items[pos]; }
-    const T& operator[](NPT_Ordinal pos) const { return m_Items[pos]; }
-    NPT_Result   Erase(Iterator which);
-    NPT_Result   Erase(NPT_Ordinal which) { return Erase(&m_Items[which]); }
-    NPT_Result   Erase(Iterator first, Iterator last);
-    NPT_Result   Erase(NPT_Ordinal first, NPT_Ordinal last) { return Erase(&m_Items[first], &m_Items[last]); }
-    NPT_Result   Insert(Iterator where, const T& item, NPT_Cardinal count = 1);
-    NPT_Result   Reserve(NPT_Cardinal count);
-    NPT_Cardinal GetCapacity() const { return m_Capacity; }
-    NPT_Result   Resize(NPT_Cardinal count);
-    NPT_Result   Resize(NPT_Cardinal count, const T& fill);
-    NPT_Result   Clear();
-    bool         Contains(const T& data) const;
-    Iterator     GetFirstItem() const { return m_ItemCount?&m_Items[0]:NULL; }
-    Iterator     GetLastItem() const  { return m_ItemCount?&m_Items[m_ItemCount-1]:NULL; }
-    Iterator     GetItem(NPT_Ordinal n) { return n<m_ItemCount?&m_Items[n]:NULL; }
-
-    // template list operations
-    // keep these template members defined here because MSV6 does not let
-    // us define them later
-    template <typename X> 
-    NPT_Result Apply(const X& function) const
-    {                                  
-        for (unsigned int i=0; i<m_ItemCount; i++) function(m_Items[i]);
-        return NPT_SUCCESS;
-    }
-
-    template <typename X, typename P>
-    NPT_Result ApplyUntil(const X& function, const P& predicate, bool* match = NULL) const
-    {                                  
-        for (unsigned int i=0; i<m_ItemCount; i++) {
-            NPT_Result return_value;
-            if (predicate(function(m_Items[i]), return_value)) {
-                if (match) *match = true;
-                return return_value;
-            }
-        }
-        if (match) *match = false;
-        return NPT_SUCCESS;
-    }
-
-    template <typename X> 
-    T* Find(const X& predicate, NPT_Ordinal n=0, NPT_Ordinal* pos = NULL) const
-    {
-        if (pos) *pos = -1;
-
-        for (unsigned int i=0; i<m_ItemCount; i++) {
-            if (predicate(m_Items[i])) {
-                if (pos) *pos = i;
-                if (n == 0) return &m_Items[i];
-                --n;
-            }
-        }
-        return NULL;
-    }
-
-protected:
-    // methods
-    T* Allocate(NPT_Cardinal count, NPT_Cardinal& allocated);
-
-    // members
-    NPT_Cardinal m_Capacity;
-    NPT_Cardinal m_ItemCount;
-    T*           m_Items;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::NPT_Array<T>
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Array<T>::NPT_Array(NPT_Cardinal count) :
-    m_Capacity(0),
-    m_ItemCount(0),
-    m_Items(0)
-{
-    Reserve(count);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::NPT_Array<T>
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Array<T>::NPT_Array(const NPT_Array<T>& copy) :
-    m_Capacity(0),
-    m_ItemCount(0),
-    m_Items(0)
-{
-    Reserve(copy.GetItemCount());
-    for (NPT_Ordinal i=0; i<copy.m_ItemCount; i++) {
-        new ((void*)&m_Items[i]) T(copy.m_Items[i]);
-    }
-    m_ItemCount = copy.m_ItemCount;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::NPT_Array<T>
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Array<T>::NPT_Array(NPT_Cardinal count, const T& item) :
-    m_Capacity(0),
-    m_ItemCount(count),
-    m_Items(0)    
-{
-    Reserve(count);
-    for (NPT_Ordinal i=0; i<count; i++) {
-        new ((void*)&m_Items[i]) T(item);
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::NPT_Array<T>
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Array<T>::NPT_Array(const T* items, NPT_Cardinal item_count) :
-    m_Capacity(0),
-    m_ItemCount(item_count),
-    m_Items(0)    
-{
-    Reserve(item_count);
-    for (NPT_Ordinal i=0; i<item_count; i++) {
-        new ((void*)&m_Items[i]) T(items[i]);
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::~NPT_Array<T>
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Array<T>::~NPT_Array()
-{
-    // remove all items
-    Clear();
-
-    // free the memory
-    ::operator delete((void*)m_Items);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::operator=
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Array<T>&
-NPT_Array<T>::operator=(const NPT_Array<T>& copy)
-{
-    // do nothing if we're assigning to ourselves
-    if (this == &copy) return *this;
-
-    // destroy all elements
-    Clear();
-
-    // copy all elements from the other object
-    Reserve(copy.GetItemCount());
-    m_ItemCount = copy.m_ItemCount;
-    for (NPT_Ordinal i=0; i<copy.m_ItemCount; i++) {
-        new ((void*)&m_Items[i]) T(copy.m_Items[i]);
-    }
-
-    return *this;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Clear
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_Array<T>::Clear()
-{
-    // destroy all items
-    for (NPT_Ordinal i=0; i<m_ItemCount; i++) {
-        m_Items[i].~T();
-    }
-
-    m_ItemCount = 0;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Allocate
-+---------------------------------------------------------------------*/
-template <typename T>
-T*
-NPT_Array<T>::Allocate(NPT_Cardinal count, NPT_Cardinal& allocated) 
-{
-    if (m_Capacity) {
-        allocated = 2*m_Capacity;
-    } else {
-        // start with just enough elements to fill 
-        // NPT_ARRAY_INITIAL_MAX_SIZE worth of memory
-        allocated = NPT_ARRAY_INITIAL_MAX_SIZE/sizeof(T);
-        if (allocated == 0) allocated = 1;
-    }
-    if (allocated < count) allocated = count;
-
-    // allocate the items
-    return (T*)::operator new(allocated*sizeof(T));
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Reserve
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_Array<T>::Reserve(NPT_Cardinal count)
-{
-    if (count <= m_Capacity) return NPT_SUCCESS;
-
-    // (re)allocate the items
-    NPT_Cardinal new_capacity;
-    T* new_items = Allocate(count, new_capacity);
-    if (new_items == NULL) {
-        return NPT_ERROR_OUT_OF_MEMORY;
-    }
-    if (m_ItemCount && m_Items) {
-        for (unsigned int i=0; i<m_ItemCount; i++) {
-            // construct the copy
-            new ((void*)&new_items[i])T(m_Items[i]);
-
-            // destroy the item
-            m_Items[i].~T();
-        }
-    }
-    ::operator delete((void*)m_Items);
-    m_Items = new_items;
-    m_Capacity = new_capacity;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Add
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Result
-NPT_Array<T>::Add(const T& item)
-{
-    // ensure capacity
-    NPT_Result result = Reserve(m_ItemCount+1);
-    if (result != NPT_SUCCESS) return result;
-
-    // store the item
-    new ((void*)&m_Items[m_ItemCount++]) T(item);
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Erase
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Result
-NPT_Array<T>::Erase(Iterator which)
-{
-    return Erase(which, which);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Erase
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_Array<T>::Erase(Iterator first, Iterator last)
-{
-    // check parameters
-    if (first == NULL || last == NULL) return NPT_ERROR_INVALID_PARAMETERS;
-
-    // check the bounds
-    NPT_Ordinal first_index = (NPT_Ordinal)(NPT_POINTER_TO_LONG(first-m_Items));
-    NPT_Ordinal last_index  = (NPT_Ordinal)(NPT_POINTER_TO_LONG(last-m_Items));
-    if (first_index >= m_ItemCount ||
-        last_index  >= m_ItemCount ||
-        first_index > last_index) {
-        return NPT_ERROR_INVALID_PARAMETERS;
-    }
-
-    // shift items to the left
-    NPT_Cardinal interval = last_index-first_index+1;
-    NPT_Cardinal shifted = m_ItemCount-last_index-1;
-    for (NPT_Ordinal i=first_index; i<first_index+shifted; i++) {
-        m_Items[i] = m_Items[i+interval];
-    }
-
-    // destruct the remaining items
-    for (NPT_Ordinal i=first_index+shifted; i<m_ItemCount; i++) {
-        m_Items[i].~T();
-    }
-
-    // update the item count
-    m_ItemCount -= interval;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Insert
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_Array<T>::Insert(Iterator where, const T& item, NPT_Cardinal repeat)
-{
-    // check bounds
-    NPT_Ordinal where_index = where?((NPT_Ordinal)NPT_POINTER_TO_LONG(where-m_Items)):m_ItemCount;
-    if (where > &m_Items[m_ItemCount] || repeat == 0) return NPT_ERROR_INVALID_PARAMETERS;
-
-    NPT_Cardinal needed = m_ItemCount+repeat;
-    if (needed > m_Capacity) {
-        // allocate more memory
-        NPT_Cardinal new_capacity;
-        T* new_items = Allocate(needed, new_capacity);
-        if (new_items == NULL) return NPT_ERROR_OUT_OF_MEMORY;
-        m_Capacity = new_capacity;
-
-        // move the items before the insertion point
-        for (NPT_Ordinal i=0; i<where_index; i++) {
-            new((void*)&new_items[i])T(m_Items[i]);
-            m_Items[i].~T();
-        }
-
-        // move the items after the insertion point
-        for (NPT_Ordinal i=where_index; i<m_ItemCount; i++) {
-            new((void*)&new_items[i+repeat])T(m_Items[i]);
-            m_Items[i].~T();
-        }
-
-        // use the new items instead of the current ones
-        ::operator delete((void*)m_Items);
-        m_Items = new_items;
-    } else {
-        // shift items after the insertion point to the right
-        for (NPT_Ordinal i=m_ItemCount; i>where_index; i--) {
-            new((void*)&m_Items[i+repeat-1])T(m_Items[i-1]);
-            m_Items[i-1].~T();
-        }
-    }
-
-    // insert the new items
-    for (NPT_Cardinal i=where_index; i<where_index+repeat; i++) {
-        new((void*)&m_Items[i])T(item);
-    }
-
-    // update the item count
-    m_ItemCount += repeat;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Resize
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_Array<T>::Resize(NPT_Cardinal size)
-{
-    if (size < m_ItemCount) {
-        // shrink
-        for (NPT_Ordinal i=size; i<m_ItemCount; i++) {
-            m_Items[i].~T();
-        }
-        m_ItemCount = size;
-    } else if (size > m_ItemCount) {
-        return Resize(size, T());
-    }
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Resize
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_Array<T>::Resize(NPT_Cardinal size, const T& fill)
-{
-    if (size < m_ItemCount) {
-        return Resize(size);
-    } else if (size > m_ItemCount) {
-        Reserve(size);
-        for (NPT_Ordinal i=m_ItemCount; i<size; i++) {
-            new ((void*)&m_Items[i]) T(fill);
-        }
-        m_ItemCount = size;
-    }
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::Contains
-+---------------------------------------------------------------------*/
-template <typename T>
-bool
-NPT_Array<T>::Contains(const T& data) const
-{
-    for (NPT_Ordinal i=0; i<m_ItemCount; i++) {
-        if (m_Items[i] == data) return true;
-    }
-
-    return false;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::operator==
-+---------------------------------------------------------------------*/
-template <typename T>
-bool
-NPT_Array<T>::operator==(const NPT_Array<T>& other) const
-{
-    // we need the same number of items
-    if (other.m_ItemCount != m_ItemCount) return false;
-
-    // compare all items
-    for (NPT_Ordinal i=0; i<m_ItemCount; i++) {
-        if (!(m_Items[i] == other.m_Items[i])) return false;
-    }
-
-    return true;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Array<T>::operator!=
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-bool
-NPT_Array<T>::operator!=(const NPT_Array<T>& other) const
-{
-    return !(*this == other);
-}
-
-#endif // _NPT_ARRAY_H_
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptAutomaticCleaner.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptAutomaticCleaner.h
deleted file mode 100644
index 19b699b..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptAutomaticCleaner.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Automatic Cleaner
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-
-#ifndef _NPT_AUTOMATIC_CLEANER_H_
-#define _NPT_AUTOMATIC_CLEANER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptList.h"
-
-/*----------------------------------------------------------------------
-|   NPT_AutomaticCleaner
-+---------------------------------------------------------------------*/
-class NPT_AutomaticCleaner
-{
-public:
-    class Singleton {
-    public:
-        virtual ~Singleton() {}
-    };
-    
-    // singleton management
-    class Cleaner {
-        static Cleaner AutomaticCleaner;
-        ~Cleaner() {
-            if (Instance) {
-                delete Instance;
-                Instance = NULL;
-            }
-        }
-    };
-    static NPT_AutomaticCleaner* GetInstance();
-    
-    // destructor
-    ~NPT_AutomaticCleaner();
-    
-    // methods
-    NPT_Result Register(Singleton* singleton);
-    NPT_Result RegisterTlsContext(Singleton* singleton);
-    NPT_Result RegisterHttpConnectionManager(Singleton* singleton);
-    
-private:
-    // class members
-    static NPT_AutomaticCleaner* Instance;
-    
-    // constructor
-    NPT_AutomaticCleaner();
-    
-    // members
-    NPT_List<Singleton*> m_Singletons;
-    Singleton* m_TlsContext;
-    Singleton* m_HttpConnectionManager;
-};
-
-#endif // _NPT_AUTOMATIC_CLEANER_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptAutoreleasePool.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptAutoreleasePool.h
deleted file mode 100644
index cc63664..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptAutoreleasePool.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - AutoreleasePool
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_AUTORELEASE_POOL_H_
-#define _NPT_AUTORELEASE_POOL_H_
-
-/*----------------------------------------------------------------------
-|   NPT_AutoreleasePoolInterface
-+---------------------------------------------------------------------*/
-class NPT_AutoreleasePoolInterface 
-{
-public:
-    virtual ~NPT_AutoreleasePoolInterface() {}
-};
-
-/*----------------------------------------------------------------------
-|   NPT_AutoreleasePool
-+---------------------------------------------------------------------*/
-class NPT_AutoreleasePool : public NPT_AutoreleasePoolInterface 
-{
-public:
-    NPT_AutoreleasePool();
-    virtual ~NPT_AutoreleasePool();
-
-private:
-    NPT_AutoreleasePoolInterface* m_Delegate;
-};
-
-#endif // _NPT_AUTORELEASE_POOL_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptBase64.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptBase64.h
deleted file mode 100644
index 89950de..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptBase64.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Base64
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-
-#ifndef _NPT_BASE64_H_
-#define _NPT_BASE64_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptDataBuffer.h"
-#include "NptStrings.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const NPT_Cardinal NPT_BASE64_MIME_BLOCKS_PER_LINE = 19;
-const NPT_Cardinal NPT_BASE64_PEM_BLOCKS_PER_LINE  = 16;
-
-/*----------------------------------------------------------------------
-|   NPT_Base64
-+---------------------------------------------------------------------*/
-class NPT_Base64 {
-public:
-    // class methods
-    static NPT_Result Decode(const char*     base64, 
-                             NPT_Size        size,
-                             NPT_DataBuffer& data,
-                             bool            url_safe = false);
-    static NPT_Result Encode(const NPT_Byte* data, 
-                             NPT_Size        size, 
-                             NPT_String&     base64, 
-                             NPT_Cardinal    max_blocks_per_line = 0, 
-                             bool            url_safe = false);
-
-private: 
-    // this class is purely static
-    NPT_Base64();
-};
-
-#endif // _NPT_BASE64_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptBufferedStreams.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptBufferedStreams.h
deleted file mode 100644
index 1c0e0d6..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptBufferedStreams.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Buffered Byte Stream
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_BUFFERED_STREAMS_H_
-#define _NPT_BUFFERED_STREAMS_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptStreams.h"
-#include "NptTypes.h"
-#include "NptConstants.h"
-#include "NptStrings.h"
-#include "NptDebug.h"
-
-/*----------------------------------------------------------------------
-|   NPT_BufferedStream
-+---------------------------------------------------------------------*/
-const NPT_Size NPT_BUFFERED_BYTE_STREAM_DEFAULT_SIZE = 4096;
-
-/*----------------------------------------------------------------------
-|   NPT_BufferedInputStream
-+---------------------------------------------------------------------*/
-class NPT_BufferedInputStream : public NPT_InputStream
-{
-public:
-    // constructors and destructor
-    NPT_BufferedInputStream(NPT_InputStreamReference& stream,
-                            NPT_Size buffer_size = NPT_BUFFERED_BYTE_STREAM_DEFAULT_SIZE);
-    virtual ~NPT_BufferedInputStream();
-
-    // methods
-    virtual NPT_Result ReadLine(NPT_String& line,
-                                NPT_Size    max_chars = 4096,
-                                bool        break_on_cr = false);
-    virtual NPT_Result ReadLine(char*     buffer, 
-                                NPT_Size  buffer_size,
-                                NPT_Size* chars_read = NULL,
-                                bool      break_on_cr = false);
-    virtual NPT_Result SetBufferSize(NPT_Size size, bool force = false);
-    virtual NPT_Result Peek(void*     buffer, 
-                            NPT_Size  bytes_to_read, 
-                            NPT_Size* bytes_read);
-                              
-    // NPT_InputStream methods
-    NPT_Result Read(void*     buffer, 
-                    NPT_Size  bytes_to_read, 
-                    NPT_Size* bytes_read = NULL);
-    NPT_Result Seek(NPT_Position offset);
-    NPT_Result Tell(NPT_Position& offset);
-    NPT_Result GetSize(NPT_LargeSize& size);
-    NPT_Result GetAvailable(NPT_LargeSize& available);
-
-protected:
-    // members
-    NPT_InputStreamReference m_Source;
-    NPT_Position             m_Position;
-    bool                     m_SkipNewline;
-    bool                     m_Eos;
-    struct {
-        NPT_Byte* data;
-        NPT_Size  offset;
-        NPT_Size  valid;
-        NPT_Size  size;
-    } m_Buffer;
-
-    // methods
-    virtual NPT_Result FillBuffer();
-    virtual NPT_Result ReleaseBuffer();
-};
-
-typedef NPT_Reference<NPT_BufferedInputStream> NPT_BufferedInputStreamReference;
-
-#endif // _NPT_BUFFERED_STREAMS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptCocoaMessageQueue.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptCocoaMessageQueue.h
deleted file mode 100644
index cd3e89b..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptCocoaMessageQueue.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*****************************************************************
-|
-|      Neptune - Cocoa Message Queue
-|
-|      (c) 2001-2008 Gilles Boccon-Gibod
-|      Author: Gilles Boccon-Gibod (bok at bok.net)
-|
-****************************************************************/
-
-#ifndef _NPT_COCOA_MESSAGE_QUEUE_
-#define _NPT_COCOA_MESSAGE_QUEUE_
-
-/*----------------------------------------------------------------------
-|       includes
-+---------------------------------------------------------------------*/
-#include "NptStrings.h"
-#include "NptMessaging.h"
-#include "NptSimpleMessageQueue.h"
-
-/*----------------------------------------------------------------------
-|       NPT_CocoaMessageQueue
-+---------------------------------------------------------------------*/
-class NPT_CocoaMessageQueue : public NPT_MessageQueue
-{
-public:
-    NPT_CocoaMessageQueue();
-    ~NPT_CocoaMessageQueue();
-
-    // NPT_MessageQueue methods
-    virtual NPT_Result QueueMessage(NPT_Message*        message,
-                                    NPT_MessageHandler* handler);
-    virtual NPT_Result PumpMessage(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE);
-
-    // methods
-    NPT_Result HandleMessage(NPT_Message* message, NPT_MessageHandler* handler);
-};
-
-#endif /* _NPT_COCOA_MESSAGE_QUEUE_ */
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptCommon.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptCommon.h
deleted file mode 100644
index 9137d31..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptCommon.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Common Definitions
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_COMMON_H_
-#define _NPT_COMMON_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptResults.h"
-
-/*----------------------------------------------------------------------
-|   NPT_ObjectDeleter
-+---------------------------------------------------------------------*/
-template <class T>
-class NPT_ObjectDeleter {
-public:
-    void operator()(T* object) const {
-        delete object;
-    }
-};
-
-/*----------------------------------------------------------------------
-|   NPT_ObjectComparator
-+---------------------------------------------------------------------*/
-template <class T>
-class NPT_ObjectComparator {
-public:
-    NPT_ObjectComparator(T& object) : m_Object(object) {}
-    bool operator()(const T& object) const {
-        return object == m_Object;
-    }
-private:
-    T& m_Object;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_ContainerFind
-+---------------------------------------------------------------------*/
-template <typename T, typename P>
-NPT_Result NPT_ContainerFind(T&                   container, 
-                             const P&             predicate, 
-                             typename T::Element& item, 
-                             NPT_Ordinal          n=0) 
-{
-    typename T::Iterator found = container.Find(predicate, n);
-    if (found) {
-        item = *found;
-        return NPT_SUCCESS;
-    } else {
-        return NPT_ERROR_NO_SUCH_ITEM;
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_ContainerFind
-+---------------------------------------------------------------------*/
-template <typename T, typename P>
-NPT_Result NPT_ContainerFind(T&                    container, 
-                             const P&              predicate, 
-                             typename T::Iterator& iter, 
-                             NPT_Ordinal           n=0) 
-{
-    iter = container.Find(predicate, n);
-    return iter?NPT_SUCCESS:NPT_ERROR_NO_SUCH_ITEM;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_UntilResultEquals
-+---------------------------------------------------------------------*/
-class NPT_UntilResultEquals
-{
-public:
-    // methods
-    NPT_UntilResultEquals(NPT_Result condition_result, 
-                          NPT_Result return_value = NPT_SUCCESS) :
-      m_ConditionResult(condition_result),
-      m_ReturnValue(return_value) {}
-    bool operator()(NPT_Result result, NPT_Result& return_value) const {
-        if (result == m_ConditionResult) {
-            return_value = m_ReturnValue;
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-private:
-    // members
-    NPT_Result m_ConditionResult;
-    NPT_Result m_ReturnValue;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_UntilResultNotEquals
-+---------------------------------------------------------------------*/
-class NPT_UntilResultNotEquals
-{
-public:
-    // methods
-    NPT_UntilResultNotEquals(NPT_Result condition_result) :
-      m_ConditionResult(condition_result) {}
-    bool operator()(NPT_Result result, NPT_Result& return_value) const {
-        if (result != m_ConditionResult) {
-            return_value = result;
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-private:
-    // members
-    NPT_Result m_ConditionResult;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_PropertyValue
-+---------------------------------------------------------------------*/
-class NPT_PropertyValue
-{
- public:
-    // typedefs
-    typedef enum {UNKNOWN, INTEGER, STRING} Type;
-
-    // methods
-    NPT_PropertyValue() : m_Type(UNKNOWN), m_Integer(0) {}
-    NPT_PropertyValue(int value)         : m_Type(INTEGER), m_Integer(value) {}
-    NPT_PropertyValue(const char* value) : m_Type(STRING),  m_String(value)  {}
-
-    // members
-    Type m_Type;
-    union {
-        int         m_Integer;
-        const char* m_String;
-    };
-};
-
-#endif // _NPT_COMMON_H_
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptConfig.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptConfig.h
deleted file mode 100644
index d51f67f..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptConfig.h
+++ /dev/null
@@ -1,353 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Configuration
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_CONFIG_H_
-#define _NPT_CONFIG_H_
-
-/*----------------------------------------------------------------------
-|   defaults
-+---------------------------------------------------------------------*/
-#define NPT_CONFIG_HAVE_ASSERT_H
-#define NPT_CONFIG_HAVE_STD_C
-#define NPT_CONFIG_HAVE_POSIX_TIME
-#define NPT_CONFIG_HAVE_ASSERT_H
-#define NPT_CONFIG_HAVE_STDLIB_H
-#define NPT_CONFIG_HAVE_STDIO_H
-#define NPT_CONFIG_HAVE_STDARG_H
-#define NPT_CONFIG_HAVE_STDINT_H
-#define NPT_CONFIG_HAVE_STRING_H
-#define NPT_CONFIG_HAVE_LIMITS_H
-
-/*----------------------------------------------------------------------
-|   standard C runtime
-+---------------------------------------------------------------------*/
-#if defined(NPT_CONFIG_HAVE_STD_C)
-#define NPT_CONFIG_HAVE_MALLOC
-#define NPT_CONFIG_HAVE_CALLOC
-#define NPT_CONFIG_HAVE_REALLOC
-#define NPT_CONFIG_HAVE_FREE
-#define NPT_CONFIG_HAVE_MEMCPY
-#define NPT_CONFIG_HAVE_MEMSET
-#define NPT_CONFIG_HAVE_MEMCMP
-#define NPT_CONFIG_HAVE_GETENV
-#define NPT_CONFIG_HAVE_SETENV
-#define NPT_CONFIG_HAVE_UNSETENV
-#define NPT_CONFIG_HAVE_READDIR_R
-#endif /* NPT_CONFIG_HAS_STD_C */
-
-#if defined(NPT_CONFIG_HAVE_POSIX_TIME)
-#define NPT_CONFIG_HAVE_GMTIME
-#define NPT_CONFIG_HAVE_GMTIME_R
-#define NPT_CONFIG_HAVE_LOCALTIME
-#define NPT_CONFIG_HAVE_LOCALTIME_R
-#endif
-
-#if defined(NPT_CONFIG_HAVE_STRING_H)
-#define NPT_CONFIG_HAVE_STRCMP
-#define NPT_CONFIG_HAVE_STRNCMP
-#define NPT_CONFIG_HAVE_STRDUP
-#define NPT_CONFIG_HAVE_STRLEN
-#define NPT_CONFIG_HAVE_STRCPY
-#define NPT_CONFIG_HAVE_STRNCPY
-#endif /* NPT_CONFIG_HAVE_STRING_H */
-
-#if defined(NPT_CONFIG_HAVE_STDIO_H)
-#define NPT_CONFIG_HAVE_SPRINTF
-#define NPT_CONFIG_HAVE_SNPRINTF
-#define NPT_CONFIG_HAVE_VSPRINTF
-#define NPT_CONFIG_HAVE_VSNPRINTF
-#endif /* NPT_CONFIG_HAVE_STDIO_H */
-
-#if defined(NPT_CONFIG_HAVE_LIMITS_H)
-#define NPT_CONFIG_HAVE_INT_MIN
-#define NPT_CONFIG_HAVE_INT_MAX
-#define NPT_CONFIG_HAVE_UINT_MAX
-#define NPT_CONFIG_HAVE_LONG_MIN
-#define NPT_CONFIG_HAVE_LONG_MAX
-#define NPT_CONFIG_HAVE_ULONG_MAX
-#endif
-
-/*----------------------------------------------------------------------
-|   standard C++ runtime
-+---------------------------------------------------------------------*/
-#define NPT_CONFIG_HAVE_NEW_H
-
-/*----------------------------------------------------------------------
-|   sockets
-+---------------------------------------------------------------------*/
-#define NPT_CONFIG_HAVE_SOCKADDR_SA_LEN
-
-/*----------------------------------------------------------------------
-|   platform specifics
-+---------------------------------------------------------------------*/
-/* Windows 32 */
-#if defined(_WIN32) || defined(_XBOX)
-#if !defined(STRICT)
-#define STRICT
-#endif
-#endif
-
-/* XBox */
-#if defined(_XBOX)
-#define NPT_CONFIG_THREAD_STACK_SIZE 0x10000
-#endif
-
-/* QNX */
-#if defined(__QNX__)
-#define NPT_CONFIG_HAVE_GETADDRINFO
-#endif
-
-/* cygwin */
-#if defined(__CYGWIN__)
-#undef NPT_CONFIG_HAVE_SOCKADDR_SA_LEN
-#endif
-
-/* linux */
-#if defined(__linux__)
-#define NPT_CONFIG_HAVE_GETADDRINFO
-#undef NPT_CONFIG_HAVE_SOCKADDR_SA_LEN
-#endif
-
-/* symbian */
-#if defined(__SYMBIAN32__)
-/* If defined, specify the stack size of each NPT_Thread. */
-#define NPT_CONFIG_THREAD_STACK_SIZE   0x14000
-#endif
-
-/* android */
-#if defined(ANDROID)
-#define NPT_CONFIG_HAVE_GETADDRINFO
-#undef NPT_CONFIG_HAVE_SOCKADDR_SA_LEN
-#endif
-
-/* OSX and iOS */
-#if defined(__APPLE__)
-#define NPT_CONFIG_HAVE_GETADDRINFO
-#define NPT_CONFIG_HAVE_AUTORELEASE_POOL
-#define NPT_CONFIG_HAVE_SYSTEM_LOG_CONFIG
-#endif
-
-/*----------------------------------------------------------------------
-|   compiler specifics
-+---------------------------------------------------------------------*/
-/* GCC */
-#if defined(__GNUC__)
-#define NPT_LocalFunctionName __FUNCTION__
-#define NPT_COMPILER_UNUSED(p) (void)p
-#else
-#define NPT_COMPILER_UNUSED(p) 
-#endif
-
-/* TriMedia C/C++ Compiler */
-#if defined(__TCS__)
-#undef NPT_CONFIG_HAVE_ASSERT_H
-#undef NPT_CONFIG_HAVE_SNPRINTF
-#undef NPT_CONFIG_HAVE_VSNPRINTF
-#endif
-
-/* palmos compiler */
-#if defined(__PALMOS__)
-#if __PALMOS__ <= 0x05000000
-#undef NPT_CONFIG_HAVE_ASSERT_H
-#undef NPT_CONFIG_HAVE_SNPRINTF
-#undef NPT_CONFIG_HAVE_VSNPRINTF
-#endif
-#endif
-
-/* Microsoft C/C++ Compiler */
-#if defined(_MSC_VER)
-#undef NPT_CONFIG_HAVE_STDINT_H
-#define NPT_CONFIG_HAVE_GETADDRINFO
-#define NPT_CONFIG_STAT_ST_CTIME_IS_ST_BIRTHTIME
-#define NPT_FORMAT_64 "I64"
-#define NPT_CONFIG_INT64_TYPE __int64
-#define NPT_INT64_MIN _I64_MIN
-#define NPT_INT64_MAX _I64_MAX
-#define NPT_UINT64_MAX _UI64_MAX
-#define NPT_INT64_C(_x) _x##i64
-#define NPT_UINT64_C(_x) _x##ui64
-#define NPT_LocalFunctionName __FUNCTION__
-#if !defined(_WIN32_WCE)
-#define NPT_fseek _fseeki64
-#define NPT_ftell _ftelli64
-#else
-#define NPT_fseek(a,b,c) fseek((a),(long)(b), (c))
-#define NPT_ftell ftell
-#endif
-#define NPT_stat  NPT_stat_utf8
-#define NPT_stat_struct struct __stat64
-#if defined(_WIN64)
-typedef __int64 NPT_PointerLong;
-#else
-#if _MSC_VER >= 1400
-typedef __w64 long NPT_PointerLong;
-#else
-typedef long NPT_PointerLong;
-#endif
-#endif
-#define NPT_POINTER_TO_LONG(_p) ((NPT_PointerLong) (_p) )
-#if _MSC_VER >= 1400 && !defined(_WIN32_WCE)
-#define gmtime_r(a,b) gmtime_s(a,b)
-#define localtime_r(a,b) localtime_s(b,a)
-#define NPT_CONFIG_HAVE_FOPEN_S
-#define NPT_CONFIG_HAVE_FSOPEN
-#define NPT_CONFIG_HAVE_SHARE_H
-#define NPT_vsnprintf(s,c,f,a)  _vsnprintf_s(s,c,_TRUNCATE,f,a)
-#define NPT_snprintf(s,c,f,...) _snprintf_s(s,c,_TRUNCATE,f,__VA_ARGS__)
-#define NPT_strncpy(d,s,c)       strncpy_s(d,c+1,s,c)
-#define NPT_strcpy(d,s)          strcpy_s(d,strlen(s)+1,s)
-#undef NPT_CONFIG_HAVE_GETENV
-#define NPT_CONFIG_HAVE_DUPENV_S
-#define dupenv_s _dupenv_s
-#undef NPT_CONFIG_HAVE_SETENV
-#undef NPT_CONFIG_HAVE_UNSETENV
-#define NPT_CONFIG_HAVE_PUTENV_S
-#define putenv_s _putenv_s
-#else
-#undef NPT_CONFIG_HAVE_GMTIME_R
-#undef NPT_CONFIG_HAVE_LOCALTIME_R
-#define NPT_vsnprintf  _vsnprintf
-#define NPT_snprintf   _snprintf
-#endif
-#if defined(_DEBUG)
-#define _CRTDBG_MAP_ALLOC
-#endif
-#endif
-
-/* Windows CE */
-#if defined(_WIN32_WCE)
-#if defined(NPT_CONFIG_HAVE_FOPEN_S)
-#undef NPT_CONFIG_HAVE_FOPEN_S
-#endif
-#endif
-
-/* Symbian */
-#if defined(__SYMBIAN32__)
-#undef NPT_CONFIG_HAVE_NEW_H
-#include "e32std.h"
-#define explicit
-#define NPT_fseek fseek  // no fseeko ?
-#define NPT_ftell ftell  // no ftello ?
-#endif
-
-/* Android */
-#if defined(ANDROID)
-#if !defined(NPT_CONFIG_NO_RTTI)
-#define NPT_CONFIG_NO_RTTI
-#endif
-#endif
-
-/* OSX and iOS */
-#if defined(__APPLE__)
-#include <TargetConditionals.h>
-#include <AvailabilityMacros.h>
-#define NPT_CONFIG_HAVE_NET_IF_DL_H
-#define NPT_CONFIG_HAVE_SOCKADDR_DL
-#if !defined(TARGET_OS_IPHONE) || !TARGET_OS_IPHONE
-#define NPT_CONFIG_HAVE_NET_IF_TYPES_H
-#if defined(MAC_OS_X_VERSION_10_6) && (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6)
-#define NPT_CONFIG_HAVE_STAT_ST_BIRTHTIME
-#endif
-#define NPT_CONFIG_HAVE_DEV_URANDOM
-#endif
-#endif
-
-/*----------------------------------------------------------------------
-|   defaults
-+---------------------------------------------------------------------*/
-#if !defined(NPT_FORMAT_64)
-#define NPT_FORMAT_64 "ll"
-#endif
-
-#if !defined(NPT_POINTER_TO_LONG)
-#define NPT_POINTER_TO_LONG(_p) ((long)(_p))
-#endif
-
-#if !defined(NPT_CONFIG_INT64_TYPE)
-#define NPT_CONFIG_INT64_TYPE long long
-#endif
-
-#if !defined(NPT_INT64_C)
-#define NPT_INT64_C(_x) _x##LL
-#endif
-
-#if !defined(NPT_UINT64_C)
-#define NPT_UINT64_C(_x) _x##ULL
-#endif
-
-#if !defined(NPT_snprintf)
-#define NPT_snprintf snprintf
-#endif
-
-#if !defined(NPT_strcpy)
-#define NPT_strcpy strcpy
-#endif
-
-#if !defined(NPT_strncpy)
-#define NPT_strncpy strncpy
-#endif
-
-#if !defined(NPT_vsnprintf)
-#define NPT_vsnprintf vsnprintf
-#endif
-
-#if !defined(NPT_LocalFunctionName)
-#define NPT_LocalFunctionName (NULL)
-#endif
-
-#if !defined(NPT_CONFIG_THREAD_STACK_SIZE)
-#define NPT_CONFIG_THREAD_STACK_SIZE 0
-#endif
-
-#if !defined(NPT_fseek)
-#define NPT_fseek fseeko
-#endif
-
-#if !defined(NPT_ftell)
-#define NPT_ftell ftello
-#endif
-
-#if !defined(NPT_stat)
-#define NPT_stat stat
-#endif
-
-#if !defined(NPT_stat_struct)
-#define NPT_stat_struct struct stat
-#endif
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#if defined(DMALLOC)
-#include <dmalloc.h>
-#endif
-
-#endif // _NPT_CONFIG_H_ 
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptConsole.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptConsole.h
deleted file mode 100644
index 6502a79..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptConsole.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Console
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-/** @file
-* Header file for console support
-*/
-
-#ifndef _NPT_CONSOLE_H_
-#define _NPT_CONSOLE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptResults.h"
-
-/*----------------------------------------------------------------------
-|   prototypes
-+---------------------------------------------------------------------*/
-class NPT_Console {
-public:
-    // class methods
-    static void Output(const char* message);
-    static void OutputF(const char* format, ...);
-};
-
-
-#endif /* _NPT_CONSOLE_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptConstants.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptConstants.h
deleted file mode 100644
index 6618bf8..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptConstants.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Constants
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_CONSTANTS_H_
-#define _NPT_CONSTANTS_H_
-
-/*----------------------------------------------------------------------
-|   constants       
-+---------------------------------------------------------------------*/
-#ifndef NULL
-#define NULL 0
-#endif
-
-const int NPT_TIMEOUT_INFINITE = -1;
-
-#endif // _NPT_CONSTANTS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptCrypto.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptCrypto.h
deleted file mode 100644
index 04eb58f..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptCrypto.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Crypto
-|
-| Copyright (c) 2002-2010, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_CRYPTO_H_
-#define _NPT_CRYPTO_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptDataBuffer.h"
-
-/*----------------------------------------------------------------------
-|   NPT_BlockCipher
-+---------------------------------------------------------------------*/
-class NPT_BlockCipher {
-public:
-    // types
-    typedef enum {
-        AES_128
-    } Algorithm;
-    
-    typedef enum {
-        ENCRYPT,
-        DECRYPT
-    } Direction;
-    
-    // factory
-    static NPT_Result Create(Algorithm         algorithm, 
-                             Direction         direction,
-                             const NPT_UInt8*  key,
-                             NPT_Size          key_size,
-                             NPT_BlockCipher*& cipher);
-    
-    // methods
-    virtual           ~NPT_BlockCipher() {}
-    virtual NPT_Size   GetBlockSize() = 0;
-    virtual Direction  GetDirection() = 0;
-    virtual Algorithm  GetAlgorithm() = 0;
-    virtual NPT_Result ProcessBlock(const NPT_UInt8* input, NPT_UInt8* output) = 0;
-    /**
-     * @param iv Initial vector (same size as cipher block size), or NULL for an IV made up of all zeros.
-     */
-    virtual NPT_Result ProcessCbc(const NPT_UInt8* input, NPT_Size input_size, const NPT_UInt8* iv, NPT_DataBuffer& output);
-    
-protected:
-    NPT_BlockCipher() {} // don't instantiate directly
-};
-
-#endif // _NPT_CRYPTO_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDataBuffer.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDataBuffer.h
deleted file mode 100644
index 7e57c01..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDataBuffer.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Datagram Packets
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_DATA_BUFFER_H_
-#define _NPT_DATA_BUFFER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptConstants.h"
-
-/*----------------------------------------------------------------------
-|   NPT_DataBuffer
-+---------------------------------------------------------------------*/
-class NPT_DataBuffer 
-{
- public:
-    // constructors & destructor
-    NPT_DataBuffer();              // size unknown until first set 
-    NPT_DataBuffer(NPT_Size size); // initial size specified
-    NPT_DataBuffer(const void* data, NPT_Size size, bool copy = true); // initial data and size specified
-    NPT_DataBuffer(const NPT_DataBuffer& other);
-    virtual ~NPT_DataBuffer();
-
-    // operators
-    NPT_DataBuffer& operator=(const NPT_DataBuffer& copy);
-    bool            operator==(const NPT_DataBuffer& other) const;
-
-    // data buffer handling methods
-    virtual NPT_Result SetBuffer(NPT_Byte* buffer, NPT_Size bufferSize);
-    virtual NPT_Result SetBufferSize(NPT_Size bufferSize);
-    virtual NPT_Size   GetBufferSize() const { return m_BufferSize; }
-    virtual NPT_Result Reserve(NPT_Size size);
-    virtual NPT_Result Clear();
-
-    // data handling methods
-    virtual const NPT_Byte* GetData() const { return m_Buffer; }
-    virtual NPT_Byte*       UseData() { return m_Buffer; };
-    virtual NPT_Size        GetDataSize() const { return m_DataSize; }
-    virtual NPT_Result      SetDataSize(NPT_Size size);
-    virtual NPT_Result      SetData(const NPT_Byte* data, NPT_Size dataSize);
-
- protected:
-    // members
-    bool      m_BufferIsLocal;
-    NPT_Byte* m_Buffer;
-    NPT_Size  m_BufferSize;
-    NPT_Size  m_DataSize;
-
-    // methods
-    NPT_Result ReallocateBuffer(NPT_Size size);
-};
-
-#endif // _NPT_DATA_BUFFER_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDebug.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDebug.h
deleted file mode 100644
index d4973a2..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDebug.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Debug Utilities
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_DEBUG_H_
-#define _NPT_DEBUG_H_
-
-/*----------------------------------------------------------------------
-|    includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-
-/*----------------------------------------------------------------------
-|    standard macros
-+---------------------------------------------------------------------*/
-#if defined(NPT_CONFIG_HAVE_ASSERT_H) && defined(NPT_DEBUG)
-#include <assert.h>
-#define NPT_ASSERT(x) assert(x)
-#else
-#define NPT_ASSERT(x) ((void)0)
-#endif
-
-/*----------------------------------------------------------------------
-|   NPT_Debug
-+---------------------------------------------------------------------*/
-extern void NPT_Debug(const char* format, ...);
-extern void NPT_DebugOutput(const char* message);
-
-#endif // _NPT_DEBUG_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDefs.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDefs.h
deleted file mode 100644
index e69de29..0000000
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDigest.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDigest.h
deleted file mode 100644
index 85b744c..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDigest.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Message Digests
-|
-| Copyright (c) 2002-2010, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_DIGEST_H_
-#define _NPT_DIGEST_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptDataBuffer.h"
-
-/*----------------------------------------------------------------------
-|   NPT_Digest
-+---------------------------------------------------------------------*/
-class NPT_Digest {
-public:
-    // types
-    typedef enum {
-        ALGORITHM_SHA1,
-        ALGORITHM_SHA256,
-        ALGORITHM_MD5
-    } Algorithm;
-    
-    // factory
-    static NPT_Result Create(Algorithm algorithm, NPT_Digest*& digest);
-    
-    // methods
-    virtual             ~NPT_Digest() {}
-    virtual unsigned int GetSize() = 0;
-    virtual NPT_Result   Update(const NPT_UInt8* data, NPT_Size data_size) = 0;
-    virtual NPT_Result   GetDigest(NPT_DataBuffer& digest) = 0;
-
-protected:
-    NPT_Digest() {} // don't instantiate directly
-};
-
-class NPT_Hmac {
-public:
-    static NPT_Result Create(NPT_Digest::Algorithm algorithm,
-                             const NPT_UInt8*      key,
-                             NPT_Size              key_size, 
-                             NPT_Digest*&          digest);
-
-private:
-    // methods
-    NPT_Hmac() {} // don't instantiate
-};
-
-#endif // _NPT_DIGEST_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDynamicCast.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDynamicCast.h
deleted file mode 100644
index 0acab88..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDynamicCast.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Dynamic Cast Support
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_DYNAMIC_CAST_H_
-#define _NPT_DYNAMIC_CAST_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptCommon.h"
-#include "NptResults.h"
-#include "NptConfig.h"
-
-/*----------------------------------------------------------------------
-|   macros
-+---------------------------------------------------------------------*/
-#if defined(NPT_CONFIG_NO_RTTI)
-#define NPT_DYNAMIC_CAST(_class,_object) \
-( ((_object)==0) ? 0 : reinterpret_cast<_class*>((_object)->DynamicCast(&_class::_class_##_class)) )
-#define NPT_IMPLEMENT_DYNAMIC_CAST(_class)              \
-static int _class_##_class;                             \
-virtual void* DynamicCast(const void* class_anchor) {   \
-    if (class_anchor ==  &_class::_class_##_class) {    \
-        return static_cast<_class*>(this);              \
-    }                                                   \
-    return NULL;                                        \
-}
-#define NPT_IMPLEMENT_DYNAMIC_CAST_D(_class,_superclass)\
-static int _class_##_class;                             \
-virtual void* DynamicCast(const void* class_anchor) {   \
-    if (class_anchor ==  &_class::_class_##_class) {    \
-        return static_cast<_class*>(this);              \
-    } else {                                            \
-        return _superclass::DynamicCast(class_anchor);  \
-    }                                                   \
-}
-#define NPT_IMPLEMENT_DYNAMIC_CAST_D2(_class,_superclass,_mixin)\
-static int _class_##_class;                                     \
-virtual void* DynamicCast(const void* class_anchor) {           \
-    if (class_anchor ==  &_class::_class_##_class) {            \
-        return static_cast<_class*>(this);                      \
-    } else {                                                    \
-        void* sup = _superclass::DynamicCast(class_anchor);     \
-        if (sup) return sup;                                    \
-        return _mixin::DynamicCast(class_anchor);               \
-    }                                                           \
-}
-#define NPT_DEFINE_DYNAMIC_CAST_ANCHOR(_class) int _class::_class_##_class = 0;
-
-#else
-
-#define NPT_DYNAMIC_CAST(_class,_object) dynamic_cast<_class*>(_object)
-#define NPT_IMPLEMENT_DYNAMIC_CAST(_class)
-#define NPT_IMPLEMENT_DYNAMIC_CAST_D(_class,_superclass)
-#define NPT_IMPLEMENT_DYNAMIC_CAST_D2(_class,_superclass,_mixin)
-#define NPT_DEFINE_DYNAMIC_CAST_ANCHOR(_class)
-
-#endif
-
-#endif // _NPT_DYNAMIC_CAST_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDynamicLibraries.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDynamicLibraries.h
deleted file mode 100644
index 4a2751e..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptDynamicLibraries.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Dynamic Libraries
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_DYNAMIC_LIBRARIES_H_
-#define _NPT_DYNAMIC_LIBRARIES_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#define NPT_DYANMIC_LIBRARY_LOAD_FLAG_NOW 1
-
-/*----------------------------------------------------------------------
-|   NPT_DynamicLibraryInterface
-+---------------------------------------------------------------------*/
-class NPT_DynamicLibraryInterface
-{
-public:
-    virtual ~NPT_DynamicLibraryInterface() {}
-    virtual NPT_Result FindSymbol(const char* name, void*& symbol) = 0;
-    virtual NPT_Result Unload() = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_DynamicLibrary
-+---------------------------------------------------------------------*/
-class NPT_DynamicLibrary : public NPT_DynamicLibraryInterface
-{
-public:
-    // class methods
-    static NPT_Result Load(const char* name, NPT_Flags flags, NPT_DynamicLibrary*& library);
-    
-    // destructor
-    ~NPT_DynamicLibrary() { delete m_Delegate; }
-    
-    // NPT_DynamicLibraryInterface methods
-    virtual NPT_Result FindSymbol(const char* name, void*& symbol) {
-        return m_Delegate->FindSymbol(name, symbol);
-    }
-    virtual NPT_Result Unload() {
-        return m_Delegate->Unload();
-    }
-    
-private:
-    // methods
-    NPT_DynamicLibrary(NPT_DynamicLibraryInterface* delegate) : m_Delegate(delegate) {}
-    
-    // members
-    NPT_DynamicLibraryInterface* m_Delegate;
-};
-
-#endif // _NPT_DYNAMIC_LIBRARIES_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptFile.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptFile.h
deleted file mode 100644
index e93bb2b..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptFile.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Files
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_FILE_H_
-#define _NPT_FILE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptStreams.h"
-#include "NptTime.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_NO_SUCH_FILE          = NPT_ERROR_BASE_FILE - 0;
-const int NPT_ERROR_FILE_NOT_OPEN         = NPT_ERROR_BASE_FILE - 1;
-const int NPT_ERROR_FILE_BUSY             = NPT_ERROR_BASE_FILE - 2;
-const int NPT_ERROR_FILE_ALREADY_OPEN     = NPT_ERROR_BASE_FILE - 3;
-const int NPT_ERROR_FILE_NOT_READABLE     = NPT_ERROR_BASE_FILE - 4;
-const int NPT_ERROR_FILE_NOT_WRITABLE     = NPT_ERROR_BASE_FILE - 5;
-const int NPT_ERROR_FILE_NOT_DIRECTORY    = NPT_ERROR_BASE_FILE - 6;
-const int NPT_ERROR_FILE_ALREADY_EXISTS   = NPT_ERROR_BASE_FILE - 7;
-const int NPT_ERROR_FILE_NOT_ENOUGH_SPACE = NPT_ERROR_BASE_FILE - 8;
-const int NPT_ERROR_DIRECTORY_NOT_EMPTY   = NPT_ERROR_BASE_FILE - 9;
-
-/**
- * File open modes.
- * Use a combination of these flags to indicate how a file should be opened 
- * Note all combinations of flags are valid or meaningful:
- * If NPT_FILE_OPEN_MODE_WRITE is not set, then NPT_FILE_OPEN_MODE_CREATE, 
- * NPT_FILE_OPEN_MODE_TRUNCATE and NPT_FILE_OPEN_MODE_APPEND are ignored.
- * If NPT_FILE_OPEN_MODE_APPEND is set, then NPT_FILE_OPEN_MODE_CREATE is
- * automatically implied whether it is set or not.
- * NPT_FILE_OPEN_MODE_CREATE and NPT_FILE_OPEN_MODE_TRUNCATE imply each
- * other (if one is set, the other one is automatically implied)
- */
-const unsigned int NPT_FILE_OPEN_MODE_READ       = 0x01;
-const unsigned int NPT_FILE_OPEN_MODE_WRITE      = 0x02;
-const unsigned int NPT_FILE_OPEN_MODE_CREATE     = 0x04;
-const unsigned int NPT_FILE_OPEN_MODE_TRUNCATE   = 0x08;
-const unsigned int NPT_FILE_OPEN_MODE_UNBUFFERED = 0x10;
-const unsigned int NPT_FILE_OPEN_MODE_APPEND     = 0x20;
-
-const unsigned int NPT_FILE_ATTRIBUTE_READ_ONLY = 0x01;
-const unsigned int NPT_FILE_ATTRIBUTE_LINK      = 0x02;
-
-#define NPT_FILE_STANDARD_INPUT  "@STDIN"
-#define NPT_FILE_STANDARD_OUTPUT "@STDOUT"
-#define NPT_FILE_STANDARD_ERROR  "@STDERR"
-
-/*----------------------------------------------------------------------
-|   class references
-+---------------------------------------------------------------------*/
-class NPT_DataBuffer;
-
-/*----------------------------------------------------------------------
-|   NPT_FileInfo
-+---------------------------------------------------------------------*/
-struct NPT_FileInfo
-{
-    // types
-    typedef enum {
-        FILE_TYPE_NONE,
-        FILE_TYPE_REGULAR,
-        FILE_TYPE_DIRECTORY,
-        FILE_TYPE_SPECIAL,
-        FILE_TYPE_OTHER
-    } FileType;
-    
-    // constructor
-    NPT_FileInfo() : m_Type(FILE_TYPE_NONE), m_Size(0), m_AttributesMask(0), m_Attributes(0) {}
-    
-    // members
-    FileType      m_Type;
-    NPT_UInt64    m_Size;
-    NPT_Flags     m_AttributesMask;
-    NPT_Flags     m_Attributes;
-    NPT_TimeStamp m_CreationTime;
-    NPT_TimeStamp m_ModificationTime;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_FilePath
-+---------------------------------------------------------------------*/
-class NPT_FilePath
-{
-public:
-    // class members
-    static const char* const Separator;
-
-    // class methods
-    static NPT_String BaseName(const char* path, bool with_extension = true);
-    static NPT_String DirName(const char* path);
-    static NPT_String FileExtension(const char* path);
-    static NPT_String Create(const char* directory, const char* base);
-    
-private:
-    NPT_FilePath() {} // this class can't have instances
-};
-
-/*----------------------------------------------------------------------
-|   NPT_FileInterface
-+---------------------------------------------------------------------*/
-class NPT_FileInterface
-{
-public:
-    // types
-    typedef unsigned int OpenMode;
-
-    // constructors and destructor
-    virtual ~NPT_FileInterface() {}
-
-    // methods
-    virtual NPT_Result Open(OpenMode mode) = 0;
-    virtual NPT_Result Close() = 0;
-    virtual NPT_Result GetInputStream(NPT_InputStreamReference& stream) = 0;
-    virtual NPT_Result GetOutputStream(NPT_OutputStreamReference& stream) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_File
-+---------------------------------------------------------------------*/
-class NPT_File : public NPT_FileInterface
-{
-public:
-    // class methods
-    static NPT_Result GetRoots(NPT_List<NPT_String>& roots);
-    static NPT_Result GetSize(const char* path, NPT_LargeSize &size);
-    static NPT_Result GetInfo(const char* path, NPT_FileInfo* info = NULL);
-    static bool       Exists(const char* path) { return NPT_SUCCEEDED(GetInfo(path)); }
-    static NPT_Result Remove(const char* path, bool recurse = false);
-    static NPT_Result RemoveFile(const char* path);
-    static NPT_Result RemoveDir(const char* path);
-    static NPT_Result RemoveDir(const char* path, bool force_if_not_empty);
-    static NPT_Result Rename(const char* from_path, const char* to_path);
-    static NPT_Result ListDir(const char* path, NPT_List<NPT_String>& entries, NPT_Ordinal start = 0, NPT_Cardinal count = 0);
-    static NPT_Result CreateDir(const char* path);
-    static NPT_Result CreateDir(const char* path, bool create_intermediate_dirs);
-    static NPT_Result GetWorkingDir(NPT_String& path);
-    static NPT_Result Load(const char* path, NPT_DataBuffer& buffer, NPT_FileInterface::OpenMode mode = NPT_FILE_OPEN_MODE_READ);
-    static NPT_Result Load(const char* path, NPT_String& data, NPT_FileInterface::OpenMode mode = NPT_FILE_OPEN_MODE_READ);
-    static NPT_Result Save(const char* path, NPT_String& data);
-    static NPT_Result Save(const char* path, const NPT_DataBuffer& buffer);
-    
-    // constructors and destructor
-    NPT_File(const char* path);
-   ~NPT_File() { delete m_Delegate; }
-
-    // methods
-    NPT_Result          Load(NPT_DataBuffer& buffer);
-    NPT_Result          Save(const NPT_DataBuffer& buffer);
-    const NPT_String&   GetPath() { return m_Path; }
-    NPT_Result          GetSize(NPT_LargeSize &size);
-    NPT_Result          GetInfo(NPT_FileInfo& info);
-    NPT_Result          ListDir(NPT_List<NPT_String>& entries);
-    NPT_Result          Rename(const char* path);
-    
-    // NPT_FileInterface methods
-    NPT_Result Open(OpenMode mode) {
-        return m_Delegate->Open(mode);
-    }
-    NPT_Result Close() {
-        return m_Delegate->Close();
-    }
-    NPT_Result GetInputStream(NPT_InputStreamReference& stream) {
-        return m_Delegate->GetInputStream(stream);
-    }
-    NPT_Result GetOutputStream(NPT_OutputStreamReference& stream) {
-        return m_Delegate->GetOutputStream(stream);
-    }
-
-    // operators
-    NPT_File& operator=(const NPT_File& file);
-
-protected:
-    // members
-    NPT_FileInterface* m_Delegate;
-    NPT_String         m_Path;
-    bool               m_IsSpecial;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_FileDateComparator
-+---------------------------------------------------------------------*/
-class NPT_FileDateComparator {
-public: 
-    NPT_FileDateComparator(const char* directory) : m_Directory(directory) {}
-    NPT_Int32 operator()(const NPT_String& file1, const NPT_String& file2) const {
-        NPT_FileInfo info1, info2;
-        if (NPT_FAILED(NPT_File::GetInfo(NPT_FilePath::Create(m_Directory, file1), &info1))) return -1;
-        if (NPT_FAILED(NPT_File::GetInfo(NPT_FilePath::Create(m_Directory, file2), &info2))) return -1;
-        return (info1.m_ModificationTime == info2.m_ModificationTime) ? 0 : (info1.m_ModificationTime < info2.m_ModificationTime ? -1 : 1);
-    }
-    
-private:
-    NPT_String m_Directory;
-};
-
-#endif // _NPT_FILE_H_ 
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptHash.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptHash.h
deleted file mode 100644
index d7b8776..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptHash.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Hashing
-|
-| Copyright (c) 2002-2010, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-
-#ifndef _NPT_HASH_H_
-#define _NPT_HASH_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptResults.h"
-
-/*----------------------------------------------------------------------
-|    Fowler/Noll/Vo FNV-1a hash functions
-+---------------------------------------------------------------------*/
-const NPT_UInt32 NPT_FNV1A_32_INIT = ((NPT_UInt32)0x811c9dc5);
-NPT_UInt32 NPT_Fnv1aHash32(const NPT_UInt8* data, NPT_Size data_size, NPT_UInt32 hash_init=NPT_FNV1A_32_INIT);
-NPT_UInt32 NPT_Fnv1aHashStr32(const char* data, NPT_UInt32 hash_init=NPT_FNV1A_32_INIT);
-const NPT_UInt64 NPT_FNV1A_64_INIT = ((NPT_UInt64)0xcbf29ce484222325ULL);
-NPT_UInt64 NPT_Fnv1aHash64(const NPT_UInt8* data, NPT_Size data_size, NPT_UInt64 hash_init=NPT_FNV1A_64_INIT);
-NPT_UInt64 NPT_Fnv1aHashStr64(const char* data, NPT_UInt64 hash_init=NPT_FNV1A_64_INIT);
-
-/*----------------------------------------------------------------------
-|   NPT_Hash
-+---------------------------------------------------------------------*/
-template <typename K>
-struct NPT_Hash
-{
-};
-
-template <>
-struct NPT_Hash<const char*>
-{
-    NPT_UInt32 operator()(const char* s) const { return NPT_Fnv1aHashStr32(s); }
-};
-
-template <>
-struct NPT_Hash<char*>
-{
-    NPT_UInt32 operator()(char* s) const { return NPT_Fnv1aHashStr32(s); }
-};
-
-template <>
-struct NPT_Hash<int>
-{
-    NPT_UInt32 operator()(int i) const { return NPT_Fnv1aHash32(reinterpret_cast<const NPT_UInt8*>(&i), sizeof(int)); }
-};
-
-template <>
-struct NPT_Hash<unsigned int>
-{
-    NPT_UInt32 operator()(unsigned int i) const { return NPT_Fnv1aHash32(reinterpret_cast<const NPT_UInt8*>(&i), sizeof(int)); }
-};
-
-#endif // _NPT_HASH_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptHttp.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptHttp.h
deleted file mode 100644
index 402d515..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptHttp.h
+++ /dev/null
@@ -1,861 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - HTTP Protocol
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_HTTP_H_
-#define _NPT_HTTP_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptUri.h"
-#include "NptTypes.h"
-#include "NptList.h"
-#include "NptBufferedStreams.h"
-#include "NptSockets.h"
-#include "NptMap.h"
-#include "NptDynamicCast.h"
-#include "NptVersion.h"
-#include "NptTime.h"
-#include "NptThreads.h"
-#include "NptAutomaticCleaner.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const unsigned int NPT_HTTP_DEFAULT_PORT  = 80;
-const unsigned int NPT_HTTPS_DEFAULT_PORT = 443;
-const unsigned int NPT_HTTP_INVALID_PORT  = 0;
-
-const NPT_Timeout  NPT_HTTP_CLIENT_DEFAULT_CONNECTION_TIMEOUT    = 30000;
-const NPT_Timeout  NPT_HTTP_CLIENT_DEFAULT_IO_TIMEOUT            = 30000;
-const NPT_Timeout  NPT_HTTP_CLIENT_DEFAULT_NAME_RESOLVER_TIMEOUT = 60000;
-const unsigned int NPT_HTTP_CLIENT_DEFAULT_MAX_REDIRECTS         = 20;
-
-const NPT_Timeout NPT_HTTP_SERVER_DEFAULT_CONNECTION_TIMEOUT    = NPT_TIMEOUT_INFINITE;
-const NPT_Timeout NPT_HTTP_SERVER_DEFAULT_IO_TIMEOUT            = 60000;
-
-const unsigned int NPT_HTTP_CONNECTION_MANAGER_MAX_CONNECTION_POOL_SIZE = 5;
-const unsigned int NPT_HTTP_CONNECTION_MANAGER_MAX_CONNECTION_AGE       = 50; // seconds
-const unsigned int NPT_HTTP_MAX_RECONNECTS                              = 10;
-const unsigned int NPT_HTTP_MAX_100_RESPONSES                           = 10;
-
-const int NPT_HTTP_PROTOCOL_MAX_LINE_LENGTH  = 8192;
-const int NPT_HTTP_PROTOCOL_MAX_HEADER_COUNT = 100;
-
-#define NPT_HTTP_PROTOCOL_1_0   "HTTP/1.0"
-#define NPT_HTTP_PROTOCOL_1_1   "HTTP/1.1"
-#define NPT_HTTP_METHOD_GET     "GET"
-#define NPT_HTTP_METHOD_HEAD    "HEAD"
-#define NPT_HTTP_METHOD_POST    "POST"
-#define NPT_HTTP_METHOD_PUT     "PUT"
-#define NPT_HTTP_METHOD_OPTIONS "OPTIONS"
-#define NPT_HTTP_METHOD_DELETE  "DELETE"
-#define NPT_HTTP_METHOD_TRACE   "TRACE"
-
-#define NPT_HTTP_HEADER_HOST                "Host"
-#define NPT_HTTP_HEADER_CONNECTION          "Connection"
-#define NPT_HTTP_HEADER_USER_AGENT          "User-Agent"
-#define NPT_HTTP_HEADER_SERVER              "Server"
-#define NPT_HTTP_HEADER_CONTENT_LENGTH      "Content-Length"
-#define NPT_HTTP_HEADER_CONTENT_TYPE        "Content-Type"
-#define NPT_HTTP_HEADER_CONTENT_ENCODING    "Content-Encoding"
-#define NPT_HTTP_HEADER_TRANSFER_ENCODING   "Transfer-Encoding"
-#define NPT_HTTP_HEADER_LOCATION            "Location"
-#define NPT_HTTP_HEADER_RANGE               "Range"
-#define NPT_HTTP_HEADER_CONTENT_RANGE       "Content-Range"
-#define NPT_HTTP_HEADER_COOKIE              "Cookie"
-#define NPT_HTTP_HEADER_ACCEPT_RANGES       "Accept-Ranges"
-#define NPT_HTTP_HEADER_CONTENT_RANGE       "Content-Range"
-#define NPT_HTTP_HEADER_AUTHORIZATION       "Authorization"
-
-#define NPT_HTTP_TRANSFER_ENCODING_CHUNKED  "chunked"
-
-
-const int NPT_ERROR_HTTP_INVALID_RESPONSE_LINE = NPT_ERROR_BASE_HTTP - 0;
-const int NPT_ERROR_HTTP_INVALID_REQUEST_LINE  = NPT_ERROR_BASE_HTTP - 1;
-const int NPT_ERROR_HTTP_NO_PROXY              = NPT_ERROR_BASE_HTTP - 2;
-const int NPT_ERROR_HTTP_INVALID_REQUEST       = NPT_ERROR_BASE_HTTP - 3;
-const int NPT_ERROR_HTTP_METHOD_NOT_SUPPORTED  = NPT_ERROR_BASE_HTTP - 4;
-const int NPT_ERROR_HTTP_TOO_MANY_REDIRECTS    = NPT_ERROR_BASE_HTTP - 5;
-const int NPT_ERROR_HTTP_TOO_MANY_RECONNECTS   = NPT_ERROR_BASE_HTTP - 6;
-const int NPT_ERROR_HTTP_CANNOT_RESEND_BODY    = NPT_ERROR_BASE_HTTP - 7;
-
-#define NPT_HTTP_LINE_TERMINATOR "\r\n"
-
-#if !defined(NPT_CONFIG_HTTP_DEFAULT_USER_AGENT)
-#define NPT_CONFIG_HTTP_DEFAULT_USER_AGENT "Neptune/" NPT_NEPTUNE_VERSION_STRING
-#endif
-
-/*----------------------------------------------------------------------
-|   types
-+---------------------------------------------------------------------*/
-typedef unsigned int NPT_HttpStatusCode;
-typedef NPT_UrlQuery NPT_HttpUrlQuery; // for backward compatibility
-
-/*----------------------------------------------------------------------
-|   NPT_HttpUrl
-+---------------------------------------------------------------------*/
-class NPT_HttpUrl : public NPT_Url {
-public:
-    // constructors
-    NPT_HttpUrl() {}
-    NPT_HttpUrl(const char* host, 
-                NPT_UInt16  port, 
-                const char* path,
-                const char* query = NULL,
-                const char* fragment = NULL);
-    NPT_HttpUrl(const char* url, bool ignore_scheme = false);
-
-    // methods
-    virtual NPT_String ToString(bool with_fragment = true) const;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpProtocol
-+---------------------------------------------------------------------*/
-class NPT_HttpProtocol
-{
-public:
-    // class methods
-    const char* GetStatusCodeString(NPT_HttpStatusCode status_code);
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpHeader
-+---------------------------------------------------------------------*/
-class NPT_HttpHeader {
-public:
-    // constructors and destructor
-    NPT_HttpHeader(const char* name, const char* value);
-    ~NPT_HttpHeader();
-
-    // methods
-    NPT_Result        Emit(NPT_OutputStream& stream) const;
-    const NPT_String& GetName()  const { return m_Name;  }
-    const NPT_String& GetValue() const { return m_Value; }
-    NPT_Result        SetName(const char* name);
-    NPT_Result        SetValue(const char* value);
-
-private:
-    // members
-    NPT_String m_Name;
-    NPT_String m_Value;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpHeaders
-+---------------------------------------------------------------------*/
-class NPT_HttpHeaders {
-public:
-    // constructors and destructor
-     NPT_HttpHeaders();
-    ~NPT_HttpHeaders();
-
-    // methods
-    NPT_Result Parse(NPT_BufferedInputStream& stream);
-    NPT_Result Emit(NPT_OutputStream& stream) const;
-    const NPT_List<NPT_HttpHeader*>& GetHeaders() const { return m_Headers; }
-    NPT_HttpHeader*   GetHeader(const char* name) const;
-    const NPT_String* GetHeaderValue(const char* name) const;
-    NPT_Result        SetHeader(const char* name, const char* value, bool replace=true);
-    NPT_Result        AddHeader(const char* name, const char* value);
-    NPT_Result        RemoveHeader(const char* name);
-
-private:
-    // members
-    NPT_List<NPT_HttpHeader*> m_Headers;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpEntity
-+---------------------------------------------------------------------*/
-class NPT_HttpEntity {
-public:
-    // constructors and destructor
-             NPT_HttpEntity();
-             NPT_HttpEntity(const NPT_HttpHeaders& headers);
-    virtual ~NPT_HttpEntity();
-
-    // methods
-    NPT_Result SetInputStream(const NPT_InputStreamReference& stream,
-                              bool update_content_length = false);
-    NPT_Result SetInputStream(const void* data, NPT_Size size);
-    NPT_Result SetInputStream(const NPT_String& string);
-    NPT_Result SetInputStream(const char* string);
-    NPT_Result GetInputStream(NPT_InputStreamReference& stream);
-    NPT_Result Load(NPT_DataBuffer& buffer);
-    NPT_Result SetHeaders(const NPT_HttpHeaders& headers);
-
-    // field access
-    NPT_Result        SetContentLength(NPT_LargeSize length);
-    NPT_Result        SetContentType(const char* type);
-    NPT_Result        SetContentEncoding(const char* encoding);
-    NPT_Result        SetTransferEncoding(const char* encoding);
-    NPT_LargeSize     GetContentLength()     { return m_ContentLength;   }
-    const NPT_String& GetContentType()       { return m_ContentType;     }
-    const NPT_String& GetContentEncoding()   { return m_ContentEncoding; }
-    const NPT_String& GetTransferEncoding()  { return m_TransferEncoding;}
-    bool              ContentLengthIsKnown() { return m_ContentLengthIsKnown; }
-
-private:
-    // members
-    NPT_InputStreamReference m_InputStream;
-    NPT_LargeSize            m_ContentLength;
-    NPT_String               m_ContentType;
-    NPT_String               m_ContentEncoding;
-    NPT_String               m_TransferEncoding;
-    bool                     m_ContentLengthIsKnown;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpMessage
-+---------------------------------------------------------------------*/
-class NPT_HttpMessage {
-public:
-    // constructors and destructor
-    virtual ~NPT_HttpMessage();
-
-    // methods
-    const NPT_String& GetProtocol() const { 
-        return m_Protocol; 
-    }
-    NPT_Result SetProtocol(const char* protocol) {
-        m_Protocol = protocol;
-        return NPT_SUCCESS;
-    }
-    NPT_HttpHeaders& GetHeaders() { 
-        return m_Headers;  
-    }
-    const NPT_HttpHeaders& GetHeaders() const { 
-        return m_Headers;  
-    }
-    NPT_Result SetEntity(NPT_HttpEntity* entity);
-    NPT_HttpEntity* GetEntity() {
-        return m_Entity;
-    }
-    NPT_HttpEntity* GetEntity() const {
-        return m_Entity;
-    }
-    virtual NPT_Result ParseHeaders(NPT_BufferedInputStream& stream);
-
-protected:
-    // constructors
-    NPT_HttpMessage(const char* protocol);
-
-    // members
-    NPT_String      m_Protocol;
-    NPT_HttpHeaders m_Headers;
-    NPT_HttpEntity* m_Entity;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpRequest
-+---------------------------------------------------------------------*/
-class NPT_HttpRequest : public NPT_HttpMessage {
-public:
-    // class methods
-    static NPT_Result Parse(NPT_BufferedInputStream& stream, 
-                            const NPT_SocketAddress* endpoint,
-                            NPT_HttpRequest*&        request);
-
-    // constructors and destructor
-    NPT_HttpRequest(const NPT_HttpUrl& url,
-                    const char*        method,
-                    const char*        protocol = NPT_HTTP_PROTOCOL_1_0);
-    NPT_HttpRequest(const char*        url,
-                    const char*        method,
-                    const char*        protocol = NPT_HTTP_PROTOCOL_1_0);
-    virtual ~NPT_HttpRequest();
-
-    // methods
-    const NPT_HttpUrl& GetUrl() const { return m_Url; }
-    NPT_HttpUrl&       GetUrl()       { return m_Url; }
-    NPT_Result         SetUrl(const char* url);
-    NPT_Result         SetUrl(const NPT_HttpUrl& url);
-    const NPT_String&  GetMethod() const { return m_Method; }
-    virtual NPT_Result Emit(NPT_OutputStream& stream, bool use_proxy=false) const;
-    
-protected:
-    // members
-    NPT_HttpUrl m_Url;
-    NPT_String  m_Method;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpResponse
-+---------------------------------------------------------------------*/
-class NPT_HttpResponse : public NPT_HttpMessage {
-public:
-    // class methods
-    static NPT_Result Parse(NPT_BufferedInputStream& stream, 
-                            NPT_HttpResponse*&       response);
-
-    // constructors and destructor
-             NPT_HttpResponse(NPT_HttpStatusCode status_code,
-                              const char*        reason_phrase,
-                              const char*        protocol = NPT_HTTP_PROTOCOL_1_0);
-    virtual ~NPT_HttpResponse();
-
-    // methods
-    NPT_Result         SetStatus(NPT_HttpStatusCode status_code,
-                                 const char*        reason_phrase,
-                                 const char*        protocol = NULL);
-    NPT_Result         SetProtocol(const char* protocol);
-    NPT_HttpStatusCode GetStatusCode() const { return m_StatusCode;   }
-    const NPT_String&  GetReasonPhrase() const { return m_ReasonPhrase; }
-    virtual NPT_Result Emit(NPT_OutputStream& stream) const;
-
-protected:
-    // members
-    NPT_HttpStatusCode m_StatusCode;
-    NPT_String         m_ReasonPhrase;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpProxyAddress
-+---------------------------------------------------------------------*/
-class NPT_HttpProxyAddress
-{
-public:
-    NPT_HttpProxyAddress() : m_Port(NPT_HTTP_INVALID_PORT) {}
-    NPT_HttpProxyAddress(const char* hostname, NPT_UInt16 port) :
-        m_HostName(hostname), m_Port(port) {}
-
-    const NPT_String& GetHostName() const { return m_HostName; } 
-    void              SetHostName(const char* hostname) { m_HostName = hostname; }
-    NPT_UInt16        GetPort() const { return m_Port; }
-    void              SetPort(NPT_UInt16 port) { m_Port = port; }
-
-private:
-    NPT_String m_HostName;
-    NPT_UInt16 m_Port;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpProxySelector
-+---------------------------------------------------------------------*/
-class NPT_HttpProxySelector
-{
-public:
-    // class methods
-    static NPT_HttpProxySelector* GetDefault();
-    static NPT_HttpProxySelector* GetSystemSelector();
-    
-    // methods
-    virtual ~NPT_HttpProxySelector() {};
-    virtual NPT_Result GetProxyForUrl(const NPT_HttpUrl& url, NPT_HttpProxyAddress& proxy) = 0;
-    
-private:
-    // class members
-    static NPT_HttpProxySelector* m_SystemDefault;
-};
-
-class NPT_HttpRequestContext;
-
-/*----------------------------------------------------------------------
-|   NPT_HttpClient
-+---------------------------------------------------------------------*/
-class NPT_HttpClient {
-public:
-    // types
-    struct Config {
-        Config() : m_ConnectionTimeout(  NPT_HTTP_CLIENT_DEFAULT_CONNECTION_TIMEOUT),
-                   m_IoTimeout(          NPT_HTTP_CLIENT_DEFAULT_CONNECTION_TIMEOUT),
-                   m_NameResolverTimeout(NPT_HTTP_CLIENT_DEFAULT_NAME_RESOLVER_TIMEOUT),
-                   m_MaxRedirects(       NPT_HTTP_CLIENT_DEFAULT_MAX_REDIRECTS),
-                   m_UserAgent(          NPT_CONFIG_HTTP_DEFAULT_USER_AGENT) {}
-        NPT_Timeout  m_ConnectionTimeout;
-        NPT_Timeout  m_IoTimeout;
-        NPT_Timeout  m_NameResolverTimeout;
-        NPT_Cardinal m_MaxRedirects;
-        NPT_String   m_UserAgent;
-    };
-    
-    class Connection {
-    public:
-        virtual ~Connection() {}
-        virtual NPT_InputStreamReference&  GetInputStream()  = 0;
-        virtual NPT_OutputStreamReference& GetOutputStream() = 0;
-        virtual NPT_Result                 GetInfo(NPT_SocketInfo& info) = 0;
-        virtual bool                       SupportsPersistence() { return false;                    }
-        virtual bool                       IsRecycled()          { return false;                    }
-        virtual NPT_Result                 Recycle()             { delete this; return NPT_SUCCESS; }
-        virtual NPT_Result                 Abort()               { return NPT_ERROR_NOT_IMPLEMENTED; }
-    };
-    
-    class Connector {
-    public:
-        virtual ~Connector() {}
-
-        virtual NPT_Result Connect(const NPT_HttpUrl&          url,
-                                   NPT_HttpClient&             client,
-                                   const NPT_HttpProxyAddress* proxy,
-                                   bool                        reuse, // whether we can reuse a connection or not
-                                   Connection*&                connection) = 0;
-        
-    protected:
-        NPT_Result TrackConnection(NPT_HttpClient& client,
-                                   Connection*     connection) { return client.TrackConnection(connection); }
-        Connector() {} // don't instantiate directly
-    };
-
-    // class methods
-    static NPT_Result WriteRequest(NPT_OutputStream& output_stream, 
-                                   NPT_HttpRequest&  request,
-                                   bool              should_persist,
-                                   bool			     use_proxy = false);
-    static NPT_Result ReadResponse(NPT_InputStreamReference&  input_stream,
-                                   bool                       should_persist,
-                                   bool                       expect_entity,
-                                   NPT_HttpResponse*&         response,
-                                   NPT_Reference<Connection>* cref = NULL);
-
-    /**
-     * @param connector Pointer to a connector instance, or NULL to use 
-     * the default (TCP) connector.
-     * @param transfer_ownership Boolean flag. If true, the NPT_HttpClient object
-     * becomes the owner of the passed Connector and will delete it when it is 
-     * itself deleted. If false, the caller keeps the ownership of the connector. 
-     * This flag is ignored if the connector parameter is NULL.
-     */
-    NPT_HttpClient(Connector* connector = NULL, bool transfer_ownership = true);
-
-    virtual ~NPT_HttpClient();
-
-    // methods
-    NPT_Result SendRequest(NPT_HttpRequest&        request,
-                           NPT_HttpResponse*&      response,
-                           NPT_HttpRequestContext* context = NULL);
-    NPT_Result Abort();
-    const Config& GetConfig() const { return m_Config; }
-    NPT_Result SetConfig(const Config& config);
-    NPT_Result SetProxy(const char* http_proxy_hostname, 
-                        NPT_UInt16  http_proxy_port,
-                        const char* https_proxy_hostname = NULL,
-                        NPT_UInt16  https_proxy_port = 0);
-    NPT_Result SetProxySelector(NPT_HttpProxySelector* selector);
-    NPT_Result SetConnector(Connector* connector);
-    NPT_Result SetTimeouts(NPT_Timeout connection_timeout,
-                           NPT_Timeout io_timeout,
-                           NPT_Timeout name_resolver_timeout);
-    NPT_Result SetUserAgent(const char* user_agent);
-    NPT_Result SetOptions(NPT_Flags options, bool on);
-    
-protected:
-    // methods
-    NPT_Result TrackConnection(Connection* connection);
-    NPT_Result SendRequestOnce(NPT_HttpRequest&        request,
-                               NPT_HttpResponse*&      response,
-                               NPT_HttpRequestContext* context = NULL);
-
-    // members
-    Config                 m_Config;
-    NPT_HttpProxySelector* m_ProxySelector;
-    bool                   m_ProxySelectorIsOwned;
-    Connector*             m_Connector;
-    bool                   m_ConnectorIsOwned;
-    NPT_Mutex              m_AbortLock;
-    bool                   m_Aborted;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpConnectionManager
-+---------------------------------------------------------------------*/
-class NPT_HttpConnectionManager : public NPT_Thread,
-                                  public NPT_AutomaticCleaner::Singleton
-{
-public:
-    // singleton management
-    static NPT_HttpConnectionManager* GetInstance();
-    
-    class Connection : public NPT_HttpClient::Connection 
-    {
-    public:
-        Connection(NPT_HttpConnectionManager& manager,
-                   NPT_SocketReference&       socket,
-                   NPT_InputStreamReference   input_stream,
-                   NPT_OutputStreamReference  output_stream);
-        virtual ~Connection();
-                   
-        // NPT_HttpClient::Connection methods
-        virtual NPT_InputStreamReference&  GetInputStream()      { return m_InputStream;           }
-        virtual NPT_OutputStreamReference& GetOutputStream()     { return m_OutputStream;          }
-        virtual NPT_Result                 GetInfo(NPT_SocketInfo& info) { return m_Socket->GetInfo(info); }
-        virtual bool                       SupportsPersistence() { return true;                    }
-        virtual bool                       IsRecycled()          { return m_IsRecycled;            }
-        virtual NPT_Result                 Recycle();
-        virtual NPT_Result                 Abort()               { return m_Socket->Cancel(); }
-
-        // members
-        NPT_HttpConnectionManager& m_Manager;
-        bool                       m_IsRecycled;
-        NPT_TimeStamp              m_TimeStamp;
-        NPT_SocketReference        m_Socket;
-        NPT_InputStreamReference   m_InputStream;
-        NPT_OutputStreamReference  m_OutputStream;
-    };
-    
-    // destructor
-    ~NPT_HttpConnectionManager();
-    
-    // methods
-    Connection* FindConnection(NPT_SocketAddress& address);
-    NPT_Result  Recycle(Connection* connection);
-    NPT_Result  Track(NPT_HttpClient* client, NPT_HttpClient::Connection* connection);
-    NPT_Result  AbortConnections(NPT_HttpClient* client);
-    
-    // class methods
-    static NPT_Result  Untrack(NPT_HttpClient::Connection* connection);
-    
-private:
-    typedef NPT_List<NPT_HttpClient::Connection*> ConnectionList;
-    
-    // class members
-    static NPT_HttpConnectionManager* Instance;
-    
-    // constructor
-    NPT_HttpConnectionManager();
-    
-    // NPT_Thread methods
-    void Run();
-    
-    // methods
-    NPT_Result      UntrackConnection(NPT_HttpClient::Connection* connection);
-    NPT_Result      Cleanup();
-
-    // members
-    NPT_Mutex             m_Lock;
-    NPT_Cardinal          m_MaxConnections;
-    NPT_Cardinal          m_MaxConnectionAge;
-    NPT_SharedVariable    m_Aborted;
-    NPT_List<Connection*> m_Connections;
-    NPT_Map<NPT_HttpClient*, ConnectionList> m_ClientConnections;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpRequestContext
-+---------------------------------------------------------------------*/
-class NPT_HttpRequestContext
-{
-public:
-    // constructor
-    NPT_HttpRequestContext() {}
-    NPT_HttpRequestContext(const NPT_SocketAddress* local_address,
-                           const NPT_SocketAddress* remote_address);
-                  
-    // methods
-    const NPT_SocketAddress& GetLocalAddress()  const { return m_LocalAddress;  }
-    const NPT_SocketAddress& GetRemoteAddress() const { return m_RemoteAddress; }
-    void SetLocalAddress(const NPT_SocketAddress& address) {
-        m_LocalAddress = address;
-    }
-    void SetRemoteAddress(const NPT_SocketAddress& address) {
-        m_RemoteAddress = address;
-    }
-    
-private:
-    // members
-    NPT_SocketAddress m_LocalAddress;
-    NPT_SocketAddress m_RemoteAddress;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpRequestHandler
-+---------------------------------------------------------------------*/
-class NPT_HttpRequestHandler 
-{
-public:
-    NPT_IMPLEMENT_DYNAMIC_CAST(NPT_HttpRequestHandler)
-
-    // destructor
-    virtual ~NPT_HttpRequestHandler() {}
-
-    // methods
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request,
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response) = 0;
-                                     
-    /**
-     * Override this method if you want to write the body yourself.
-     * The default implementation will simply write out the entity's
-     * input stream.
-     */
-    virtual NPT_Result SendResponseBody(const NPT_HttpRequestContext& context,
-                                        NPT_HttpResponse&             response,
-                                        NPT_OutputStream&             output);
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpStaticRequestHandler
-+---------------------------------------------------------------------*/
-class NPT_HttpStaticRequestHandler : public NPT_HttpRequestHandler
-{
-public:
-    // constructors
-    NPT_HttpStaticRequestHandler(const char* document, 
-                                 const char* mime_type = "text/html",
-                                 bool        copy = true);
-    NPT_HttpStaticRequestHandler(const void* data,
-                                 NPT_Size    size,
-                                 const char* mime_type = "text/html",
-                                 bool        copy = true);
-
-    // NPT_HttpRequestHandler methods
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request, 
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response);
-
-private:
-    NPT_String     m_MimeType;
-    NPT_DataBuffer m_Buffer;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpFileRequestHandler_FileTypeMap
-+---------------------------------------------------------------------*/
-typedef struct NPT_HttpFileRequestHandler_DefaultFileTypeMapEntry {
-    const char* extension;
-    const char* mime_type;
-} NPT_HttpFileRequestHandler_FileTypeMapEntry;
-
-/*----------------------------------------------------------------------
-|   NPT_HttpFileRequestHandler
-+---------------------------------------------------------------------*/
-class NPT_HttpFileRequestHandler : public NPT_HttpRequestHandler
-{
-public:
-    // constructors
-    NPT_HttpFileRequestHandler(const char* url_root,
-                               const char* file_root,
-                               bool        auto_dir = false,
-                               const char* auto_index = NULL);
-
-    // NPT_HttpRequestHandler methods
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request, 
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response);
-    
-    // class methods
-    static const char* GetDefaultContentType(const char* extension);
-    
-    // accessors
-    NPT_Map<NPT_String,NPT_String>& GetFileTypeMap() { return m_FileTypeMap; }
-    void SetDefaultMimeType(const char* mime_type) {
-        m_DefaultMimeType = mime_type;
-    }
-    void SetUseDefaultFileTypeMap(bool use_default) {
-        m_UseDefaultFileTypeMap = use_default;
-    }
-    
-    static NPT_Result SetupResponseBody(NPT_HttpResponse&         response,
-                                        NPT_InputStreamReference& stream,
-                                        const NPT_String*         range_spec = NULL);
-
-protected:
-    // methods
-    const char* GetContentType(const NPT_String& filename);
-
-private:
-    NPT_String                      m_UrlRoot;
-    NPT_String                      m_FileRoot;
-    NPT_Map<NPT_String, NPT_String> m_FileTypeMap;
-    NPT_String                      m_DefaultMimeType;
-    bool                            m_UseDefaultFileTypeMap;
-    bool                            m_AutoDir;
-    NPT_String                      m_AutoIndex;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpServer
-+---------------------------------------------------------------------*/
-class NPT_HttpServer {
-public:
-    // types
-    struct Config {
-        NPT_Timeout   m_ConnectionTimeout;
-        NPT_Timeout   m_IoTimeout;
-        NPT_IpAddress m_ListenAddress;
-        NPT_UInt16    m_ListenPort;
-        bool          m_ReuseAddress;
-    };
-
-    // constructors and destructor
-    NPT_HttpServer(NPT_UInt16 listen_port = NPT_HTTP_DEFAULT_PORT,
-                   bool       reuse_address = true);
-    NPT_HttpServer(NPT_IpAddress listen_address, 
-                   NPT_UInt16    listen_port = NPT_HTTP_DEFAULT_PORT,
-                   bool          reuse_address = true);
-    virtual ~NPT_HttpServer();
-
-    // methods
-    NPT_Result SetConfig(const Config& config);
-    const Config& GetConfig() const { return m_Config; }
-    NPT_Result SetListenPort(NPT_UInt16 port, bool reuse_address = true);
-    NPT_Result SetTimeouts(NPT_Timeout connection_timeout, NPT_Timeout io_timeout);
-    NPT_Result SetServerHeader(const char* server_header);
-    NPT_Result Abort();
-    NPT_Result WaitForNewClient(NPT_InputStreamReference&  input,
-                                NPT_OutputStreamReference& output,
-                                NPT_HttpRequestContext*    context,
-                                NPT_Flags                  socket_flags = 0);
-    NPT_Result Loop(bool cancellable_sockets=true);
-    NPT_UInt16 GetPort() { return m_BoundPort; }
-    void Terminate();
-    
-    /**
-     * Add a request handler. By default the ownership of the handler is NOT transfered to this object,
-     * so the caller is responsible for the lifetime management of the handler object.
-     */
-    virtual NPT_Result AddRequestHandler(NPT_HttpRequestHandler* handler, 
-                                         const char*             path, 
-                                         bool                    include_children = false,
-                                         bool                    transfer_ownership = false);
-    virtual NPT_HttpRequestHandler* FindRequestHandler(NPT_HttpRequest& request);
-    virtual NPT_List<NPT_HttpRequestHandler*> FindRequestHandlers(NPT_HttpRequest& request);
-
-    /**
-     * Parse the request from a new client, form a response, and send it back. 
-     */
-    virtual NPT_Result RespondToClient(NPT_InputStreamReference&     input,
-                                       NPT_OutputStreamReference&    output,
-                                       const NPT_HttpRequestContext& context);
-
-protected:
-    // types
-    struct HandlerConfig {
-        HandlerConfig(NPT_HttpRequestHandler* handler,
-                      const char*             path,
-                      bool                    include_children,
-                      bool                    transfer_ownership = false);
-        ~HandlerConfig();
-
-        // methods
-        bool WillHandle(NPT_HttpRequest& request);
-
-        // members
-        NPT_HttpRequestHandler* m_Handler;
-        NPT_String              m_Path;
-        bool                    m_IncludeChildren;
-        bool                    m_HandlerIsOwned;
-    };
-
-    // methods
-    NPT_Result Bind();
-
-    // members
-    NPT_TcpServerSocket      m_Socket;
-    NPT_UInt16               m_BoundPort;
-    Config                   m_Config;
-    NPT_List<HandlerConfig*> m_RequestHandlers;
-    NPT_String               m_ServerHeader;
-    bool                     m_Run;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpResponder
-+---------------------------------------------------------------------*/
-class NPT_HttpResponder {
-public:
-    // types
-    struct Config {
-        NPT_Timeout m_IoTimeout;
-    };
-
-    // constructors and destructor
-    NPT_HttpResponder(NPT_InputStreamReference&  input,
-                      NPT_OutputStreamReference& output);
-    virtual ~NPT_HttpResponder();
-
-    // methods
-    NPT_Result SetConfig(const Config& config);
-    NPT_Result SetTimeout(NPT_Timeout io_timeout);
-    NPT_Result ParseRequest(NPT_HttpRequest*&        request,
-                            const NPT_SocketAddress* local_address = NULL);
-    NPT_Result SendResponseHeaders(NPT_HttpResponse& response);
-
-protected:
-    // members
-    Config                           m_Config;
-    NPT_BufferedInputStreamReference m_Input;
-    NPT_OutputStreamReference        m_Output;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpChunkedInputStream
-+---------------------------------------------------------------------*/
-class NPT_HttpChunkedInputStream : public NPT_InputStream
-{
-public:
-    // constructors and destructor
-    NPT_HttpChunkedInputStream(NPT_BufferedInputStreamReference& stream);
-    virtual ~NPT_HttpChunkedInputStream();
-
-    // NPT_InputStream methods
-    NPT_Result Read(void*     buffer, 
-                    NPT_Size  bytes_to_read, 
-                    NPT_Size* bytes_read = NULL);
-    NPT_Result Seek(NPT_Position offset);
-    NPT_Result Tell(NPT_Position& offset);
-    NPT_Result GetSize(NPT_LargeSize& size);
-    NPT_Result GetAvailable(NPT_LargeSize& available);
-
-protected:
-    // members
-    NPT_BufferedInputStreamReference m_Source;
-    NPT_UInt32                       m_CurrentChunkSize;
-    bool                             m_Eos;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpChunkedOutputStream
-+---------------------------------------------------------------------*/
-class NPT_HttpChunkedOutputStream : public NPT_OutputStream
-{
-public:
-    // constructors and destructor
-    NPT_HttpChunkedOutputStream(NPT_OutputStream& stream);
-    virtual ~NPT_HttpChunkedOutputStream();
-
-    // NPT_OutputStream methods
-    NPT_Result Write(const void* buffer, 
-                     NPT_Size    bytes_to_write, 
-                     NPT_Size*   bytes_written = NULL);
-    NPT_Result Seek(NPT_Position /*offset*/) { return NPT_ERROR_NOT_SUPPORTED;}
-    NPT_Result Tell(NPT_Position& offset)    { return m_Stream.Tell(offset);  }
-    NPT_Result Flush()                       { return m_Stream.Flush();       }
-
-protected:
-    // members
-    NPT_OutputStream& m_Stream;
-};
-
-#endif // _NPT_HTTP_H_
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptInterfaces.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptInterfaces.h
deleted file mode 100644
index b0bb264..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptInterfaces.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Interfaces
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_INTERFACES_H_
-#define _NPT_INTERFACES_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptCommon.h"
-#include "NptResults.h"
-#include "NptConfig.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_NO_SUCH_INTERFACE = NPT_ERROR_BASE_INTERFACES - 0;
-
-/*----------------------------------------------------------------------
-|   NPT_InterfaceId
-+---------------------------------------------------------------------*/
-class NPT_InterfaceId
-{
- public:
-    // methods
-    bool operator==(const NPT_InterfaceId& id) const {
-        return ((id.m_Id == m_Id) && (id.m_Version == m_Version));
-    }
-
-    // members
-    unsigned long m_Id;
-    unsigned long m_Version;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Polymorphic
-+---------------------------------------------------------------------*/
-class NPT_Polymorphic
-{
-public:
-    // destructor
-    virtual ~NPT_Polymorphic() {}
-     
-    // methods
-    virtual NPT_Result GetInterface(const NPT_InterfaceId& id, 
-                                    NPT_Interface*&        iface) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Interruptible
-+---------------------------------------------------------------------*/
-class NPT_Interruptible
-{
-public:
-    // destructor
-    virtual ~NPT_Interruptible() {}
-
-    // methods
-    virtual NPT_Result Interrupt() = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Configurable
-+---------------------------------------------------------------------*/
-class NPT_Configurable
-{
-public:
-    // destructor
-    virtual ~NPT_Configurable() {}
-     
-    // methods
-    virtual NPT_Result SetProperty(const char* /*name*/, 
-                                   const char* /*value*/) { 
-        return NPT_ERROR_NO_SUCH_PROPERTY;
-    }
-    virtual NPT_Result SetProperty(const char* /*name*/, 
-                                   int         /*value*/) { 
-        return NPT_ERROR_NO_SUCH_PROPERTY;
-    }
-    virtual NPT_Result GetProperty(const char*        /*name*/, 
-                                   NPT_PropertyValue& /*value*/) {
-        return NPT_ERROR_NO_SUCH_PROPERTY;
-    }
-};
-
-#endif // _NPT_INTERFACES_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptList.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptList.h
deleted file mode 100644
index e1712c5..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptList.h
+++ /dev/null
@@ -1,705 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Lists
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_LIST_H_
-#define _NPT_LIST_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptResults.h"
-#include "NptTypes.h"
-#include "NptConstants.h"
-#include "NptCommon.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_LIST_EMPTY              = NPT_ERROR_BASE_LIST - 0;
-const int NPT_ERROR_LIST_OPERATION_ABORTED  = NPT_ERROR_BASE_LIST - 1;
-const int NPT_ERROR_LIST_OPERATION_CONTINUE = NPT_ERROR_BASE_LIST - 2;
-
-/*----------------------------------------------------------------------
-|   NPT_List
-+---------------------------------------------------------------------*/
-template <typename T> 
-class NPT_List 
-{
-protected:
-    class Item;
-
-public:
-    // types
-    typedef T Element;
-
-    class Iterator {
-    public:
-        Iterator() : m_Item(NULL) {}
-        explicit Iterator(Item* item) : m_Item(item) {}
-        Iterator(const Iterator& copy) : m_Item(copy.m_Item) {}
-        T&  operator*()  const { return m_Item->m_Data; }
-        T*  operator->() const { return &m_Item->m_Data;}
-        Iterator& operator++()  { // prefix
-            m_Item = m_Item->m_Next;
-            return (*this); 
-        }
-        Iterator operator++(int) { // postfix
-            Iterator saved_this = *this;
-            m_Item = m_Item->m_Next;
-            return saved_this;
-        }
-        Iterator& operator--() { // prefix
-            m_Item = m_Item->m_Prev;
-            return (*this); 
-        }
-        Iterator operator--(int) { // postfix
-            Iterator saved_this = *this;
-            m_Item = m_Item->m_Prev;
-            return saved_this;
-        }
-        operator bool() const {
-            return m_Item != NULL;
-        }
-        bool operator==(const Iterator& other) const {
-            return m_Item == other.m_Item;
-        }
-        bool operator!=(const Iterator& other) const {
-            return m_Item != other.m_Item;
-        }
-        void operator=(const Iterator& other) {
-            m_Item = other.m_Item;
-        }
-        void operator=(Item* item) {
-            m_Item = item;
-        }
-
-    private:
-        Item* m_Item;
-
-        // friends
-        friend class NPT_List<T>;
-    };
-
-    // methods
-                 NPT_List<T>();
-                 NPT_List<T>(const NPT_List<T>& list);
-                ~NPT_List<T>();
-    NPT_Result   Add(const T& data);
-    NPT_Result   Insert(const Iterator where, const T& data);
-    NPT_Result   Remove(const T& data, bool all=false);
-    NPT_Result   Erase(const Iterator position);
-    NPT_Result   PopHead(T& data);
-    bool         Contains(const T& data) const;
-    NPT_Result   Clear();
-    NPT_Result   Get(NPT_Ordinal index, T& data) const;
-    NPT_Result   Get(NPT_Ordinal index, T*& data) const;
-    NPT_Cardinal GetItemCount() const { return m_ItemCount; }
-    Iterator     GetFirstItem() const { return Iterator(m_Head); }
-    Iterator     GetLastItem() const  { return Iterator(m_Tail); }
-    Iterator     GetItem(NPT_Ordinal index) const;
-
-    // list manipulation
-    NPT_Result   Add(NPT_List<T>& list);
-    NPT_Result   Remove(const NPT_List<T>& list, bool all=false);
-    NPT_Result   Cut(NPT_Cardinal keep, NPT_List<T>& cut);
-    
-    // item manipulation
-    NPT_Result   Add(Item& item);
-    NPT_Result   Detach(Item& item);
-    NPT_Result   Insert(const Iterator where, Item& item);
-
-    // list operations
-    // keep these template members defined here because MSV6 does not let
-    // us define them later
-    template <typename X> 
-    NPT_Result Apply(const X& function) const
-    {                          
-        Item* item = m_Head;
-        while (item) {
-            function(item->m_Data);
-            item = item->m_Next;
-        }
-
-        return NPT_SUCCESS;
-    }
-
-    template <typename X, typename P> 
-    NPT_Result ApplyUntil(const X& function, const P& predicate, bool* match = NULL) const
-    {                          
-        Item* item = m_Head;
-        while (item) {
-            NPT_Result return_value;
-            if (predicate(function(item->m_Data), return_value)) {
-                if (match) *match = true;
-                return return_value;
-            }
-            item = item->m_Next;
-        }
-        
-        if (match) *match = false;
-        return NPT_SUCCESS;
-    }
-
-    template <typename P> 
-    Iterator Find(const P& predicate, NPT_Ordinal n=0) const
-    {
-        Item* item = m_Head;
-        while (item) {
-            if (predicate(item->m_Data)) {
-                if (n == 0) {
-                    return Iterator(item);
-                }
-                --n;
-            }
-            item = item->m_Next;
-        }
-
-        return Iterator(NULL);
-    }
-
-    // Merge sort algorithm
-    // http://en.wikipedia.org/wiki/Mergesort
-    template <typename X> 
-    NPT_Result Sort(const X& function)
-    {   
-        if (GetItemCount() <= 1) return NPT_SUCCESS;
-        
-        NPT_List<T> right;
-        NPT_CHECK(Cut(GetItemCount() >> 1, right));
-        
-        // Sort ourselves again
-        Sort(function);
-        
-        // sort the right side
-        right.Sort(function);
-        
-        // merge the two back inline
-        if (function(m_Tail->m_Data, right.m_Head->m_Data) > 0) {
-            Merge(right, function);
-        } else {
-            // append right
-            right.m_Head->m_Prev = m_Tail;
-            if (m_Tail) m_Tail->m_Next = right.m_Head;
-            if (!m_Head) m_Head = right.m_Head;
-            m_Tail = right.m_Tail;
-            m_ItemCount += right.m_ItemCount;
-            
-            right.m_ItemCount = 0;
-            right.m_Head = right.m_Tail = NULL;
-        }
-        
-        return NPT_SUCCESS;
-    }
-
-    template <typename X> 
-    NPT_Result Merge(NPT_List<T>& other, const X& function) 
-    {
-        Iterator left = GetFirstItem();
-        Iterator right;
-        while (left && other.m_Head) {
-            if (function(*left, other.m_Head->m_Data) <= 0) {
-                ++left;
-            } else {
-                // remove head and insert it
-                Item* head = other.m_Head;
-                other.Detach(*head);
-                Insert(left, *head);
-            }
-        }
-        
-        // add what's left of other if any
-        if (other.m_Head) {
-            other.m_Head->m_Prev = m_Tail;
-            if (m_Tail) m_Tail->m_Next = other.m_Head;
-            m_Tail = other.m_Tail;
-            if (!m_Head) m_Head = other.m_Head;
-            other.m_Head = other.m_Tail = NULL;
-        }
-        m_ItemCount += other.m_ItemCount;
-        other.m_ItemCount = 0;
-        return NPT_SUCCESS;
-    }
-
-    // operators
-    void operator=(const NPT_List<T>& other);
-    bool operator==(const NPT_List<T>& other) const;
-    bool operator!=(const NPT_List<T>& other) const;
-
-protected:
-    // types
-    class Item 
-    {
-    public:
-        // methods
-        Item(const T& data) : m_Next(0), m_Prev(0), m_Data(data) {}
-
-        // members
-        Item* m_Next;
-        Item* m_Prev;
-        T     m_Data;
-
-        // friends
-        //friend class NPT_List<T>;
-        //friend class NPT_List<T>::Iterator;
-    };
-
-    // members
-    NPT_Cardinal m_ItemCount;
-    Item*        m_Head;
-    Item*        m_Tail;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::NPT_List
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_List<T>::NPT_List() : m_ItemCount(0), m_Head(0), m_Tail(0) 
-{
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::NPT_List
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_List<T>::NPT_List(const NPT_List<T>& list) : m_ItemCount(0), m_Head(0), m_Tail(0) 
-{
-    *this = list;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::~NPT_List<T>
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_List<T>::~NPT_List()
-{
-    Clear();
-}
- 
-/*----------------------------------------------------------------------
-|   NPT_List<T>::operator=
-+---------------------------------------------------------------------*/
-template <typename T>
-void
-NPT_List<T>::operator=(const NPT_List<T>& list)
-{
-    // cleanup
-    Clear();
-
-    // copy the new list
-    Item* item = list.m_Head;
-    while (item) {
-        Add(item->m_Data);
-        item = item->m_Next;
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::operator==
-+---------------------------------------------------------------------*/
-template <typename T>
-bool
-NPT_List<T>::operator==(const NPT_List<T>& other) const
-{
-    // quick test
-    if (m_ItemCount != other.m_ItemCount) return false;
-
-    // compare all elements one by one
-    Item* our_item = m_Head;
-    Item* their_item = other.m_Head;
-    while (our_item && their_item) {
-        if (our_item->m_Data != their_item->m_Data) return false;
-        our_item   = our_item->m_Next;
-        their_item = their_item->m_Next;
-    }
-    
-    return our_item == NULL && their_item == NULL;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::operator!=
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-bool
-NPT_List<T>::operator!=(const NPT_List<T>& other) const
-{
-    return !(*this == other);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Clear
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Clear()
-{
-    // delete all items
-    Item* item = m_Head;
-    while (item) {
-        Item* next = item->m_Next;
-        delete item;
-        item = next;
-    }
-
-    m_ItemCount = 0;
-    m_Head      = NULL;
-    m_Tail      = NULL;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Add
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Add(Item& item)
-{
-    // add element at the tail
-    if (m_Tail) {
-        item.m_Prev = m_Tail;
-        item.m_Next = NULL;
-        m_Tail->m_Next = &item;
-        m_Tail = &item;
-    } else {
-        m_Head = &item;
-        m_Tail = &item;
-        item.m_Next = NULL;
-        item.m_Prev = NULL;
-    }
-
-    // one more item in the list now
-    ++m_ItemCount;
- 
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Add
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Add(NPT_List<T>& list)
-{
-    // copy the new list
-    Item* item = list.m_Head;
-    while (item) {
-        Add(item->m_Data);
-        item = item->m_Next;
-    }
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Add
-+---------------------------------------------------------------------*/
-template <typename T>
-inline
-NPT_Result
-NPT_List<T>::Add(const T& data)
-{
-    return Add(*new Item(data));
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::GetItem
-+---------------------------------------------------------------------*/
-template <typename T>
-typename NPT_List<T>::Iterator
-NPT_List<T>::GetItem(NPT_Ordinal n) const
-{
-    Iterator result;
-    if (n >= m_ItemCount) return result;
-    
-    result = m_Head;
-    for (unsigned int i=0; i<n; i++) {
-        ++result;
-    }
-
-    return result;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Insert
-+---------------------------------------------------------------------*/
-template <typename T>
-inline 
-NPT_Result
-NPT_List<T>::Insert(Iterator where, const T&data)
-{
-    return Insert(where, *new Item(data));
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Insert
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Insert(Iterator where, Item& item)
-{
-    // insert the item in the list
-    Item* position = where.m_Item;
-    if (position) {
-        // insert at position
-        item.m_Next = position;
-        item.m_Prev = position->m_Prev;
-        position->m_Prev = &item;
-        if (item.m_Prev) {
-            item.m_Prev->m_Next = &item;
-        } else {
-            // this is the new head
-            m_Head = &item;
-        }
-
-        // one more item in the list now
-        ++m_ItemCount;
-    } else {
-        // insert at tail
-        return Add(item);
-    }
- 
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Erase
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Erase(Iterator position) 
-{
-    if (!position) return NPT_ERROR_NO_SUCH_ITEM;
-    Detach(*position.m_Item);
-    delete position.m_Item;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Remove
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Remove(const T& data, bool all)
-{
-    Item* item = m_Head;
-    NPT_Cardinal matches = 0;
-
-    while (item) {
-        Item* next = item->m_Next;
-        if (item->m_Data == data) {
-            // we found a match
-            ++matches;
-
-            // detach item
-            Detach(*item);
-            
-            // destroy the item
-            delete item;
-
-            if (!all) return NPT_SUCCESS;
-        }
-        item = next;
-    }
- 
-    return matches?NPT_SUCCESS:NPT_ERROR_NO_SUCH_ITEM;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Remove
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Remove(const NPT_List<T>& list, bool all)
-{
-    Item* item = list.m_Head;
-    while (item) {
-        Remove(item->m_Data, all);
-        item = item->m_Next;
-    }
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Detach
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Detach(Item& item)
-{
-    // remove item
-    if (item.m_Prev) {
-        // item is not the head
-        if (item.m_Next) {
-            // item is not the tail
-            item.m_Next->m_Prev = item.m_Prev;
-            item.m_Prev->m_Next = item.m_Next;
-        } else {
-            // item is the tail
-            m_Tail = item.m_Prev;
-            m_Tail->m_Next = NULL;
-        }
-    } else {
-        // item is the head
-        m_Head = item.m_Next;
-        if (m_Head) {
-            // item is not the tail
-            m_Head->m_Prev = NULL;
-        } else {
-            // item is also the tail
-            m_Tail = NULL;
-        }
-    }
-
-    // one less item in the list now
-    --m_ItemCount;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Get
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Get(NPT_Ordinal index, T& data) const
-{
-    T* data_pointer;
-    NPT_CHECK(Get(index, data_pointer));
-    data = *data_pointer;
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Get
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::Get(NPT_Ordinal index, T*& data) const
-{
-    Item* item = m_Head;
-
-    if (index < m_ItemCount) {
-        while (index--) item = item->m_Next;
-        data = &item->m_Data;
-        return NPT_SUCCESS;
-    } else {
-        data = NULL;
-        return NPT_ERROR_NO_SUCH_ITEM;
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::PopHead
-+---------------------------------------------------------------------*/
-template <typename T>
-NPT_Result
-NPT_List<T>::PopHead(T& data)
-{
-    // check that we have an element
-    if (m_Head == NULL) return NPT_ERROR_LIST_EMPTY;
-
-    // copy the head item's data
-    data = m_Head->m_Data;
-
-    // discard the head item
-    Item* head = m_Head;
-    m_Head = m_Head->m_Next;
-    if (m_Head) {
-        m_Head->m_Prev = NULL;
-    } else {
-        m_Tail = NULL;
-    }
-    delete head;
-
-    // update the count
-    --m_ItemCount;
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Contains
-+---------------------------------------------------------------------*/
-template <typename T>
-bool
-NPT_List<T>::Contains(const T& data) const
-{
-    Item* item = m_Head;
-    while (item) {
-        if (item->m_Data == data) return true;
-        item = item->m_Next;
-    }
-
-    return false;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_List<T>::Cut
-+---------------------------------------------------------------------*/
-template <typename T> 
-NPT_Result 
-NPT_List<T>::Cut(NPT_Cardinal keep, NPT_List<T>& cut) 
-{
-    cut.Clear();
-    
-    // shortcut
-    if (keep >= GetItemCount()) return NPT_SUCCESS;
-    
-    // update new counts first
-    cut.m_ItemCount = m_ItemCount-keep;
-    m_ItemCount = keep;
-    
-    // look for the cut-point item
-    Item* item = m_Head;
-    while (keep--) { item = item->m_Next;}
-    
-    // the cut list goes from the cut-point item to the tail
-    cut.m_Head = item;
-    cut.m_Tail = m_Tail;
-    
-    // update the portion of the list we keep
-    if (item == m_Head) m_Head = NULL;
-    m_Tail = item->m_Prev;
-    
-    // update the cut list
-    if (item->m_Prev) item->m_Prev->m_Next = NULL;
-    item->m_Prev = NULL;
-    
-    return NPT_SUCCESS;
-}
-
-#endif // _NPT_LIST_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptLogging.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptLogging.h
deleted file mode 100644
index 3168424..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptLogging.h
+++ /dev/null
@@ -1,520 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Logging Support
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-/** @file
-* Header file for logging
-*/
-
-#ifndef _NPT_LOGGING_H_
-#define _NPT_LOGGING_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-#include "NptTypes.h"
-#include "NptTime.h"
-#include "NptStrings.h"
-#include "NptList.h"
-#include "NptStreams.h"
-#include "NptThreads.h"
-#include "NptHttp.h"
-
-/*----------------------------------------------------------------------
-|   class references
-+---------------------------------------------------------------------*/
-class NPT_LogManager;
-
-/*----------------------------------------------------------------------
-|   types
-+---------------------------------------------------------------------*/
-class NPT_LogRecord {
-public:
-    const char*   m_LoggerName;
-    int           m_Level;
-    const char*   m_Message;
-    NPT_TimeStamp m_TimeStamp;
-    const char*   m_SourceFile;
-    unsigned int  m_SourceLine;
-    const char*   m_SourceFunction;
-    unsigned long m_ThreadId;
-};
-
-class NPT_LogHandler {
-public:
-    typedef void(*CustomHandlerExternalFunction)(const NPT_LogRecord* record);
-    
-    // class methods
-    static NPT_Result SetCustomHandlerFunction(CustomHandlerExternalFunction function);
-    static NPT_Result Create(const char*      logger_name,
-                             const char*      handler_name,
-                             NPT_LogHandler*& handler);
-
-    // methods
-    virtual ~NPT_LogHandler() {}
-    virtual void       Log(const NPT_LogRecord& record) = 0;
-    virtual NPT_String ToString() { return ""; }
-};
-
-class NPT_Logger {
-public:
-    // methods
-    NPT_Logger(const char* name, NPT_LogManager& manager);
-    ~NPT_Logger();
-    void Log(int          level, 
-             const char*  source_file,
-             unsigned int source_line,
-             const char*  source_function,
-             const char*  msg, 
-                          ...);
-
-    NPT_Result AddHandler(NPT_LogHandler* handler, bool transfer_ownership = true);
-    NPT_Result DeleteHandlers();
-    NPT_Result SetParent(NPT_Logger* parent);
-    const NPT_String& GetName()  const { return m_Name;  }
-    int               GetLevel() const { return m_Level; }
-    bool              GetForwardToParent() const { return m_ForwardToParent; }
-    NPT_List<NPT_LogHandler*>& GetHandlers() { return m_Handlers; }
-
-private:
-    // members
-    NPT_LogManager&           m_Manager;
-    NPT_String                m_Name;
-    int                       m_Level;
-    bool                      m_LevelIsInherited;
-    bool                      m_ForwardToParent;
-    NPT_Logger*               m_Parent;
-    NPT_List<NPT_LogHandler*> m_Handlers;
-    NPT_List<NPT_LogHandler*> m_ExternalHandlers;
-
-    // friends
-    friend class NPT_LogManager;
-};
-
-typedef struct {
-    NPT_Logger* logger;
-    const char* name;
-} NPT_LoggerReference;
-
-class NPT_Log {
-public:
-    // class methods
-    static int         GetLogLevel(const char* name);
-    static const char* GetLogLevelName(int level);
-    static const char* GetLogLevelAnsiColor(int level);
-    static void        FormatRecordToStream(const NPT_LogRecord& record,
-                                            NPT_OutputStream&    stream,
-                                            bool                 use_colors,
-                                            NPT_Flags            format_filter);
-};
-
-class NPT_LogConfigEntry {
-public:
-    NPT_LogConfigEntry(const char* key, const char* value) :
-      m_Key(key), m_Value(value) {}
-    NPT_String m_Key;
-    NPT_String m_Value;
-};
-
-class NPT_LogManager {
-public:
-    // class methods
-    static NPT_LogManager& GetDefault();
-    static bool ConfigValueIsBooleanTrue(NPT_String& value);
-    static bool ConfigValueIsBooleanFalse(NPT_String& value);
-    static NPT_Logger* GetLogger(const char* name);
-
-    // methods
-    NPT_LogManager();
-    ~NPT_LogManager();
-    NPT_Result                    Configure(const char* config_sources = NULL);
-    NPT_String*                   GetConfigValue(const char* prefix, const char* suffix);
-    NPT_List<NPT_Logger*>&        GetLoggers() { return m_Loggers; }
-    NPT_List<NPT_LogConfigEntry>& GetConfig()  { return m_Config;  }
-    void                          SetEnabled(bool enabled) { m_Enabled = enabled; }
-    bool                          IsEnabled()              { return m_Enabled;    }
-    void                          Lock();
-    void                          Unlock();
-
-private:
-    // methods
-    NPT_Result  SetConfigValue(const char* key, const char* value);
-    NPT_Result  ParseConfig(const char* config, NPT_Size config_size);
-    NPT_Result  ParseConfigSource(NPT_String& source);
-    NPT_Result  ParseConfigFile(const char* filename);
-    bool        HaveLoggerConfig(const char* name);
-    NPT_Logger* FindLogger(const char* name);
-    NPT_Result  ConfigureLogger(NPT_Logger* logger);
-
-    // members
-    NPT_Mutex                    m_Lock;
-    NPT_Thread::ThreadId         m_LockOwner;
-    bool                         m_Enabled;
-    bool                         m_Configured;
-    NPT_List<NPT_LogConfigEntry> m_Config;
-    NPT_List<NPT_Logger*>        m_Loggers;
-    NPT_Logger*                  m_Root;
-};
-
-const unsigned short NPT_HTTP_LOGGER_CONFIGURATOR_DEFAULT_PORT = 6378;
-class NPT_HttpLoggerConfigurator : NPT_HttpRequestHandler, public NPT_Thread {
-public:
-    // constructor and destructor
-    NPT_HttpLoggerConfigurator(NPT_UInt16 port = NPT_HTTP_LOGGER_CONFIGURATOR_DEFAULT_PORT,
-                               bool       detached = true);
-    virtual ~NPT_HttpLoggerConfigurator();
-
-    // NPT_Runnable (NPT_Thread) methods
-    virtual void Run();
-
-private:
-    // NPT_HttpRequestHandler methods
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request,
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response);
-
-    // members
-    NPT_HttpServer* m_Server;
-};
-
-NPT_Result NPT_GetSystemLogConfig(NPT_String& config);
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#define NPT_LOG_LEVEL_FATAL   700
-#define NPT_LOG_LEVEL_SEVERE  600 
-#define NPT_LOG_LEVEL_WARNING 500
-#define NPT_LOG_LEVEL_INFO    400
-#define NPT_LOG_LEVEL_FINE    300
-#define NPT_LOG_LEVEL_FINER   200
-#define NPT_LOG_LEVEL_FINEST  100 
-
-#define NPT_LOG_LEVEL_OFF     32767
-#define NPT_LOG_LEVEL_ALL     0
-
-/*----------------------------------------------------------------------
-|   macros
-+---------------------------------------------------------------------*/
-#define NPT_LOG_GET_LOGGER(_logger)                                   \
-    if ((_logger).logger == NULL) {                                   \
-        (_logger).logger = NPT_LogManager::GetLogger((_logger).name); \
-    }
-
-#if defined(NPT_CONFIG_ENABLE_LOGGING)
-//TODO: volatile makes tons of errors for me
-//#define NPT_DEFINE_LOGGER(_logger, _name) static volatile NPT_LoggerReference _logger = { NULL, (_name) };
-#define NPT_DEFINE_LOGGER(_logger, _name) static NPT_LoggerReference _logger = { NULL, (_name) };
-
-#define NPT_LOG_X(_logger, _level, _argsx)                              \
-do {                                                                    \
-    NPT_LOG_GET_LOGGER((_logger))                                       \
-    if ((_logger).logger && (_level) >= (_logger).logger->GetLevel()) { \
-        (_logger).logger->Log _argsx;                                   \
-    }                                                                   \
-} while(0)
-
-#define NPT_CHECK_LL(_logger, _level, _result) do {                                    \
-    NPT_Result _x = (_result);                                                         \
-    if (_x != NPT_SUCCESS) {                                                           \
-        NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),"NPT_CHECK failed, result=%d (%s) [%s]", _x, NPT_ResultText(_x), #_result)); \
-        return _x;                                                                     \
-    }                                                                                  \
-} while(0)
-
-#define NPT_CHECK_LABEL_LL(_logger, _level, _result, _label) do {                      \
-    NPT_Result _x = (_result);                                                         \
-    if (_x != NPT_SUCCESS) {                                                           \
-        NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),"NPT_CHECK failed, result=%d (%s) [%s]", _x, NPT_ResultText(_x), #_result)); \
-        goto _label;                                                                   \
-    }                                                                                  \
-} while(0)
-#define NPT_CHECK_POINTER_LL(_logger, _level, _p) do {                                 \
-    if ((_p) == NULL) {                                                                  \
-        NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),"@@@ NULL pointer parameter"));                     \
-        return NPT_ERROR_INVALID_PARAMETERS;                                                     \
-    }                                                                                  \
-} while(0)
-#define NPT_CHECK_POINTER_LABEL_LL(_logger, _level, _p, _label) do {                   \
-    if ((_p) == NULL) {                                                                  \
-        NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),"@@@ NULL pointer parameter"));                     \
-        goto _label;                                                                   \
-    }                                                                                  \
-} while(0)
-
-#else /* NPT_CONFIG_ENABLE_LOGGING */
-
-#define NPT_DEFINE_LOGGER(_logger, _name)
-#define NPT_LOG_X(_logger, _level, _argsx)
-#define NPT_CHECK_LL(_logger, _level, _result) NPT_CHECK(_result)
-#define NPT_CHECK_LABEL_LL(_logger, _level, _result, _label) NPT_CHECK_LABEL((_result), _label)
-#define NPT_CHECK_POINTER_LL(_logger, _level, _p) NPT_CHECK_POINTER((_p))
-#define NPT_CHECK_POINTER_LABEL_LL(_logger, _level, _p, _label) NPT_CHECK_POINTER_LABEL((_p), _label)
-
-#endif /* NPT_CONFIG_ENABLE_LOGGING */
-
-#define NPT_SET_LOCAL_LOGGER(_name) NPT_DEFINE_LOGGER(_NPT_LocalLogger, (_name))
-#define NPT_CHECK_L(_level, _result) NPT_CHECK_LL(_NPT_LocalLogger, (_level), (_result))
-#define NPT_CHECK_LABEL_L(_level, _result, _label) NPT_CHECK_LABEL_LL(_NPT_LocalLogger, (_level), NULL, (_result), _label)
-
-/* NOTE: the following are machine-generated, do not edit */
-#define NPT_LOG_LL(_logger,_level,_msg) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg)))
-#define NPT_LOG(_level,_msg) NPT_LOG_LL((_NPT_LocalLogger),(_level),(_msg))
-#define NPT_LOG_L(_logger,_level,_msg) NPT_LOG_LL((_logger),(_level),(_msg))
-#define NPT_LOG_LL1(_logger,_level,_msg,_arg1) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1)))
-#define NPT_LOG_1(_level,_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),(_level),(_msg),(_arg1))
-#define NPT_LOG_L1(_logger,_level,_msg,_arg1) NPT_LOG_LL1((_logger),(_level),(_msg),(_arg1))
-#define NPT_LOG_LL2(_logger,_level,_msg,_arg1,_arg2) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2)))
-#define NPT_LOG_2(_level,_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2))
-#define NPT_LOG_L2(_logger,_level,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),(_level),(_msg),(_arg1),(_arg2))
-#define NPT_LOG_LL3(_logger,_level,_msg,_arg1,_arg2,_arg3) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2),(_arg3)))
-#define NPT_LOG_3(_level,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_L3(_logger,_level,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),(_level),(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_LL4(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2),(_arg3),(_arg4)))
-#define NPT_LOG_4(_level,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_L4(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_LL5(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5)))
-#define NPT_LOG_5(_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_L5(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_LL6(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6)))
-#define NPT_LOG_6(_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_L6(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_LL7(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7)))
-#define NPT_LOG_7(_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_L7(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_LL8(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8)))
-#define NPT_LOG_8(_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_L8(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_LL9(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_X((_logger),(_level),((_level),__FILE__,__LINE__,(NPT_LocalFunctionName),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9)))
-#define NPT_LOG_9(_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_L9(_logger,_level,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),(_level),(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-
-#define NPT_LOG_FATAL(_msg) NPT_LOG_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg))
-#define NPT_LOG_FATAL_L(_logger,_msg) NPT_LOG_LL((_logger),NPT_LOG_LEVEL_FATAL,(_msg))
-#define NPT_LOG_FATAL_1(_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1))
-#define NPT_LOG_FATAL_L1(_logger,_msg,_arg1) NPT_LOG_LL1((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1))
-#define NPT_LOG_FATAL_2(_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FATAL_L2(_logger,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FATAL_3(_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FATAL_L3(_logger,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FATAL_4(_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FATAL_L4(_logger,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FATAL_5(_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FATAL_L5(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FATAL_6(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FATAL_L6(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FATAL_7(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FATAL_L7(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FATAL_8(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FATAL_L8(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FATAL_9(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_FATAL_L9(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),NPT_LOG_LEVEL_FATAL,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_SEVERE(_msg) NPT_LOG_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg))
-#define NPT_LOG_SEVERE_L(_logger,_msg) NPT_LOG_LL((_logger),NPT_LOG_LEVEL_SEVERE,(_msg))
-#define NPT_LOG_SEVERE_1(_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1))
-#define NPT_LOG_SEVERE_L1(_logger,_msg,_arg1) NPT_LOG_LL1((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1))
-#define NPT_LOG_SEVERE_2(_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_SEVERE_L2(_logger,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_SEVERE_3(_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_SEVERE_L3(_logger,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_SEVERE_4(_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_SEVERE_L4(_logger,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_SEVERE_5(_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_SEVERE_L5(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_SEVERE_6(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_SEVERE_L6(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_SEVERE_7(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_SEVERE_L7(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_SEVERE_8(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_SEVERE_L8(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_SEVERE_9(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_SEVERE_L9(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),NPT_LOG_LEVEL_SEVERE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_WARNING(_msg) NPT_LOG_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg))
-#define NPT_LOG_WARNING_L(_logger,_msg) NPT_LOG_LL((_logger),NPT_LOG_LEVEL_WARNING,(_msg))
-#define NPT_LOG_WARNING_1(_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1))
-#define NPT_LOG_WARNING_L1(_logger,_msg,_arg1) NPT_LOG_LL1((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1))
-#define NPT_LOG_WARNING_2(_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_WARNING_L2(_logger,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_WARNING_3(_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_WARNING_L3(_logger,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_WARNING_4(_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_WARNING_L4(_logger,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_WARNING_5(_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_WARNING_L5(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_WARNING_6(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_WARNING_L6(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_WARNING_7(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_WARNING_L7(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_WARNING_8(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_WARNING_L8(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_WARNING_9(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_WARNING_L9(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),NPT_LOG_LEVEL_WARNING,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_INFO(_msg) NPT_LOG_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg))
-#define NPT_LOG_INFO_L(_logger,_msg) NPT_LOG_LL((_logger),NPT_LOG_LEVEL_INFO,(_msg))
-#define NPT_LOG_INFO_1(_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1))
-#define NPT_LOG_INFO_L1(_logger,_msg,_arg1) NPT_LOG_LL1((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1))
-#define NPT_LOG_INFO_2(_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_INFO_L2(_logger,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_INFO_3(_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_INFO_L3(_logger,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_INFO_4(_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_INFO_L4(_logger,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_INFO_5(_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_INFO_L5(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_INFO_6(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_INFO_L6(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_INFO_7(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_INFO_L7(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_INFO_8(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_INFO_L8(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_INFO_9(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_INFO_L9(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),NPT_LOG_LEVEL_INFO,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_FINE(_msg) NPT_LOG_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg))
-#define NPT_LOG_FINE_L(_logger,_msg) NPT_LOG_LL((_logger),NPT_LOG_LEVEL_FINE,(_msg))
-#define NPT_LOG_FINE_1(_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1))
-#define NPT_LOG_FINE_L1(_logger,_msg,_arg1) NPT_LOG_LL1((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1))
-#define NPT_LOG_FINE_2(_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FINE_L2(_logger,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FINE_3(_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FINE_L3(_logger,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FINE_4(_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FINE_L4(_logger,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FINE_5(_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FINE_L5(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FINE_6(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FINE_L6(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FINE_7(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FINE_L7(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FINE_8(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FINE_L8(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FINE_9(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_FINE_L9(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),NPT_LOG_LEVEL_FINE,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_FINER(_msg) NPT_LOG_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg))
-#define NPT_LOG_FINER_L(_logger,_msg) NPT_LOG_LL((_logger),NPT_LOG_LEVEL_FINER,(_msg))
-#define NPT_LOG_FINER_1(_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1))
-#define NPT_LOG_FINER_L1(_logger,_msg,_arg1) NPT_LOG_LL1((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1))
-#define NPT_LOG_FINER_2(_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FINER_L2(_logger,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FINER_3(_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FINER_L3(_logger,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FINER_4(_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FINER_L4(_logger,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FINER_5(_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FINER_L5(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FINER_6(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FINER_L6(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FINER_7(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FINER_L7(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FINER_8(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FINER_L8(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FINER_9(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_FINER_L9(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),NPT_LOG_LEVEL_FINER,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_FINEST(_msg) NPT_LOG_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg))
-#define NPT_LOG_FINEST_L(_logger,_msg) NPT_LOG_LL((_logger),NPT_LOG_LEVEL_FINEST,(_msg))
-#define NPT_LOG_FINEST_1(_msg,_arg1) NPT_LOG_LL1((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1))
-#define NPT_LOG_FINEST_L1(_logger,_msg,_arg1) NPT_LOG_LL1((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1))
-#define NPT_LOG_FINEST_2(_msg,_arg1,_arg2) NPT_LOG_LL2((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FINEST_L2(_logger,_msg,_arg1,_arg2) NPT_LOG_LL2((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2))
-#define NPT_LOG_FINEST_3(_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FINEST_L3(_logger,_msg,_arg1,_arg2,_arg3) NPT_LOG_LL3((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3))
-#define NPT_LOG_FINEST_4(_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FINEST_L4(_logger,_msg,_arg1,_arg2,_arg3,_arg4) NPT_LOG_LL4((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4))
-#define NPT_LOG_FINEST_5(_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FINEST_L5(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5) NPT_LOG_LL5((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5))
-#define NPT_LOG_FINEST_6(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FINEST_L6(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6) NPT_LOG_LL6((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6))
-#define NPT_LOG_FINEST_7(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FINEST_L7(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7) NPT_LOG_LL7((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7))
-#define NPT_LOG_FINEST_8(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FINEST_L8(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8) NPT_LOG_LL8((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8))
-#define NPT_LOG_FINEST_9(_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-#define NPT_LOG_FINEST_L9(_logger,_msg,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9) NPT_LOG_LL9((_logger),NPT_LOG_LEVEL_FINEST,(_msg),(_arg1),(_arg2),(_arg3),(_arg4),(_arg5),(_arg6),(_arg7),(_arg8),(_arg9))
-
-#define NPT_CHECK_FATAL(_result) NPT_CHECK_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_result))
-#define NPT_CHECK_FATAL_L(_logger,_result) NPT_CHECK_LL((_logger),NPT_LOG_LEVEL_FATAL,(_result))
-#define NPT_CHECK_SEVERE(_result) NPT_CHECK_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_result))
-#define NPT_CHECK_SEVERE_L(_logger,_result) NPT_CHECK_LL((_logger),NPT_LOG_LEVEL_SEVERE,(_result))
-#define NPT_CHECK_WARNING(_result) NPT_CHECK_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_result))
-#define NPT_CHECK_WARNING_L(_logger,_result) NPT_CHECK_LL((_logger),NPT_LOG_LEVEL_WARNING,(_result))
-#define NPT_CHECK_INFO(_result) NPT_CHECK_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_result))
-#define NPT_CHECK_INFO_L(_logger,_result) NPT_CHECK_LL((_logger),NPT_LOG_LEVEL_INFO,(_result))
-#define NPT_CHECK_FINE(_result) NPT_CHECK_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_result))
-#define NPT_CHECK_FINE_L(_logger,_result) NPT_CHECK_LL((_logger),NPT_LOG_LEVEL_FINE,(_result))
-#define NPT_CHECK_FINER(_result) NPT_CHECK_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_result))
-#define NPT_CHECK_FINER_L(_logger,_result) NPT_CHECK_LL((_logger),NPT_LOG_LEVEL_FINER,(_result))
-#define NPT_CHECK_FINEST(_result) NPT_CHECK_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_result))
-#define NPT_CHECK_FINEST_L(_logger,_result) NPT_CHECK_LL((_logger),NPT_LOG_LEVEL_FINEST,(_result))
-
-#define NPT_CHECK_LABEL_FATAL(_result,_label) NPT_CHECK_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_result),_label)
-#define NPT_CHECK_LABEL_FATAL_L(_logger,_result,_label) NPT_CHECK_LABEL_LL((_logger),NPT_LOG_LEVEL_FATAL,(_result),_label)
-#define NPT_CHECK_LABEL_SEVERE(_result,_label) NPT_CHECK_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_result),_label)
-#define NPT_CHECK_LABEL_SEVERE_L(_logger,_result,_label) NPT_CHECK_LABEL_LL((_logger),NPT_LOG_LEVEL_SEVERE,(_result),_label)
-#define NPT_CHECK_LABEL_WARNING(_result,_label) NPT_CHECK_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_result),_label)
-#define NPT_CHECK_LABEL_WARNING_L(_logger,_result,_label) NPT_CHECK_LABEL_LL((_logger),NPT_LOG_LEVEL_WARNING,(_result),_label)
-#define NPT_CHECK_LABEL_INFO(_result,_label) NPT_CHECK_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_result),_label)
-#define NPT_CHECK_LABEL_INFO_L(_logger,_result,_label) NPT_CHECK_LABEL_LL((_logger),NPT_LOG_LEVEL_INFO,(_result),_label)
-#define NPT_CHECK_LABEL_FINE(_result,_label) NPT_CHECK_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_result),_label)
-#define NPT_CHECK_LABEL_FINE_L(_logger,_result,_label) NPT_CHECK_LABEL_LL((_logger),NPT_LOG_LEVEL_FINE,(_result),_label)
-#define NPT_CHECK_LABEL_FINER(_result,_label) NPT_CHECK_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_result),_label)
-#define NPT_CHECK_LABEL_FINER_L(_logger,_result,_label) NPT_CHECK_LABEL_LL((_logger),NPT_LOG_LEVEL_FINER,(_result),_label)
-#define NPT_CHECK_LABEL_FINEST(_result,_label) NPT_CHECK_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_result),_label)
-#define NPT_CHECK_LABEL_FINEST_L(_logger,_result,_label) NPT_CHECK_LABEL_LL((_logger),NPT_LOG_LEVEL_FINEST,(_result),_label)
-
-#define NPT_CHECK_POINTER_FATAL(_p) NPT_CHECK_POINTER_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_p))
-#define NPT_CHECK_POINTER_FATAL_L(_logger,_p) NPT_CHECK_POINTER_LL(_logger,NPT_LOG_LEVEL_FATAL,(_p))
-#define NPT_CHECK_POINTER_SEVERE(_p) NPT_CHECK_POINTER_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_p))
-#define NPT_CHECK_POINTER_SEVERE_L(_logger,_p) NPT_CHECK_POINTER_LL(_logger,NPT_LOG_LEVEL_SEVERE,(_p))
-#define NPT_CHECK_POINTER_WARNING(_p) NPT_CHECK_POINTER_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_p))
-#define NPT_CHECK_POINTER_WARNING_L(_logger,_p) NPT_CHECK_POINTER_LL(_logger,NPT_LOG_LEVEL_WARNING,(_p))
-#define NPT_CHECK_POINTER_INFO(_p) NPT_CHECK_POINTER_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_p))
-#define NPT_CHECK_POINTER_INFO_L(_logger,_p) NPT_CHECK_POINTER_LL(_logger,NPT_LOG_LEVEL_INFO,(_p))
-#define NPT_CHECK_POINTER_FINE(_p) NPT_CHECK_POINTER_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_p))
-#define NPT_CHECK_POINTER_FINE_L(_logger,_p) NPT_CHECK_POINTER_LL(_logger,NPT_LOG_LEVEL_FINE,(_p))
-#define NPT_CHECK_POINTER_FINER(_p) NPT_CHECK_POINTER_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_p))
-#define NPT_CHECK_POINTER_FINER_L(_logger,_p) NPT_CHECK_POINTER_LL(_logger,NPT_LOG_LEVEL_FINER,(_p))
-#define NPT_CHECK_POINTER_FINEST(_p) NPT_CHECK_POINTER_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_p))
-#define NPT_CHECK_POINTER_FINEST_L(_logger,_p) NPT_CHECK_POINTER_LL(_logger,NPT_LOG_LEVEL_FINEST,(_p))
-
-#define NPT_CHECK_POINTER_LABEL_FATAL(_p,_label) NPT_CHECK_POINTER_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FATAL,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_FATAL_L(_logger,_p,_label) NPT_CHECK_POINTER_LABEL_LL(_logger,NPT_LOG_LEVEL_FATAL,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_SEVERE(_p,_label) NPT_CHECK_POINTER_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_SEVERE,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_SEVERE_L(_logger,_p,_label) NPT_CHECK_POINTER_LABEL_LL(_logger,NPT_LOG_LEVEL_SEVERE,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_WARNING(_p,_label) NPT_CHECK_POINTER_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_WARNING,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_WARNING_L(_logger,_p,_label) NPT_CHECK_POINTER_LABEL_LL(_logger,NPT_LOG_LEVEL_WARNING,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_INFO(_p,_label) NPT_CHECK_POINTER_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_INFO,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_INFO_L(_logger,_p,_label) NPT_CHECK_POINTER_LABEL_LL(_logger,NPT_LOG_LEVEL_INFO,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_FINE(_p, _label) NPT_CHECK_POINTER_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINE,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_FINE_L(_logger,_p,_label) NPT_CHECK_POINTER_LABEL_LL(_logger,NPT_LOG_LEVEL_FINE,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_FINER(_p,_label) NPT_CHECK_POINTER_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINER,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_FINER_L(_logger,_p,_label) NPT_CHECK_POINTER_LABEL_LL(_logger,NPT_LOG_LEVEL_FINER,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_FINEST(_p,_label) NNPT_CHECK_POINTER_LABEL_LL((_NPT_LocalLogger),NPT_LOG_LEVEL_FINEST,(_p),_label)
-#define NPT_CHECK_POINTER_LABEL_FINEST_L(_logger,_p,_label) NPT_CHECK_POINTER_LABEL_LL(_logger,NPT_LOG_LEVEL_FINEST,(_p),_label)
-
-#endif /* _NPT_LOGGING_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptMap.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptMap.h
deleted file mode 100644
index fc12b87..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptMap.h
+++ /dev/null
@@ -1,807 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Maps
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-
-#ifndef _NPT_MAP_H_
-#define _NPT_MAP_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptResults.h"
-#include "NptList.h"
-#include "NptHash.h"
-
-/*----------------------------------------------------------------------
-|   NPT_Map
-+---------------------------------------------------------------------*/
-template <typename K, typename V> 
-class NPT_Map 
-{
-public:
-    // types
-    class Entry {
-    public:
-        // constructor
-        Entry(const K& key, const V& value) : m_Key(key), m_Value(value) {}
-        Entry(const K& key) : m_Key(key) {}
-        
-        // accessors
-        const K& GetKey()   const { return m_Key;   }
-        const V& GetValue() const { return m_Value; }
-
-        // operators 
-        bool operator==(const Entry& other) const {
-            return m_Key == other.m_Key && m_Value == other.m_Value;
-        }
-
-    protected:
-        // methods
-        void SetValue(const V& value) { m_Value = value; }
-
-        // members
-        K m_Key;
-        V m_Value;
-
-        // friends
-        friend class NPT_Map<K,V>;
-    };
-
-    // constructors
-    NPT_Map<K,V>() {}
-    NPT_Map<K,V>(const NPT_Map<K,V>& copy);
-
-    // destructor
-    ~NPT_Map<K,V>();
-
-    // methods
-    NPT_Result   Put(const K& key, const V& value);
-    NPT_Result   Get(const K& key, V*& value) const; // WARNING: the second parameter is a POINTER on the value type!!!
-    bool         HasKey(const K& key) const { return GetEntry(key) != NULL; }
-    bool         HasValue(const V& value) const;
-    NPT_Result   Erase(const K& key);
-    NPT_Cardinal GetEntryCount() const         { return m_Entries.GetItemCount(); }
-    const NPT_List<Entry*>& GetEntries() const { return m_Entries; }
-    NPT_Result   Clear();
-
-    // operators
-    V&                  operator[](const K& key);
-    const NPT_Map<K,V>& operator=(const NPT_Map<K,V>& copy);
-    bool                operator==(const NPT_Map<K,V>& other) const;
-    bool                operator!=(const NPT_Map<K,V>& other) const;
-
-private:
-    // types
-    typedef typename NPT_List<Entry*>::Iterator ListIterator;
-
-    // methods
-    Entry* GetEntry(const K& key) const;
-
-    // members
-    NPT_List<Entry*> m_Entries;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::NPT_Map<K,V>
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-NPT_Map<K,V>::NPT_Map(const NPT_Map<K,V>& copy)
-{
-    *this = copy;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::~NPT_Map<K,V>
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-NPT_Map<K,V>::~NPT_Map()
-{
-    // call Clear to ensure we delete all entry objects
-    Clear();
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::Clear
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-NPT_Result
-NPT_Map<K,V>::Clear()
-{
-    m_Entries.Apply(NPT_ObjectDeleter<Entry>());
-    m_Entries.Clear();
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::GetEntry
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-typename NPT_Map<K,V>::Entry*
-NPT_Map<K,V>::GetEntry(const K& key) const
-{
-    typename NPT_List<Entry*>::Iterator entry = m_Entries.GetFirstItem();
-    while (entry) {
-        if ((*entry)->GetKey() == key) {
-            return *entry;
-        }
-        ++entry;
-    }
-
-    return NULL;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::Put
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-NPT_Result
-NPT_Map<K,V>::Put(const K& key, const V& value)
-{
-    Entry* entry = GetEntry(key);
-    if (entry == NULL) {
-        // no existing entry for that key, create one
-        m_Entries.Add(new Entry(key, value));
-    } else {
-        // replace the existing entry for that key
-        entry->SetValue(value);
-    }
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::Get
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-NPT_Result
-NPT_Map<K,V>::Get(const K& key, V*& value) const
-{
-    Entry* entry = GetEntry(key);
-    if (entry == NULL) {
-        // no existing entry for that key
-        value = NULL;
-        return NPT_ERROR_NO_SUCH_ITEM;
-    } else {
-        // found an entry with that key
-        value = &entry->m_Value;
-        return NPT_SUCCESS;
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::HasValue
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-bool
-NPT_Map<K,V>::HasValue(const V& value) const
-{
-    ListIterator entry = m_Entries.GetFirstItem();
-    while (entry) {
-        if (value == (*entry)->m_Value) {
-            return true;
-        }
-        ++entry;
-    }
-
-    return false;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::operator=
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-const NPT_Map<K,V>&
-NPT_Map<K,V>::operator=(const NPT_Map<K,V>& copy)
-{
-    // do nothing if we're assigning to ourselves
-    if (this == &copy) return copy;
-
-    // destroy all entries
-    Clear();
-
-    // copy all entries one by one
-    ListIterator entry = copy.m_Entries.GetFirstItem();
-    while (entry) {
-        m_Entries.Add(new Entry((*entry)->GetKey(), (*entry)->GetValue()));
-        ++entry;
-    }
-
-    return *this;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::Erase
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-NPT_Result
-NPT_Map<K,V>::Erase(const K& key)
-{
-    ListIterator entry = m_Entries.GetFirstItem();
-    while (entry) {
-        if ((*entry)->GetKey() == key) {
-            delete *entry; // do this before removing the entry from the
-                           // list, because Erase() will invalidate the
-                           // iterator item
-            m_Entries.Erase(entry);
-            return NPT_SUCCESS;
-        }
-        ++entry;
-    }
-
-    return NPT_ERROR_NO_SUCH_ITEM;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::operator==
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-bool
-NPT_Map<K,V>::operator==(const NPT_Map<K,V>& other) const
-{
-    // quick test
-    if (m_Entries.GetItemCount() != other.m_Entries.GetItemCount()) return false;
-
-    // compare all entries to all other entries
-    ListIterator entry = m_Entries.GetFirstItem();
-    while (entry) {
-        V* value;
-        if (NPT_SUCCEEDED(other.Get((*entry)->m_Key, value))) {
-            // the other map has an entry for this key, check the value
-            if (!(*value == (*entry)->m_Value)) return false;
-        } else {
-            // the other map does not have an entry for this key
-            return false;
-        }
-        ++entry;
-    }
-
-    return true;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::operator!=
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-bool
-NPT_Map<K,V>::operator!=(const NPT_Map<K,V>& other) const
-{
-    return !(*this == other);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_Map<K,V>::operator[]
-+---------------------------------------------------------------------*/
-template <typename K, typename V>
-V&
-NPT_Map<K,V>::operator[](const K& key)
-{
-    Entry* entry = GetEntry(key);
-    if (entry == NULL) {
-        // create a new "default" entry for this key
-        entry = new Entry(key);
-        m_Entries.Add(entry);
-    }
-     
-    return entry->m_Value;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF = NPT_Hash<K> > 
-class NPT_HashMap 
-{
-public:
-    // types
-    class Entry {
-    public:
-        // constructor
-        Entry(NPT_UInt32 hash_value, const K& key, const V& value) : m_HashValue(hash_value), m_Key(key), m_Value(value) {}
-        Entry(NPT_UInt32 hash_value, const K& key)                 : m_HashValue(hash_value), m_Key(key) {}
-        
-        // accessors
-        const K&   GetKey()       const { return m_Key;   }
-        const V&   GetValue()     const { return m_Value; }
-        NPT_UInt32 GetHashValue() const { return m_HashValue; }
-        
-        // operators 
-        bool operator==(const Entry& other) const {
-            return m_HashValue == other.m_HashValue && m_Key == other.m_Key && m_Value == other.m_Value;
-        }
-
-    protected:
-        // methods
-        void SetValue(const V& value) { m_Value = value; }
-
-        // members
-        NPT_UInt32 m_HashValue;
-        K          m_Key;
-        V          m_Value;
-
-        // friends
-        friend class NPT_HashMap<K,V,HF>;
-    };
-
-    class Iterator {
-    public:
-        Iterator() : m_Entry(NULL), m_Map(NULL) {}
-        Iterator(Entry** entry, const NPT_HashMap<K,V,HF>* map) : m_Entry(entry), m_Map(map) {}
-        Iterator(const Iterator& copy) : m_Entry(copy.m_Entry), m_Map(copy.m_Map) {}
-        const Entry&  operator*()  const { return **m_Entry; }
-        Iterator& operator++()  { // prefix
-            if (m_Map && m_Entry) {
-                do {
-                    ++m_Entry;
-                    if (m_Entry >= &m_Map->m_Buckets[1<<m_Map->m_BucketCountLog]) {
-                        m_Entry = NULL;
-                    } else {
-                        if (*m_Entry) break;
-                    }
-                } while (m_Entry);
-            }
-            return (*this); 
-        }
-        Iterator operator++(int) { // postfix
-            Iterator saved_this = *this;
-            ++(*this);
-            return saved_this;
-        }
-        operator bool() const {
-            return m_Entry != NULL;
-        }
-        bool operator==(const Iterator& other) const {
-            return m_Map == other.m_Map && m_Entry == other.m_Entry;
-        }
-        bool operator!=(const Iterator& other) const {
-            return !(*this == other);
-        }
-        void operator=(const Iterator& other) {
-            m_Entry = other.m_Entry;
-            m_Map   = other.m_Map;
-        }
-
-    private:
-        // friends
-        friend class NPT_HashMap<K,V,HF>;
-
-        // members
-        Entry**                    m_Entry;
-        const NPT_HashMap<K,V,HF>* m_Map;
-    };
-
-    // constructors
-    NPT_HashMap<K,V,HF>();
-    NPT_HashMap<K,V,HF>(const HF& hasher);
-    NPT_HashMap<K,V,HF>(const NPT_HashMap<K,V,HF>& copy);
-
-    // destructor
-    ~NPT_HashMap<K,V,HF>();
-
-    // methods
-    NPT_Result   Put(const K& key, const V& value);
-    NPT_Result   Get(const K& key, V*& value) const; // WARNING: the second parameter is a POINTER on the value type!!!
-    bool         HasKey(const K& key) const { return GetEntry(key) != NULL; }
-    bool         HasValue(const V& value) const;
-    NPT_Result   Erase(const K& key);
-    NPT_Cardinal GetEntryCount() const { return m_EntryCount; }
-    Iterator     GetEntries() const;
-    NPT_Result   Clear();
-    
-    // list operations
-    // keep these template members defined here because MSV6 does not let
-    // us define them later
-    template <typename X> 
-    NPT_Result Apply(const X& function) const
-    {                          
-        for (int i=0; i<(1<<m_BucketCountLog); i++) {
-            if (m_Buckets[i]) {
-                function(m_Buckets[i]);
-            }
-        }
-        return NPT_SUCCESS;
-    }
-
-    // operators
-    V&                         operator[](const K& key);
-    const NPT_HashMap<K,V,HF>& operator=(const NPT_HashMap<K,V,HF>& copy);
-    bool                       operator==(const NPT_HashMap<K,V,HF>& other) const;
-    bool                       operator!=(const NPT_HashMap<K,V,HF>& other) const;
-
-private:
-    // methods
-    Entry*     GetEntry(const K& key, NPT_UInt32* position=NULL) const;
-    NPT_Result AddEntry(Entry* entry);
-    void       AllocateBuckets(unsigned int count_log);
-    void       AdjustBuckets(NPT_Cardinal entry_count, bool allow_shrink=false);
-    
-    // members
-    HF           m_Hasher;
-    Entry**      m_Buckets;
-    NPT_Cardinal m_BucketCountLog;
-    NPT_Cardinal m_EntryCount;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V>::NPT_HashMap
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_HashMap<K,V,HF>::NPT_HashMap() :
-    m_Buckets(NULL),
-    m_EntryCount(0)
-{
-    AllocateBuckets(4);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V>::NPT_HashMap
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_HashMap<K,V,HF>::NPT_HashMap(const HF& hasher) :
-    m_Hasher(hasher),
-    m_Buckets(NULL),
-    m_EntryCount(0)
-{
-    AllocateBuckets(4);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V>::NPT_HashMap
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_HashMap<K,V,HF>::NPT_HashMap(const NPT_HashMap<K,V,HF>& copy) :
-    m_Buckets(NULL),
-    m_BucketCountLog(0),
-    m_EntryCount(0)
-{
-    *this = copy;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_MapMap<K,V,HF>::NPT_HashMap
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_HashMap<K,V,HF>::~NPT_HashMap()
-{
-    for (int i=0; i<(1<<m_BucketCountLog); i++) {
-        delete m_Buckets[i];
-    }
-    delete[] m_Buckets;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::AllocateBuckets
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-void
-NPT_HashMap<K,V,HF>::AllocateBuckets(unsigned int count_log)
-{
-    m_Buckets = new Entry*[1<<count_log];
-    m_BucketCountLog = count_log;
-    for (int i=0; i<(1<<count_log); i++) {
-        m_Buckets[i] = NULL;
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::AdjustBuckets
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-void
-NPT_HashMap<K,V,HF>::AdjustBuckets(NPT_Cardinal entry_count, bool allow_shrink)
-{
-    Entry** buckets = NULL;
-    unsigned int bucket_count = 1<<m_BucketCountLog;
-    if (2*entry_count >= bucket_count) {
-        // we need to grow
-        buckets = m_Buckets;
-        AllocateBuckets(m_BucketCountLog+1);
-    } else if (allow_shrink && (5*entry_count < bucket_count) && m_BucketCountLog > 4) {
-        // we need to shrink
-        buckets = m_Buckets;
-        AllocateBuckets(m_BucketCountLog-1);
-    }
-    if (buckets) {
-        m_EntryCount = 0;
-        for (unsigned int i=0; i<bucket_count; i++) {
-            if (buckets[i]) AddEntry(buckets[i]);
-        }
-        delete[] buckets;
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::Clear
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_Result
-NPT_HashMap<K,V,HF>::Clear()
-{
-    if (m_Buckets) {
-        for (int i=0; i<(1<<m_BucketCountLog); i++) {
-            delete m_Buckets[i];
-        }
-        delete[] m_Buckets;
-    }
-    m_EntryCount = 0;
-    AllocateBuckets(4);
-    
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::GetEntries
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-typename NPT_HashMap<K,V,HF>::Iterator
-NPT_HashMap<K,V,HF>::GetEntries() const
-{
-    for (int i=0; i<(1<<m_BucketCountLog); i++) {
-        if (m_Buckets[i]) {
-            return Iterator(&m_Buckets[i], this);
-        }
-    }
-    return Iterator(NULL, this);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::GetEntry
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-typename NPT_HashMap<K,V,HF>::Entry*
-NPT_HashMap<K,V,HF>::GetEntry(const K& key, NPT_UInt32* position) const
-{
-    NPT_UInt32 hash_value = m_Hasher(key);
-    NPT_UInt32 mask       = (1<<m_BucketCountLog)-1;
-    NPT_UInt32 cursor     = hash_value & mask;
-    while (m_Buckets[cursor]) {
-        Entry* entry = m_Buckets[cursor];
-        if (entry->m_HashValue == hash_value &&
-            entry->m_Key       == key) {
-            if (position) *position = cursor;
-            return entry;
-        }
-        cursor = (cursor + 1) & mask;
-    }
-    
-    return NULL;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::AddEntry
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_Result
-NPT_HashMap<K,V,HF>::AddEntry(Entry* entry)
-{
-    AdjustBuckets(m_EntryCount+1);
-
-    NPT_UInt32 hash_value = entry->m_HashValue;
-    NPT_UInt32 mask       = (1<<m_BucketCountLog)-1;
-    NPT_UInt32 cursor     = hash_value & mask;
-    while (m_Buckets[cursor]) {
-        cursor = (cursor + 1) & mask;
-    }
-    m_Buckets[cursor] = entry;
-    ++m_EntryCount;
-    
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::Put
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_Result
-NPT_HashMap<K,V,HF>::Put(const K& key, const V& value)
-{
-    Entry* entry = GetEntry(key);
-    if (entry == NULL) {
-        // no existing entry for that key, create one
-        return AddEntry(new Entry(m_Hasher(key), key, value));
-    } else {
-        // replace the existing entry for that key
-        entry->SetValue(value);
-    }
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::Get
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_Result
-NPT_HashMap<K,V,HF>::Get(const K& key, V*& value) const
-{
-    Entry* entry = GetEntry(key);
-    if (entry == NULL) {
-        // no existing entry for that key
-        value = NULL;
-        return NPT_ERROR_NO_SUCH_ITEM;
-    } else {
-        // found an entry with that key
-        value = &entry->m_Value;
-        return NPT_SUCCESS;
-    }
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::HasValue
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-bool
-NPT_HashMap<K,V,HF>::HasValue(const V& value) const
-{
-    for (int i=0; i<(1<<m_BucketCountLog); i++) {
-        if (m_Buckets[i] && m_Buckets[i]->m_Value == value) {
-            return true;
-        }
-    }
-
-    return false;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::Erase
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-NPT_Result
-NPT_HashMap<K,V,HF>::Erase(const K& key)
-{
-    NPT_UInt32 position;
-    Entry* entry = GetEntry(key, &position);
-    if (entry == NULL) {
-        return NPT_ERROR_NO_SUCH_ITEM;
-    }
-    
-    // mark the bucket as unoccupied
-    m_Buckets[position] = NULL;
-    
-    // look for buckets that need to be relocated:
-    // there should be no empty bucket between an entry's ideal hash bucket
-    // and its actual bucket.
-    NPT_UInt32 mask = (1<<m_BucketCountLog)-1;
-    for (NPT_UInt32 cursor = (position+1) & mask; m_Buckets[cursor]; cursor = (cursor + 1) & mask) {
-        NPT_UInt32 target = m_Buckets[cursor]->m_HashValue & mask;
-        // check if target is between position and cursor (modulo the bucket array size)
-        // |    position.target.cursor |
-        // |....cursor position.target.| or |.target..cursor position...|
-        if ( (position <= cursor) ?
-             ((position < target) && (target <= cursor)) :
-             ((position < target) || (target <= cursor)) ) {
-             continue;
-        }
-        
-        // move the bucket back
-        m_Buckets[position] = m_Buckets[cursor];
-        m_Buckets[cursor] = NULL;
-        position = cursor;
-    }
-        
-    // cleanup and adjust the counter and buckets
-    delete entry;
-    --m_EntryCount;
-    AdjustBuckets(m_EntryCount, true);
-
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::operator=
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-const NPT_HashMap<K,V,HF>&
-NPT_HashMap<K,V,HF>::operator=(const NPT_HashMap<K,V,HF>& copy)
-{
-    // do nothing if we're assigning to ourselves
-    if (this == &copy) return copy;
-
-    // destroy all entries
-    Clear();
-
-    // prepare to receive all the entries
-    AdjustBuckets(copy.m_EntryCount);
-    
-    // copy all entries
-    for (int i=0; i<1<<copy.m_BucketCountLog; i++) {
-        if (copy.m_Buckets[i]) {
-            AddEntry(new Entry(m_Hasher(copy.m_Buckets[i]->GetKey()),
-                               copy.m_Buckets[i]->GetKey(), 
-                               copy.m_Buckets[i]->GetValue()));
-        }
-    }
-    
-    return *this;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::operator==
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-bool
-NPT_HashMap<K,V,HF>::operator==(const NPT_HashMap<K,V,HF>& other) const
-{
-    // quick check
-    if (m_EntryCount != other.m_EntryCount) return false;
-    
-    // compare all entries to all other entries
-    for (int i=0; i<(1<<m_BucketCountLog); i++) {
-        Entry* entry = m_Buckets[i];
-        if (entry == NULL) continue;
-        Entry* other_entry = other.GetEntry(entry->m_Key);
-        if (other_entry == NULL || !(other_entry->m_Value == entry->m_Value)) {
-            return false;
-        }
-    }
-    
-    return true;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V,HF>::operator!=
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-bool
-NPT_HashMap<K,V,HF>::operator!=(const NPT_HashMap<K,V,HF>& other) const
-{
-    return !(*this == other);
-}
-
-/*----------------------------------------------------------------------
-|   NPT_HashMap<K,V>::operator[]
-+---------------------------------------------------------------------*/
-template <typename K, typename V, typename HF>
-V&
-NPT_HashMap<K,V,HF>::operator[](const K& key)
-{
-    Entry* entry = GetEntry(key);
-    if (entry == NULL) {
-        // create a new "default" entry for this key
-        entry = new Entry(m_Hasher(key), key);
-        AddEntry(entry);
-    }
-     
-    return entry->m_Value;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_MapEntryValueDeleter
-+---------------------------------------------------------------------*/
-template <class T>
-class NPT_MapEntryValueDeleter {
-public:
-    void operator()(T* entry) const {
-        delete entry->GetValue();
-    }
-};
-
-#endif // _NPT_MAP_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptMessaging.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptMessaging.h
deleted file mode 100644
index 3e61919..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptMessaging.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Messaging System
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_MESSAGING_H_
-#define _NPT_MESSAGING_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConstants.h"
-#include "NptTypes.h"
-#include "NptResults.h"
-#include "NptList.h"
-#include "NptThreads.h"
-#include "NptDynamicCast.h"
-
-/*----------------------------------------------------------------------
-|   forward references
-+---------------------------------------------------------------------*/
-class NPT_Message;
-
-/*----------------------------------------------------------------------
-|   NPT_MessageHandler
-+---------------------------------------------------------------------*/
-class NPT_MessageHandler
-{
-public:
-    NPT_IMPLEMENT_DYNAMIC_CAST(NPT_MessageHandler)
-    
-    // methods
-    virtual ~NPT_MessageHandler() {}
-
-    // default message handler
-    virtual void OnMessage(NPT_Message*) {}
-
-    // this method is a central point of handling for received messages.
-    // it can be overloaded by subclasses that wish to process all 
-    // incoming messages
-    virtual NPT_Result HandleMessage(NPT_Message* message);
-};
-
-/*----------------------------------------------------------------------
-|   NPT_MessageHandlerProxy
-+---------------------------------------------------------------------*/
-class NPT_MessageHandlerProxy : public NPT_MessageHandler
-{
-public:
-    NPT_IMPLEMENT_DYNAMIC_CAST_D(NPT_MessageHandlerProxy, NPT_MessageHandler)
-
-    /**
-     * Create a proxy for a message handler.
-     * All calls to HandleMessage() and OnMessage() on the proxy
-     * are automatically forwarded to the handler.
-     * This class is useful in cases where a handler is passed
-     * asynchronously (for example in a message queue) and one wishes
-     * to guarantee right away that no more calls to the handler will be 
-     * made (because, for example, the handler needs to be deleted).
-     *
-     * The proxy object keeps a pointer to the handler, but does not own it.
-     */
-    NPT_MessageHandlerProxy(NPT_MessageHandler* handler);
-    
-    // destructor
-    virtual ~NPT_MessageHandlerProxy();
-
-    // NPT_MessageHandler methods
-    virtual void OnMessage(NPT_Message*);
-    virtual NPT_Result HandleMessage(NPT_Message* message);
-    
-    /**
-     * Detach the proxy from the handler implementation.
-     * After this call returns, calls will no longer be
-     * forwarded to the handler object. It is then safe, for example,
-     * to delete the handler.
-     */
-    void DetachHandler();
-    
-    /**
-     * Increment the reference count
-     */
-    void AddReference();
-
-    /**
-     * Decrement the reference count and delete if 0
-     */
-    void Release();
-    
-private:
-    // members
-    NPT_MessageHandler* m_Handler;
-    NPT_Cardinal        m_ReferenceCount;
-    NPT_Mutex           m_Lock;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Messsage
-+---------------------------------------------------------------------*/
-class NPT_Message
-{
-public:
-    // types
-    typedef const char* Type;
-
-    // static members
-    static Type const MessageType;
-
-    // methods
-    virtual           ~NPT_Message() {}
-    virtual Type       GetType() { return MessageType; }
-    virtual NPT_Result Dispatch(NPT_MessageHandler* handler) {
-        return DefaultDeliver(handler);
-    }
-    // this method should really be called 'Deliver', but this would
-    // cause a problem when subclasses overload it 
-    virtual NPT_Result DefaultDeliver(NPT_MessageHandler* handler) {
-        handler->OnMessage(this);
-        return NPT_SUCCESS;
-    }
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TerminateMesssage
-+---------------------------------------------------------------------*/
-class NPT_TerminateMessage : public NPT_Message
-{
-public:
-    // methods
-    NPT_Result Dispatch(NPT_MessageHandler* /*handler*/) {
-        return NPT_ERROR_TERMINATED;
-    }
-};
-
-/*----------------------------------------------------------------------
-|   NPT_MessageQueue
-+---------------------------------------------------------------------*/
-class NPT_MessageQueue
-{
-public:
-    // methods
-    virtual           ~NPT_MessageQueue() {}
-    virtual NPT_Result PumpMessage(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) = 0;
-    virtual NPT_Result QueueMessage(NPT_Message*        message, 
-                                    NPT_MessageHandler* handler) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_MessageReceiver
-+---------------------------------------------------------------------*/
-class NPT_MessageReceiver
-{
-public:
-    // methods
-    NPT_MessageReceiver() : m_Queue(NULL), m_Handler(NULL) {}
-    NPT_MessageReceiver(NPT_MessageHandler* handler) : 
-        m_Queue(NULL), m_Handler(handler) {}
-    NPT_MessageReceiver(NPT_MessageQueue* queue) : 
-        m_Queue(queue), m_Handler(NULL) {}
-    NPT_MessageReceiver(NPT_MessageHandler* handler, 
-                        NPT_MessageQueue*   queue) : 
-        m_Queue(queue), m_Handler(handler) {}
-    virtual ~NPT_MessageReceiver() {}
-    NPT_Result SetQueue(NPT_MessageQueue* queue) {
-        m_Queue = queue;
-        return NPT_SUCCESS;
-    }
-    NPT_Result SetHandler(NPT_MessageHandler* handler) {
-        m_Handler = handler;
-        return NPT_SUCCESS;
-    }
-    virtual NPT_Result PostMessage(NPT_Message* message) {
-        if (m_Queue) {
-            return m_Queue->QueueMessage(message, m_Handler);
-        } else {
-            return NPT_FAILURE;
-        }
-    }
-
-protected:
-    // members
-    NPT_MessageQueue*   m_Queue;
-    NPT_MessageHandler* m_Handler;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_MessageBroadcaster
-+---------------------------------------------------------------------*/
-class NPT_MessageBroadcaster
-{
-public:
-    // methods
-    NPT_MessageBroadcaster(NPT_Message* message) : m_Message(message) {}
-    NPT_Result operator()(NPT_MessageReceiver*& receiver) const {
-        receiver->PostMessage(m_Message);
-        return NPT_SUCCESS;
-    }
-
-private:
-    // members
-    NPT_Message* m_Message;
-};
-
-#endif // _NPT_MESSAGING_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptNetwork.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptNetwork.h
deleted file mode 100644
index 6486f03..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptNetwork.h
+++ /dev/null
@@ -1,250 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Network
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_NETWORK_H_
-#define _NPT_NETWORK_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptConstants.h"
-#include "NptStrings.h"
-#include "NptList.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const unsigned int NPT_NETWORK_MAX_MAC_ADDRESS_LENGTH  = 8;
-
-/*----------------------------------------------------------------------
-|   flags
-+---------------------------------------------------------------------*/
-#define NPT_NETWORK_INTERFACE_FLAG_LOOPBACK       0x01
-#define NPT_NETWORK_INTERFACE_FLAG_PROMISCUOUS    0x02
-#define NPT_NETWORK_INTERFACE_FLAG_BROADCAST      0x04
-#define NPT_NETWORK_INTERFACE_FLAG_MULTICAST      0x08
-#define NPT_NETWORK_INTERFACE_FLAG_POINT_TO_POINT 0x10
-
-/*----------------------------------------------------------------------
-|   workarounds
-+---------------------------------------------------------------------*/
-#if defined(_WIN32)
-#if defined(SetPort)
-#undef SetPort
-#endif
-#endif
-
-/*----------------------------------------------------------------------
-|   types
-+---------------------------------------------------------------------*/
-typedef unsigned int NPT_IpPort;
-
-/*----------------------------------------------------------------------
-|   NPT_IpAddress
-+---------------------------------------------------------------------*/
-class NPT_IpAddress
-{
-public:
-    // class members
-    static const NPT_IpAddress Any;
-
-    // constructors and destructor
-    NPT_IpAddress();
-    NPT_IpAddress(unsigned long address);
-    NPT_IpAddress(unsigned char a, unsigned char b, unsigned char c, unsigned char d);
-
-    // methods
-    NPT_Result       ResolveName(const char* name, 
-                                 NPT_Timeout timeout = NPT_TIMEOUT_INFINITE);
-    NPT_Result       Parse(const char* name);
-    NPT_Result       Set(unsigned long address);
-    NPT_Result       Set(const unsigned char bytes[4]);
-    const unsigned char* AsBytes() const;
-    unsigned long    AsLong() const;
-    NPT_String       ToString() const;
-    
-    // operators
-    bool             operator==(const NPT_IpAddress& other) const;
-    
-    // FIXME: temporary
-    NPT_String       m_HostName;
-
-private:
-    // members
-    unsigned char m_Address[4];
-};
-
-/*----------------------------------------------------------------------
-|   NPT_MacAddress
-+---------------------------------------------------------------------*/
-class NPT_MacAddress
-{
-public:
-    // typedef enum
-    typedef enum {
-        TYPE_UNKNOWN,
-        TYPE_LOOPBACK,
-        TYPE_ETHERNET,
-        TYPE_PPP,
-        TYPE_IEEE_802_11
-    } Type;
-    
-    // constructors and destructor
-    NPT_MacAddress() : m_Type(TYPE_UNKNOWN), m_Length(0) {}
-    NPT_MacAddress(Type           type,
-                   const unsigned char* addr, 
-                   unsigned int   length);
-    
-    // methods
-    void                 SetAddress(Type type, const unsigned char* addr,
-                                    unsigned int length);
-    Type                 GetType() const    { return m_Type; }
-    const unsigned char* GetAddress() const { return m_Address; }
-    unsigned int         GetLength() const  { return m_Length; }
-    NPT_String           ToString() const;
-    
-private:
-    // members
-    Type          m_Type;
-    unsigned char m_Address[NPT_NETWORK_MAX_MAC_ADDRESS_LENGTH];
-    unsigned int  m_Length;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_NetworkInterfaceAddress
-+---------------------------------------------------------------------*/
-class NPT_NetworkInterfaceAddress
-{
-public:
-    // constructors and destructor
-    NPT_NetworkInterfaceAddress(const NPT_IpAddress& primary,
-                                const NPT_IpAddress& broadcast,
-                                const NPT_IpAddress& destination,
-                                const NPT_IpAddress& netmask) :
-        m_PrimaryAddress(primary),
-        m_BroadcastAddress(broadcast),
-        m_DestinationAddress(destination),
-        m_NetMask(netmask) {}
-
-    // methods
-    const NPT_IpAddress& GetPrimaryAddress() const {
-        return m_PrimaryAddress;
-    }
-    const NPT_IpAddress& GetBroadcastAddress() const {
-        return m_BroadcastAddress;
-    }
-    const NPT_IpAddress& GetDestinationAddress() const {
-        return m_DestinationAddress;
-    }
-    const NPT_IpAddress& GetNetMask() const {
-        return m_NetMask;
-    }
-    
-    bool IsAddressInNetwork(const NPT_IpAddress& address) {
-        if (m_PrimaryAddress.AsLong() == address.AsLong()) return true;
-        if (m_NetMask.AsLong() == 0) return false;
-        return (m_PrimaryAddress.AsLong() & m_NetMask.AsLong()) == (address.AsLong() & m_NetMask.AsLong());
-    }
-
-private:
-    // members
-    NPT_IpAddress m_PrimaryAddress;
-    NPT_IpAddress m_BroadcastAddress;
-    NPT_IpAddress m_DestinationAddress;
-    NPT_IpAddress m_NetMask;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_NetworkInterface
-+---------------------------------------------------------------------*/
-class NPT_NetworkInterface
-{
-public:
-    // class methods
-    static NPT_Result GetNetworkInterfaces(NPT_List<NPT_NetworkInterface*>& interfaces);
-
-    // constructors and destructor
-    NPT_NetworkInterface(const char*           name,
-                         const NPT_MacAddress& mac,
-                         NPT_Flags             flags);
-    NPT_NetworkInterface(const char*           name,
-                         NPT_Flags             flags);
-   ~NPT_NetworkInterface() {}
-
-    // methods
-    NPT_Result AddAddress(const NPT_NetworkInterfaceAddress& address);
-    const NPT_String& GetName() const {
-        return m_Name;
-    }
-    const NPT_MacAddress& GetMacAddress() const {
-        return m_MacAddress;
-    }
-    void SetMacAddress(NPT_MacAddress::Type type,
-                       const unsigned char* addr, 
-                       unsigned int         length) {
-        m_MacAddress.SetAddress(type, addr, length);
-    }
-    NPT_Flags GetFlags() const { return m_Flags; }
-    const NPT_List<NPT_NetworkInterfaceAddress>& GetAddresses() const {
-        return m_Addresses;
-    }    
-    
-    bool IsAddressInNetwork(const NPT_IpAddress& address) {
-        NPT_List<NPT_NetworkInterfaceAddress>::Iterator iter = m_Addresses.GetFirstItem();
-        while (iter) {
-            if ((*iter).IsAddressInNetwork(address)) return true;
-           ++iter;
-        }
-        return false;
-    }
-    
-private:
-    // members
-    NPT_String                            m_Name;
-    NPT_MacAddress                        m_MacAddress;
-    NPT_Flags                             m_Flags;
-    NPT_List<NPT_NetworkInterfaceAddress> m_Addresses;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_NetworkNameResolver
-+---------------------------------------------------------------------*/
-class NPT_NetworkNameResolver
-{
-public:
-    // class methods
-    static NPT_Result Resolve(const char*              name, 
-                              NPT_List<NPT_IpAddress>& addresses,
-                              NPT_Timeout              timeout = NPT_TIMEOUT_INFINITE);
-};
-
-#endif // _NPT_NETWORK_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptQueue.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptQueue.h
deleted file mode 100644
index ecfe1a9..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptQueue.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Queue
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_QUEUE_H_
-#define _NPT_QUEUE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptConstants.h"
-
-/*----------------------------------------------------------------------
-|   NPT_QueueItem
-+---------------------------------------------------------------------*/
-class NPT_QueueItem;
-
-/*----------------------------------------------------------------------
-|   NPT_GenericQueue
-+---------------------------------------------------------------------*/
-class NPT_GenericQueue
-{
- public:
-    // class methods
-    static NPT_GenericQueue* CreateInstance(NPT_Cardinal max_items = 0);
-
-    // methods
-    virtual           ~NPT_GenericQueue() {}
-    virtual NPT_Result Push(NPT_QueueItem* item, 
-                           NPT_Timeout     timeout = NPT_TIMEOUT_INFINITE) = 0; 
-    virtual NPT_Result Pop(NPT_QueueItem*& item, 
-                           NPT_Timeout     timeout = NPT_TIMEOUT_INFINITE) = 0;
-    virtual NPT_Result Peek(NPT_QueueItem*& item, 
-                           NPT_Timeout     timeout = NPT_TIMEOUT_INFINITE) = 0;
- protected:
-    // methods
-    NPT_GenericQueue() {}
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Queue
-+---------------------------------------------------------------------*/
-template <class T>
-class NPT_Queue
-{
- public:
-    // methods
-    NPT_Queue(NPT_Cardinal max_items = 0) :
-        m_Delegate(NPT_GenericQueue::CreateInstance(max_items)) {}
-    virtual ~NPT_Queue<T>() { delete m_Delegate; }
-    virtual NPT_Result Push(T* item, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) {
-        return m_Delegate->Push(reinterpret_cast<NPT_QueueItem*>(item), timeout);
-    }
-    virtual NPT_Result Pop(T*& item, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) {
-        return m_Delegate->Pop(reinterpret_cast<NPT_QueueItem*&>(item), timeout);
-    }
-    virtual NPT_Result Peek(T*& item, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) {
-        return m_Delegate->Peek(reinterpret_cast<NPT_QueueItem*&>(item), timeout);
-    }
-
- protected:
-    // members
-    NPT_GenericQueue* m_Delegate;
-};
-
-#endif // _NPT_QUEUE_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptReferences.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptReferences.h
deleted file mode 100644
index c8e1f5a..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptReferences.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - References
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-
-#ifndef _NPT_REFERENCES_H_
-#define _NPT_REFERENCES_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConstants.h"
-#include "NptThreads.h"
-
-/*----------------------------------------------------------------------
-|   NPT_Reference
-+---------------------------------------------------------------------*/
-template <typename T>
-class NPT_Reference
-{
-public:
-    // constructors and destructor
-    NPT_Reference() : m_Object(NULL), m_Counter(NULL), m_Mutex(NULL), m_ThreadSafe(true) {}
-    explicit NPT_Reference(T* object, bool thread_safe = true) :
-        m_Object(object),
-        m_Counter(object?new NPT_Cardinal(1):NULL),
-        m_Mutex((object && thread_safe)?new NPT_Mutex():NULL),
-        m_ThreadSafe(thread_safe) {}
-    
-    NPT_Reference(const NPT_Reference<T>& ref) :
-        m_Object(ref.m_Object), m_Counter(ref.m_Counter), m_Mutex(ref.m_Mutex), m_ThreadSafe(ref.m_ThreadSafe) {
-        if (m_Mutex) m_Mutex->Lock();
-        if (m_Counter) ++(*m_Counter);
-        if (m_Mutex) m_Mutex->Unlock();
-    }
-
-    // this methods should be private, but this causes a problem on some
-    // compilers, because we need this function in order to implement
-    // the cast operator operator NPT_Reference<U>() below, which would
-    // have to be marked as a friend, and friend declarations with the 
-    // same class name confuses some compilers
-    NPT_Reference(T* object, NPT_Cardinal* counter, NPT_Mutex* mutex, bool thread_safe) : 
-        m_Object(object), m_Counter(counter), m_Mutex(mutex), m_ThreadSafe(thread_safe) {
-        if (m_Mutex) m_Mutex->Lock();
-        if (m_Counter) ++(*m_Counter);
-        if (m_Mutex) m_Mutex->Unlock();
-    }
-
-    ~NPT_Reference() {
-        Release();
-    }
-
-    // overloaded operators
-    NPT_Reference<T>& operator=(const NPT_Reference<T>& ref) {
-        if (this != &ref) {
-            Release();
-            m_Object = ref.m_Object;
-            m_Counter = ref.m_Counter;
-            m_Mutex = ref.m_Mutex;
-            m_ThreadSafe = ref.m_ThreadSafe;
-            
-            if (m_Mutex) m_Mutex->Lock();
-            if (m_Counter) ++(*m_Counter);
-            if (m_Mutex) m_Mutex->Unlock();
-        }
-        return *this;
-    }
-    NPT_Reference<T>& operator=(T* object) {
-        Release();
-        m_Object  = object;
-        m_Counter = object?new NPT_Cardinal(1):NULL;
-        m_Mutex   = (object && m_ThreadSafe)?new NPT_Mutex():NULL;
-        return *this;
-    }
-    T& operator*() const { return *m_Object; }
-    T* operator->() const { return m_Object; }
-
-    bool operator==(const NPT_Reference<T>& ref) const {
-        return m_Object == ref.m_Object;
-    } 
-    bool operator!=(const NPT_Reference<T>& ref) const {
-        return m_Object != ref.m_Object;
-    }
-
-    // overloaded cast operators
-    template <typename U> operator NPT_Reference<U>() {
-        return NPT_Reference<U>(m_Object, m_Counter, m_Mutex, m_ThreadSafe);
-    }
-
-    // methods
-    /**
-     * Returns the naked pointer value.
-     */
-    T* AsPointer() const { return m_Object; }
-    
-    /**
-     * Returns the reference counter value.
-     */
-    NPT_Cardinal GetCounter() const { return *m_Counter; }
-    
-    /**
-     * Returns whether this references a NULL object.
-     */
-    bool IsNull()  const { return m_Object == NULL; }
-    
-    /**
-     * Detach the reference from the shared object.
-     * The reference count is decremented, but the object is not deleted if the
-     * reference count becomes 0.
-     * After the method returns, this reference does not point to any shared object.
-     */
-    void Detach() {
-        Release(true);        
-    }
-    
-private:
-    // methods
-    void Release(bool detach_only = false) {
-        bool last_reference = false;
-        if (m_Mutex) m_Mutex->Lock();
-            
-        if (m_Counter && --(*m_Counter) == 0) {
-            delete m_Counter;
-            if (!detach_only) delete m_Object;
-            last_reference = true;
-        }
-        
-        m_Counter = NULL;
-        m_Object  = NULL;
-        
-        if (m_Mutex) {
-            NPT_Mutex* mutex = m_Mutex;
-            m_Mutex = NULL;
-            mutex->Unlock();
-            if (last_reference) delete mutex;
-        }
-        
-    }
-
-    // members
-    T*            m_Object;
-    NPT_Cardinal* m_Counter;
-    NPT_Mutex*    m_Mutex;
-    bool          m_ThreadSafe;
-};
-
-#endif // _NPT_REFERENCES_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptResults.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptResults.h
deleted file mode 100644
index 88025f7..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptResults.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Result Codes
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_RESULTS_H_
-#define _NPT_RESULTS_H_
-
-/*----------------------------------------------------------------------
-|   macros
-+---------------------------------------------------------------------*/
-#if defined(NPT_DEBUG)
-#include "NptDebug.h"
-#define NPT_CHECK(_x)               \
-do {                                \
-    NPT_Result _result = (_x);      \
-    if (_result != NPT_SUCCESS) {   \
-        NPT_Debug("%s(%d): @@@ NPT_CHECK failed, result=%d (%s)\n", __FILE__, __LINE__, _result, NPT_ResultText(_result)); \
-        return _result;             \
-    }                               \
-} while(0)
-#define NPT_CHECK_POINTER(_p)                 \
-do {                                          \
-    if ((_p) == NULL) {                       \
-        NPT_Debug("%s(%d): @@@ NULL pointer parameter\n", __FILE__, __LINE__); \
-        return NPT_ERROR_INVALID_PARAMETERS;  \
-    }                                         \
-} while(0)
-#define NPT_CHECK_LABEL(_x, label)  \
-do {                                \
-    NPT_Result _result = (_x);      \
-    if (_result != NPT_SUCCESS) {   \
-        NPT_Debug("%s(%d): @@@ NPT_CHECK failed, result=%d (%s)\n", __FILE__, __LINE__, _result, NPT_ResultText(_result)); \
-        goto label;                 \
-    }                               \
-} while(0)
-#define NPT_CHECK_POINTER_LABEL(_p, label)   \
-do {                                         \
-    if (_p == NULL) {                        \
-        NPT_Debug("%s(%d): @@@ NULL pointer parameter\n", __FILE__, __LINE__); \
-        goto label;                          \
-    }                                        \
-} while(0)
-#else
-#define NPT_CHECK(_x)               \
-do {                                \
-    NPT_Result _result = (_x);      \
-    if (_result != NPT_SUCCESS) {   \
-        return _result;             \
-    }                               \
-} while(0)
-#define NPT_CHECK_POINTER(_p)                               \
-do {                                                        \
-    if ((_p) == NULL) return NPT_ERROR_INVALID_PARAMETERS;  \
-} while(0)
-#define NPT_CHECK_LABEL(_x, label)  \
-do {                                \
-    NPT_Result _result = (_x);      \
-    if (_result != NPT_SUCCESS) {   \
-        goto label;                 \
-    }                               \
-} while(0)
-#define NPT_CHECK_POINTER_LABEL(_p, label)   \
-do {                                         \
-    if ((_p) == NULL) {                      \
-        goto label;                          \
-    }                                        \
-} while(0)
-#endif
-
-#define NPT_FAILED(result)              ((result) != NPT_SUCCESS)
-#define NPT_SUCCEEDED(result)           ((result) == NPT_SUCCESS)
-
-/*----------------------------------------------------------------------
-|   result codes
-+---------------------------------------------------------------------*/
-/** Result indicating that the operation or call succeeded */
-#define NPT_SUCCESS                     0
-
-/** Result indicating an unspecififed failure condition */
-#define NPT_FAILURE                     (-1)
-
-#if !defined(NPT_ERROR_BASE)
-#define NPT_ERROR_BASE -20000
-#endif
-
-// error bases
-#define NPT_ERROR_BASE_GENERAL        (NPT_ERROR_BASE-0)
-#define NPT_ERROR_BASE_LIST           (NPT_ERROR_BASE-100)
-#define NPT_ERROR_BASE_FILE           (NPT_ERROR_BASE-200)
-#define NPT_ERROR_BASE_IO             (NPT_ERROR_BASE-300)
-#define NPT_ERROR_BASE_SOCKET         (NPT_ERROR_BASE-400)
-#define NPT_ERROR_BASE_INTERFACES     (NPT_ERROR_BASE-500)
-#define NPT_ERROR_BASE_XML            (NPT_ERROR_BASE-600)
-#define NPT_ERROR_BASE_UNIX           (NPT_ERROR_BASE-700)
-#define NPT_ERROR_BASE_HTTP           (NPT_ERROR_BASE-800)
-#define NPT_ERROR_BASE_THREADS        (NPT_ERROR_BASE-900)
-#define NPT_ERROR_BASE_SERIAL_PORT    (NPT_ERROR_BASE-1000)
-#define NPT_ERROR_BASE_TLS            (NPT_ERROR_BASE-1100)
-
-// general errors
-#define NPT_ERROR_INVALID_PARAMETERS  (NPT_ERROR_BASE_GENERAL - 0)
-#define NPT_ERROR_PERMISSION_DENIED   (NPT_ERROR_BASE_GENERAL - 1)
-#define NPT_ERROR_OUT_OF_MEMORY       (NPT_ERROR_BASE_GENERAL - 2)
-#define NPT_ERROR_NO_SUCH_NAME        (NPT_ERROR_BASE_GENERAL - 3)
-#define NPT_ERROR_NO_SUCH_PROPERTY    (NPT_ERROR_BASE_GENERAL - 4)
-#define NPT_ERROR_NO_SUCH_ITEM        (NPT_ERROR_BASE_GENERAL - 5)
-#define NPT_ERROR_NO_SUCH_CLASS       (NPT_ERROR_BASE_GENERAL - 6)
-#define NPT_ERROR_OVERFLOW            (NPT_ERROR_BASE_GENERAL - 7)
-#define NPT_ERROR_INTERNAL            (NPT_ERROR_BASE_GENERAL - 8)
-#define NPT_ERROR_INVALID_STATE       (NPT_ERROR_BASE_GENERAL - 9)
-#define NPT_ERROR_INVALID_FORMAT      (NPT_ERROR_BASE_GENERAL - 10)
-#define NPT_ERROR_INVALID_SYNTAX      (NPT_ERROR_BASE_GENERAL - 11)
-#define NPT_ERROR_NOT_IMPLEMENTED     (NPT_ERROR_BASE_GENERAL - 12)
-#define NPT_ERROR_NOT_SUPPORTED       (NPT_ERROR_BASE_GENERAL - 13)
-#define NPT_ERROR_TIMEOUT             (NPT_ERROR_BASE_GENERAL - 14)
-#define NPT_ERROR_WOULD_BLOCK         (NPT_ERROR_BASE_GENERAL - 15)
-#define NPT_ERROR_TERMINATED          (NPT_ERROR_BASE_GENERAL - 16)
-#define NPT_ERROR_OUT_OF_RANGE        (NPT_ERROR_BASE_GENERAL - 17)
-#define NPT_ERROR_OUT_OF_RESOURCES    (NPT_ERROR_BASE_GENERAL - 18)
-#define NPT_ERROR_NOT_ENOUGH_SPACE    (NPT_ERROR_BASE_GENERAL - 19)
-#define NPT_ERROR_INTERRUPTED         (NPT_ERROR_BASE_GENERAL - 20)
-#define NPT_ERROR_CANCELLED           (NPT_ERROR_BASE_GENERAL - 21)
-
-/* standard error codes                                  */
-/* these are special codes to convey an errno            */
-/* the error code is (SHI_ERROR_BASE_ERRNO - errno)      */
-/* where errno is the positive integer from errno.h      */
-#define NPT_ERROR_BASE_ERRNO          (NPT_ERROR_BASE-2000)
-#define NPT_ERROR_ERRNO(e)            (NPT_ERROR_BASE_ERRNO - (e))
-
-/*----------------------------------------------------------------------
-|   functions
-+---------------------------------------------------------------------*/
-const char* NPT_ResultText(int result);
-
-#endif // _NPT_RESULTS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptRingBuffer.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptRingBuffer.h
deleted file mode 100644
index 990b4a6..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptRingBuffer.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Ring Buffer
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_RING_BUFFER_H_
-#define _NPT_RING_BUFFER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptReferences.h"
-
-/*----------------------------------------------------------------------
-|   NPT_RingBuffer
-+---------------------------------------------------------------------*/
-class NPT_RingBuffer
-{
- public:
-    // methods
-                  NPT_RingBuffer(NPT_Size size);
-                  NPT_RingBuffer(void* buffer, NPT_Size size);
-    virtual      ~NPT_RingBuffer();
-    NPT_Size      GetSpace() const;
-    NPT_Size      GetContiguousSpace() const;
-    NPT_Result    Write(const void* buffer, NPT_Size byte_count);
-    NPT_Size      GetAvailable() const;
-    NPT_Size      GetContiguousAvailable() const;
-    NPT_Result    Read(void* buffer, NPT_Size byte_count);
-    unsigned char ReadByte();
-    unsigned char PeekByte(NPT_Position offset);
-    NPT_Result    MoveIn(NPT_Position offset);
-    NPT_Result    MoveOut(NPT_Position offset);
-    NPT_Result    Flush();
-    NPT_Result    Close();
-    bool          IsClosed() { return m_Closed; }
-
-    // accessors
-    unsigned char* GetWritePointer()  { return m_In; }
-    unsigned char* GetReadPointer()   { return m_Out;}
-
- private:
-    // members
-    struct {
-        unsigned char* start;
-        unsigned char* end;
-    }              m_Data;
-    unsigned char* m_In;
-    unsigned char* m_Out;
-//    NPT_Size       m_Size;
-    bool           m_BufferIsLocal;
-    bool           m_Closed;
-};
-
-typedef NPT_Reference<NPT_RingBuffer> NPT_RingBufferReference;
-
-#endif // _NPT_RING_BUFFER_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSelectableMessageQueue.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSelectableMessageQueue.h
deleted file mode 100644
index 23dd499..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSelectableMessageQueue.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Selectable Message Queue
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_SELECTABLE_MESSAGE_QUEUE_H_
-#define _NPT_SELECTABLE_MESSAGE_QUEUE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptMessaging.h"
-#include "NptSimpleMessageQueue.h"
-
-/*----------------------------------------------------------------------
-|   NPT_SelectableMessageQueue
-+---------------------------------------------------------------------*/
-class NPT_SelectableMessageQueue : public NPT_SimpleMessageQueue
-{
-public:
-    // methods
-             NPT_SelectableMessageQueue();
-    virtual ~NPT_SelectableMessageQueue();
-    
-    // NPT_MessageQueue methods
-    virtual NPT_Result PumpMessage(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE);
-    virtual NPT_Result QueueMessage(NPT_Message*        message,
-                                    NPT_MessageHandler* handler);
-
-    // methods
-    int  GetEventFd() { return m_Pipe[0]; }
- 
-private:
-    // methods
-    NPT_Result FlushEvent();
-
-    // members
-    int m_Pipe[2];
-};
-
-
-#endif /* _NPT_SELECTABLE_MESSAGE_QUEUE_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSerialPort.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSerialPort.h
deleted file mode 100644
index 1e23a3d..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSerialPort.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Serial Ports
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_SERIAL_PORT_H_
-#define _NPT_SERIAL_PORT_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptStreams.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_NO_SUCH_SERIAL_PORT      = NPT_ERROR_BASE_SERIAL_PORT - 0;
-const int NPT_ERROR_SERIAL_PORT_NOT_OPEN     = NPT_ERROR_BASE_SERIAL_PORT - 1;
-const int NPT_ERROR_SERIAL_PORT_ALREADY_OPEN = NPT_ERROR_BASE_SERIAL_PORT - 2;
-const int NPT_ERROR_SERIAL_PORT_BUSY         = NPT_ERROR_BASE_SERIAL_PORT - 3;
-
-typedef enum {
-    NPT_SERIAL_PORT_PARITY_NONE,
-    NPT_SERIAL_PORT_PARITY_EVEN,
-    NPT_SERIAL_PORT_PARITY_ODD,
-    NPT_SERIAL_PORT_PARITY_MARK
-} NPT_SerialPortParity;
-
-typedef enum {
-    NPT_SERIAL_PORT_STOP_BITS_1,
-    NPT_SERIAL_PORT_STOP_BITS_1_5,
-    NPT_SERIAL_PORT_STOP_BITS_2
-} NPT_SerialPortStopBits;
-
-typedef enum {
-    NPT_SERIAL_PORT_FLOW_CONTROL_NONE,
-    NPT_SERIAL_PORT_FLOW_CONTROL_HARDWARE,
-    NPT_SERIAL_PORT_FLOW_CONTROL_XON_XOFF
-} NPT_SerialPortFlowControl;
-
-/*----------------------------------------------------------------------
-|   NPT_SerialPortInterface
-+---------------------------------------------------------------------*/
-class NPT_SerialPortInterface
-{
-public:
-    // constructors and destructor
-    virtual ~NPT_SerialPortInterface() {}
-
-    // methods
-    virtual NPT_Result Open(unsigned int              speed, 
-                            NPT_SerialPortStopBits    stop_bits,
-                            NPT_SerialPortFlowControl flow_control,
-                            NPT_SerialPortParity      parity) = 0;
-    virtual NPT_Result Close() = 0;
-    virtual NPT_Result GetInputStream(NPT_InputStreamReference& stream) = 0;
-    virtual NPT_Result GetOutputStream(NPT_OutputStreamReference& stream) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_SerialPort
-+---------------------------------------------------------------------*/
-class NPT_SerialPort : public NPT_SerialPortInterface
-{
-public:
-    // constructors and destructor
-    NPT_SerialPort(const char* name);
-   ~NPT_SerialPort() { delete m_Delegate; }
-
-    // NPT_SerialPortInterface methods
-    NPT_Result Open(unsigned int              speed, 
-                    NPT_SerialPortStopBits    stop_bits = NPT_SERIAL_PORT_STOP_BITS_1,
-                    NPT_SerialPortFlowControl flow_control = NPT_SERIAL_PORT_FLOW_CONTROL_NONE,
-                    NPT_SerialPortParity      parity = NPT_SERIAL_PORT_PARITY_NONE) {
-        return m_Delegate->Open(speed, stop_bits, flow_control, parity);
-    }
-    NPT_Result Close() {
-        return m_Delegate->Close();
-    }
-    NPT_Result GetInputStream(NPT_InputStreamReference& stream) {
-        return m_Delegate->GetInputStream(stream);
-    }
-    NPT_Result GetOutputStream(NPT_OutputStreamReference& stream) {
-        return m_Delegate->GetOutputStream(stream);
-    }
-
-protected:
-    // members
-    NPT_SerialPortInterface* m_Delegate;
-};
-
-#endif // _NPT_SERIAL_PORT_H_ 
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSimpleMessageQueue.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSimpleMessageQueue.h
deleted file mode 100644
index 158b6ff..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSimpleMessageQueue.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Simple Message Queue
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_SIMPLE_MESSAGE_QUEUE_H_
-#define _NPT_SIMPLE_MESSAGE_QUEUE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptThreads.h"
-#include "NptMessaging.h"
-#include "NptQueue.h"
-
-/*----------------------------------------------------------------------
-|   class references
-+---------------------------------------------------------------------*/
-class NPT_SimpleMessageCapsule;
-
-/*----------------------------------------------------------------------
-|   NPT_SimpleMessageQueue
-+---------------------------------------------------------------------*/
-class NPT_SimpleMessageQueue : public NPT_MessageQueue
-{
- public:
-    // members
-    NPT_SimpleMessageQueue();
-    virtual ~NPT_SimpleMessageQueue();
-
-    // NPT_MessageQueue methods
-    virtual NPT_Result QueueMessage(NPT_Message*        message, 
-                                    NPT_MessageHandler* handler);
-    virtual NPT_Result PumpMessage(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE);
-
- private:
-    // members
-    NPT_Queue<NPT_SimpleMessageCapsule> m_Queue;
-};
-
-#endif // _NPT_SIMPLE_MESSAGE_QUEUE_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSockets.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSockets.h
deleted file mode 100644
index 789939a..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSockets.h
+++ /dev/null
@@ -1,335 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Network Sockets
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_SOCKETS_H_
-#define _NPT_SOCKETS_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptConstants.h"
-#include "NptStreams.h"
-#include "NptStrings.h"
-#include "NptDataBuffer.h"
-#include "NptNetwork.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_CONNECTION_RESET      = NPT_ERROR_BASE_SOCKET - 0;
-const int NPT_ERROR_CONNECTION_ABORTED    = NPT_ERROR_BASE_SOCKET - 1;
-const int NPT_ERROR_CONNECTION_REFUSED    = NPT_ERROR_BASE_SOCKET - 2;
-const int NPT_ERROR_CONNECTION_FAILED     = NPT_ERROR_BASE_SOCKET - 3;
-const int NPT_ERROR_HOST_UNKNOWN          = NPT_ERROR_BASE_SOCKET - 4;
-const int NPT_ERROR_SOCKET_FAILED         = NPT_ERROR_BASE_SOCKET - 5;
-const int NPT_ERROR_GETSOCKOPT_FAILED     = NPT_ERROR_BASE_SOCKET - 6;
-const int NPT_ERROR_SETSOCKOPT_FAILED     = NPT_ERROR_BASE_SOCKET - 7;
-const int NPT_ERROR_SOCKET_CONTROL_FAILED = NPT_ERROR_BASE_SOCKET - 8;
-const int NPT_ERROR_BIND_FAILED           = NPT_ERROR_BASE_SOCKET - 9;
-const int NPT_ERROR_LISTEN_FAILED         = NPT_ERROR_BASE_SOCKET - 10;
-const int NPT_ERROR_ACCEPT_FAILED         = NPT_ERROR_BASE_SOCKET - 11;
-const int NPT_ERROR_ADDRESS_IN_USE        = NPT_ERROR_BASE_SOCKET - 12;
-const int NPT_ERROR_NETWORK_DOWN          = NPT_ERROR_BASE_SOCKET - 13;
-const int NPT_ERROR_NETWORK_UNREACHABLE   = NPT_ERROR_BASE_SOCKET - 14;
-const int NPT_ERROR_NOT_CONNECTED         = NPT_ERROR_BASE_SOCKET - 15;
-
-const unsigned int NPT_SOCKET_FLAG_CANCELLABLE = 1; // make the socket cancellable
-
-/*----------------------------------------------------------------------
-|   forward references
-+---------------------------------------------------------------------*/
-class NPT_Socket;
-
-/*----------------------------------------------------------------------
-|   NPT_SocketAddress
-+---------------------------------------------------------------------*/
-class NPT_SocketAddress 
-{
-public:
-    // constructors and destructor
-    NPT_SocketAddress() : m_Port(0) {}
-    NPT_SocketAddress(const NPT_IpAddress& address, NPT_IpPort port) :
-        m_IpAddress(address),
-        m_Port(port) {}
-
-    // methods
-    NPT_Result SetIpAddress(const NPT_IpAddress& address) {
-        m_IpAddress = address;
-        return NPT_SUCCESS;
-    }
-    const NPT_IpAddress& GetIpAddress() const { 
-        return m_IpAddress; 
-    }
-    NPT_Result SetPort(NPT_IpPort port) { 
-        m_Port = port; 
-        return NPT_SUCCESS; 
-    }
-    NPT_IpPort GetPort() const { 
-        return m_Port; 
-    }
-    NPT_String ToString() const;
-
-    // operators
-    bool operator==(const NPT_SocketAddress& other) const;
-
-private:
-    // members
-    NPT_IpAddress m_IpAddress;
-    NPT_IpPort    m_Port;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_SocketInfo
-+---------------------------------------------------------------------*/
-typedef struct {
-    NPT_SocketAddress local_address;
-    NPT_SocketAddress remote_address;
-} NPT_SocketInfo;
-
-/*----------------------------------------------------------------------
-|   NPT_SocketInterface
-+---------------------------------------------------------------------*/
-class NPT_SocketInterface
-{
- public:
-    virtual ~NPT_SocketInterface() {}
-
-    // interface methods
-    virtual NPT_Result Bind(const NPT_SocketAddress& address, bool reuse_address = true) = 0;
-    virtual NPT_Result Connect(const NPT_SocketAddress& address, NPT_Timeout timeout) = 0;
-    virtual NPT_Result WaitForConnection(NPT_Timeout timeout) = 0;
-    virtual NPT_Result GetInputStream(NPT_InputStreamReference& stream) = 0;
-    virtual NPT_Result GetOutputStream(NPT_OutputStreamReference& stream) = 0;
-    virtual NPT_Result GetInfo(NPT_SocketInfo& info) = 0;
-    virtual NPT_Result SetReadTimeout(NPT_Timeout timeout) = 0;
-    virtual NPT_Result SetWriteTimeout(NPT_Timeout timeout) = 0;
-    virtual NPT_Result Cancel(bool shutdown=true) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_UdpSocketInterface
-+---------------------------------------------------------------------*/
-class NPT_UdpSocketInterface
-{
- public:
-    virtual ~NPT_UdpSocketInterface() {}
-
-    // methods
-    virtual NPT_Result Send(const NPT_DataBuffer&    packet, 
-                            const NPT_SocketAddress* address = NULL) = 0;
-    virtual NPT_Result Receive(NPT_DataBuffer&    packet, 
-                               NPT_SocketAddress* address = NULL) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_UdpMulticastSocketInterface
-+---------------------------------------------------------------------*/
-class NPT_UdpMulticastSocketInterface
-{
- public:
-    virtual ~NPT_UdpMulticastSocketInterface() {}
-
-    // methods
-    virtual NPT_Result JoinGroup(const NPT_IpAddress& group, 
-                                 const NPT_IpAddress& iface) = 0;
-    virtual NPT_Result LeaveGroup(const NPT_IpAddress& group,
-                                  const NPT_IpAddress& iface) = 0;
-    virtual NPT_Result SetTimeToLive(unsigned char ttl) = 0;
-    virtual NPT_Result SetInterface(const NPT_IpAddress& iface) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TcpServerSocketInterface
-+---------------------------------------------------------------------*/
-class NPT_TcpServerSocketInterface
-{
- public:
-    virtual ~NPT_TcpServerSocketInterface() {}
-
-    // interface methods
-    virtual NPT_Result Listen(unsigned int max_clients) = 0;
-    virtual NPT_Result WaitForNewClient(NPT_Socket*& client, 
-                                        NPT_Timeout  timeout,
-                                        NPT_Flags    flags) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Socket
-+---------------------------------------------------------------------*/
-class NPT_Socket : public NPT_SocketInterface
-{
-public:
-    // constructor and destructor
-    explicit NPT_Socket(NPT_SocketInterface* delegate) : m_SocketDelegate(delegate) {}
-    virtual ~NPT_Socket();
-
-    // delegate NPT_SocketInterface methods
-    NPT_Result Bind(const NPT_SocketAddress& address, bool reuse_address = true) {             
-        return m_SocketDelegate->Bind(address, reuse_address);                            
-    }                                                               
-    NPT_Result Connect(const NPT_SocketAddress& address,            
-                       NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) {
-       return m_SocketDelegate->Connect(address, timeout);                 
-    }                                                               
-    NPT_Result WaitForConnection(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) {
-        return m_SocketDelegate->WaitForConnection(timeout);                 
-    } 
-    NPT_Result GetInputStream(NPT_InputStreamReference& stream) {   
-        return m_SocketDelegate->GetInputStream(stream);                   
-    }                                                               
-    NPT_Result GetOutputStream(NPT_OutputStreamReference& stream) { 
-    return m_SocketDelegate->GetOutputStream(stream);                      
-    }                                                               
-    NPT_Result GetInfo(NPT_SocketInfo& info) {                      
-        return m_SocketDelegate->GetInfo(info);                            
-    }                                                               
-    NPT_Result SetReadTimeout(NPT_Timeout timeout) {                      
-        return m_SocketDelegate->SetReadTimeout(timeout);                            
-    }                                                          
-    NPT_Result SetWriteTimeout(NPT_Timeout timeout) {                      
-        return m_SocketDelegate->SetWriteTimeout(timeout);                            
-    }                                                          
-    NPT_Result Cancel(bool shutdown=true) {                      
-        return m_SocketDelegate->Cancel(shutdown);                            
-    }                                                          
-
-protected:
-    // constructor
-    NPT_Socket() {}
-
-    // members
-    NPT_SocketInterface* m_SocketDelegate;
-};
-
-typedef NPT_Reference<NPT_Socket> NPT_SocketReference;
-
-/*----------------------------------------------------------------------
-|   NPT_UdpSocket
-+---------------------------------------------------------------------*/
-class NPT_UdpSocket : public NPT_Socket,
-                      public NPT_UdpSocketInterface
-{
- public:
-    // constructor and destructor
-             NPT_UdpSocket(NPT_Flags flags=NPT_SOCKET_FLAG_CANCELLABLE);
-    virtual ~NPT_UdpSocket();
-
-    // delegate NPT_UdpSocketInterface methods
-    NPT_Result Send(const NPT_DataBuffer&    packet,           
-                    const NPT_SocketAddress* address = NULL) {
-        return m_UdpSocketDelegate->Send(packet, address);              
-    }                                                         
-    NPT_Result Receive(NPT_DataBuffer&     packet,            
-                       NPT_SocketAddress*  address = NULL) {  
-        return m_UdpSocketDelegate->Receive(packet, address);           
-    }
-
-protected:
-    // constructor
-    NPT_UdpSocket(NPT_UdpSocketInterface* delegate);
-
-    // members
-    NPT_UdpSocketInterface* m_UdpSocketDelegate;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_UdpMulticastSocket
-+---------------------------------------------------------------------*/
-class NPT_UdpMulticastSocket : public NPT_UdpSocket, 
-                               public NPT_UdpMulticastSocketInterface
-{
-public:
-    // constructor and destructor
-             NPT_UdpMulticastSocket(NPT_Flags flags=NPT_SOCKET_FLAG_CANCELLABLE);
-    virtual ~NPT_UdpMulticastSocket();
-
-    // delegate NPT_UdpMulticastSocketInterface methods
-    NPT_Result JoinGroup(const NPT_IpAddress& group,            
-                         const NPT_IpAddress& iface =           
-                         NPT_IpAddress::Any) {                  
-        return m_UdpMulticastSocketDelegate->JoinGroup(group, iface);
-    }                                                           
-    NPT_Result LeaveGroup(const NPT_IpAddress& group,           
-                          const NPT_IpAddress& iface =          
-                          NPT_IpAddress::Any) {                 
-        return m_UdpMulticastSocketDelegate->LeaveGroup(group, iface);
-    }                                                          
-    NPT_Result SetTimeToLive(unsigned char ttl) {     
-        return m_UdpMulticastSocketDelegate->SetTimeToLive(ttl); 
-    }
-    NPT_Result SetInterface(const NPT_IpAddress& iface) {
-        return m_UdpMulticastSocketDelegate->SetInterface(iface);
-    }
-
-protected:
-    // members
-    NPT_UdpMulticastSocketInterface* m_UdpMulticastSocketDelegate;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TcpClientSocket
-+---------------------------------------------------------------------*/
-class NPT_TcpClientSocket : public NPT_Socket
-{
-public:
-    // constructors and destructor
-             NPT_TcpClientSocket(NPT_Flags flags=NPT_SOCKET_FLAG_CANCELLABLE);
-    virtual ~NPT_TcpClientSocket();
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TcpServerSocket
-+---------------------------------------------------------------------*/
-class NPT_TcpServerSocket : public NPT_Socket,
-                            public NPT_TcpServerSocketInterface
-{
-public:
-    // constructors and destructor
-             NPT_TcpServerSocket(NPT_Flags flags=NPT_SOCKET_FLAG_CANCELLABLE);
-    virtual ~NPT_TcpServerSocket();
-
-    // delegate NPT_TcpServerSocketInterface methods
-    NPT_Result Listen(unsigned int max_clients) {   
-        return m_TcpServerSocketDelegate->Listen(max_clients);
-    }
-    NPT_Result WaitForNewClient(NPT_Socket*& client, 
-                                NPT_Timeout  timeout = NPT_TIMEOUT_INFINITE,
-                                NPT_Flags    flags = 0) {
-        return m_TcpServerSocketDelegate->WaitForNewClient(client, timeout, flags);
-    }
-
-protected:
-    // members
-    NPT_TcpServerSocketInterface* m_TcpServerSocketDelegate;
-};
-
-#endif // _NPT_SOCKETS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptStack.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptStack.h
deleted file mode 100644
index 5078805..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptStack.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Stack
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
-****************************************************************/
-
-#ifndef _NPT_STACK_H_
-#define _NPT_STACK_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptResults.h"
-#include "NptTypes.h"
-#include "NptList.h"
-
-/*----------------------------------------------------------------------
-|   NPT_Stack
-+---------------------------------------------------------------------*/
-template <typename T> 
-class NPT_Stack : public NPT_List<T>
-{
-public:
-    // methods
-    NPT_Result Push(const T& value) {
-        // NOTE: we must use the this-> accessor here because the standard
-        // requires it when the member to look up is in a parent template
-        return this->Add(value);
-    }
-
-    NPT_Result Peek(T& value) {
-        // NOTE: we must use the this-> accessor here because the standard
-        // requires it when the member to look up is in a parent template
-        if (this->m_ItemCount == 0) return NPT_ERROR_NO_SUCH_ITEM;
-        value = this->m_Tail->m_Data;
-        return NPT_SUCCESS;
-    }
-
-    NPT_Result Pop(T& value) {
-        // NOTE: we must use the this-> accessor here because the standard
-        // requires it when the member to look up is in a parent template
-        if (this->m_ItemCount == 0) return NPT_ERROR_NO_SUCH_ITEM;
-        typename NPT_List<T>::Iterator tail = this->GetLastItem();
-        value = *tail;
-        return this->Erase(tail);
-    }
-};
-
-#endif // _NPT_STACK_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptStreams.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptStreams.h
deleted file mode 100644
index 6cdab10..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptStreams.h
+++ /dev/null
@@ -1,321 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Byte Streams
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_STREAMS_H_
-#define _NPT_STREAMS_H_
-
-/*----------------------------------------------------------------------
-|    includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptReferences.h"
-#include "NptConstants.h"
-#include "NptResults.h"
-#include "NptDataBuffer.h"
-#include "NptStrings.h"
-
-/*----------------------------------------------------------------------
-|    class references
-+---------------------------------------------------------------------*/
-class NPT_String;
-
-/*----------------------------------------------------------------------
-|    constants
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_READ_FAILED  = NPT_ERROR_BASE_IO - 0;
-const int NPT_ERROR_WRITE_FAILED = NPT_ERROR_BASE_IO - 1;
-const int NPT_ERROR_EOS          = NPT_ERROR_BASE_IO - 2;
-
-/*----------------------------------------------------------------------
-|    NPT_InputStream
-+---------------------------------------------------------------------*/
-class NPT_InputStream
-{
- public:
-    // constructor and destructor
-    virtual ~NPT_InputStream() {};
-
-    // methods
-    virtual NPT_Result Load(NPT_DataBuffer& buffer, NPT_Size max_read = 0);
-    virtual NPT_Result Read(void*     buffer, 
-                            NPT_Size  bytes_to_read, 
-                            NPT_Size* bytes_read = NULL) = 0;
-    virtual NPT_Result ReadFully(void*     buffer, 
-                                 NPT_Size  bytes_to_read);
-    virtual NPT_Result Seek(NPT_Position offset) = 0;
-    virtual NPT_Result Skip(NPT_Size offset);
-    virtual NPT_Result Tell(NPT_Position& offset) = 0;
-    virtual NPT_Result GetSize(NPT_LargeSize& size) = 0;
-    virtual NPT_Result GetAvailable(NPT_LargeSize& available) = 0;
-    
-    // data access methods
-    NPT_Result ReadUI64(NPT_UInt64& value);
-    NPT_Result ReadUI32(NPT_UInt32& value);
-    NPT_Result ReadUI24(NPT_UInt32& value);
-    NPT_Result ReadUI16(NPT_UInt16& value);
-    NPT_Result ReadUI08(NPT_UInt8&  value);    
-};
-
-typedef NPT_Reference<NPT_InputStream> NPT_InputStreamReference;
-
-/*----------------------------------------------------------------------
-|    NPT_OutputStream
-+---------------------------------------------------------------------*/
-class NPT_OutputStream
-{
-public:
-    // constructor and destructor
-    virtual ~NPT_OutputStream() {};
-
-    // methods
-    virtual NPT_Result Write(const void* buffer, 
-                             NPT_Size    bytes_to_write, 
-                             NPT_Size*   bytes_written = NULL) = 0;
-    virtual NPT_Result WriteFully(const void* buffer, 
-                                  NPT_Size    bytes_to_write);
-    virtual NPT_Result WriteString(const char* string_buffer);
-    virtual NPT_Result WriteLine(const char* line_buffer);
-    virtual NPT_Result Seek(NPT_Position offset) = 0;
-    virtual NPT_Result Tell(NPT_Position& offset) = 0;
-    virtual NPT_Result Flush() { return NPT_SUCCESS; }
-    
-    // data access methods
-    NPT_Result WriteUI64(NPT_UInt64 value);
-    NPT_Result WriteUI32(NPT_UInt32 value);
-    NPT_Result WriteUI24(NPT_UInt32 value);
-    NPT_Result WriteUI16(NPT_UInt16 value);
-    NPT_Result WriteUI08(NPT_UInt8  value);    
-};
-
-typedef NPT_Reference<NPT_OutputStream> NPT_OutputStreamReference;
-
-/*----------------------------------------------------------------------
-|    NPT_StreamToStreamCopy
-+---------------------------------------------------------------------*/
-NPT_Result NPT_StreamToStreamCopy(NPT_InputStream&  from, 
-                                  NPT_OutputStream& to,
-                                  NPT_Position      offset = 0,
-                                  NPT_LargeSize     size   = 0, /* 0 means the entire stream */
-                                  NPT_LargeSize*    bytes_written = NULL);
-
-/*----------------------------------------------------------------------
-|    NPT_DelegatingInputStream
-|
-|    Use this class as a base class if you need to inherit both from
-|    NPT_InputStream and NPT_OutputStream which share the Seek and Tell
-|    method. In this case, you override the  base-specific version of 
-|    those methods, InputSeek, InputTell, instead of the Seek and Tell 
-|    methods.
-+---------------------------------------------------------------------*/
-class NPT_DelegatingInputStream : public NPT_InputStream
-{
-public:
-    // NPT_InputStream methods
-    NPT_Result Seek(NPT_Position offset) {
-        return InputSeek(offset);
-    }
-    NPT_Result Tell(NPT_Position& offset) {
-        return InputTell(offset);
-    }
-
-private:
-    // methods
-    virtual NPT_Result InputSeek(NPT_Position  offset) = 0;
-    virtual NPT_Result InputTell(NPT_Position& offset) = 0;
-};
-
-/*----------------------------------------------------------------------
-|    NPT_DelegatingOutputStream
-|
-|    Use this class as a base class if you need to inherit both from
-|    NPT_InputStream and NPT_OutputStream which share the Seek and Tell
-|    method. In this case, you override the  base-specific version of 
-|    those methods, OutputSeek and OutputTell, instead of the Seek and 
-|    Tell methods.
-+---------------------------------------------------------------------*/
-class NPT_DelegatingOutputStream : public NPT_OutputStream
-{
-public:
-    // NPT_OutputStream methods
-    NPT_Result Seek(NPT_Position offset) {
-        return OutputSeek(offset);
-    }
-    NPT_Result Tell(NPT_Position& offset) {
-        return OutputTell(offset);
-    }
-
-private:
-    // methods
-    virtual NPT_Result OutputSeek(NPT_Position  offset) = 0;
-    virtual NPT_Result OutputTell(NPT_Position& offset) = 0;
-};
-
-/*----------------------------------------------------------------------
-|    NPT_MemoryStream
-+---------------------------------------------------------------------*/
-class NPT_MemoryStream : 
-    public NPT_DelegatingInputStream,
-    public NPT_DelegatingOutputStream
-{
-public:
-    // constructor and destructor
-    NPT_MemoryStream(NPT_Size initial_capacity = 0);
-    NPT_MemoryStream(const void* data, NPT_Size size);
-    virtual ~NPT_MemoryStream() {}
-
-    // accessors
-    const NPT_DataBuffer& GetBuffer() const { return m_Buffer; }
-
-    // NPT_InputStream methods
-    NPT_Result Read(void*     buffer, 
-                    NPT_Size  bytes_to_read, 
-                    NPT_Size* bytes_read = NULL);
-    NPT_Result GetSize(NPT_LargeSize& size)  { 
-        size = m_Buffer.GetDataSize();    
-        return NPT_SUCCESS;
-    }
-    NPT_Result GetAvailable(NPT_LargeSize& available) { 
-        available = (NPT_LargeSize)m_Buffer.GetDataSize()-m_ReadOffset; 
-        return NPT_SUCCESS;
-    }
-
-    // NPT_OutputStream methods
-    NPT_Result Write(const void* buffer, 
-                     NPT_Size    bytes_to_write, 
-                     NPT_Size*   bytes_written = NULL);
-
-    // methods delegated to m_Buffer
-    const NPT_Byte* GetData() const { return m_Buffer.GetData(); }
-    NPT_Byte*       UseData()       { return m_Buffer.UseData(); }
-    NPT_Size        GetDataSize() const   { return m_Buffer.GetDataSize(); }
-    NPT_Size        GetBufferSize() const { return m_Buffer.GetBufferSize();}
-
-    // methods
-    NPT_Result SetDataSize(NPT_Size size);
-
-private:
-    // NPT_DelegatingInputStream methods
-    NPT_Result InputSeek(NPT_Position offset);
-    NPT_Result InputTell(NPT_Position& offset) { 
-        offset = m_ReadOffset; 
-        return NPT_SUCCESS;
-    }
-
-    // NPT_DelegatingOutputStream methods
-    NPT_Result OutputSeek(NPT_Position offset);
-    NPT_Result OutputTell(NPT_Position& offset) {
-        offset = m_WriteOffset; 
-        return NPT_SUCCESS;
-    }
-
-protected:
-    // members
-    NPT_DataBuffer m_Buffer;
-    NPT_Size       m_ReadOffset;
-    NPT_Size       m_WriteOffset;
-};
-
-typedef NPT_Reference<NPT_MemoryStream> NPT_MemoryStreamReference;
-
-/*----------------------------------------------------------------------
-|   NPT_StringOutputStream
-+---------------------------------------------------------------------*/
-class NPT_StringOutputStream : public NPT_OutputStream
-{
-public:
-    // methods
-    NPT_StringOutputStream(NPT_Size size = 4096);
-    NPT_StringOutputStream(NPT_String* storage);
-    virtual ~NPT_StringOutputStream() ;
-
-    const NPT_String& GetString() const { return *m_String; }
-    NPT_Result Reset() { if (m_String) m_String->SetLength(0); return NPT_SUCCESS; }
-
-    // NPT_OutputStream methods
-    NPT_Result Write(const void* buffer, NPT_Size bytes_to_write, NPT_Size* bytes_written = NULL);
-
-    NPT_Result Seek(NPT_Position /*offset*/)  { return NPT_ERROR_NOT_SUPPORTED;   }
-    NPT_Result Tell(NPT_Position& offset) { offset = m_String->GetLength(); return NPT_SUCCESS; }
-
-protected:
-    NPT_String* m_String;
-    bool        m_StringIsOwned;
-};
-
-typedef NPT_Reference<NPT_StringOutputStream> NPT_StringOutputStreamReference;
-
-/*----------------------------------------------------------------------
-|   NPT_SubInputStream
-+---------------------------------------------------------------------*/
-class NPT_SubInputStream : public NPT_InputStream
-{
-public:
-    // constructor and destructor
-    NPT_SubInputStream(NPT_InputStreamReference& source, 
-                       NPT_Position              start,
-                       NPT_LargeSize             size); 
-
-    // methods
-    virtual NPT_Result Read(void*     buffer, 
-                            NPT_Size  bytes_to_read, 
-                            NPT_Size* bytes_read = NULL);
-    virtual NPT_Result Seek(NPT_Position offset);
-    virtual NPT_Result Tell(NPT_Position& offset);
-    virtual NPT_Result GetSize(NPT_LargeSize& size);
-    virtual NPT_Result GetAvailable(NPT_LargeSize& available);
-
-private:
-    NPT_InputStreamReference m_Source;
-    NPT_Position             m_Position;
-    NPT_Position             m_Start;
-    NPT_LargeSize            m_Size;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_NullOutputStream
-+---------------------------------------------------------------------*/
-class NPT_NullOutputStream : public NPT_OutputStream
-{
-public:
-    // methods
-    NPT_NullOutputStream() {}
-    virtual ~NPT_NullOutputStream() {}
-
-    // NPT_OutputStream methods
-    NPT_Result Write(const void* buffer, NPT_Size bytes_to_write, NPT_Size* bytes_written = NULL);
-
-    NPT_Result Seek(NPT_Position /*offset*/)  { return NPT_ERROR_NOT_SUPPORTED;   }
-    NPT_Result Tell(NPT_Position& /*offset*/)  { return NPT_ERROR_NOT_SUPPORTED;   }
-};
-
-typedef NPT_Reference<NPT_NullOutputStream> NPT_NullOutputStreamReference;
-
-#endif // _NPT_STREAMS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptStrings.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptStrings.h
deleted file mode 100644
index c445b33..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptStrings.h
+++ /dev/null
@@ -1,358 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - String Objects
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_STRINGS_H_
-#define _NPT_STRINGS_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-#if defined(NPT_CONFIG_HAVE_NEW_H)
-#include <new>
-#endif
-#include "NptTypes.h"
-#include "NptConstants.h"
-#include "NptList.h"
-#include "NptArray.h"
-#include "NptDebug.h"
-#include "NptHash.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_STRING_SEARCH_FAILED = -1;
-
-/*----------------------------------------------------------------------
-|   NPT_String
-+---------------------------------------------------------------------*/
-class NPT_String
-{
-public:
-    // factories
-    static NPT_String FromInteger(NPT_Int64 value);
-    static NPT_String FromIntegerU(NPT_UInt64 value);
-    static NPT_String Format(const char* format, ...);
-    
-    // constructors
-    NPT_String(const NPT_String& str);
-    NPT_String(const char* str);
-    NPT_String(const char* str, NPT_Size length);
-    NPT_String(char c, NPT_Cardinal repeat = 1);
-    NPT_String() : m_Chars(NULL) {}
-   ~NPT_String() { if (m_Chars) GetBuffer()->Destroy(); }
-
-    // string info and manipulations
-    bool       IsEmpty() const { return m_Chars == NULL || GetBuffer()->GetLength() == 0; }
-    NPT_Size   GetLength()   const { return m_Chars ? GetBuffer()->GetLength() : 0;    }
-    NPT_Size   GetCapacity() const { return m_Chars ? GetBuffer()->GetAllocated() : 0; }
-    NPT_Result SetLength(NPT_Size length, bool pad = false);
-    void       Assign(const char* chars, NPT_Size size);
-    void       Append(const char* chars, NPT_Size size);
-    void       Append(const char* s) { Append(s, StringLength(s)); }
-    int        Compare(const char* s, bool ignore_case = false) const;
-    static int Compare(const char* s1, const char* s2, bool ignore_case = false);
-    int        CompareN(const char* s, NPT_Size count, bool ignore_case = false) const;
-    static int CompareN(const char* s1, const char* s2, NPT_Size count, bool ignore_case = false);
-
-    // substrings
-    NPT_String SubString(NPT_Ordinal first, NPT_Size length) const;
-    NPT_String SubString(NPT_Ordinal first) const {
-        return SubString(first, GetLength());
-    }
-    NPT_String Left(NPT_Size length) const {
-        return SubString(0, length);
-    }
-    NPT_String Right(NPT_Size length) const {
-        return length >= GetLength() ? 
-               *this : 
-               SubString(GetLength()-length, length);
-    }
-    NPT_List<NPT_String> Split(const char* separator) const;
-    NPT_Array<NPT_String> SplitAny(const char* separator) const;
-    static NPT_String Join(NPT_List<NPT_String>& args, const char* separator);
-    
-    // buffer management
-    void       Reserve(NPT_Size length);
-
-    // hashing
-    NPT_UInt32 GetHash32() const;
-    NPT_UInt64 GetHash64() const;
-
-    // conversions
-    NPT_String ToLowercase() const;
-    NPT_String ToUppercase() const;
-    NPT_Result ToInteger(int& value, bool relaxed = true) const;
-    NPT_Result ToInteger(unsigned int& value, bool relaxed = true) const;
-    NPT_Result ToInteger(long& value, bool relaxed = true) const;
-    NPT_Result ToInteger(unsigned long& value, bool relaxed = true) const;
-    NPT_Result ToInteger32(NPT_Int32& value, bool relaxed = true) const;
-    NPT_Result ToInteger32(NPT_UInt32& value, bool relaxed = true) const;
-    NPT_Result ToInteger64(NPT_Int64& value, bool relaxed = true) const;
-    NPT_Result ToInteger64(NPT_UInt64& value, bool relaxed = true) const;
-    NPT_Result ToFloat(float& value, bool relaxed = true) const;
-    
-    // processing
-    void MakeLowercase();
-    void MakeUppercase();
-    const NPT_String& Replace(char a, char b);
-    const NPT_String& Replace(char a, const char* b);
-
-    // search
-    int  Find(char c, NPT_Ordinal start = 0, bool ignore_case = false) const;
-    int  Find(const char* s, NPT_Ordinal start = 0, bool ignore_case = false) const;
-    int  FindAny(const char* s, NPT_Ordinal start, bool ignore_case = false) const;
-    int  ReverseFind(char c, NPT_Ordinal start = 0, bool ignore_case = false) const;
-    int  ReverseFind(const char* s, NPT_Ordinal start = 0, bool ignore_case = false) const;
-    bool StartsWith(const char* s, bool ignore_case = false) const;
-    bool EndsWith(const char* s, bool ignore_case = false) const;
-
-    // editing
-    const NPT_String& Insert(const char* s, NPT_Ordinal where = 0);
-    const NPT_String& Erase(NPT_Ordinal start, NPT_Cardinal count = 1);
-    const NPT_String& Replace(const char* before, const char* after);
-    // void Replace(NPT_Ordinal start, NPT_Cardinal count, const char* s);
-    const NPT_String& TrimLeft();
-    const NPT_String& TrimLeft(char c);
-    const NPT_String& TrimLeft(const char* chars);
-    const NPT_String& TrimRight();
-    const NPT_String& TrimRight(char c);
-    const NPT_String& TrimRight(const char* chars);
-    const NPT_String& Trim();
-    const NPT_String& Trim(char c);
-    const NPT_String& Trim(const char* chars);
-
-    // type casting
-    operator char*() const        { return m_Chars ? m_Chars: &EmptyString; }
-    operator const char* () const { return m_Chars ? m_Chars: &EmptyString; }
-    const char* GetChars() const  { return m_Chars ? m_Chars: &EmptyString; }
-    char*       UseChars()        { return m_Chars ? m_Chars: &EmptyString; }
-
-    // operator overloading
-    NPT_String& operator=(const char* str);
-    NPT_String& operator=(const NPT_String& str);
-    NPT_String& operator=(char c);
-    const NPT_String& operator+=(const NPT_String& s) {
-        Append(s.GetChars(), s.GetLength());
-        return *this;
-    }
-    const NPT_String& operator+=(const char* s) {
-        Append(s);
-        return *this;
-    }
-    const NPT_String& operator+=(char c) {
-        Append(&c, 1);
-        return *this;
-    }
-    char operator[](int index) const {
-        NPT_ASSERT((unsigned int)index < GetLength());
-        return GetChars()[index];
-    }
-    char& operator[](int index) {
-        NPT_ASSERT((unsigned int)index < GetLength());
-        return UseChars()[index];
-    }
-
-    // friend operators
-    friend NPT_String operator+(const NPT_String& s1, const NPT_String& s2) {
-        return s1+s2.GetChars();
-    }
-    friend NPT_String operator+(const NPT_String& s1, const char* s2);
-    friend NPT_String operator+(const char* s1, const NPT_String& s2);
-    friend NPT_String operator+(const NPT_String& s, char c);
-    friend NPT_String operator+(char c, const NPT_String& s);
-
-protected:
-    // inner classes
-    class Buffer {
-    public:
-        // class methods
-        static Buffer* Allocate(NPT_Size allocated, NPT_Size length) {
-            void* mem = ::operator new(sizeof(Buffer)+allocated+1);
-            return new(mem) Buffer(allocated, length);
-        }
-        static char* Create(NPT_Size allocated, NPT_Size length=0) {
-            Buffer* shared = Allocate(allocated, length);
-            return shared->GetChars();
-        }
-        static char* Create(const char* copy) {
-            NPT_Size length = StringLength(copy);
-            Buffer* shared = Allocate(length, length);
-            CopyString(shared->GetChars(), copy);
-            return shared->GetChars();
-        }
-        static char* Create(const char* copy, NPT_Size length) {
-            Buffer* shared = Allocate(length, length);
-            CopyBuffer(shared->GetChars(), copy, length);
-            shared->GetChars()[length] = '\0';
-            return shared->GetChars();
-        }
-        static char* Create(char c, NPT_Cardinal repeat) {
-            Buffer* shared = Allocate(repeat, repeat);
-            char* s = shared->GetChars();
-            while (repeat--) {
-                *s++ = c;
-            }
-            *s = '\0';
-            return shared->GetChars();
-        }
-
-        // methods
-        char* GetChars() { 
-            // return a pointer to the first char
-            return reinterpret_cast<char*>(this+1); 
-        }
-        NPT_Size GetLength() const      { return m_Length; }
-        void SetLength(NPT_Size length) { m_Length = length; }
-        NPT_Size GetAllocated() const   { return m_Allocated; }
-        void Destroy() { ::operator delete((void*)this); }
-        
-    private:
-        // methods
-        Buffer(NPT_Size allocated, NPT_Size length = 0) : 
-            m_Length(length),
-            m_Allocated(allocated) {}
-        
-        // members
-        NPT_Cardinal m_Length;
-        NPT_Cardinal m_Allocated;
-        // the actual string data follows
-
-    };
-    
-    // members
-    char* m_Chars;
-
-private:
-    // friends
-    friend class Buffer;
-
-    // static members
-    static char EmptyString;
-
-    // methods
-    Buffer* GetBuffer() const { 
-        return reinterpret_cast<Buffer*>(m_Chars)-1;
-    }
-    void Reset() { 
-        if (m_Chars != NULL) {
-            delete GetBuffer(); 
-            m_Chars = NULL;
-        }
-    }
-    char* PrepareToWrite(NPT_Size length);
-    void PrepareToAppend(NPT_Size length, NPT_Size allocate);
-
-    // static methods
-    static void CopyString(char* dst, const char* src) {
-        while ((*dst++ = *src++)){}
-    }
-    
-    static void CopyBuffer(char* dst, const char* src, NPT_Size size) {
-        while (size--) *dst++ = *src++;
-    }
-    
-    static NPT_Size StringLength(const char* str) {
-        NPT_Size length = 0;
-        while (*str++) length++;
-        return length;
-    }
-};
-
-/*----------------------------------------------------------------------
-|   external operators
-+---------------------------------------------------------------------*/
-inline bool operator==(const NPT_String& s1, const NPT_String& s2) { 
-    return s1.Compare(s2) == 0; 
-}
-inline bool operator==(const NPT_String& s1, const char* s2) {
-    return s1.Compare(s2) == 0; 
-}
-inline bool operator==(const char* s1, const NPT_String& s2) {
-    return s2.Compare(s1) == 0; 
-}
-inline bool operator!=(const NPT_String& s1, const NPT_String& s2) {
-    return s1.Compare(s2) != 0; 
-}
-inline bool operator!=(const NPT_String& s1, const char* s2) {
-    return s1.Compare(s2) != 0; 
-}
-inline bool operator!=(const char* s1, const NPT_String& s2) {
-    return s2.Compare(s1) != 0; 
-}
-inline bool operator<(const NPT_String& s1, const NPT_String& s2) {
-    return s1.Compare(s2) < 0; 
-}
-inline bool operator<(const NPT_String& s1, const char* s2) {
-    return s1.Compare(s2) < 0; 
-}
-inline bool operator<(const char* s1, const NPT_String& s2) {
-    return s2.Compare(s1) > 0; 
-}
-inline bool operator>(const NPT_String& s1, const NPT_String& s2) {
-    return s1.Compare(s2) > 0; 
-}
-inline bool operator>(const NPT_String& s1, const char* s2) {
-    return s1.Compare(s2) > 0; 
-}
-inline bool operator>(const char* s1, const NPT_String& s2) {
-    return s2.Compare(s1) < 0; 
-}
-inline bool operator<=(const NPT_String& s1, const NPT_String& s2) {
-    return s1.Compare(s2) <= 0; 
-}
-inline bool operator<=(const NPT_String& s1, const char* s2) {
-    return s1.Compare(s2) <= 0; 
-}
-inline bool operator<=(const char* s1, const NPT_String& s2) {
-    return s2.Compare(s1) >= 0; 
-}
-inline bool operator>=(const NPT_String& s1, const NPT_String& s2) {
-    return s1.Compare(s2) >= 0; 
-}
-inline bool operator>=(const NPT_String& s1, const char* s2) {
-    return s1.Compare(s2) >= 0; 
-}
-inline bool operator>=(const char* s1, const NPT_String& s2) {
-    return s2.Compare(s1) <= 0; 
-}
-
-/*----------------------------------------------------------------------
-|   hashing
-+---------------------------------------------------------------------*/
-template <>
-struct NPT_Hash<NPT_String>
-{
-    NPT_UInt32 operator()(const NPT_String& s) const { return s.GetHash32(); }
-};
-
-
-#endif // _NPT_STRINGS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSystem.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSystem.h
deleted file mode 100644
index 224a058..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptSystem.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - System
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_SYSTEM_H_
-#define _NPT_SYSTEM_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptTime.h"
-
-/*----------------------------------------------------------------------
-|   NPT_System
-+---------------------------------------------------------------------*/
-class NPT_System
-{
-public:
-    // methods
-    static NPT_Result GetProcessId(NPT_UInt32& id);
-    static NPT_Result GetMachineName(NPT_String& name);
-    static NPT_Result GetCurrentTimeStamp(NPT_TimeStamp& now);
-    static NPT_Result Sleep(const NPT_TimeInterval& duration);
-    static NPT_Result SleepUntil(const NPT_TimeStamp& when);
-    static NPT_Result SetRandomSeed(unsigned int seed);
-    static NPT_UInt32 GetRandomInteger();
-    
-protected:
-    // constructor
-    NPT_System() {}
-};
-
-NPT_Result NPT_GetSystemMachineName(NPT_String& name);
-
-#endif // _NPT_SYSTEM_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptThreads.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptThreads.h
deleted file mode 100644
index 9a7455f..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptThreads.h
+++ /dev/null
@@ -1,318 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Threads
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_THREADS_H_
-#define _NPT_THREADS_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptConstants.h"
-#include "NptInterfaces.h"
-
-/*----------------------------------------------------------------------
-|   error codes
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_CALLBACK_HANDLER_SHUTDOWN = NPT_ERROR_BASE_THREADS-0;
-const int NPT_ERROR_CALLBACK_NOTHING_PENDING  = NPT_ERROR_BASE_THREADS-1;
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_THREAD_PRIORITY_MIN           = -15;
-const int NPT_THREAD_PRIORITY_IDLE          = -15;
-const int NPT_THREAD_PRIORITY_LOWEST        =  -2;
-const int NPT_THREAD_PRIORITY_BELOW_NORMAL  =  -1;
-const int NPT_THREAD_PRIORITY_NORMAL        =   0;
-const int NPT_THREAD_PRIORITY_ABOVE_NORMAL  =   1;
-const int NPT_THREAD_PRIORITY_HIGHEST       =   2;
-const int NPT_THREAD_PRIORITY_TIME_CRITICAL =  15;
-const int NPT_THREAD_PRIORITY_MAX           =  15;
-
-/*----------------------------------------------------------------------
-|   NPT_MutexInterface
-+---------------------------------------------------------------------*/
-class NPT_MutexInterface
-{
- public:
-    // methods
-    virtual           ~NPT_MutexInterface() {}
-    virtual NPT_Result Lock()   = 0;
-    virtual NPT_Result Unlock() = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Mutex
-+---------------------------------------------------------------------*/
-class NPT_Mutex : public NPT_MutexInterface
-{
- public:
-    // methods
-               NPT_Mutex();
-              ~NPT_Mutex() { delete m_Delegate; }
-    NPT_Result Lock()   { return m_Delegate->Lock();   }
-    NPT_Result Unlock() { return m_Delegate->Unlock(); }
-
- private:
-    // members
-    NPT_MutexInterface* m_Delegate;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_AutoLock
-+---------------------------------------------------------------------*/
-class NPT_AutoLock
-{
- public:
-    // methods
-     NPT_AutoLock(NPT_Mutex &mutex) : m_Mutex(mutex)   {
-        m_Mutex.Lock();
-    }
-    ~NPT_AutoLock() {
-        m_Mutex.Unlock(); 
-    }
-        
- private:
-    // members
-    NPT_Mutex& m_Mutex;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Lock
-+---------------------------------------------------------------------*/
-template <typename T> 
-class NPT_Lock : public T,
-                 public NPT_Mutex
-{
-};
-
-/*----------------------------------------------------------------------
-|   NPT_SingletonLock
-+---------------------------------------------------------------------*/
-class NPT_SingletonLock
-{
-public:
-    static NPT_Mutex& GetInstance() {
-        return Instance;
-    }
-    
-private:
-    static NPT_Mutex Instance;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_SharedVariableInterface
-+---------------------------------------------------------------------*/
-class NPT_SharedVariableInterface
-{
- public:
-    // methods
-    virtual           ~NPT_SharedVariableInterface() {}
-    virtual void       SetValue(int value)= 0;
-    virtual int        GetValue()         = 0;
-    virtual NPT_Result WaitUntilEquals(int value, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) = 0;
-    virtual NPT_Result WaitWhileEquals(int value, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_SharedVariable
-+---------------------------------------------------------------------*/
-class NPT_SharedVariable : public NPT_SharedVariableInterface
-{
- public:
-    // methods
-               NPT_SharedVariable(int value = 0);
-              ~NPT_SharedVariable() { delete m_Delegate; }
-    void SetValue(int value) { 
-        m_Delegate->SetValue(value); 
-    }
-    int GetValue() { 
-        return m_Delegate->GetValue(); 
-    }
-    NPT_Result WaitUntilEquals(int value, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) { 
-        return m_Delegate->WaitUntilEquals(value, timeout); 
-    }
-    NPT_Result WaitWhileEquals(int value, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) { 
-        return m_Delegate->WaitWhileEquals(value, timeout); 
-    }
-
- private:
-    // members
-    NPT_SharedVariableInterface* m_Delegate;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_AtomicVariableInterface
-+---------------------------------------------------------------------*/
-class NPT_AtomicVariableInterface
-{
- public:
-    // methods
-    virtual      ~NPT_AtomicVariableInterface() {}
-    virtual  int  Increment() = 0;
-    virtual  int  Decrement() = 0;
-    virtual  int  GetValue()  = 0;
-    virtual  void SetValue(int value)  = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_AtomicVariable
-+---------------------------------------------------------------------*/
-class NPT_AtomicVariable : public NPT_AtomicVariableInterface
-{
- public:
-    // methods
-         NPT_AtomicVariable(int value = 0);
-        ~NPT_AtomicVariable() { delete m_Delegate;             }
-    int  Increment()          { return m_Delegate->Increment();}
-    int  Decrement()          { return m_Delegate->Decrement();}
-    void SetValue(int value)  { m_Delegate->SetValue(value);   }
-    int  GetValue()           { return m_Delegate->GetValue(); }
-
- private:
-    // members
-    NPT_AtomicVariableInterface* m_Delegate;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Runnable
-+---------------------------------------------------------------------*/
-class NPT_Runnable
-{
-public:
-    virtual ~NPT_Runnable() {}  
-    virtual void Run() = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_ThreadInterface
-+---------------------------------------------------------------------*/
-class NPT_ThreadInterface: public NPT_Runnable, public NPT_Interruptible
-{
- public:
-    // methods
-    virtual           ~NPT_ThreadInterface() {}
-    virtual NPT_Result Start() = 0;
-    virtual NPT_Result Wait(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) = 0;
-    virtual NPT_Result SetPriority(int /*priority*/) { return NPT_SUCCESS; } 
-    virtual NPT_Result GetPriority(int& priority) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Thread
-+---------------------------------------------------------------------*/
-class NPT_Thread : public NPT_ThreadInterface
-{
- public:
-    // types
-    typedef unsigned long ThreadId;
-
-    // class methods
-    static ThreadId GetCurrentThreadId();
-    static NPT_Result SetCurrentThreadPriority(int priority);
-    static NPT_Result GetCurrentThreadPriority(int& priority);
-
-    // methods
-    explicit NPT_Thread(bool detached = false);
-    explicit NPT_Thread(NPT_Runnable& target, bool detached = false);
-   ~NPT_Thread() { delete m_Delegate; }
-
-    // NPT_ThreadInterface methods
-    NPT_Result Start() { 
-        return m_Delegate->Start(); 
-    } 
-    NPT_Result Wait(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE)  { 
-        return m_Delegate->Wait(timeout);  
-    }
-    NPT_Result SetPriority(int priority) {
-        return m_Delegate->SetPriority(priority);
-    }    
-    NPT_Result GetPriority(int& priority) {
-        return m_Delegate->GetPriority(priority);
-    }
-
-    // NPT_Runnable methods
-    virtual void Run() {}
-
-    // NPT_Interruptible methods
-    virtual NPT_Result Interrupt() { return m_Delegate->Interrupt(); }
-
- private:
-    // members
-    NPT_ThreadInterface* m_Delegate;
-};
-
-
-/*----------------------------------------------------------------------
-|   NPT_ThreadCallbackReceiver
-+---------------------------------------------------------------------*/
-class NPT_ThreadCallbackReceiver
-{
-public:
-    virtual ~NPT_ThreadCallbackReceiver() {}
-    virtual void OnCallback(void* args) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_ThreadCallbackSlot
-+---------------------------------------------------------------------*/
-class NPT_ThreadCallbackSlot
-{
-public:
-    // types
-    class NotificationHelper {
-    public:
-        virtual ~NotificationHelper() {};
-        virtual void Notify(void) = 0;
-    };
-
-    // constructor
-    NPT_ThreadCallbackSlot();
-
-    // methods
-    NPT_Result ReceiveCallback(NPT_ThreadCallbackReceiver& receiver, NPT_Timeout timeout = 0);
-    NPT_Result SendCallback(void* args);
-    NPT_Result SetNotificationHelper(NotificationHelper* helper);
-    NPT_Result Shutdown();
-
-protected:
-    // members
-    volatile void*      m_CallbackArgs;
-    volatile bool       m_Shutdown;
-    NPT_SharedVariable  m_Pending;
-    NPT_SharedVariable  m_Ack;
-    NPT_Mutex           m_ReadLock;
-    NPT_Mutex           m_WriteLock;
-    NotificationHelper* m_NotificationHelper;
-};
-
-#endif // _NPT_THREADS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTime.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTime.h
deleted file mode 100644
index ae02a48..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTime.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Time
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_TIME_H_
-#define _NPT_TIME_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptStrings.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#define NPT_DATETIME_YEAR_MIN 1901
-#define NPT_DATETIME_YEAR_MAX 2262
-
-/*----------------------------------------------------------------------
-|   NPT_TimeStamp
-+---------------------------------------------------------------------*/
-class NPT_TimeStamp
-{
- public:
-    // methods
-    NPT_TimeStamp(const NPT_TimeStamp& timestamp);
-    NPT_TimeStamp() : m_NanoSeconds(0) {}
-    NPT_TimeStamp(NPT_Int64 nanoseconds) : m_NanoSeconds(nanoseconds) {}
-    NPT_TimeStamp(double seconds);
-    NPT_TimeStamp& operator+=(const NPT_TimeStamp& time_stamp);
-    NPT_TimeStamp& operator-=(const NPT_TimeStamp& time_stamp);
-    bool operator==(const NPT_TimeStamp& t) const { return m_NanoSeconds == t.m_NanoSeconds; }
-    bool operator!=(const NPT_TimeStamp& t) const { return m_NanoSeconds != t.m_NanoSeconds; }
-    bool operator> (const NPT_TimeStamp& t) const { return m_NanoSeconds >  t.m_NanoSeconds; }
-    bool operator< (const NPT_TimeStamp& t) const { return m_NanoSeconds <  t.m_NanoSeconds; }
-    bool operator>=(const NPT_TimeStamp& t) const { return m_NanoSeconds >= t.m_NanoSeconds; }
-    bool operator<=(const NPT_TimeStamp& t) const { return m_NanoSeconds <= t.m_NanoSeconds; }
-
-    // accessors
-    void SetNanos(NPT_Int64 nanoseconds) { m_NanoSeconds = nanoseconds;          }
-    void SetMicros(NPT_Int64 micros)     { m_NanoSeconds = micros  * 1000;       }
-    void SetMillis(NPT_Int64 millis)     { m_NanoSeconds = millis  * 1000000;    }
-    void SetSeconds(NPT_Int64 seconds)   { m_NanoSeconds = seconds * 1000000000; }
-        
-    // conversion
-    operator double() const               { return (double)m_NanoSeconds/1E9; }
-    void FromNanos(NPT_Int64 nanoseconds) { m_NanoSeconds = nanoseconds;      }
-    NPT_Int64 ToNanos() const             { return m_NanoSeconds;             }
-    NPT_Int64 ToMicros() const            { return m_NanoSeconds/1000;        }
-    NPT_Int64 ToMillis() const            { return m_NanoSeconds/1000000;     }
-    NPT_Int64 ToSeconds() const           { return m_NanoSeconds/1000000000;  }
-    
-private:
-    // members
-    NPT_Int64 m_NanoSeconds;
-};
-
-/*----------------------------------------------------------------------
-|   operator+
-+---------------------------------------------------------------------*/
-inline 
-NPT_TimeStamp 
-operator+(const NPT_TimeStamp& t1, const NPT_TimeStamp& t2) 
-{
-    NPT_TimeStamp t = t1;
-    return t += t2;
-}
-
-/*----------------------------------------------------------------------
-|   operator-
-+---------------------------------------------------------------------*/
-inline 
-NPT_TimeStamp 
-operator-(const NPT_TimeStamp& t1, const NPT_TimeStamp& t2) 
-{
-    NPT_TimeStamp t = t1;
-    return t -= t2;
-}
-
-/*----------------------------------------------------------------------
-|   NPT_TimeInterval
-+---------------------------------------------------------------------*/
-typedef NPT_TimeStamp NPT_TimeInterval;
-
-/*----------------------------------------------------------------------
-|   NPT_DateTime
-+---------------------------------------------------------------------*/
-class NPT_DateTime {
-public:
-    // types
-    enum Format {
-        FORMAT_ANSI,
-        FORMAT_W3C,
-        FORMAT_RFC_1123,  // RFC 822 updated by RFC 1123
-        FORMAT_RFC_1036   // RFC 850 updated by RFC 1036
-    };
-    
-    enum FormatFlags {
-        FLAG_EMIT_FRACTION      = 1,
-        FLAG_EXTENDED_PRECISION = 2
-    };
-    
-    // class methods
-    NPT_Int32 GetLocalTimeZone();
-    
-    // constructors
-    NPT_DateTime();
-    NPT_DateTime(const NPT_TimeStamp& timestamp, bool local=false);
-    
-    // methods
-    NPT_Result ChangeTimeZone(NPT_Int32 timezone);
-    NPT_Result FromTimeStamp(const NPT_TimeStamp& timestamp, bool local=false);
-    NPT_Result ToTimeStamp(NPT_TimeStamp& timestamp) const;
-    NPT_Result FromString(const char* date, Format format = FORMAT_ANSI);
-    NPT_String ToString(Format format = FORMAT_ANSI, NPT_Flags flags=0) const;
-    
-    // members
-    NPT_Int32 m_Year;        // year
-    NPT_Int32 m_Month;       // month of the year (1-12)
-    NPT_Int32 m_Day;         // day of the month (1-31)
-    NPT_Int32 m_Hours;       // hours (0-23)
-    NPT_Int32 m_Minutes;     // minutes (0-59)
-    NPT_Int32 m_Seconds;     // seconds (0-59)
-    NPT_Int32 m_NanoSeconds; // nanoseconds (0-999999999)
-    NPT_Int32 m_TimeZone;    // minutes offset from GMT
-};
-
-#endif // _NPT_TIME_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTls.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTls.h
deleted file mode 100644
index 4a392fd..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTls.h
+++ /dev/null
@@ -1,306 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - TLS/SSL Support
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_TLS_H_
-#define _NPT_TLS_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-#include "NptStreams.h"
-#include "NptTime.h"
-#include "NptHttp.h"
-
-/*----------------------------------------------------------------------
-|   error codes
-+---------------------------------------------------------------------*/
-const NPT_Result NPT_ERROR_INVALID_PASSWORD                     = (NPT_ERROR_BASE_TLS-1);
-const NPT_Result NPT_ERROR_TLS_INVALID_HANDSHAKE                = (NPT_ERROR_BASE_TLS-2);
-const NPT_Result NPT_ERROR_TLS_INVALID_PROTOCOL_MESSAGE         = (NPT_ERROR_BASE_TLS-3);
-const NPT_Result NPT_ERROR_TLS_INVALID_HMAC                     = (NPT_ERROR_BASE_TLS-4);
-const NPT_Result NPT_ERROR_TLS_INVALID_VERSION                  = (NPT_ERROR_BASE_TLS-5);
-const NPT_Result NPT_ERROR_TLS_INVALID_SESSION                  = (NPT_ERROR_BASE_TLS-6);
-const NPT_Result NPT_ERROR_TLS_NO_CIPHER                        = (NPT_ERROR_BASE_TLS-7);
-const NPT_Result NPT_ERROR_TLS_BAD_CERTIFICATE                  = (NPT_ERROR_BASE_TLS-8);
-const NPT_Result NPT_ERROR_TLS_INVALID_KEY                      = (NPT_ERROR_BASE_TLS-9);
-const NPT_Result NPT_ERROR_TLS_NO_CLIENT_RENEGOTIATION          = (NPT_ERROR_BASE_TLS-10);
-const NPT_Result NPT_ERROR_TLS_INVALID_FINISHED_MESSAGE         = (NPT_ERROR_BASE_TLS-11);
-const NPT_Result NPT_ERROR_TLS_NO_CERTIFICATE_DEFINED           = (NPT_ERROR_BASE_TLS-12);
-const NPT_Result NPT_ERROR_TLS_ALERT_HANDSHAKE_FAILED           = (NPT_ERROR_BASE_TLS-13); 
-const NPT_Result NPT_ERROR_TLS_ALERT_BAD_CERTIFICATE            = (NPT_ERROR_BASE_TLS-14);
-const NPT_Result NPT_ERROR_TLS_ALERT_INVALID_VERSION            = (NPT_ERROR_BASE_TLS-15);
-const NPT_Result NPT_ERROR_TLS_ALERT_BAD_RECORD_MAC             = (NPT_ERROR_BASE_TLS-16);
-const NPT_Result NPT_ERROR_TLS_ALERT_DECODE_ERROR               = (NPT_ERROR_BASE_TLS-17);
-const NPT_Result NPT_ERROR_TLS_ALERT_DECRYPT_ERROR              = (NPT_ERROR_BASE_TLS-18);
-const NPT_Result NPT_ERROR_TLS_ALERT_ILLEGAL_PARAMETER          = (NPT_ERROR_BASE_TLS-19);
-const NPT_Result NPT_ERROR_TLS_ALERT_UNEXPECTED_MESSAGE         = (NPT_ERROR_BASE_TLS-20);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_FAILURE              = (NPT_ERROR_BASE_TLS-21);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_NO_TRUST_ANCHOR      = (NPT_ERROR_BASE_TLS-22);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_BAD_SIGNATURE        = (NPT_ERROR_BASE_TLS-23);      
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_NOT_YET_VALID        = (NPT_ERROR_BASE_TLS-24);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_EXPIRED              = (NPT_ERROR_BASE_TLS-25);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_SELF_SIGNED          = (NPT_ERROR_BASE_TLS-26);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_INVALID_CHAIN        = (NPT_ERROR_BASE_TLS-27);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_UNSUPPORTED_DIGEST   = (NPT_ERROR_BASE_TLS-28);
-const NPT_Result NPT_ERROR_TLS_CERTIFICATE_INVALID_PRIVATE_KEY  = (NPT_ERROR_BASE_TLS-29);
-const NPT_Result NPT_ERROR_TLS_DNS_NAME_MISMATCH                = (NPT_ERROR_BASE_TLS-30);
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const unsigned int NPT_TLS_NULL_WITH_NULL_NULL      = 0x00;
-const unsigned int NPT_TLS_RSA_WITH_RC4_128_MD5     = 0x04;
-const unsigned int NPT_TLS_RSA_WITH_RC4_128_SHA     = 0x05;
-const unsigned int NPT_TLS_RSA_WITH_AES_128_CBC_SHA = 0x2F;
-const unsigned int NPT_TLS_RSA_WITH_AES_256_CBC_SHA = 0x35;
-
-/*----------------------------------------------------------------------
-|   class references
-+---------------------------------------------------------------------*/
-class NPT_TlsContextImpl;
-class NPT_TlsSessionImpl;
-
-/*----------------------------------------------------------------------
-|   types
-+---------------------------------------------------------------------*/
-typedef enum {
-    NPT_TLS_KEY_FORMAT_RSA_PRIVATE,
-    NPT_TLS_KEY_FORMAT_PKCS8,
-    NPT_TLS_KEY_FORMAT_PKCS12
-} NPT_TlsKeyFormat;
-
-struct NPT_TlsTrustAnchorData {
-    const unsigned char* cert_data;
-    unsigned int         cert_size;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Tls
-+---------------------------------------------------------------------*/
-class NPT_Tls
-{
-public:
-    static const NPT_TlsTrustAnchorData* GetDefaultTrustAnchors(NPT_Ordinal indx=0);
-    static bool MatchDnsNames(const char*                 hostname,
-                              const NPT_List<NPT_String>& dns_names);
-    static bool MatchDnsName(const char* hostname, const char* dns_name);
-                              
-private:
-    NPT_Tls() {}; // don't instantiate 
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TlsContext
-+---------------------------------------------------------------------*/
-class NPT_TlsContext : public NPT_AutomaticCleaner::Singleton
-{
-public:
-    enum {
-        OPTION_VERIFY_LATER               = 1,
-        OPTION_REQUIRE_CLIENT_CERTIFICATE = 2,
-        OPTION_ADD_DEFAULT_TRUST_ANCHORS  = 4,
-        OPTION_NO_SESSION_CACHE           = 8
-    };
-    NPT_TlsContext(NPT_Flags options=0);
-   ~NPT_TlsContext();
-   
-    // methods
-    NPT_Result LoadKey(NPT_TlsKeyFormat     key_format, 
-                       const unsigned char* key_data,
-                       NPT_Size             key_data_size,
-                       const char*          password);
-      
-    NPT_Result SelfSignCertificate(const char* common_name,
-                                   const char* organization,
-                                   const char* organizational_name);
-                                   
-    /** 
-     * Add one trust anchor
-     */
-    NPT_Result AddTrustAnchor(const unsigned char* ta_data,
-                              NPT_Size             ta_data_size);
-    /**
-     * Add one or more trust anchors, from a list
-     * @param anchors Array of trust anchor data
-     * @param anchor_count Number of anchors in the array, or 0 if the array
-     * is terminated by a 'sentinel' (an anchor data with the field cert_data set
-     * to NULL and the field cert_size set to 0).
-     */
-    NPT_Result AddTrustAnchors(const NPT_TlsTrustAnchorData* anchors, 
-                               NPT_Cardinal                  anchor_count = 0);
-
-protected:
-    NPT_TlsContextImpl* m_Impl;
-    
-    // friends
-    friend class NPT_TlsSession;
-    friend class NPT_TlsClientSession;
-    friend class NPT_TlsServerSession;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TlsCertificateInfo
-+---------------------------------------------------------------------*/
-struct NPT_TlsCertificateInfo
-{
-    struct _subject {
-        NPT_String common_name;
-        NPT_String organization;
-        NPT_String organizational_name;
-    } subject;
-    struct _issuer {
-        NPT_String common_name;
-        NPT_String organization;
-        NPT_String organizational_name;
-    } issuer;
-    struct _fingerprint {
-        unsigned char sha1[20];
-        unsigned char md5[16];
-    } fingerprint;
-    NPT_DateTime issue_date;
-    NPT_DateTime expiration_date;
-    NPT_List<NPT_String> alternate_names;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TlsSession
-+---------------------------------------------------------------------*/
-class NPT_TlsSession
-{
-public:
-    virtual ~NPT_TlsSession();
-    virtual NPT_Result Handshake();
-    virtual NPT_Result GetHandshakeStatus();
-    virtual NPT_Result GetPeerCertificateInfo(NPT_TlsCertificateInfo& info, NPT_Ordinal position=0);
-    virtual NPT_Result VerifyPeerCertificate();
-    virtual NPT_Result VerifyDnsNameMatch(const char* hostname);
-    virtual NPT_Result GetSessionId(NPT_DataBuffer& session_id);
-    virtual NPT_UInt32 GetCipherSuiteId();
-    virtual NPT_Result GetInputStream(NPT_InputStreamReference& stream);
-    virtual NPT_Result GetOutputStream(NPT_OutputStreamReference& stream);
-    
-protected:
-    NPT_TlsSession(NPT_TlsContext&     context, 
-                   NPT_TlsSessionImpl* impl);
-
-    NPT_TlsContext&                   m_Context;
-    NPT_Reference<NPT_TlsSessionImpl> m_Impl;
-    NPT_InputStreamReference          m_InputStream;
-    NPT_OutputStreamReference         m_OutputStream;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TlsClientSession
-+---------------------------------------------------------------------*/
-class NPT_TlsClientSession : public NPT_TlsSession
-{
-public:
-    NPT_TlsClientSession(NPT_TlsContext&            context,
-                         NPT_InputStreamReference&  input,
-                         NPT_OutputStreamReference& output);
-};
-
-/*----------------------------------------------------------------------
-|   NPT_TlsServerSession
-+---------------------------------------------------------------------*/
-class NPT_TlsServerSession : public NPT_TlsSession
-{
-public:
-    NPT_TlsServerSession(NPT_TlsContext&            context,
-                         NPT_InputStreamReference&  input,
-                         NPT_OutputStreamReference& output);
-};
-
-/*----------------------------------------------------------------------
-|   NPT_HttpTlsConnector
-+---------------------------------------------------------------------*/
-#if defined(NPT_CONFIG_ENABLE_TLS)
-class NPT_HttpTlsConnector : public NPT_HttpClient::Connector
-{
-public:
-    enum {
-        OPTION_ACCEPT_SELF_SIGNED_CERTS = 1,
-        OPTION_ACCEPT_HOSTNAME_MISMATCH = 2
-    };
-    NPT_HttpTlsConnector(NPT_Flags options = 0);
-    NPT_HttpTlsConnector(NPT_TlsContext& tls_context, NPT_Flags options = 0);
-    virtual ~NPT_HttpTlsConnector() {}
-    NPT_TlsContext& GetTlsContext() { return m_TlsContext; }
-    
-    virtual NPT_Result VerifyPeer(NPT_TlsClientSession& session,
-                                  const char*           hostname);
-    
-    //  NPT_HttpClient::Connector methods
-    virtual NPT_Result Connect(const NPT_HttpUrl&           url,
-                               NPT_HttpClient&              client,
-                               const NPT_HttpProxyAddress*  proxy,
-                               bool                         reuse,
-                               NPT_HttpClient::Connection*& connection);
-
-private:
-    // class methods
-    static NPT_TlsContext& GetDefaultTlsContext();
-    
-    // class members
-    static NPT_TlsContext* DefaultTlsContext;
-    
-    // members
-    NPT_TlsContext& m_TlsContext;
-    NPT_Flags       m_Options;
-};
-#else
-class NPT_HttpTlsConnector : public NPT_HttpClient::Connector
-{
-public:
-    virtual ~NPT_HttpTlsConnector() {}
-    virtual NPT_Result Connect(const NPT_HttpUrl&           url,
-                               NPT_HttpClient&              client,
-                               const NPT_HttpProxyAddress*  proxy,
-                               bool                         reuse,
-                               NPT_HttpClient::Connection*& connection);
-};
-#endif
-
-/*----------------------------------------------------------------------
-|   Trust Anchors
-+-----------------------------------------------------------------*/
-/** 
- * Arrays of trust anchors (each array element is of type NPT_TlsTrustAnchorData
- * and the last element is a terminator element: the cert_data field is NULL
- * and the cert_size field is 0
- */ 
-#if defined(NPT_CONFIG_ENABLE_TLS)
-#include "NptTlsDefaultTrustAnchorsBase.h"
-#include "NptTlsDefaultTrustAnchorsExtended.h"
-#endif
-
-#endif // _NPT_TLS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTlsDefaultTrustAnchorsBase.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTlsDefaultTrustAnchorsBase.h
deleted file mode 100644
index 170cdb2..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTlsDefaultTrustAnchorsBase.h
+++ /dev/null
@@ -1,583 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Trust Anchors
-|
-|   This file is automatically generated by a script, do not edit!
-|
-| Copyright (c) 2002-2010, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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 file is automatically generated by GenTrustAnchorsTables.py, do not edit */
-
-#include "NptTls.h"
-
-extern const NPT_TlsTrustAnchorData NptTlsDefaultTrustAnchorsBase[137];
-
-/* Verisign/RSA Secure Server CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0000_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0000_Data[];
-
-/* GTE CyberTrust Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0001_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0001_Data[];
-
-/* GTE CyberTrust Global Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0002_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0002_Data[];
-
-/* Thawte Personal Basic CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0003_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0003_Data[];
-
-/* Thawte Personal Premium CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0004_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0004_Data[];
-
-/* Thawte Personal Freemail CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0005_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0005_Data[];
-
-/* Thawte Server CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0006_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0006_Data[];
-
-/* Thawte Premium Server CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0007_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0007_Data[];
-
-/* Equifax Secure CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0008_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0008_Data[];
-
-/* Digital Signature Trust Co. Global CA 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0009_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0009_Data[];
-
-/* Digital Signature Trust Co. Global CA 3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0010_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0010_Data[];
-
-/* Digital Signature Trust Co. Global CA 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0011_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0011_Data[];
-
-/* Digital Signature Trust Co. Global CA 4 */
-extern const unsigned int NptTlsTrustAnchor_Base_0012_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0012_Data[];
-
-/* Verisign Class 1 Public Primary Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0013_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0013_Data[];
-
-/* Verisign Class 2 Public Primary Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0014_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0014_Data[];
-
-/* Verisign Class 3 Public Primary Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0015_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0015_Data[];
-
-/* Verisign Class 1 Public Primary Certification Authority - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0016_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0016_Data[];
-
-/* Verisign Class 2 Public Primary Certification Authority - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0017_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0017_Data[];
-
-/* Verisign Class 3 Public Primary Certification Authority - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0018_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0018_Data[];
-
-/* Verisign Class 4 Public Primary Certification Authority - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0019_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0019_Data[];
-
-/* GlobalSign Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0020_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0020_Data[];
-
-/* GlobalSign Root CA - R2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0021_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0021_Data[];
-
-/* ValiCert Class 1 VA */
-extern const unsigned int NptTlsTrustAnchor_Base_0022_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0022_Data[];
-
-/* ValiCert Class 2 VA */
-extern const unsigned int NptTlsTrustAnchor_Base_0023_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0023_Data[];
-
-/* RSA Root Certificate 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0024_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0024_Data[];
-
-/* Verisign Class 1 Public Primary Certification Authority - G3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0025_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0025_Data[];
-
-/* Verisign Class 2 Public Primary Certification Authority - G3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0026_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0026_Data[];
-
-/* Verisign Class 3 Public Primary Certification Authority - G3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0027_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0027_Data[];
-
-/* Verisign Class 4 Public Primary Certification Authority - G3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0028_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0028_Data[];
-
-/* Entrust.net Secure Server CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0029_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0029_Data[];
-
-/* Entrust.net Secure Personal CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0030_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0030_Data[];
-
-/* Entrust.net Premium 2048 Secure Server CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0031_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0031_Data[];
-
-/* Baltimore CyberTrust Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0032_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0032_Data[];
-
-/* Equifax Secure Global eBusiness CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0033_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0033_Data[];
-
-/* Equifax Secure eBusiness CA 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0034_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0034_Data[];
-
-/* Equifax Secure eBusiness CA 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0035_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0035_Data[];
-
-/* Visa International Global Root 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0036_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0036_Data[];
-
-/* AddTrust Low-Value Services Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0037_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0037_Data[];
-
-/* AddTrust External Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0038_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0038_Data[];
-
-/* AddTrust Public Services Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0039_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0039_Data[];
-
-/* AddTrust Qualified Certificates Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0040_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0040_Data[];
-
-/* Verisign Time Stamping Authority CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0041_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0041_Data[];
-
-/* Thawte Time Stamping CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0042_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0042_Data[];
-
-/* Entrust.net Global Secure Server CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0043_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0043_Data[];
-
-/* Entrust.net Global Secure Personal CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0044_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0044_Data[];
-
-/* Entrust Root Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0045_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0045_Data[];
-
-/* AOL Time Warner Root Certification Authority 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0046_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0046_Data[];
-
-/* AOL Time Warner Root Certification Authority 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0047_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0047_Data[];
-
-/* beTRUSTed Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0048_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0048_Data[];
-
-/* beTRUSTed Root CA-Baltimore Implementation */
-extern const unsigned int NptTlsTrustAnchor_Base_0049_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0049_Data[];
-
-/* beTRUSTed Root CA - Entrust Implementation */
-extern const unsigned int NptTlsTrustAnchor_Base_0050_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0050_Data[];
-
-/* beTRUSTed Root CA - RSA Implementation */
-extern const unsigned int NptTlsTrustAnchor_Base_0051_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0051_Data[];
-
-/* RSA Security 2048 v3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0052_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0052_Data[];
-
-/* RSA Security 1024 v3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0053_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0053_Data[];
-
-/* GeoTrust Global CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0054_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0054_Data[];
-
-/* GeoTrust Global CA 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0055_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0055_Data[];
-
-/* GeoTrust Universal CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0056_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0056_Data[];
-
-/* GeoTrust Universal CA 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0057_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0057_Data[];
-
-/* UTN-USER First-Network Applications */
-extern const unsigned int NptTlsTrustAnchor_Base_0058_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0058_Data[];
-
-/* America Online Root Certification Authority 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0059_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0059_Data[];
-
-/* America Online Root Certification Authority 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0060_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0060_Data[];
-
-/* Visa eCommerce Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0061_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0061_Data[];
-
-/* TC TrustCenter, Germany, Class 2 CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0062_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0062_Data[];
-
-/* TC TrustCenter, Germany, Class 3 CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0063_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0063_Data[];
-
-/* Certum Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0064_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0064_Data[];
-
-/* Comodo AAA Services root */
-extern const unsigned int NptTlsTrustAnchor_Base_0065_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0065_Data[];
-
-/* Comodo Secure Services root */
-extern const unsigned int NptTlsTrustAnchor_Base_0066_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0066_Data[];
-
-/* Comodo Trusted Services root */
-extern const unsigned int NptTlsTrustAnchor_Base_0067_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0067_Data[];
-
-/* IPS Chained CAs root */
-extern const unsigned int NptTlsTrustAnchor_Base_0068_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0068_Data[];
-
-/* IPS CLASE1 root */
-extern const unsigned int NptTlsTrustAnchor_Base_0069_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0069_Data[];
-
-/* IPS CLASE3 root */
-extern const unsigned int NptTlsTrustAnchor_Base_0070_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0070_Data[];
-
-/* IPS CLASEA1 root */
-extern const unsigned int NptTlsTrustAnchor_Base_0071_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0071_Data[];
-
-/* IPS CLASEA3 root */
-extern const unsigned int NptTlsTrustAnchor_Base_0072_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0072_Data[];
-
-/* IPS Servidores root */
-extern const unsigned int NptTlsTrustAnchor_Base_0073_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0073_Data[];
-
-/* IPS Timestamping root */
-extern const unsigned int NptTlsTrustAnchor_Base_0074_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0074_Data[];
-
-/* QuoVadis Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0075_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0075_Data[];
-
-/* QuoVadis Root CA 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0076_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0076_Data[];
-
-/* QuoVadis Root CA 3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0077_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0077_Data[];
-
-/* Security Communication Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0078_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0078_Data[];
-
-/* Sonera Class 1 Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0079_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0079_Data[];
-
-/* Sonera Class 2 Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0080_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0080_Data[];
-
-/* Staat der Nederlanden Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0081_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0081_Data[];
-
-/* TDC Internet Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0082_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0082_Data[];
-
-/* TDC OCES Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0083_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0083_Data[];
-
-/* UTN DATACorp SGC Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0084_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0084_Data[];
-
-/* UTN USERFirst Email Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0085_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0085_Data[];
-
-/* UTN USERFirst Hardware Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0086_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0086_Data[];
-
-/* UTN USERFirst Object Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0087_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0087_Data[];
-
-/* Camerfirma Chambers of Commerce Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0088_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0088_Data[];
-
-/* Camerfirma Global Chambersign Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0089_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0089_Data[];
-
-/* NetLock Qualified (Class QA) Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0090_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0090_Data[];
-
-/* NetLock Notary (Class A) Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0091_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0091_Data[];
-
-/* NetLock Business (Class B) Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0092_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0092_Data[];
-
-/* NetLock Express (Class C) Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0093_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0093_Data[];
-
-/* XRamp Global CA Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0094_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0094_Data[];
-
-/* Go Daddy Class 2 CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0095_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0095_Data[];
-
-/* Starfield Class 2 CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0096_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0096_Data[];
-
-/* StartCom Ltd. */
-extern const unsigned int NptTlsTrustAnchor_Base_0097_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0097_Data[];
-
-/* StartCom Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0098_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0098_Data[];
-
-/* Firmaprofesional Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0099_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0099_Data[];
-
-/* Wells Fargo Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0100_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0100_Data[];
-
-/* Swisscom Root CA 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0101_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0101_Data[];
-
-/* DigiCert Assured ID Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0102_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0102_Data[];
-
-/* DigiCert Global Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0103_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0103_Data[];
-
-/* DigiCert High Assurance EV Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0104_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0104_Data[];
-
-/* Certplus Class 2 Primary CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0105_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0105_Data[];
-
-/* DST Root CA X3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0106_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0106_Data[];
-
-/* DST ACES CA X6 */
-extern const unsigned int NptTlsTrustAnchor_Base_0107_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0107_Data[];
-
-/* SwissSign Platinum CA - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0108_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0108_Data[];
-
-/* SwissSign Gold CA - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0109_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0109_Data[];
-
-/* SwissSign Silver CA - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0110_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0110_Data[];
-
-/* GeoTrust Primary Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0111_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0111_Data[];
-
-/* thawte Primary Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0112_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0112_Data[];
-
-/* VeriSign Class 3 Public Primary Certification Authority - G5 */
-extern const unsigned int NptTlsTrustAnchor_Base_0113_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0113_Data[];
-
-/* SecureTrust CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0114_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0114_Data[];
-
-/* Secure Global CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0115_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0115_Data[];
-
-/* COMODO Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0116_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0116_Data[];
-
-/* DigiNotar Root CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0117_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0117_Data[];
-
-/* Network Solutions Certificate Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0118_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0118_Data[];
-
-/* WellsSecure Public Root Certificate Authority */
-extern const unsigned int NptTlsTrustAnchor_Base_0119_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0119_Data[];
-
-/* IGC/A */
-extern const unsigned int NptTlsTrustAnchor_Base_0120_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0120_Data[];
-
-/* Security Communication EV RootCA1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0121_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0121_Data[];
-
-/* TC TrustCenter Class 2 CA II */
-extern const unsigned int NptTlsTrustAnchor_Base_0122_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0122_Data[];
-
-/* TC TrustCenter Class 3 CA II */
-extern const unsigned int NptTlsTrustAnchor_Base_0123_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0123_Data[];
-
-/* TC TrustCenter Universal CA I */
-extern const unsigned int NptTlsTrustAnchor_Base_0124_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0124_Data[];
-
-/* Deutsche Telekom Root CA 2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0125_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0125_Data[];
-
-/* ComSign CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0126_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0126_Data[];
-
-/* ComSign Secured CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0127_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0127_Data[];
-
-/* Cybertrust Global Root */
-extern const unsigned int NptTlsTrustAnchor_Base_0128_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0128_Data[];
-
-/* Buypass Class 2 CA 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0129_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0129_Data[];
-
-/* Buypass Class 3 CA 1 */
-extern const unsigned int NptTlsTrustAnchor_Base_0130_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0130_Data[];
-
-/* certSIGN ROOT CA */
-extern const unsigned int NptTlsTrustAnchor_Base_0131_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0131_Data[];
-
-/* ApplicationCA - Japanese Government */
-extern const unsigned int NptTlsTrustAnchor_Base_0132_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0132_Data[];
-
-/* GeoTrust Primary Certification Authority - G3 */
-extern const unsigned int NptTlsTrustAnchor_Base_0133_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0133_Data[];
-
-/* thawte Primary Root CA - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0134_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0134_Data[];
-
-/* GeoTrust Primary Certification Authority - G2 */
-extern const unsigned int NptTlsTrustAnchor_Base_0135_Size;
-extern const unsigned char NptTlsTrustAnchor_Base_0135_Data[];
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTlsDefaultTrustAnchorsExtended.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTlsDefaultTrustAnchorsExtended.h
deleted file mode 100644
index 005a6f0..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTlsDefaultTrustAnchorsExtended.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Trust Anchors
-|
-|   This file is automatically generated by a script, do not edit!
-|
-| Copyright (c) 2002-2010, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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 file is automatically generated by GenTrustAnchorsTables.py, do not edit */
-
-#include "NptTls.h"
-
-extern const NPT_TlsTrustAnchorData NptTlsDefaultTrustAnchorsExtended[14];
-
-/* ABAecom (sub., Am. Bankers Assn.) Root CA */
-extern const unsigned int NptTlsTrustAnchor_Extended_0000_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0000_Data[];
-
-/* Taiwan GRCA */
-extern const unsigned int NptTlsTrustAnchor_Extended_0001_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0001_Data[];
-
-/* TURKTRUST Certificate Services Provider Root 1 */
-extern const unsigned int NptTlsTrustAnchor_Extended_0002_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0002_Data[];
-
-/* TURKTRUST Certificate Services Provider Root 2 */
-extern const unsigned int NptTlsTrustAnchor_Extended_0003_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0003_Data[];
-
-/* OISTE WISeKey Global Root GA CA */
-extern const unsigned int NptTlsTrustAnchor_Extended_0004_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0004_Data[];
-
-/* S-TRUST Authentication and Encryption Root CA 2005 PN */
-extern const unsigned int NptTlsTrustAnchor_Extended_0005_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0005_Data[];
-
-/* Microsec e-Szigno Root CA */
-extern const unsigned int NptTlsTrustAnchor_Extended_0006_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0006_Data[];
-
-/* Certigna */
-extern const unsigned int NptTlsTrustAnchor_Extended_0007_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0007_Data[];
-
-/* AC Ra\xC3\xADz Certic\xC3\xA1mara S.A. */
-extern const unsigned int NptTlsTrustAnchor_Extended_0008_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0008_Data[];
-
-/* ePKI Root Certification Authority */
-extern const unsigned int NptTlsTrustAnchor_Extended_0009_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0009_Data[];
-
-/* TUBITAK UEKAE Kok Sertifika Hizmet Saglayicisi - Surum 3 */
-extern const unsigned int NptTlsTrustAnchor_Extended_0010_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0010_Data[];
-
-/* CNNIC ROOT */
-extern const unsigned int NptTlsTrustAnchor_Extended_0011_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0011_Data[];
-
-/* EBG Elektronik Sertifika Hizmet Saglayicisi */
-extern const unsigned int NptTlsTrustAnchor_Extended_0012_Size;
-extern const unsigned char NptTlsTrustAnchor_Extended_0012_Data[];
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTypes.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTypes.h
deleted file mode 100644
index 4c82174..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptTypes.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Types
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_TYPES_H_
-#define _NPT_TYPES_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-
-/*----------------------------------------------------------------------
-|   sized types (this assumes that ints are 32 bits)
-+---------------------------------------------------------------------*/
-typedef NPT_CONFIG_INT64_TYPE          NPT_Int64;
-typedef unsigned NPT_CONFIG_INT64_TYPE NPT_UInt64;
-typedef unsigned int                   NPT_UInt32;
-typedef int                            NPT_Int32;
-typedef unsigned short                 NPT_UInt16;
-typedef short                          NPT_Int16;
-typedef unsigned char                  NPT_UInt8;
-typedef char                           NPT_Int8;
-typedef float                          NPT_Float;
-
-/*----------------------------------------------------------------------
-|   named types       
-+---------------------------------------------------------------------*/
-typedef int           NPT_Result;
-typedef unsigned int  NPT_Cardinal;
-typedef unsigned int  NPT_Ordinal;
-typedef NPT_UInt32    NPT_Size;
-typedef NPT_UInt64    NPT_LargeSize;
-typedef NPT_Int32     NPT_Offset;
-typedef NPT_UInt64    NPT_Position;
-typedef NPT_Int32     NPT_Timeout;
-typedef void          NPT_Interface;
-typedef NPT_UInt8     NPT_Byte;
-typedef NPT_UInt32    NPT_Flags;
-typedef void*         NPT_Any;
-typedef const void*   NPT_AnyConst;
-
-/*----------------------------------------------------------------------
-|   limits       
-+---------------------------------------------------------------------*/
-#if defined(NPT_CONFIG_HAVE_LIMITS_H)
-#include <limits.h>
-#endif
-
-#if !defined(NPT_INT_MIN)
-#if defined(NPT_CONFIG_HAVE_INT_MIN)
-#define NPT_INT_MIN INT_MIN
-#endif
-#endif
-
-#if !defined(NPT_INT_MAX)
-#if defined(NPT_CONFIG_HAVE_INT_MAX)
-#define NPT_INT_MAX INT_MAX
-#endif
-#endif
-
-#if !defined(NPT_UINT_MAX)
-#if defined(NPT_CONFIG_HAVE_UINT_MAX)
-#define NPT_UINT_MAX UINT_MAX
-#endif
-#endif
-
-#if !defined(NPT_LONG_MIN)
-#if defined(NPT_CONFIG_HAVE_LONG_MIN)
-#define NPT_LONG_MIN LONG_MIN
-#endif
-#endif
-
-#if !defined(NPT_LONG_MAX)
-#if defined(NPT_CONFIG_HAVE_LONG_MAX)
-#define NPT_LONG_MAX LONG_MAX
-#endif
-#endif
-
-#if !defined(NPT_ULONG_MAX)
-#if defined(NPT_CONFIG_HAVE_ULONG_MAX)
-#define NPT_ULONG_MAX ULONG_MAX
-#endif
-#endif
-
-#if !defined(NPT_INT32_MAX)
-#define NPT_INT32_MAX 0x7FFFFFFF
-#endif
-
-#if !defined(NPT_INT32_MIN)
-#define NPT_INT32_MIN (-NPT_INT32_MAX - 1) 
-#endif
-
-#if !defined(NPT_UINT32_MAX)
-#define NPT_UINT32_MAX 0xFFFFFFFF
-#endif
-
-#if !defined(NPT_INT64_MAX)
-#if defined(NPT_CONFIG_HAVE_LLONG_MAX)
-#define NPT_INT64_MAX LLONG_MAX
-#else
-#define NPT_INT64_MAX 0x7FFFFFFFFFFFFFFFLL
-#endif
-#endif
-
-#if !defined(NPT_INT64_MIN)
-#if defined(NPT_CONFIG_HAVE_LLONG_MIN)
-#define NPT_INT64_MIN LLONG_MIN
-#else
-#define NPT_INT64_MIN (-NPT_INT64_MAX - 1LL) 
-#endif
-#endif
-
-#if !defined(NPT_UINT64_MAX)
-#if defined(NPT_CONFIG_HAVE_ULLONG_MAX)
-#define NPT_UINT64_MAX ULLONG_MAX
-#else
-#define NPT_UINT64_MAX 0xFFFFFFFFFFFFFFFFULL
-#endif
-#endif
-
-#endif // _NPT_TYPES_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptUri.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptUri.h
deleted file mode 100644
index 8ef46cb..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptUri.h
+++ /dev/null
@@ -1,320 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - URI
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_URI_H_
-#define _NPT_URI_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptStrings.h"
-#include "NptList.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const NPT_UInt16 NPT_URL_INVALID_PORT       = 0;
-const NPT_UInt16 NPT_URL_DEFAULT_HTTP_PORT  = 80;
-const NPT_UInt16 NPT_URL_DEFAULT_HTTPS_PORT = 443;
-
-/*----------------------------------------------------------------------
-|   NPT_Uri
-+---------------------------------------------------------------------*/
-class NPT_Uri {
-public:
-    // types
-    typedef enum {
-        SCHEME_ID_UNKNOWN,
-        SCHEME_ID_HTTP,
-        SCHEME_ID_HTTPS
-    } SchemeId;
-
-    // constants. use as a parameter to Encode()
-    static const char* const PathCharsToEncode;
-    static const char* const QueryCharsToEncode;
-    static const char* const FragmentCharsToEncode;
-    static const char* const UnsafeCharsToEncode;
-
-    // class methods
-    static NPT_String PercentEncode(const char* str, const char* chars, bool encode_percents=true);
-    static NPT_String PercentDecode(const char* str);
-    static SchemeId   ParseScheme(const NPT_String& scheme);
-
-    // methods
-    NPT_Uri() : m_SchemeId(SCHEME_ID_UNKNOWN) {}
-    virtual ~NPT_Uri() {}
-    const NPT_String& GetScheme() const {
-        return m_Scheme;
-    }
-    void SetScheme(const char* scheme);
-    NPT_Result SetSchemeFromUri(const char* uri);
-    SchemeId GetSchemeId() const {
-        return m_SchemeId;
-    }
-
-protected:
-    // members
-    NPT_String m_Scheme;
-    SchemeId   m_SchemeId;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_UrlQuery
-+---------------------------------------------------------------------*/
-class NPT_UrlQuery
-{
-public:
-    // class methods
-    static NPT_String UrlEncode(const char* str, bool encode_percents=true);
-    static NPT_String UrlDecode(const char* str);
-    
-    // types
-    struct Field {
-        Field(const char* name, const char* value, bool encoded);
-        NPT_String m_Name;
-        NPT_String m_Value;
-    };
-
-    // constructor
-    NPT_UrlQuery() {}
-    NPT_UrlQuery(const char* query);
-
-    // accessors
-    NPT_List<Field>& GetFields() { return m_Fields; }
-
-    // methods
-    NPT_Result  Parse(const char* query);
-    NPT_Result  SetField(const char* name, const char* value, bool encoded=false);
-    NPT_Result  AddField(const char* name, const char* value, bool encoded=false);
-    const char* GetField(const char* name);
-    NPT_String  ToString();
-
-private:
-    // members
-    NPT_List<Field> m_Fields;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Url
-+---------------------------------------------------------------------*/
-class NPT_Url : public NPT_Uri {
-public:
-    /**
-     * Default constructor. This does not construct a valid URL, but an
-     * uninitialized one that can later be initialized to a valid URL by
-     * parsing or setting some of its fields.
-     */
-    NPT_Url();
-    
-    /**
-     * Construct a URL by parsing an input string in its fully encoded form.
-     * If an error occurs during parsing (such as an invalid syntax), the
-     * URL will be in an invalid state (a call to IsValid() will return false).
-     *
-     * @param url The URL string in its encoded form
-     * @param default_port The default port number, or 0 if not specified
-     */
-    NPT_Url(const char* url, NPT_UInt16  default_port = 0);
-    
-    /**
-     * Construct a URL from its components. When constructing a URL from
-     * components, the components are assumed to be passed in their non-encoded
-     * form, and will thus be encoded automatically.
-     *
-     * @param scheme The URL scheme
-     * @param port The port number
-     * @param path The path
-     * @param query The query, if any, or NULL
-     * @param fragment The fragment, if any, or NULL
-     */
-    NPT_Url(const char* scheme,
-            const char* host, 
-            NPT_UInt16  port, 
-            const char* path,
-            const char* query = NULL,
-            const char* fragment = NULL);
-
-    /**
-     * Parse a URL from its fully encoded form.
-     *
-     * @param url The URL string in its encoded form
-     * @param default port The defautl port number, or 0 if not specified
-     */
-    NPT_Result Parse(const char* url, NPT_UInt16  default_port = 0);
-    
-    /**
-     * Parse just the path plus optional query and fragment from a fully encoded form.
-     *
-     * @param path_plus The URL path plus optional query and fragment
-     */
-    NPT_Result ParsePathPlus(const char* path_plus);
-    
-    /**
-     * Returns the host part of the URL, in its encoded form
-     */
-    const NPT_String& GetHost() const { return m_Host;     }
-    
-    /**
-     * Returns the port number of the URL.
-     */
-    NPT_UInt16 GetPort() const { return m_Port;     }
-
-    /**
-     * Returns the path part of the URL, in its encoded form
-     */
-    const NPT_String& GetPath() const { return m_Path; }
-    
-    /**
-     * Returns the path part of the URL, in its encoded or decoded form
-     */
-    NPT_String GetPath(bool decoded) const { return decoded?NPT_Uri::PercentDecode(m_Path):m_Path;}
-
-    /**
-     * Returns the query part of the URL, in its encoded form
-     */
-    const NPT_String& GetQuery() const { return m_Query; }
-    
-    /**
-     * Returns the fragment part of the URL, in its encoded form
-     */
-    const NPT_String& GetFragment() const { return m_Fragment; }
-    
-    /**
-     * Returns whether the URL is valid or not. Invalid URLs are uninitialized or
-     * not fully initialized URLs.
-     *
-     * @return true if the URL is valid, false if it is not.
-     */
-    virtual bool IsValid() const;
-    
-    /**
-     * Resets a URL to an uninitialized state.
-     */
-    void Reset();
-    
-    /**
-     * Returns whether the URL has a query part or not.
-     *
-     * @return true if the URL has a query part, false if it does not.
-     */
-    bool HasQuery() const { return m_HasQuery; } 
-
-    /**
-     * Returns whether the URL has a fragment part or not.
-     *
-     * @return true if the URL has a fragment part, false if it does not.
-     */
-    bool HasFragment() const { return m_HasFragment; }
-
-    /**
-     * Sets the host part of the URL.
-     *
-     * @param host The host part of the URL
-     */
-    NPT_Result SetHost(const char* host);
-    
-    /**
-     * Sets the port number of the URL.
-     *
-     * @param port The port number of the URL
-     */
-    NPT_Result SetPort(NPT_UInt16 port);
-    
-    /**
-     * Sets the path part of the URL.
-     *
-     * @param path The path part of the URL
-     * @param encoded Boolean flag indicating whether the path parameter is
-     * already encoded or not. If it is not already encoded, it will be
-     * automatically encoded.
-     */
-    NPT_Result SetPath(const char* path, bool encoded=false);
-    
-    /**
-     * Sets the query part of the URL.
-     * 
-     * @param query The query part of the URL
-     * @param encoded Boolean flag indicating whether the query parameter is
-     * already encoded or not. If it is not already encoded, it will be
-     * automatically encoded.
-     */     
-    NPT_Result SetQuery(const char* query, bool encoded=false);
-
-    /**
-     * Sets the fragment part of the URL.
-     * 
-     * @param query The fragment part of the URL
-     * @param encoded Boolean flag indicating whether the fragment parameter is
-     * already encoded or not. If it is not already encoded, it will be
-     * automatically encoded.
-     */     
-    NPT_Result SetFragment(const char* fragment, bool encoded=false);
-
-    /**
-     * Return the string representation of the URL in a way that can be used in 
-     * an HTTP request (i.e just the portion of the URL starting with the path)
-     *
-     * @param with_fragment Boolean flag specifiying whether the fragment part of 
-     * the URL should be included in the returned string or not.
-     */
-    virtual NPT_String ToRequestString(bool with_fragment = false) const;
-
-    /**
-     * Return the string representation of the URL.
-     *
-     * @param default_port default port number for the scheme. If the port number of
-     * the URL is not equal to the default port, then port number is explicitely 
-     * included in the string representation of the URL. 
-     * @param with_fragment Boolean flag specifiying whether the fragment part of 
-     * the URL should be included in the returned string or not.
-     */
-    virtual NPT_String ToStringWithDefaultPort(NPT_UInt16 default_port, bool with_fragment = true) const;
-
-    /**
-     * Return the string representation of the URL.
-     *
-     * @param with_fragment Boolean flag specifiying whether the fragment part of 
-     * the URL should be included in the returned string or not.
-     */
-    virtual NPT_String ToString(bool with_fragment = true) const;
-
-protected:
-    // members
-    NPT_String m_Host;
-    NPT_UInt16 m_Port;
-    NPT_String m_Path;
-    bool       m_HasQuery;
-    NPT_String m_Query;
-    bool       m_HasFragment;
-    NPT_String m_Fragment;
-};
-
-#endif // _NPT_URI_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptUtils.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptUtils.h
deleted file mode 100644
index 3a06d49..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptUtils.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/*****************************************************************
-|
-|   Neptune Utils
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_UTILS_H_
-#define _NPT_UTILS_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-#include "NptTypes.h"
-#include "NptStrings.h"
-#include "NptMap.h"
-#include "NptDataBuffer.h"
-#include "NptHash.h"
-
-#if defined (NPT_CONFIG_HAVE_STDIO_H)
-#include <stdio.h>
-#endif
-
-#if defined (NPT_CONFIG_HAVE_STRING_H)
-#include <string.h>
-#endif
-
-#if defined(NPT_CONFIG_HAVE_STDARG_H)
-#include <stdarg.h>
-#endif
-
-/*----------------------------------------------------------------------
-|   macros
-+---------------------------------------------------------------------*/
-#define NPT_ARRAY_SIZE(_a) (sizeof(_a)/sizeof((_a)[0]))
-
-/*----------------------------------------------------------------------
-|   byte I/O
-+---------------------------------------------------------------------*/
-extern void NPT_BytesFromInt64Be(unsigned char* buffer, NPT_UInt64 value);
-extern void NPT_BytesFromInt32Be(unsigned char* buffer, NPT_UInt32 value);
-extern void NPT_BytesFromInt24Be(unsigned char* buffer, NPT_UInt32 value);
-extern void NPT_BytesFromInt16Be(unsigned char* buffer, NPT_UInt16 value);
-extern NPT_UInt64 NPT_BytesToInt64Be(const unsigned char* buffer);
-extern NPT_UInt32 NPT_BytesToInt32Be(const unsigned char* buffer);
-extern NPT_UInt32 NPT_BytesToInt24Be(const unsigned char* buffer);
-extern NPT_UInt16 NPT_BytesToInt16Be(const unsigned char* buffer);
-
-extern void NPT_BytesFromInt64Le(unsigned char* buffer, NPT_UInt64 value);
-extern void NPT_BytesFromInt32Le(unsigned char* buffer, NPT_UInt32 value);
-extern void NPT_BytesFromInt24Le(unsigned char* buffer, NPT_UInt32 value);
-extern void NPT_BytesFromInt16Le(unsigned char* buffer, NPT_UInt16 value);
-extern NPT_UInt64 NPT_BytesToInt64Le(const unsigned char* buffer);
-extern NPT_UInt32 NPT_BytesToInt32Le(const unsigned char* buffer);
-extern NPT_UInt32 NPT_BytesToInt24Le(const unsigned char* buffer);
-extern NPT_UInt16 NPT_BytesToInt16Le(const unsigned char* buffer);
-
-/*----------------------------------------------------------------------
-|    conversion utilities
-+---------------------------------------------------------------------*/
-extern NPT_Result 
-NPT_ParseFloat(const char* str, float& result, bool relaxed = true);
-
-extern NPT_Result 
-NPT_ParseInteger(const char* str, long& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-extern NPT_Result 
-NPT_ParseInteger(const char* str, unsigned long& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-extern NPT_Result 
-NPT_ParseInteger(const char* str, int& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-extern NPT_Result 
-NPT_ParseInteger(const char* str, unsigned int& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-extern NPT_Result 
-NPT_ParseInteger32(const char* str, NPT_Int32& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-extern NPT_Result 
-NPT_ParseInteger32(const char* str, NPT_UInt32& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-extern NPT_Result 
-NPT_ParseInteger64(const char* str, NPT_Int64& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-extern NPT_Result 
-NPT_ParseInteger64(const char* str, NPT_UInt64& result, bool relaxed = true, NPT_Cardinal* chars_used = 0);
-
-/*----------------------------------------------------------------------
-|    formatting
-+---------------------------------------------------------------------*/
-void
-NPT_FormatOutput(void        (*function)(void* parameter, const char* message),
-                 void*       function_parameter,
-                 const char* format, 
-                 va_list     args);
-
-void NPT_ByteToHex(NPT_Byte b, char* buffer, bool uppercase=false);
-NPT_Result NPT_HexToByte(const char* buffer, NPT_Byte& b);
-NPT_Result NPT_HexToBytes(const char* hex, NPT_DataBuffer& bytes);
-NPT_String NPT_HexString(const unsigned char* data, 
-                         NPT_Size             data_size,
-                         const char*          separator = NULL,
-                         bool                 uppercase=false);
-char NPT_NibbleToHex(unsigned int nibble, bool uppercase = true);
-int NPT_HexToNibble(char hex);
-
-/*----------------------------------------------------------------------
-|    parsing
-+---------------------------------------------------------------------*/
-NPT_Result 
-NPT_ParseMimeParameters(const char*                      encoded,
-                        NPT_Map<NPT_String, NPT_String>& parameters);
-
-/*----------------------------------------------------------------------
-|    environment variables
-+---------------------------------------------------------------------*/
-class NPT_Environment {
-public:
-    static NPT_Result Get(const char* name, NPT_String& value);
-    static NPT_Result Set(const char* name, const char* value);
-};
-// compat for older APIs
-#define NPT_GetEnvironment(_x,_y) NPT_Environment::Get(_x,_y)
-
-/*----------------------------------------------------------------------
-|   string utils
-+---------------------------------------------------------------------*/
-#if defined (NPT_CONFIG_HAVE_STDIO_H)
-#include <stdio.h>
-#endif
-
-#if defined (NPT_CONFIG_HAVE_STRING_H)
-#include <string.h>
-#endif
-
-#if defined (NPT_CONFIG_HAVE_SNPRINTF)
-#define NPT_FormatString NPT_snprintf
-#else
-int NPT_FormatString(char* str, NPT_Size size, const char* format, ...);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_VSNPRINTF)
-#define NPT_FormatStringVN(s,c,f,a) NPT_vsnprintf(s,c,f,a)
-#else
-extern int NPT_FormatStringVN(char *buffer, size_t count, const char *format, va_list argptr);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_MEMCPY)
-#define NPT_CopyMemory memcpy
-#else
-extern void NPT_CopyMemory(void* dest, void* src, NPT_Size size);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_STRCMP)
-#define NPT_StringsEqual(s1, s2) (strcmp((s1), (s2)) == 0)
-#else
-extern int NPT_StringsEqual(const char* s1, const char* s2);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_STRNCMP)
-#define NPT_StringsEqualN(s1, s2, n) (strncmp((s1), (s2), (n)) == 0)
-#else
-extern int NPT_StringsEqualN(const char* s1, const char* s2, unsigned long size);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_STRLEN)
-#define NPT_StringLength(s) (NPT_Size)(strlen(s))
-#else
-extern unsigned long NPT_StringLength(const char* s);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_STRCPY)
-#define NPT_CopyString(dst, src) ((void)NPT_strcpy((dst), (src)))
-#else
-extern void NPT_CopyString(char* dst, const char* src);
-#endif
-
-/**
- * Copy up to n characters from src to dst.
- * The destination buffer will be null-terminated, so it must
- * have enough space for n+1 characters (n from the source plus
- * the null terminator).
- */
-#if defined(NPT_CONFIG_HAVE_STRNCPY)
-#define NPT_CopyStringN(dst, src, n) \
-do { ((void)NPT_strncpy((dst), (src), n)); (dst)[(n)] = '\0'; } while(0)
-#else
-extern int NPT_CopyStringN(char* dst, const char* src, unsigned long n);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_MEMSET)
-#define NPT_SetMemory memset
-#else
-extern void NPT_SetMemory(void* dest, int c, NPT_Size size);
-#endif
-
-#if defined(NPT_CONFIG_HAVE_MEMCMP)
-#define NPT_MemoryEqual(s1, s2, n) (memcmp((s1), (s2), (n)) == 0) 
-#else 
-extern int NPT_MemoryEqual(const void* s1, const void* s2, unsigned long n); 
-#endif
-
-#endif // _NPT_UTILS_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptVersion.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptVersion.h
deleted file mode 100644
index ad34d90..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptVersion.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Version Info
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_VERSION_H_
-#define _NPT_VERSION_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#define NPT_NEPTUNE_VERSION        0x01010300
-#define NPT_NEPTUNE_VERSION_STRING "1.1.3"
-
-#endif // _NPT_VERSION_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptXml.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptXml.h
deleted file mode 100644
index b5d18ea..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptXml.h
+++ /dev/null
@@ -1,390 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Xml Support
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_XML_H_
-#define _NPT_XML_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptTypes.h"
-#include "NptList.h"
-#include "NptStrings.h"
-#include "NptStreams.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-const int NPT_ERROR_XML_INVALID_NESTING = NPT_ERROR_BASE_XML - 0;
-const int NPT_ERROR_XML_TAG_MISMATCH    = NPT_ERROR_BASE_XML - 1;
-const int NPT_ERROR_XML_NO_ROOT         = NPT_ERROR_BASE_XML - 2;
-const int NPT_ERROR_XML_MULTIPLE_ROOTS  = NPT_ERROR_BASE_XML - 3;
-
-#define NPT_XML_ANY_NAMESPACE "*"
-#define NPT_XML_NO_NAMESPACE  NULL
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class NPT_XmlProcessor;
-
-/*----------------------------------------------------------------------
-|   NPT_XmlAttribute
-+---------------------------------------------------------------------*/
-class NPT_XmlAttribute
-{
- public:
-    // methods
-    NPT_XmlAttribute(const char* name, const char* value);
-    NPT_XmlAttribute(const char* prefix, const char* name, const char* value) :
-        m_Prefix(prefix), m_Name(name), m_Value(value) {}
-    const NPT_String& GetPrefix() const { return m_Prefix; }
-    const NPT_String& GetName()   const { return m_Name;   }
-    const NPT_String& GetValue()  const { return m_Value;  }
-    void              SetValue(const char* value) { m_Value = value; }
-
- private:
-    // members
-    NPT_String m_Prefix;
-    NPT_String m_Name;
-    NPT_String m_Value;
-
-    NPT_XmlAttribute(const NPT_XmlAttribute& attribute) :
-        m_Prefix(attribute.m_Prefix), 
-        m_Name(attribute.m_Name), 
-        m_Value(attribute.m_Value) {}
-    NPT_XmlAttribute& operator=(const NPT_XmlAttribute& a);
-
-    // friends
-    friend class NPT_XmlAttributeFinder;
-    friend class NPT_XmlAttributeFinderWithPrefix;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlNamespaceMap
-+---------------------------------------------------------------------*/
-class NPT_XmlNamespaceMap
-{
-public:
-    // destructor
-    ~NPT_XmlNamespaceMap();
-
-    // methods   
-    NPT_Result        SetNamespaceUri(const char* prefix, const char* uri);
-    const NPT_String* GetNamespaceUri(const char* prefix);
-    const NPT_String* GetNamespacePrefix(const char* uri);
-
-private:
-    // types
-    class Entry {
-    public:
-        // constructor
-        Entry(const char* prefix, const char* uri) : 
-            m_Prefix(prefix), m_Uri(uri) {}
-
-        // members
-        NPT_String m_Prefix;
-        NPT_String m_Uri;
-    };
-
-    // members
-    NPT_List<Entry*> m_Entries;
-
-    // friends
-    friend class NPT_XmlWriter;
-    friend class NPT_XmlNodeWriter;
-    friend class NPT_XmlNodeCanonicalWriter;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlNode
-+---------------------------------------------------------------------*/
-class NPT_XmlElementNode;
-class NPT_XmlTextNode;
-class NPT_XmlNode
-{
- public:
-    // types
-    typedef enum {
-        DOCUMENT,
-        ELEMENT,
-        TEXT
-    } Type;
-
-    // methods
-    NPT_XmlNode(Type type) : m_Type(type), m_Parent(NULL) {}
-    virtual     ~NPT_XmlNode() {}
-    Type         GetType() const { return m_Type; }
-    NPT_XmlNode* GetParent() const { return m_Parent; }
-
-    // type casting
-    virtual NPT_XmlElementNode*       AsElementNode()       { return NULL; }
-    virtual const NPT_XmlElementNode* AsElementNode() const { return NULL; }
-    virtual NPT_XmlTextNode*          AsTextNode()          { return NULL; }
-    virtual const NPT_XmlTextNode*    AsTextNode() const    { return NULL; }
-
- protected:
-    // methods
-    virtual void SetParent(NPT_XmlNode* parent) { m_Parent = parent; }
-
-    // members  
-    Type         m_Type;
-    NPT_XmlNode* m_Parent;
-
-    // friends
-    friend class NPT_XmlNodeFinder;
-    friend class NPT_XmlSerializer;
-    friend class NPT_XmlWriter;
-    friend class NPT_XmlElementNode; // to allow access to SetParent()
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlElementNode
-+---------------------------------------------------------------------*/
-class NPT_XmlElementNode : public NPT_XmlNode
-{
- public:
-    // methods
-                            NPT_XmlElementNode(const char* tag);
-                            NPT_XmlElementNode(const char* prefix, const char* tag);
-    virtual                ~NPT_XmlElementNode();
-    NPT_List<NPT_XmlNode*>& GetChildren() { return m_Children; }
-    const NPT_List<NPT_XmlNode*>& 
-                            GetChildren() const { return m_Children; }
-    NPT_XmlElementNode*     GetChild(const char* tag, 
-                                     const char* namespc = NPT_XML_NO_NAMESPACE,
-                                     NPT_Ordinal n=0) const;
-    NPT_Result              AddChild(NPT_XmlNode* child);
-    NPT_Result              SetAttribute(const char* prefix,
-                                         const char* name, 
-                                         const char* value);
-    NPT_Result              SetAttribute(const char* name, 
-                                         const char* value);
-    NPT_Result              AddText(const char* text); 
-    NPT_List<NPT_XmlAttribute*>& 
-                            GetAttributes() { return m_Attributes; }
-    const NPT_List<NPT_XmlAttribute*>&
-                            GetAttributes() const { return m_Attributes; }
-    const NPT_String*       GetAttribute(const char* name,
-                                         const char* namespc = NPT_XML_NO_NAMESPACE) const;
-    const NPT_String&       GetPrefix() const { return m_Prefix; }
-    const NPT_String&       GetTag()    const { return m_Tag;    }
-    const NPT_String*       GetText(NPT_Ordinal n=0) const;
-
-    // bring all the namespace definitions used in this element of one of its descendants
-    // into the namespace map of this element so that it may be serialized as a
-    // standalone element without any prefixes with undefined namespace uris
-    NPT_Result              MakeStandalone();
-
-    // namespace methods   
-    const NPT_String* GetNamespace() const;
-    NPT_Result        SetNamespaceUri(const char* prefix, const char* uri);
-    const NPT_String* GetNamespaceUri(const char* prefix) const;
-    const NPT_String* GetNamespacePrefix(const char* uri) const;
-
-    // type casting
-    NPT_XmlElementNode*       AsElementNode()       { return this; }
-    const NPT_XmlElementNode* AsElementNode() const { return this; }
-
-protected:
-    // methods
-    void SetParent(NPT_XmlNode* parent);
-    void SetNamespaceParent(NPT_XmlElementNode* parent);
-    void RelinkNamespaceMaps();
-
-    NPT_Result AddAttribute(const char* name, const char* value);
-
-    // members  
-    NPT_String                  m_Prefix;
-    NPT_String                  m_Tag;
-    NPT_List<NPT_XmlNode*>      m_Children;
-    NPT_List<NPT_XmlAttribute*> m_Attributes;
-    NPT_XmlNamespaceMap*        m_NamespaceMap;
-    NPT_XmlElementNode*         m_NamespaceParent;
-
-    // friends
-    friend class NPT_XmlTagFinder;
-    friend class NPT_XmlSerializer;
-    friend class NPT_XmlWriter;
-    friend class NPT_XmlNodeWriter;
-    friend class NPT_XmlNodeCanonicalWriter;
-    friend class NPT_XmlParser;
-    friend class NPT_XmlProcessor;
-    friend class NPT_XmlNamespaceCollapser;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlTextNode
-+---------------------------------------------------------------------*/
-class NPT_XmlTextNode : public NPT_XmlNode
-{
- public:
-    // types
-    typedef enum {
-        CHARACTER_DATA,
-        IGNORABLE_WHITESPACE,
-        CDATA_SECTION,
-        ENTITY_REFERENCE,
-        COMMENT
-    } TokenType;
-
-    // constructor
-    NPT_XmlTextNode(TokenType token_type, const char* text);
-
-    // methods
-    const NPT_String& GetString() const { return m_Text; }
-
-    // type casting
-    NPT_XmlTextNode*       AsTextNode()       { return this; }
-    const NPT_XmlTextNode* AsTextNode() const { return this; }
-
- private:
-    // members  
-//    TokenType  m_TokenType;
-    NPT_String m_Text;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlParser
-+---------------------------------------------------------------------*/
-class NPT_XmlParser
-{
- public:
-    // methods
-             NPT_XmlParser(bool keep_whitespace = true);
-    virtual ~NPT_XmlParser();
-    virtual  NPT_Result Parse(const char*   xml, 
-                              NPT_XmlNode*& tree,
-                              bool          incremental=false);
-    virtual  NPT_Result Parse(const char*   xml, 
-                              NPT_Size      size,
-                              NPT_XmlNode*& tree,
-                              bool          incremental=false);
-    virtual  NPT_Result Parse(NPT_InputStream& stream, 
-                              NPT_XmlNode*&    tree,
-                              bool             incremental=false);
-    virtual  NPT_Result Parse(NPT_InputStream& stream, 
-                              NPT_Size&        size,
-                              NPT_XmlNode*&    tree,
-                              bool             incremental=false);
-    
- protected:
-    // NPT_XmlHandler methods
-    NPT_Result OnStartElement(const char* name);
-    NPT_Result OnElementAttribute(const char* name, const char* value);
-    NPT_Result OnEndElement(const char* name);
-    NPT_Result OnCharacterData(const char* data, NPT_Size size);
-    void       RemoveIgnorableWhitespace();
-
-    // members
-    NPT_XmlProcessor*   m_Processor;
-    NPT_XmlElementNode* m_Root;
-    NPT_XmlElementNode* m_CurrentElement;
-    bool                m_KeepWhitespace;
-
-private:
-    void Reset();
-    
-    // friends
-    friend class NPT_XmlProcessor;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlSerializer
-+---------------------------------------------------------------------*/
-class NPT_XmlSerializer
-{
-public:
-    // methods
-                       NPT_XmlSerializer(NPT_OutputStream* output,
-                                         NPT_Cardinal      indentation = 0,
-                                         bool              shrink_empty_elements = true,
-                                         bool              add_xml_decl = false);
-    virtual           ~NPT_XmlSerializer();
-    virtual NPT_Result StartDocument();
-    virtual NPT_Result EndDocument();
-    virtual NPT_Result StartElement(const char* prefix, const char* name);
-    virtual NPT_Result EndElement(const char* prefix, const char* name);
-    virtual NPT_Result Attribute(const char* prefix, const char* name, const char* value);
-    virtual NPT_Result Text(const char* text);
-    virtual NPT_Result CdataSection(const char* data);
-    virtual NPT_Result Comment(const char* comment);
-
-protected:
-    // methods
-    void       EscapeChar(unsigned char c, char* text);
-    NPT_Result ProcessPending();
-    NPT_Result OutputEscapedString(const char* text, bool attribute);
-    void       OutputIndentation(bool start);
-
-    // members
-    NPT_OutputStream* m_Output;
-    bool              m_ElementPending;
-    NPT_Cardinal      m_Depth;
-    NPT_Cardinal      m_Indentation;
-    NPT_String        m_IndentationPrefix;
-    bool              m_ElementHasText;
-    bool              m_ShrinkEmptyElements;
-    bool              m_AddXmlDecl;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlWriter
-+---------------------------------------------------------------------*/
-class NPT_XmlWriter
-{
-public:
-    // constructor
-    explicit NPT_XmlWriter(NPT_Cardinal indentation = 0) : m_Indentation(indentation) {}
-
-    // methods
-    NPT_Result Serialize(NPT_XmlNode&      node, 
-                         NPT_OutputStream& stream, 
-                         bool              add_xml_decl = false);
-
-private:
-    // members
-    NPT_Cardinal m_Indentation;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_XmlCanonicalizer
-+---------------------------------------------------------------------*/
-class NPT_XmlCanonicalizer
-{
-public:
-    // methods
-    NPT_Result Serialize(NPT_XmlNode&      node, 
-                         NPT_OutputStream& stream, 
-                         bool              add_xml_decl = false);
-};
-
-#endif // _NPT_XML_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptZip.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptZip.h
deleted file mode 100644
index 3720451..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/NptZip.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/*****************************************************************
-|
-|   Neptune - Zip Support
-|
-| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
-| 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 Axiomatic Systems 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 AXIOMATIC SYSTEMS ''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 AXIOMATIC SYSTEMS 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.
-|
- ****************************************************************/
-
-#ifndef _NPT_ZIP_H_
-#define _NPT_ZIP_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptConfig.h"
-#include "NptStreams.h"
-#include "NptArray.h"
-#include "NptFile.h"
-
-/*----------------------------------------------------------------------
-|   class references
-+---------------------------------------------------------------------*/
-class NPT_ZipInflateState;
-class NPT_ZipDeflateState;
-
-/*----------------------------------------------------------------------
-|   NPT_ZipFile
-+---------------------------------------------------------------------*/
-const unsigned int NPT_ZIP_FILE_FLAG_ENCRYPTED = 0x01;
-const unsigned int NPT_ZIP_FILE_COMPRESSION_METHOD_NONE    = 0x00;
-const unsigned int NPT_ZIP_FILE_COMPRESSION_METHOD_DEFLATE = 0x08;
-
-class NPT_ZipFile
-{
-public:
-    // types
-    class Entry {
-    public:
-        Entry(const unsigned char* data);
-        NPT_String    m_Name;
-        NPT_UInt16    m_Flags;
-        NPT_UInt16    m_CompressionMethod;
-        NPT_UInt32    m_Crc32;
-        NPT_LargeSize m_CompressedSize;
-        NPT_LargeSize m_UncompressedSize;
-        NPT_UInt16    m_DiskNumber;
-        NPT_UInt16    m_InternalFileAttributes;
-        NPT_UInt32    m_ExternalFileAttributes;
-        NPT_Position  m_RelativeOffset;
-        NPT_UInt32    m_DirectoryEntrySize;
-    };
-    
-    // class methods
-    static NPT_Result Parse(NPT_InputStream& stream, NPT_ZipFile*& file);
-    static NPT_Result GetInputStream(Entry& entry, NPT_InputStreamReference& zip_stream, NPT_InputStream*& file_stream);
-    
-    // accessors
-    NPT_Array<Entry>& GetEntries() { return m_Entries; }
-    
-private:
-    // constructor
-    NPT_ZipFile();
-    
-    // members
-    NPT_Array<Entry> m_Entries;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_Zip
-+---------------------------------------------------------------------*/
-const int NPT_ZIP_COMPRESSION_LEVEL_DEFAULT = -1;
-const int NPT_ZIP_COMPRESSION_LEVEL_MIN     = 0;
-const int NPT_ZIP_COMPRESSION_LEVEL_MAX     = 9;
-const int NPT_ZIP_COMPRESSION_LEVEL_NONE    = 0;
-class NPT_Zip 
-{
-public:
-    // class methods
-    static NPT_Result MapError(int err);
-
-    /** 
-     * Compressed data format
-     */
-    typedef enum {
-        ZLIB,
-        GZIP
-    } Format;
-        
-    /**
-     * Deflate (i.e compress) a buffer
-     */
-    static NPT_Result Deflate(const NPT_DataBuffer& in,
-                              NPT_DataBuffer&       out,
-                              int                   compression_level = NPT_ZIP_COMPRESSION_LEVEL_DEFAULT,
-                              Format                format = ZLIB);
-                              
-    /**
-     * Inflate (i.e decompress) a buffer
-     */
-    static NPT_Result Inflate(const NPT_DataBuffer& in,
-                              NPT_DataBuffer&       out,
-                              bool                  raw = false);
-    
-    /**
-     * Deflate (i.e compress) a file
-     */
-    static NPT_Result Deflate(NPT_File& in,
-                              NPT_File& out,
-                              int       compression_level = NPT_ZIP_COMPRESSION_LEVEL_DEFAULT,
-                              Format    format = GZIP);
-    
-};
-
-/*----------------------------------------------------------------------
-|   NPT_ZipInflatingInputStream
-+---------------------------------------------------------------------*/
-class NPT_ZipInflatingInputStream : public NPT_InputStream 
-{
-public:
-    NPT_ZipInflatingInputStream(NPT_InputStreamReference& source, bool raw = false);
-   ~NPT_ZipInflatingInputStream();
-   
-    // NPT_InputStream methods
-    virtual NPT_Result Read(void*     buffer, 
-                            NPT_Size  bytes_to_read, 
-                            NPT_Size* bytes_read = NULL);
-    virtual NPT_Result Seek(NPT_Position offset);
-    virtual NPT_Result Tell(NPT_Position& offset);
-    virtual NPT_Result GetSize(NPT_LargeSize& size);
-    virtual NPT_Result GetAvailable(NPT_LargeSize& available);
-
-private:
-    NPT_InputStreamReference m_Source;
-    NPT_Position             m_Position;
-    NPT_ZipInflateState*     m_State;
-    NPT_DataBuffer           m_Buffer;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_ZipInflatingOutputStream
-+---------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------
-|   NPT_ZipDeflatingInputStream
-+---------------------------------------------------------------------*/
-class NPT_ZipDeflatingInputStream : public NPT_InputStream 
-{
-public:
-    NPT_ZipDeflatingInputStream(NPT_InputStreamReference& source,
-                                int                       compression_level = NPT_ZIP_COMPRESSION_LEVEL_DEFAULT,
-                                NPT_Zip::Format           format = NPT_Zip::ZLIB);
-   ~NPT_ZipDeflatingInputStream();
-   
-    // NPT_InputStream methods
-    virtual NPT_Result Read(void*     buffer, 
-                            NPT_Size  bytes_to_read, 
-                            NPT_Size* bytes_read = NULL);
-    virtual NPT_Result Seek(NPT_Position offset);
-    virtual NPT_Result Tell(NPT_Position& offset);
-    virtual NPT_Result GetSize(NPT_LargeSize& size);
-    virtual NPT_Result GetAvailable(NPT_LargeSize& available);
-
-private:
-    NPT_InputStreamReference m_Source;
-    NPT_Position             m_Position;
-    bool                     m_Eos;
-    NPT_ZipDeflateState*     m_State;
-    NPT_DataBuffer           m_Buffer;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_ZipDeflatingOutputStream
-+---------------------------------------------------------------------*/
-/*class NPT_ZipDeflatingOutputStream : public NPT_OutputStream 
-{
-public:
-    NPT_ZipDeflatingOutputStream(NPT_OutputStreamReference& source,
-                                 int                        compression_level = NPT_ZIP_COMPRESSION_LEVEL_DEFAULT,
-                                 NPT_Zip::Format            format = NPT_Zip::ZLIB);
-   NPT_ZipDeflatingOutputStream();
-   
-    // NPT_OutputStream methods
-    virtual NPT_Result Write(void*     buffer, 
-                             NPT_Size  bytes_to_write, 
-                             NPT_Size* bytes_written = NULL);
-    virtual NPT_Result Seek(NPT_Position offset);
-    virtual NPT_Result Tell(NPT_Position& offset);
-
-private:
-    NPT_OutputStreamReference m_Output;
-    NPT_Position              m_Position;
-    bool                      m_Eos;
-    NPT_ZipDeflateState*      m_State;
-    NPT_DataBuffer            m_Buffer;
-}; */
-
-#endif // _NPT_ZIP_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/Platinum.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/Platinum.h
deleted file mode 100644
index a7f47a6..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/Platinum.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Top Level Include
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-| 
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
- ****************************************************************/
-/** @file
- Master Header file included by Platinum client applications.
- 
- Client Applications should only need to include this file, as it 
- includes all the more specific include files required to use the API
- */
-
-/** 
- at mainpage Platinum UPnP SDK
-
- at section intro Introduction
-
-The Platinum SDK contains all the software components necessary to 
-build and use the Platinum UPnP Framework. This includes
-the Platinum framework and the Neptune C++ runtime
-library.
-
- at section architecture Architecture
-
-The Platinum framework consists of a core framework that implements the UPnP
-core specifications including GENA, SOAP and SSDP. Building on top of that, the 
-Platinum framework provides the foundation for UPnP AV Media Server and 
-Media Renderer compliant implementations.
- 
-The Platinum framework leverages the Neptune C++ runtime library which offers an 
-elegant platform abstraction layer for multithreading, file system and 
-network operations. Additionally, it provides support for XML parsing, string and time
-manipulation, template based linked-lists, stacks and arrays, and a configurable 
-cross-platform logging system.
- 
-*/
-
-#ifndef _PLATINUM_H_
-#define _PLATINUM_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "PltUPnP.h"
-#include "PltCtrlPoint.h"
-#include "PltDeviceData.h"
-#include "PltHttpServer.h"
-#include "PltVersion.h"
-
-#include "PltMimeType.h"
-#include "PltProtocolInfo.h"
-#include "PltAction.h"
-#include "PltArgument.h"
-#include "PltConstants.h"
-#include "PltCtrlPointTask.h"
-#include "PltDatagramStream.h"
-#include "PltDeviceHost.h"
-#include "PltEvent.h"
-#include "PltHttp.h"
-#include "PltHttpClientTask.h"
-#include "PltHttpServer.h"
-#include "PltHttpServerTask.h"
-#include "PltService.h"
-#include "PltSsdp.h"
-#include "PltStateVariable.h"
-#include "PltTaskManager.h"
-#include "PltThreadTask.h"
-#include "PltUtilities.h"
-
-#include "PltMediaServer.h"
-#include "PltMediaBrowser.h"
-#include "PltMediaRenderer.h"
-#include "PltMediaController.h"
-#include "PltDidl.h"
-#include "PltFileMediaServer.h"
-#include "PltMediaCache.h"
-#include "PltMediaItem.h"
-#include "PltSyncMediaBrowser.h"
-
-#include "PltXbox360.h"
-#include "PltMediaConnect.h"
-
-#include "PltDownloader.h"
-#include "PltStreamPump.h"
-#include "PltFrameBuffer.h"
-#include "PltFrameServer.h"
-#include "PltFrameStream.h"
-#include "PltRingBufferStream.h"
-
-#endif /* _PLATINUM_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltAction.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltAction.h
deleted file mode 100644
index f457f3d..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltAction.h
+++ /dev/null
@@ -1,321 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Service Action
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
-   UPnP Service Action
- */
-
-#ifndef _PLT_ACTION_H_
-#define _PLT_ACTION_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltArgument.h"
-#include "PltDeviceData.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_Service;
-
-/*----------------------------------------------------------------------
-|   PLT_ActionDesc
-+---------------------------------------------------------------------*/
-/**
- The PLT_ActionDesc class provides information about a UPnP Service given action.
- This description has a name, a set of arguments and is associated to a service.
- */
-class PLT_ActionDesc
-{
-public:
-    /**
-     Constructor
-     @param name the action name
-     @param service the UPnP service the action is associated with
-     */
-    PLT_ActionDesc(const char* name, PLT_Service* service);
-   ~PLT_ActionDesc();
-
-    /**
-     Return an array of arguments
-     @return array of arguments
-     */
-    NPT_Array<PLT_ArgumentDesc*>& GetArgumentDescs() { 
-        return m_ArgumentDescs; 
-    }
-
-    /**
-     Return the action name.
-     @return action name.
-     */
-    const NPT_String& GetName() const { return m_Name;}
-    
-    /**
-     Look for an argument given a name.
-     @param name argument name
-     @return PLT_ArgumentDesc pointer
-     */
-    PLT_ArgumentDesc* GetArgumentDesc(const char* name);
-    
-    /**
-     Serialize action information to xml into an existing xml tree
-     @param node the xml Element to serialize action information
-     */
-    NPT_Result        GetSCPDXML(NPT_XmlElementNode* node);
-    
-    /**
-     Return the service the action is associated with
-     */
-    PLT_Service*      GetService();
-
-protected:
-    //members
-    NPT_String                   m_Name;
-    PLT_Service*                 m_Service;
-    NPT_Array<PLT_ArgumentDesc*> m_ArgumentDescs;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_Action
-+---------------------------------------------------------------------*/
-/** 
- The PLT_Action class provides a mechanism to call or verify the validity of a
- specific UPNP service action.
- Given a service, a UPnP Control Point would use this class to serialize a soap
- request. On the other side, a UPnP Device would use this class to verify
- a soap request and the validity of the action arguments.
- */
-class PLT_Action
-{
-public:
-    /**
-     Constructor
-     @param action_desc the action description
-     If you intend to send an action, you need to use the second constructor
-     and pass the root device of the device you wish to control.
-     */
-    PLT_Action(PLT_ActionDesc& action_desc);
-    
-    /**
-     Constructor
-     @param action_desc the action description
-     @param root_device a reference to the root device of the service the action
-     is associated with. This insures that the device won't be deleted if it goes 
-     away while we're waiting for a response for this action. This is important because
-     we only keep a reference to the PLT_ActionDesc which is own by the service operated
-     by the device (or embedded device).
-     */
-    PLT_Action(PLT_ActionDesc& action_desc, PLT_DeviceDataReference& root_device);
-    ~PLT_Action();
-
-    /**
-     Return the action description
-     @return the action description
-     */
-    PLT_ActionDesc& GetActionDesc() { return m_ActionDesc; }
-    
-    /**
-     Retrieve the string value of an argument given an argument name.
-     @param name the argument name
-     @param value the string value to retrieve
-     @return error if the argument is not found or if the type does not correspond.
-     */
-    NPT_Result GetArgumentValue(const char* name, NPT_String& value);
-    
-    /**
-     Retrieve the value of an argument given an argument name.
-     @param name the argument name
-     @param value the unsigned int value to retrieve
-     @return error if the argument is not found or if the type does not correspond.
-     */
-    NPT_Result GetArgumentValue(const char* name, NPT_UInt32& value);
-    
-    /**
-     Retrieve the value of an argument given an argument name.
-     @param name the argument name
-     @param value the int value to retrieve
-     @return error if the argument is not found or if the type does not correspond.
-     */
-    NPT_Result GetArgumentValue(const char* name, NPT_Int32& value);
-    
-    /**
-     Retrieve the value of an argument given an argument name.
-     @param name the argument name
-     @param value the bool value to retrieve
-     @return error if the argument is not found or if the type does not correspond.
-     */
-	NPT_Result GetArgumentValue(const char* name, bool& value);
-    
-    /**
-     Verify a value is valid for a given argument.
-     @param name the argument name
-     @param value the value to verify
-     */
-    NPT_Result VerifyArgumentValue(const char* name, const char* value);
-    
-    /**
-     Verify that all required arguments are set.
-     @param input boolean indicating whether input or output parameters 
-     should be verified
-     */
-    NPT_Result VerifyArguments(bool input);
-    
-    /**
-     Set the output argument value from the associated current state variable value.
-     @param name the state variable name
-     */
-    NPT_Result SetArgumentOutFromStateVariable(const char* name);
-    
-    /**
-     Set all the output argument values associated with state variables.
-     */
-    NPT_Result SetArgumentsOutFromStateVariable();
-    
-    /**
-     Set an argument value
-     @param name the argument name
-     @param value the argument value
-     */
-    NPT_Result SetArgumentValue(const char* name, const char* value);
-
-    /** 
-     Set the error code and description in case of failure.
-     @param code the code for the error
-     @param description a short description
-     */
-    NPT_Result SetError(unsigned int code, const char* description);
-    
-    /**
-     Return the error description and code for the failed action.
-     @param code optional pointer to receive the code
-     @return the error short description
-     */
-    const char* GetError(unsigned int* code = NULL);
-    
-    /**
-     Return the error code for the failed action.
-     @return the error code.
-     */
-    unsigned int GetErrorCode();
-    
-    /**
-     Called by a control point when serializing an action.
-     @param stream the stream to serialize the action to
-     */
-    NPT_Result    FormatSoapRequest(NPT_OutputStream& stream);
-    
-    /**
-     Called by a device when serializing a response to an action.
-     @param stream the stream to serialize the action to
-     */
-    NPT_Result    FormatSoapResponse(NPT_OutputStream& stream);
-
-    /**
-     Helper method for a device to serialize an action invocation error.
-     @param code optional pointer to receive the code
-     @param desc the error short description
-     @param stream the stream to serialize to
-     */
-    static NPT_Result FormatSoapError(unsigned int      code, 
-                                      NPT_String        desc, 
-                                      NPT_OutputStream& stream);
-
-private:
-    // methods
-    NPT_Result    SetArgumentOutFromStateVariable(PLT_ArgumentDesc* arg_desc);
-    PLT_Argument* GetArgument(const char* name);
-
-protected:
-    // members
-    PLT_ActionDesc&         m_ActionDesc;
-    PLT_Arguments           m_Arguments;
-    unsigned int            m_ErrorCode;
-    NPT_String              m_ErrorDescription;
-    
-    // keep reference of service root device to prevent it 
-    // from being released during action lifetime
-	PLT_DeviceDataReference m_RootDevice;
-};
-
-typedef NPT_Reference<PLT_Action> PLT_ActionReference;
-
-/*----------------------------------------------------------------------
-|   PLT_GetSCPDXMLIterator
-+---------------------------------------------------------------------*/
-/**
- The PLT_GetSCPDXMLIterator class provides a recursive way to serialize 
- an SCPD into an xml tree.
- */
-template <class T>
-class PLT_GetSCPDXMLIterator
-{
-public:
-    PLT_GetSCPDXMLIterator<T>(NPT_XmlElementNode* node) :
-        m_Node(node) {}
-      
-    NPT_Result operator()(T* const & data) const {
-        return data->GetSCPDXML(m_Node);
-    }
-
-private:
-    NPT_XmlElementNode* m_Node;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_ActionDescNameFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ActionDescNameFinder class provides a mechanism to find a PLT_ActionDesc 
- given an action name.
- */
-class PLT_ActionDescNameFinder
-{
-public:
-    // methods
-    PLT_ActionDescNameFinder(const char* name) : 
-        m_Name(name) {}
-    virtual ~PLT_ActionDescNameFinder() {}
-
-    bool operator()(const PLT_ActionDesc* const & action_desc) const {
-        return action_desc->GetName().Compare(m_Name, true) ? false : true;
-    }
-
-private:
-    // members
-    NPT_String   m_Name;
-};
-
-#endif /* _PLT_ACTION_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltArgument.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltArgument.h
deleted file mode 100644
index 4730e28..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltArgument.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Action Argument
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP Service Action Argument
- */
-
-#ifndef _PLT_ARGUMENT_H_
-#define _PLT_ARGUMENT_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_StateVariable;
-class PLT_Argument;
-class PLT_ActionDesc;
-typedef NPT_Array<PLT_Argument*> PLT_Arguments;
-
-/*----------------------------------------------------------------------
-|   PLT_ArgumentDesc
-+---------------------------------------------------------------------*/
-/**
- The PLT_ArgumentDesc class provides information about a given argument of a 
- UPnP Service given action.
- It has a name, a position, a direction (in/out), a PLT_StateVariable state 
- variable association and whether it is the return value of the action or not.
- */
-class PLT_ArgumentDesc
-{
-public:
-    PLT_ArgumentDesc(const char*        name,
-                     NPT_Ordinal        position,
-                     const char*        direction = "in",
-                     PLT_StateVariable* variable = NULL, 
-                     bool               has_ret = false);
-
-    // accessor methods
-    NPT_Result         GetSCPDXML(NPT_XmlElementNode* node);
-    const NPT_String&  GetName() const { return m_Name; }
-    const NPT_String&  GetDirection() const { return m_Direction; }
-    NPT_Ordinal        GetPosition() { return m_Position; }
-    PLT_StateVariable* GetRelatedStateVariable() { return m_RelatedStateVariable; }
-    bool               HasReturnValue() { return m_HasReturnValue; }
-
-protected:
-    NPT_String         m_Name;
-    NPT_Ordinal        m_Position;
-    NPT_String         m_Direction;
-    PLT_StateVariable* m_RelatedStateVariable;
-    bool               m_HasReturnValue;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_Argument
-+---------------------------------------------------------------------*/
-/** 
- The PLT_Argument class provides a mechanism to set or verify the validity of a
- specific UPNP service action argument.
- Typically, only a PLT_Action uses this class. Since an argument can be
- associated to a state variable, the argument is automatically updated when
- the associated state variable is changed 
- */
-class PLT_Argument
-{
-public:
-    PLT_Argument(PLT_ArgumentDesc& arg_desc);
-
-    // class methods
-    static NPT_Result CreateArgument(PLT_ActionDesc& action_desc, 
-                                     const char*     arg_name, 
-                                     const char*     arg_value,
-                                     PLT_Argument*&  arg);
-
-    // accessor methods
-    PLT_ArgumentDesc&  GetDesc() { return m_ArgDesc; }
-    NPT_Ordinal        GetPosition() { return m_ArgDesc.GetPosition(); }
-    NPT_Result         SetValue(const char* value);
-    const NPT_String&  GetValue();
-
-private:
-    NPT_Result         ValidateValue(const char* value);
-    
-protected:
-    PLT_ArgumentDesc&  m_ArgDesc;
-    NPT_String         m_Value;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_ArgumentNameFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ArgumentNameFinder class provides a mechanism to find a PLT_Argument given
- an argument name.
- */
-class PLT_ArgumentNameFinder
-{
-public:
-    // methods
-    PLT_ArgumentNameFinder(const char* name) : m_Name(name) {}
-
-    bool operator()(PLT_Argument* const & argument) const {
-        return argument->GetDesc().GetName().Compare(m_Name, true) ? false : true;
-    }
-
-private:
-    // members
-    NPT_String m_Name;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_ArgumentDescNameFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ArgumentDescNameFinder class provides a mechanism to find a PLT_ArgumentDesc given
- an argument name.
- */
-class PLT_ArgumentDescNameFinder
-{
-public:
-    // methods
-    PLT_ArgumentDescNameFinder(const char* name) : m_Name(name) {}
-
-    bool operator()(PLT_ArgumentDesc* const & arg_desc) const {
-        return arg_desc->GetName().Compare(m_Name, true) ? false : true;
-    }
-
-private:
-    // members
-    NPT_String m_Name;
-};
-
-#endif /* _PLT_ARGUMENT_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltConstants.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltConstants.h
deleted file mode 100644
index d674ea8..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltConstants.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - UPnP Constants
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP Constants
- */
-
-#ifndef _PLT_UPNP_CONSTANTS_H_
-#define _PLT_UPNP_CONSTANTS_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   PLT_Constants
-+---------------------------------------------------------------------*/
-/**
- The PLT_Constants class provides a way to globally set or get certain 
- UPnP constants.
- */
-class PLT_Constants
-{
-public:
-    // class methods
-    static PLT_Constants& GetInstance();
-    
-    PLT_Constants();
-    ~PLT_Constants() {};
-    
-    void SetDefaultDeviceLease(NPT_TimeInterval lease) { m_DefaultDeviceLease = new NPT_TimeInterval(lease); }
-    NPT_Reference<NPT_TimeInterval> GetDefaultDeviceLease() { return m_DefaultDeviceLease; }
-  
-    void SetDefaultSubscribeLease(NPT_TimeInterval lease) { m_DefaultSubscribeLease = new NPT_TimeInterval(lease); }
-    NPT_Reference<NPT_TimeInterval> GetDefaultSubscribeLease() { return m_DefaultSubscribeLease; }
-    
-    void SetDefaultUserAgent(const char* agent) { m_DefaultUserAgent = new NPT_String(agent); }
-    NPT_Reference<NPT_String> GetDefaultUserAgent() { return m_DefaultUserAgent; }
-    
-    void SetSearchMulticastTimeToLive(NPT_UInt32 ttl) { m_SearchMulticastTimeToLive = ttl; }
-    NPT_UInt32 GetSearchMulticastTimeToLive() { return m_SearchMulticastTimeToLive; }
-
-    void SetAnnounceMulticastTimeToLive(NPT_UInt32 ttl) { m_AnnounceMulticastTimeToLive = ttl; }
-    NPT_UInt32 GetAnnounceMulticastTimeToLive() { return m_AnnounceMulticastTimeToLive; }
-
-private:
-    // members
-    NPT_Reference<NPT_TimeInterval> m_DefaultDeviceLease;
-    NPT_Reference<NPT_TimeInterval> m_DefaultSubscribeLease;
-    NPT_Reference<NPT_String>       m_DefaultUserAgent;
-    NPT_UInt32                      m_SearchMulticastTimeToLive;
-    NPT_UInt32                      m_AnnounceMulticastTimeToLive;
-};
-
-#endif /* _PLT_UPNP_CONSTANTS_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltCtrlPoint.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltCtrlPoint.h
deleted file mode 100644
index 65baa7b..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltCtrlPoint.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Control Point
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP ControlPoint
- */
-
-#ifndef _PLT_CONTROL_POINT_H_
-#define _PLT_CONTROL_POINT_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltService.h"
-#include "PltSsdp.h"
-#include "PltDeviceData.h"
-#include "PltHttpServer.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_CtrlPointHouseKeepingTask;
-class PLT_SsdpSearchTask;
-class PLT_SsdpListenTask;
-class PLT_CtrlPointGetSCPDsTask;
-class PLT_CtrlPointGetSCPDRequest;
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPointListener class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPointListener class is an interface used to receive notifications when
- devices are found or removed from the network, actions responses and events
- are being received.
- */
-class PLT_CtrlPointListener
-{
-public:
-    virtual ~PLT_CtrlPointListener() {}
-
-    virtual NPT_Result OnDeviceAdded(PLT_DeviceDataReference& device) = 0;
-    virtual NPT_Result OnDeviceRemoved(PLT_DeviceDataReference& device) = 0;
-    virtual NPT_Result OnActionResponse(NPT_Result res, PLT_ActionReference& action, void* userdata) = 0;
-    virtual NPT_Result OnEventNotify(PLT_Service* service, NPT_List<PLT_StateVariable*>* vars) = 0;
-};
-
-typedef NPT_List<PLT_CtrlPointListener*> PLT_CtrlPointListenerList;
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPoint class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPoint class implements the base functionality of a UPnP ControlPoint.
- It searches and inpects devices, invoke actions on services and subscribes to 
- events. 
- */
-class PLT_CtrlPoint : public PLT_SsdpPacketListener,
-                      public PLT_SsdpSearchResponseListener,
-                      public NPT_HttpRequestHandler
-{
-public:
-    PLT_CtrlPoint(const char* search_criteria = "upnp:rootdevice"); // pass NULL to prevent repeated automatic search
-    virtual ~PLT_CtrlPoint();
-    
-    /**
-     Returns the port used by the internal HTTP server for all incoming event notifications.
-     @return port
-     */
-    virtual NPT_Result GetPort(NPT_UInt16& port);
-    
-    // delegation
-    virtual NPT_Result AddListener(PLT_CtrlPointListener* listener);
-    virtual NPT_Result RemoveListener(PLT_CtrlPointListener* listener);
-
-    // discovery
-    virtual void IgnoreUUID(const char* uuid);
-    virtual NPT_Result Search(const NPT_HttpUrl& url = NPT_HttpUrl("239.255.255.250", 1900, "*"), 
-                              const char*        target = "upnp:rootdevice", 
-                              NPT_Cardinal       mx = 5,
-                              NPT_TimeInterval   frequency = NPT_TimeInterval(50.), // pass NPT_TimeInterval(0.) for one time only
-                              NPT_TimeInterval   initial_delay = NPT_TimeInterval(0.));
-    virtual NPT_Result Discover(const NPT_HttpUrl& url = NPT_HttpUrl("239.255.255.250", 1900, "*"),
-                                const char*        target = "ssdp:all", 
-                                NPT_Cardinal       mx = 5,
-                                NPT_TimeInterval   frequency = NPT_TimeInterval(50.), // pass NPT_TimeInterval(0.) for one time only
-                                NPT_TimeInterval   initial_delay = NPT_TimeInterval(0.));
-    virtual NPT_Result InspectDevice(const NPT_HttpUrl& location,
-                                     const char*        uuid,
-                                     NPT_TimeInterval   leasetime = *PLT_Constants::GetInstance().GetDefaultDeviceLease());
-
-    // actions
-    virtual NPT_Result FindActionDesc(PLT_DeviceDataReference& device, 
-                                  const char*              service_type,
-                                  const char*              action_name,
-                                  PLT_ActionDesc*&         action_desc);
-    virtual NPT_Result CreateAction(PLT_DeviceDataReference& device,
-                                const char*              service_type,
-                                const char*              action_name,
-                                PLT_ActionReference&     action);
-    virtual NPT_Result InvokeAction(PLT_ActionReference& action,
-                                    void*                userdata = NULL);
-
-    // events
-    virtual NPT_Result Subscribe(PLT_Service* service, 
-                                 bool         cancel = false, 
-                                 void*        userdata = NULL);
-
-    // NPT_HttpRequestHandler methods
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request,
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response);
-
-    // PLT_SsdpSearchResponseListener methods
-    virtual NPT_Result ProcessSsdpSearchResponse(NPT_Result                    res, 
-                                                 const NPT_HttpRequestContext& context,
-                                                 NPT_HttpResponse*             response);
-    // PLT_SsdpPacketListener method
-    virtual NPT_Result OnSsdpPacket(const NPT_HttpRequest&        request, 
-                                    const NPT_HttpRequestContext& context);
-
-protected:
-
-    // State Variable Handling
-    virtual NPT_Result DecomposeLastChangeVar(NPT_List<PLT_StateVariable*>& vars);
-
-    // methods
-    virtual NPT_Result Start(PLT_SsdpListenTask* task);
-    virtual NPT_Result Stop(PLT_SsdpListenTask* task);
-
-    // SSDP & HTTP Notifications handling
-    virtual NPT_Result ProcessSsdpNotify(const NPT_HttpRequest&        request,
-                                         const NPT_HttpRequestContext& context);
-    virtual NPT_Result ProcessSsdpMessage(const NPT_HttpMessage&        message,
-                                          const NPT_HttpRequestContext& context,  
-                                          NPT_String&                   uuid);
-    virtual NPT_Result ProcessGetDescriptionResponse(NPT_Result                    res,
-                                                     const NPT_HttpRequest&        request, 
-                                                     const NPT_HttpRequestContext& context,
-                                                     NPT_HttpResponse*             response,
-                                                     NPT_TimeInterval              leasetime,
-                                                     NPT_String                    uuid);
-    virtual NPT_Result ProcessGetSCPDResponse(NPT_Result                    res,
-                                              const NPT_HttpRequest&        request,
-                                              const NPT_HttpRequestContext& context,
-                                              NPT_HttpResponse*             response,
-                                              PLT_DeviceDataReference&      device);
-    virtual NPT_Result ProcessActionResponse(NPT_Result                    res,
-                                             const NPT_HttpRequest&        request,
-                                             const NPT_HttpRequestContext& context,
-                                             NPT_HttpResponse*             response,
-                                             PLT_ActionReference&          action,
-                                             void*                         userdata);
-    virtual NPT_Result ProcessSubscribeResponse(NPT_Result                    res,
-                                                const NPT_HttpRequest&        request, 
-                                                const NPT_HttpRequestContext& context, 
-                                                NPT_HttpResponse*             response,
-                                                PLT_Service*                  service,
-                                                void*                         userdata);
-    virtual NPT_Result ProcessHttpNotify(const NPT_HttpRequest&        request,
-                                         const NPT_HttpRequestContext& context,
-                                         NPT_HttpResponse&             response);
-
-    // Device management
-    virtual NPT_Result AddDevice(PLT_DeviceDataReference& data);
-    virtual NPT_Result RemoveDevice(PLT_DeviceDataReference& data);
-    
-private:
-    // methods
-    PLT_ThreadTask* RenewSubscriber(PLT_EventSubscriberReference subscriber);
-    
-    NPT_Result AddPendingEventNotification(PLT_EventNotification *notification);
-    NPT_Result ProcessPendingEventNotifications();
-    NPT_Result ProcessEventNotification(PLT_EventSubscriberReference subscriber,
-                                        PLT_EventNotification*       notification,
-                                        NPT_List<PLT_StateVariable*> &vars);
-    
-    NPT_Result DoHouseKeeping();
-    NPT_Result FetchDeviceSCPDs(PLT_CtrlPointGetSCPDsTask* task,
-                                PLT_DeviceDataReference&   device, 
-                                NPT_Cardinal               level);
-
-    // Device management
-    NPT_Result FindDevice(const char* uuid, PLT_DeviceDataReference& device, bool return_root = false);
-    NPT_Result NotifyDeviceReady(PLT_DeviceDataReference& data);
-    NPT_Result NotifyDeviceRemoved(PLT_DeviceDataReference& data);
-    NPT_Result CleanupDevice(PLT_DeviceDataReference& data);
-    
-    NPT_Result ParseFault(PLT_ActionReference& action, NPT_XmlElementNode* fault);
-    PLT_SsdpSearchTask* CreateSearchTask(const NPT_HttpUrl&   url, 
-                                         const char*          target, 
-                                         NPT_Cardinal         mx, 
-                                         NPT_TimeInterval     frequency,
-                                         const NPT_IpAddress& address);
-    
-private:
-    friend class NPT_Reference<PLT_CtrlPoint>;
-    friend class PLT_UPnP;
-    friend class PLT_UPnP_CtrlPointStartIterator;
-    friend class PLT_UPnP_CtrlPointStopIterator;
-    friend class PLT_EventSubscriberRemoverIterator;
-    friend class PLT_CtrlPointGetDescriptionTask;
-    friend class PLT_CtrlPointGetSCPDsTask;
-    friend class PLT_CtrlPointInvokeActionTask;
-    friend class PLT_CtrlPointHouseKeepingTask;
-    friend class PLT_CtrlPointSubscribeEventTask;
-
-    NPT_List<NPT_String>                         m_UUIDsToIgnore;
-    PLT_CtrlPointListenerList                    m_ListenerList;
-    PLT_HttpServerReference                      m_EventHttpServer;
-    PLT_TaskManagerReference                     m_TaskManager;
-    NPT_Mutex                                    m_Lock;
-    NPT_List<PLT_DeviceDataReference>            m_RootDevices;
-    NPT_List<PLT_EventSubscriberReference>       m_Subscribers;
-    NPT_String                                   m_SearchCriteria;
-    bool                                         m_Started;
-    NPT_List<PLT_EventNotification *>            m_PendingNotifications;
-    NPT_List<NPT_String>                         m_PendingInspections;
-};
-
-typedef NPT_Reference<PLT_CtrlPoint> PLT_CtrlPointReference;
-
-#endif /* _PLT_CONTROL_POINT_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltCtrlPointTask.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltCtrlPointTask.h
deleted file mode 100644
index 48e2044..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltCtrlPointTask.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Control Point Tasks
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP ControlPoint Tasks
- */
-
-#ifndef _PLT_CONTROL_POINT_TASK_H_
-#define _PLT_CONTROL_POINT_TASK_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttpClientTask.h"
-#include "PltDatagramStream.h"
-#include "PltDeviceData.h"
-#include "PltCtrlPoint.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_Action;
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPointGetDescriptionTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPointGetDescriptionTask class fetches the description xml document
- from a UPnP device
- */
-class PLT_CtrlPointGetDescriptionTask : public PLT_HttpClientSocketTask
-{
-public:
-    PLT_CtrlPointGetDescriptionTask(const NPT_HttpUrl& url,
-                                    PLT_CtrlPoint*     ctrl_point,
-                                    NPT_TimeInterval   leasetime,
-                                    NPT_String         uuid);
-    virtual ~PLT_CtrlPointGetDescriptionTask();
-
-protected:
-    // PLT_HttpClientSocketTask methods
-    NPT_Result ProcessResponse(NPT_Result                    res, 
-                               const NPT_HttpRequest&        request, 
-                               const NPT_HttpRequestContext& context, 
-                               NPT_HttpResponse*             response);
-
-protected:
-    PLT_CtrlPoint*   m_CtrlPoint;
-    NPT_TimeInterval m_LeaseTime;
-    NPT_String       m_UUID;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPointGetSCPDRequest class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPointGetSCPDRequest class is used by a PLT_CtrlPointGetSCPDsTask task
- to fetch a specific SCPD xml document for a given service of a given device.
- */
-class PLT_CtrlPointGetSCPDRequest : public NPT_HttpRequest
-{
-public:
-    PLT_CtrlPointGetSCPDRequest(PLT_DeviceDataReference& device,
-                                const char*              url,
-                                const char*              method = "GET",
-                                const char*              protocol = NPT_HTTP_PROTOCOL_1_1) : // 1.1 for pipelining
-        NPT_HttpRequest(url, method, protocol), m_Device(device) {}
-    virtual ~PLT_CtrlPointGetSCPDRequest() {}
-
-    // members
-    PLT_DeviceDataReference m_Device;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPointGetSCPDsTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPointGetSCPDsTask class fetches the SCPD xml document of one or more
- services for a given device. 
- */
-class PLT_CtrlPointGetSCPDsTask : public PLT_HttpClientSocketTask
-{
-public:
-    PLT_CtrlPointGetSCPDsTask(PLT_CtrlPoint* ctrl_point, PLT_DeviceDataReference& root_device);
-    virtual ~PLT_CtrlPointGetSCPDsTask() {}
-
-    NPT_Result AddSCPDRequest(PLT_CtrlPointGetSCPDRequest* request) {
-        return PLT_HttpClientSocketTask::AddRequest((NPT_HttpRequest*)request);
-    }
-
-    // override to prevent calling this directly
-    NPT_Result AddRequest(NPT_HttpRequest*) {
-        // only queuing PLT_CtrlPointGetSCPDRequest allowed
-        return NPT_ERROR_NOT_SUPPORTED;
-    }
-
-protected:
-    // PLT_HttpClientSocketTask methods
-    NPT_Result ProcessResponse(NPT_Result                    res, 
-                               const NPT_HttpRequest&        request, 
-                               const NPT_HttpRequestContext& context, 
-                               NPT_HttpResponse*             response);   
-
-protected:
-    PLT_CtrlPoint*          m_CtrlPoint;
-    PLT_DeviceDataReference m_RootDevice;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPointInvokeActionTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPointInvokeActionTask class is used by a PLT_CtrlPoint to invoke
- a specific action of a given service for a given device.
- */
-class PLT_CtrlPointInvokeActionTask : public PLT_HttpClientSocketTask
-{
-public:
-    PLT_CtrlPointInvokeActionTask(NPT_HttpRequest*     request,
-                                  PLT_CtrlPoint*       ctrl_point, 
-                                  PLT_ActionReference& action,
-                                  void*                userdata);
-    virtual ~PLT_CtrlPointInvokeActionTask();
-
-protected:
-    // PLT_HttpClientSocketTask methods
-    NPT_Result ProcessResponse(NPT_Result                    res, 
-                               const NPT_HttpRequest&        request, 
-                               const NPT_HttpRequestContext& context, 
-                               NPT_HttpResponse*             response);   
-
-protected:
-    PLT_CtrlPoint*      m_CtrlPoint;
-    PLT_ActionReference m_Action;
-    void*               m_Userdata;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPointHouseKeepingTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPointHouseKeepingTask class is used by a PLT_CtrlPoint to keep 
- track of expired devices and autmatically renew event subscribers. 
- */
-class PLT_CtrlPointHouseKeepingTask : public PLT_ThreadTask
-{
-public:
-    PLT_CtrlPointHouseKeepingTask(PLT_CtrlPoint*   ctrl_point, 
-                                  NPT_TimeInterval timer = NPT_TimeInterval(5.));
-
-protected:
-    ~PLT_CtrlPointHouseKeepingTask() {}
-
-    // PLT_ThreadTask methods
-    virtual void DoRun();
-
-protected:
-    PLT_CtrlPoint*   m_CtrlPoint;
-    NPT_TimeInterval m_Timer;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_CtrlPointSubscribeEventTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_CtrlPointSubscribeEventTask class is used to subscribe, renew or cancel
- a subscription for a given service of a given device.
- */
-class PLT_CtrlPointSubscribeEventTask : public PLT_HttpClientSocketTask
-{
-public:
-    PLT_CtrlPointSubscribeEventTask(NPT_HttpRequest*         request,
-                                    PLT_CtrlPoint*           ctrl_point, 
-									PLT_DeviceDataReference& device,
-                                    PLT_Service*             service,
-                                    void*                    userdata = NULL);
-    virtual ~PLT_CtrlPointSubscribeEventTask();
-    
-protected:
-    // PLT_HttpClientSocketTask methods
-    NPT_Result ProcessResponse(NPT_Result                    res, 
-                               const NPT_HttpRequest&        request, 
-                               const NPT_HttpRequestContext& context, 
-                               NPT_HttpResponse*             response);
-
-protected:
-    PLT_CtrlPoint*          m_CtrlPoint;
-    PLT_Service*            m_Service;
-	PLT_DeviceDataReference m_Device; // force to keep a reference to device owning m_Service
-    void*                   m_Userdata;
-};
-
-#endif /* _PLT_CONTROL_POINT_TASK_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDatagramStream.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDatagramStream.h
deleted file mode 100644
index 0e132b9..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDatagramStream.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Datagram Stream
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- Datagram Input/Output Neptune streams
- */
-
-#ifndef _PLT_DATAGRAM_H_
-#define _PLT_DATAGRAM_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   PLT_InputDatagramStream
-+---------------------------------------------------------------------*/
-/**
- The PLT_InputDatagramStream class is a simple buffered input stream 
- used when reading SSDP packets on a UDP socket. It allows to use Neptune
- HTTP parsing as if reading on a TCP socket.
- */
-class PLT_InputDatagramStream : public NPT_InputStream
-{
-public:
-    // methods
-    PLT_InputDatagramStream(NPT_UdpSocket* socket,
-                            NPT_Size       buffer_size = 2000);
-    virtual ~PLT_InputDatagramStream();
-    
-    NPT_Result GetInfo(NPT_SocketInfo& info);
-
-    // NPT_InputStream methods
-    NPT_Result Read(void*     buffer, 
-                    NPT_Size  bytes_to_read, 
-                    NPT_Size* bytes_read = 0);
-
-    NPT_Result Seek(NPT_Position offset) { NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-    NPT_Result Skip(NPT_Size offset) { NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-    NPT_Result Tell(NPT_Position& offset){ NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-    NPT_Result GetSize(NPT_LargeSize& size)   { NPT_COMPILER_UNUSED(size); return NPT_FAILURE; }
-    NPT_Result GetAvailable(NPT_LargeSize& available) { NPT_COMPILER_UNUSED(available); return NPT_FAILURE; }
-        
-protected:
-    NPT_UdpSocket*      m_Socket;
-    NPT_SocketInfo      m_Info;
-    NPT_DataBuffer      m_Buffer;
-    NPT_Position        m_BufferOffset;
-};
-
-typedef NPT_Reference<PLT_InputDatagramStream> PLT_InputDatagramStreamReference;
-
-/*----------------------------------------------------------------------
-|   PLT_OutputDatagramStream
-+---------------------------------------------------------------------*/
-/**
- The PLT_OutputDatagramStream class is a simple buffered output stream 
- used when writing SSDP packets on a UDP socket. It allows to use Neptune
- HTTP client as if writing on a TCP socket.
- */
-class PLT_OutputDatagramStream : public NPT_OutputStream
-{
-public:
-    // methods
-    PLT_OutputDatagramStream(NPT_UdpSocket*           socket, 
-                             NPT_Size                 size = 4096,
-                             const NPT_SocketAddress* address = NULL);
-    virtual ~PLT_OutputDatagramStream();
-
-    // NPT_OutputStream methods
-    NPT_Result Write(const void* buffer, NPT_Size bytes_to_write, NPT_Size* bytes_written = NULL);
-    NPT_Result Flush();
-
-    NPT_Result Seek(NPT_Position offset)  { NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-    NPT_Result Tell(NPT_Position& offset) { NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-
-protected:
-    NPT_UdpSocket*     m_Socket;
-    NPT_DataBuffer     m_Buffer;
-    NPT_SocketAddress* m_Address;
-};
-
-typedef NPT_Reference<PLT_OutputDatagramStream> PLT_OutputDatagramStreamReference;
-
-#endif /* _PLT_DATAGRAM_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDeviceData.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDeviceData.h
deleted file mode 100644
index 364ede7..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDeviceData.h
+++ /dev/null
@@ -1,260 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Device Data
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP Device information
- */
-
-#ifndef _PLT_DEVICE_DATA_H_
-#define _PLT_DEVICE_DATA_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltConstants.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_Service;
-class PLT_DeviceData;
-
-typedef NPT_Reference<PLT_DeviceData> PLT_DeviceDataReference;
-typedef NPT_List<PLT_DeviceDataReference> PLT_DeviceDataReferenceList;
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceIcon class
-+---------------------------------------------------------------------*/
-/** 
- The PLT_DeviceIcon class represents a given instance of a UPnP device icon.
- */
-class PLT_DeviceIcon
-{
-public:
-    PLT_DeviceIcon(const char* mimetype = "", 
-                   NPT_Int32   width = 0, 
-                   NPT_Int32   height = 0,
-                   NPT_Int32   depth = 0,
-                   const char* urlpath = "") :
-        m_MimeType(mimetype),
-        m_Width(width),
-        m_Height(height),
-        m_Depth(depth),
-        m_UrlPath(urlpath) {}
-    virtual ~PLT_DeviceIcon() {}
-   
-    NPT_String  m_MimeType;
-    NPT_Int32   m_Width;
-    NPT_Int32   m_Height;
-    NPT_Int32   m_Depth;
-    NPT_String  m_UrlPath;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceData class
-+---------------------------------------------------------------------*/
-/**
- The PLT_DeviceData class holds information about a device being advertised or
- found by a control point. It maintains a list of services and 
- embedded devices if any.
- */
-class PLT_DeviceData
-{
-public:
-    PLT_DeviceData(
-        NPT_HttpUrl      description_url = NPT_HttpUrl(NULL, 0, "/description.xml"), 
-        const char*      uuid = "",
-        NPT_TimeInterval lease_time = *PLT_Constants::GetInstance().GetDefaultDeviceLease(),
-        const char*      device_type = "",
-        const char*      friendly_name = "");
-
-    /* methods */
-    virtual NPT_Result  GetDescription(NPT_String& desc);
-    virtual NPT_String  GetDescriptionUrl(const char* ip_address = NULL);
-    virtual NPT_HttpUrl GetURLBase();
-    virtual NPT_HttpUrl NormalizeURL(const NPT_String& url);
-    virtual NPT_Result  GetDescription(NPT_XmlElementNode* parent, NPT_XmlElementNode** device = NULL);
-    virtual NPT_String  GetIconUrl(const char* mimetype = NULL, NPT_Int32 maxsize = 0, NPT_Int32 maxdepth = 0);
-    
-    bool                    IsRoot()              { return m_ParentUUID.IsEmpty();   }
-    const NPT_TimeInterval& GetLeaseTime()        const { return m_LeaseTime;        }
-    const NPT_String&       GetUUID()             const { return m_UUID;             }
-    const NPT_String&       GetFriendlyName()     const { return m_FriendlyName;     }
-    const NPT_String&       GetType()             const { return m_DeviceType;       }
-    const NPT_String&       GetModelDescription() const { return m_ModelDescription; }
-    const NPT_String&       GetParentUUID()       const { return m_ParentUUID;       }
-    const NPT_IpAddress&    GetLocalIP()          const { return m_LocalIfaceIp;     }
-
-    const NPT_Array<PLT_Service*>&            GetServices()        const { return m_Services; }
-    const NPT_Array<PLT_DeviceDataReference>& GetEmbeddedDevices() const { return m_EmbeddedDevices; }
-
-    NPT_Result FindEmbeddedDevice(const char* uuid, PLT_DeviceDataReference& device);
-    NPT_Result FindEmbeddedDeviceByType(const char* type, PLT_DeviceDataReference& device);
-    NPT_Result FindServiceById(const char* id, PLT_Service*& service);
-    NPT_Result FindServiceByType(const char* type, PLT_Service*& service);
-	NPT_Result FindServiceByName(const char* name, PLT_Service*& service);
-    NPT_Result FindServiceBySCPDURL(const char* url, PLT_Service*& service, bool recursive = false);
-    NPT_Result FindServiceByControlURL(const char* url, PLT_Service*& service, bool recursive = false);
-    NPT_Result FindServiceByEventSubURL(const char* url, PLT_Service*& service, bool recursive = false);
-
-    /* called by PLT_Device subclasses */
-    NPT_Result AddEmbeddedDevice(PLT_DeviceDataReference& device);
-    NPT_Result RemoveEmbeddedDevice(PLT_DeviceDataReference& device);
-    NPT_Result AddService(PLT_Service* service);
-	NPT_Result RemoveService(PLT_Service* service);
-    
-    /* BOOTID UPnP 1/1 */
-    void SetBootId(NPT_UInt32 bootId);
-    void SetNextBootId(NPT_UInt32 nextBootId);
-    NPT_UInt32 GenerateNextBootId();
-
-    operator const char* ();
-
-protected:
-    virtual ~PLT_DeviceData();
-    
-    virtual void       Cleanup();
-    virtual NPT_Result OnAddExtraInfo(NPT_XmlElementNode* /*device_node*/) { return NPT_SUCCESS; }
-    
-
-private:
-    /* called by PLT_CtrlPoint when an existing device location is updated */
-    NPT_Result    SetDescriptionUrl(NPT_HttpUrl& url);
-    NPT_Result    SetLeaseTime(NPT_TimeInterval lease_time, NPT_TimeStamp lease_time_last_update = 0.);
-    NPT_Result    SetURLBase(NPT_HttpUrl& url_base);
-    NPT_TimeStamp GetLeaseTimeLastUpdate();
-    void          UpdateConfigId();
-    
-    /* class methods */
-    static NPT_Result SetDescription(PLT_DeviceDataReference&      root_device,
-                                     NPT_TimeInterval              leasetime,
-                                     NPT_HttpUrl                   description_url,
-                                     const char*                   description, 
-                                     const NPT_HttpRequestContext& context);
-    static NPT_Result SetDescriptionDevice(PLT_DeviceDataReference&      device,
-                                           NPT_XmlElementNode*           device_node, 
-                                           const NPT_HttpRequestContext& context);
-
-public:
-    NPT_String m_Manufacturer;
-    NPT_String m_ManufacturerURL;
-    NPT_String m_ModelDescription;
-    NPT_String m_ModelName;
-    NPT_String m_ModelNumber;
-    NPT_String m_ModelURL;
-    NPT_String m_SerialNumber;
-    NPT_String m_UPC;
-    NPT_String m_PresentationURL;
-    NPT_String m_DlnaDoc;
-    NPT_String m_DlnaCap;
-    NPT_String m_AggregationFlags;
-
-protected:
-    friend class NPT_Reference<PLT_DeviceData>;
-    friend class PLT_CtrlPoint;
-    friend class PLT_DeviceReadyIterator;
-    friend class PLT_DeviceHost;
-
-    //members
-    NPT_String                         m_ParentUUID;
-    NPT_String                         m_UUID;
-    NPT_HttpUrl                        m_URLDescription;
-    NPT_HttpUrl                        m_URLBase;
-    NPT_String                         m_DeviceType;
-    NPT_String                         m_FriendlyName;
-    NPT_TimeInterval                   m_LeaseTime;
-    NPT_TimeStamp                      m_LeaseTimeLastUpdate;
-    NPT_Array<PLT_Service*>            m_Services;
-    NPT_Array<PLT_DeviceDataReference> m_EmbeddedDevices;
-    NPT_Array<PLT_DeviceIcon>          m_Icons;
-
-    /* IP address of interface used when retrieving device description.
-       We need the info for the control point subscription callback */
-    NPT_IpAddress                      m_LocalIfaceIp; 
-    NPT_String                         m_Representation;
-    
-private:
-    NPT_UInt32                         m_BootId;
-    NPT_UInt32                         m_NextBootId;
-    NPT_UInt32                         m_ConfigId;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceDataFinder
-+---------------------------------------------------------------------*/
-/**
- The PLT_DeviceDataFinder class returns a PLT_DeviceData instance given
- a device UUID.
- */
-class PLT_DeviceDataFinder
-{
-public:
-    // methods
-    PLT_DeviceDataFinder(const char* uuid) : m_UUID(uuid) {}
-    virtual ~PLT_DeviceDataFinder() {}
-
-    bool operator()(const PLT_DeviceDataReference& data) const {
-        return data->GetUUID().Compare(m_UUID, true) ? false : true;
-    }
-
-private:
-    // members
-    NPT_String m_UUID;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceDataFinderByType
-+---------------------------------------------------------------------*/
-/**
- The PLT_DeviceDataFinderByType class returns a PLT_DeviceData instance 
- given a device type.
- */
-class PLT_DeviceDataFinderByType
-{
-public:
-    // methods
-    PLT_DeviceDataFinderByType(const char* type) : m_Type(type) {}
-    virtual ~PLT_DeviceDataFinderByType() {}
-
-    bool operator()(const PLT_DeviceDataReference& data) const {
-        return data->GetType().Compare(m_Type, true) ? false : true;
-    }
-
-private:
-    // members
-    NPT_String m_Type;
-};
-
-#endif /* _PLT_DEVICE_DATA_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDeviceHost.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDeviceHost.h
deleted file mode 100644
index 9c31484..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDeviceHost.h
+++ /dev/null
@@ -1,341 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Device Host
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP Device
- */
-
-#ifndef _PLT_DEVICE_HOST_H_
-#define _PLT_DEVICE_HOST_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltDeviceData.h"
-#include "PltSsdp.h"
-#include "PltTaskManager.h"
-#include "PltAction.h"
-#include "PltHttp.h"
-#include "PltHttpServer.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_SsdpDeviceAnnounceTask;
-class PLT_SsdpListenTask;
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceHost class
-+---------------------------------------------------------------------*/
-/**
- UPnP Device Host.
- The PLT_DeviceHost class is a base class for implementing a UPnP Device. It handles 
- network announcements and responses to searches from ControlPoints. ControlPoint
- action invocations are also received and delegated to derived classes. A 
- PLT_DeviceHost also takes care of eventing when services state variables change.
- */
-class PLT_DeviceHost : public PLT_DeviceData,
-                       public PLT_SsdpPacketListener,
-                       public NPT_HttpRequestHandler
-{
-public:
-    /**
-     Creates a new instance of UPnP Device Host.
-     @param description_path Relative path for description url
-     @param uuid UPnP device unique id
-     @param device_type UPnP device type
-     @param friendly_name Name advertised for UPnP device
-     @param show_ip Flag to indicate if device IP should be appended to friendly name
-     @param port local port for the device host internal HTTP server, 0 for randomly
-     selected.
-     @param port_rebind Flag to indicate if device host should automatically try to look 
-     for another port if failing to choose the one passed.
-     */
-    PLT_DeviceHost(const char*  description_path = "/",
-                   const char*  uuid = "",
-                   const char*  device_type = "",
-                   const char*  friendly_name = "",
-                   bool         show_ip = false,
-                   NPT_UInt16   port = 0,
-                   bool         port_rebind = false);
-    virtual ~PLT_DeviceHost();
-    
-    virtual void SetExtraBroadcast(bool broadcast) { m_ExtraBroascast = broadcast; }
-     
-    /**
-     When a UPnP device comes up, the specifications require that a SSDP bye-bye
-     sequence is sent to force the removal of the device in case it wasn't sent
-     properly during the last shutdown.
-     @param bye_bye_first Boolean to indicate that SSDP bye-bye sequence should 
-     be sent first or not.
-     */
-    virtual void SetByeByeFirst(bool bye_bye_first) { m_ByeByeFirst = bye_bye_first; }
-    
-    /**
-     Returns the port used by the internal HTTP server for all incoming requests.
-     @return port
-     */
-    virtual NPT_UInt16 GetPort() { return m_Port; };
-    
-    /**
-     Sets the lease time.
-     @param lease_time Lease Time
-     */
-    NPT_Result SetLeaseTime(NPT_TimeInterval lease_time) { return PLT_DeviceData::SetLeaseTime(lease_time); }
-
-protected:
-    /**
-     NPT_HttpRequestHandler method for setting up the response of an incoming
-     HTTP request.
-     @param request the request received
-     @param context the context of the request
-     @param response the response to set up
-     */
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request,
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response);
-
-    /**
-     Static method similar to Announce.
-     @param device the device to announce
-     @param request the SSDP pre formatted request
-     @param socket the network socket to use to send the request
-     @param type PLT_SsdpAnnounceType enum if the announce is a SSDP bye-bye, update or alive.
-     */
-    static NPT_Result Announce(PLT_DeviceData*      device,
-                               NPT_HttpRequest&     request,
-                               NPT_UdpSocket&       socket,
-                               PLT_SsdpAnnounceType type);
-    /**
-     Called during SSDP announce. The HTTP request is already configured with
-     the right method and host.
-     @param request the SSDP pre formatted request
-     @param socket the network socket to use to send the request
-     @param type PLT_SsdpAnnounceType enum if the announce is a SSDP bye-bye, update or alive.
-     */
-    NPT_Result Announce(NPT_HttpRequest&     request,
-                        NPT_UdpSocket&       socket,
-                        PLT_SsdpAnnounceType type) {
-        return Announce(this, request, socket, type);
-    }
-
-    /**
-     PLT_SsdpPacketListener method called when a M-SEARCH SSDP packet is received.
-     @param request SSDP packet
-     @param context the context of the request
-     */
-    virtual NPT_Result OnSsdpPacket(const NPT_HttpRequest&        request, 
-                                    const NPT_HttpRequestContext& context);
-
-    /**
-     Static method similar to SendSsdpSearchResponse.
-     @param device the device to announce
-     @param response the SSDP pre formatted response
-     @param socket the network socket to use to send the request
-     @param st the original request search target
-     @param addr the remote address to send the response back to in case the socket
-     is not already connected.
-     */
-    static NPT_Result SendSsdpSearchResponse(PLT_DeviceData*          device, 
-                                             NPT_HttpResponse&        response, 
-                                             NPT_UdpSocket&           socket, 
-                                             const char*              st,
-                                             const NPT_SocketAddress* addr = NULL);
-    /**
-     Called by PLT_SsdpDeviceSearchResponseTask when responding to a M-SEARCH
-     SSDP request.
-     @param response the SSDP pre formatted response
-     @param socket the network socket to use to send the request
-     @param st the original request search target
-     @param addr the remote address to send the response back to in case the socket
-     is not already connected.
-     */
-    virtual NPT_Result SendSsdpSearchResponse(NPT_HttpResponse&        response, 
-                                              NPT_UdpSocket&           socket, 
-                                              const char*              st,
-                                              const NPT_SocketAddress* addr = NULL) {
-        return SendSsdpSearchResponse(this, response, socket, st, addr);
-    }
-    
-public:
-    /**
-     Add UPnP icon information to serve from file system.
-     @param icon the icon information including url path
-     @param fileroot the file system root path 
-     @param urlroot the url root path of the icon url to match to fileroot
-     Note: As an exemple, if the icon url path is "/images/icon1.jpg", the fileroot
-     is "/Users/joe/www" and the urlroot is "/", when a request is made for
-     "/images/icon1.jpg", the file is expected to be found at 
-     "/Users/joe/www/images/icon1.jpg". If the urlroot were "/images", the file 
-     would be expected to be found at "/Users/joe/www/icon1.jpg".
-     */
-    virtual NPT_Result AddIcon(const PLT_DeviceIcon& icon, 
-                               const char*           fileroot,
-                               const char*           urlroot = "/");
-    
-    /**
-     Add UPnP icon information to serve using static image.
-     @param icon the icon information including url path
-     @param data the image data
-     @param size the image data size
-     @param copy boolean to indicate the data should be copied internally
-     */
-    virtual NPT_Result AddIcon(const PLT_DeviceIcon& icon, 
-                               const void*           data, 
-                               NPT_Size              size, 
-                               bool                  copy = true);
-
-protected:
-    /**
-     Required method for setting up UPnP services of device host 
-     (and any embedded). Called when device starts.
-     */
-    virtual NPT_Result SetupServices() = 0;
-    
-    /**
-     Default implementation for registering device icon resources. Override to 
-     use different ones. Called when device starts.
-     */
-    virtual NPT_Result SetupIcons();
-    
-    /** 
-     Default implementation for setting up device host. This calls SetupServices
-     and SetupIcons when device starts.
-     */
-    virtual NPT_Result SetupDevice();
-    
-    /**
-     Called by PLT_TaskManager when the device is started.
-     @param task the SSDP listening task to attach to for receiving 
-     SSDP M-SEARCH messages.
-     */
-    virtual NPT_Result Start(PLT_SsdpListenTask* task);
-    
-    /**
-     Called by PLT_TaskManager when the device is stoped.
-     @param task the SSDP listening task to detach from to stop receiving 
-     SSDP M-SEARCH messages.
-     */
-    virtual NPT_Result Stop(PLT_SsdpListenTask* task);
-    
-    /**
-     This mehod is called when an action performed by a control point has been 
-     received and needs to be answered.
-     @param action the action information to answer
-     @param context the context information including the HTTP request and
-     local and remote socket information (IP & port).
-     */
-    virtual NPT_Result OnAction(PLT_ActionReference&          action, 
-                                const PLT_HttpRequestContext& context);
-    
-    /**
-     This method is called when a control point is requesting the device
-     description.
-     @param request the HTTP request
-     @param context the context information including local and remote socket information.
-     @param response the response to setup.
-     */
-    virtual NPT_Result ProcessGetDescription(NPT_HttpRequest&              request,
-                                             const NPT_HttpRequestContext& context,
-                                             NPT_HttpResponse&             response);
-    
-    /**
-     This method is called when a control point is requesting a service SCPD.
-     @param service the service
-     @param request the HTTP request
-     @param context the context information including local and remote socket information.
-     @param response the response to setup.
-     */
-    virtual NPT_Result ProcessGetSCPD(PLT_Service*                  service,
-                                      NPT_HttpRequest&              request,
-                                      const NPT_HttpRequestContext& context,
-                                      NPT_HttpResponse&             response);
-    
-    /**
-     This method is called when a "GET" request for a resource other than the device
-     description, SCPD, or icons has been received.
-     @param request the HTTP request
-     @param context the context information including local and remote socket information.
-     @param response the response to setup.
-     */
-    virtual NPT_Result ProcessHttpGetRequest(NPT_HttpRequest&              request,
-                                             const NPT_HttpRequestContext& context,
-                                             NPT_HttpResponse&             response);
-    
-    /**
-     This method is called when a "POST" request has been received. This is usually
-     an UPnP service action invocation. This will deserialize the request and call
-     the OnAction method.
-     @param request the HTTP request
-     @param context the context information including local and remote socket information.
-     @param response the response to setup.
-     */
-    virtual NPT_Result ProcessHttpPostRequest(NPT_HttpRequest&              request,
-                                              const NPT_HttpRequestContext& context,
-                                              NPT_HttpResponse&             response);
-    
-    /**
-     This method is called when a request from a subscriber has been received. This is
-     for any new subscritions, existing subscrition renewal or cancellation.
-     @param request the HTTP request
-     @param context the context information including local and remote socket information.
-     @param response the response to setup.
-     */
-    virtual NPT_Result ProcessHttpSubscriberRequest(NPT_HttpRequest&              request,
-                                                    const NPT_HttpRequestContext& context,
-                                                    NPT_HttpResponse&             response);
-
-protected:
-    friend class PLT_UPnP;
-    friend class PLT_UPnP_DeviceStartIterator;
-    friend class PLT_UPnP_DeviceStopIterator;
-    friend class PLT_Service;
-    friend class NPT_Reference<PLT_DeviceHost>;
-    friend class PLT_SsdpDeviceSearchResponseInterfaceIterator;
-    friend class PLT_SsdpDeviceSearchResponseTask;
-    friend class PLT_SsdpAnnounceInterfaceIterator;
-
-    PLT_TaskManagerReference m_TaskManager;
-    PLT_HttpServerReference  m_HttpServer;
-    bool                     m_ExtraBroascast;
-    NPT_UInt16               m_Port;
-    bool                     m_PortRebind;
-    bool                     m_ByeByeFirst;
-    bool                     m_Started;
-};
-
-typedef NPT_Reference<PLT_DeviceHost> PLT_DeviceHostReference;
-
-#endif /* _PLT_DEVICE_HOST_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDidl.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDidl.h
deleted file mode 100644
index f6eaf14..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDidl.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - DIDL handling
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Didl
- */
-
-#ifndef _PLT_DIDL_H_
-#define _PLT_DIDL_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltMediaItem.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#define PLT_FILTER_MASK_ALL                         0xFFFFFFFF
-
-#define PLT_FILTER_MASK_CREATOR                     0x00000001
-#define PLT_FILTER_MASK_ARTIST                      0x00000002
-#define PLT_FILTER_MASK_ALBUM                       0x00000004
-#define PLT_FILTER_MASK_GENRE                       0x00000008
-#define PLT_FILTER_MASK_ALBUMARTURI                 0x00000010
-#define PLT_FILTER_MASK_DESCRIPTION                 0x00000020
-#define PLT_FILTER_MASK_SEARCHABLE                  0x00000040
-#define PLT_FILTER_MASK_CHILDCOUNT                  0x00000080
-#define PLT_FILTER_MASK_ORIGINALTRACK               0x00000100
-#define PLT_FILTER_MASK_ACTOR                       0x00000200
-#define PLT_FILTER_MASK_AUTHOR                      0x00000400
-#define PLT_FILTER_MASK_DATE                        0x00000800
-#define PLT_FILTER_MASK_PROGRAMTITLE                0x00001000
-#define PLT_FILTER_MASK_SERIESTITLE                 0x00002000
-#define PLT_FILTER_MASK_EPISODE                     0x00004000
-#define PLT_FILTER_MASK_TITLE                       0x00008000
-
-#define PLT_FILTER_MASK_RES                         0x00010000
-#define PLT_FILTER_MASK_RES_DURATION                0x00020000
-#define PLT_FILTER_MASK_RES_SIZE                    0x00040000
-#define PLT_FILTER_MASK_RES_PROTECTION              0x00080000
-#define PLT_FILTER_MASK_RES_RESOLUTION              0x00100000
-#define PLT_FILTER_MASK_RES_BITRATE                 0x00200000
-#define PLT_FILTER_MASK_RES_BITSPERSAMPLE           0x00400000
-#define PLT_FILTER_MASK_RES_NRAUDIOCHANNELS			0x00800000
-#define PLT_FILTER_MASK_RES_SAMPLEFREQUENCY			0x01000000
-
-#define PLT_FILTER_MASK_LONGDESCRIPTION             0x02000000
-#define PLT_FILTER_MASK_ICON                        0x04000000
-
-#define PLT_FILTER_MASK_TOC							0x02000000
-#define PLT_FILTER_MASK_SEARCHCLASS					0x04000000
-#define PLT_FILTER_MASK_REFID                       0x08000000
-
-#define PLT_FILTER_FIELD_TITLE                      "dc:title"
-#define PLT_FILTER_FIELD_CREATOR                    "dc:creator"
-#define PLT_FILTER_FIELD_DATE                       "dc:date"
-#define PLT_FILTER_FIELD_ARTIST                     "upnp:artist"
-#define PLT_FILTER_FIELD_ACTOR                      "upnp:actor"
-#define PLT_FILTER_FIELD_AUTHOR                     "upnp:author"
-#define PLT_FILTER_FIELD_ALBUM                      "upnp:album"
-#define PLT_FILTER_FIELD_GENRE                      "upnp:genre"
-#define PLT_FILTER_FIELD_ALBUMARTURI                "upnp:albumArtURI"
-#define PLT_FILTER_FIELD_ALBUMARTURI_DLNAPROFILEID  "upnp:albumArtURI at dlna:profileID"
-#define PLT_FILTER_FIELD_DESCRIPTION                "dc:description"
-#define PLT_FILTER_FIELD_LONGDESCRIPTION            "upnp:longDescription"
-#define PLT_FILTER_FIELD_ICON                       "upnp:icon"
-#define PLT_FILTER_FIELD_ORIGINALTRACK              "upnp:originalTrackNumber"
-#define PLT_FILTER_FIELD_PROGRAMTITLE               "upnp:programTitle"
-#define PLT_FILTER_FIELD_SERIESTITLE                "upnp:seriesTitle"
-#define PLT_FILTER_FIELD_EPISODE                    "upnp:episodeNumber"
-#define PLT_FILTER_FIELD_SEARCHCLASS				"upnp:searchClass"
-#define PLT_FILTER_FIELD_SEARCHABLE                 "@searchable"
-#define PLT_FILTER_FIELD_CHILDCOUNT                 "@childcount"
-#define PLT_FILTER_FIELD_CONTAINER_CHILDCOUNT       "container at childCount"
-#define PLT_FILTER_FIELD_CONTAINER_SEARCHABLE       "container at searchable"
-#define PLT_FILTER_FIELD_REFID                      "@refID"
-
-#define PLT_FILTER_FIELD_RES                        "res"
-#define PLT_FILTER_FIELD_RES_DURATION               "res at duration"
-#define PLT_FILTER_FIELD_RES_DURATION_SHORT         "@duration"
-#define PLT_FILTER_FIELD_RES_SIZE                   "res at size"
-#define PLT_FILTER_FIELD_RES_PROTECTION             "res at protection"
-#define PLT_FILTER_FIELD_RES_RESOLUTION             "res at resolution"
-#define PLT_FILTER_FIELD_RES_BITRATE                "res at bitrate"
-#define PLT_FILTER_FIELD_RES_BITSPERSAMPLE          "res at bitsPerSample"
-#define PLT_FILTER_FIELD_RES_NRAUDIOCHANNELS        "res at nrAudioChannels"
-#define PLT_FILTER_FIELD_RES_SAMPLEFREQUENCY        "res at sampleFrequency"
-
-extern const char* didl_header;
-extern const char* didl_footer;
-extern const char* didl_namespace_dc;
-extern const char* didl_namespace_upnp;
-extern const char* didl_namespace_dlna;
-
-/*----------------------------------------------------------------------
-|   PLT_Didl
-+---------------------------------------------------------------------*/
-/**
- DIDL manipulation.
- The PLT_Didl class provides a mechanism to (de)serialize a PLT_MediaObject or
- list of PLT_MediaObject (PLT_MediaObjectList).
- */
-class PLT_Didl
-{
-public:
-    static NPT_Result  ToDidl(PLT_MediaObject&  object, 
-                              const NPT_String& filter, 
-                              NPT_String&       didl);
-    static NPT_Result  FromDidl(const char* didl, 
-                                PLT_MediaObjectListReference& objects);
-    static void        AppendXmlEscape(NPT_String& out, const char* in);
-    static void        AppendXmlUnEscape(NPT_String& out, const char* in);
-    static NPT_Result  ParseTimeStamp(const NPT_String& timestamp, NPT_UInt32& seconds);
-    static NPT_String  FormatTimeStamp(NPT_UInt32 seconds);
-    static NPT_Result  ParseTimeStamp(const NPT_String& in, NPT_TimeStamp& timestamp) {
-        NPT_UInt32 seconds;
-        NPT_Result res = ParseTimeStamp(in, seconds);
-        timestamp = NPT_TimeStamp((double)seconds);
-        return res;
-    }
-
-    static NPT_UInt32  ConvertFilterToMask(const NPT_String& filter);
-};
-
-#endif /* _PLT_DIDL_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDownloader.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDownloader.h
deleted file mode 100644
index 9581ec2..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltDownloader.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Downloader
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_DOWNLOADER_H_
-#define _PLT_DOWNLOADER_H_
-
-/*----------------------------------------------------------------------
-|   Includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttpClientTask.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_Downloader;
-
-/*----------------------------------------------------------------------
-|   types
-+---------------------------------------------------------------------*/
-typedef enum {
-    PLT_DOWNLOADER_IDLE,
-    PLT_DOWNLOADER_STARTED,
-    PLT_DOWNLOADER_DOWNLOADING,
-    PLT_DOWNLOADER_ERROR,
-    PLT_DOWNLOADER_SUCCESS
-} Plt_DowloaderState;
-
-/*----------------------------------------------------------------------
-|   PLT_Downloader class
-+---------------------------------------------------------------------*/
-class PLT_Downloader : public PLT_HttpClientSocketTask
-{
-public:
-    PLT_Downloader(NPT_HttpUrl&               url, 
-                   NPT_OutputStreamReference& output);
-    virtual ~PLT_Downloader();
-    
-    Plt_DowloaderState GetState() { return m_State; }
-
-    // PLT_HttpClientTask method
-    NPT_Result ProcessResponse(NPT_Result                    res, 
-                               const NPT_HttpRequest&        request, 
-                               const NPT_HttpRequestContext& context, 
-                               NPT_HttpResponse*             response);
-
-protected:
-    virtual void DoRun();
-    virtual void DoAbort();
-    
-private:
-    // members
-    NPT_HttpUrl               m_URL;
-    NPT_OutputStreamReference m_Output;
-    Plt_DowloaderState        m_State;
-};
-
-#endif /* _PLT_DOWNLOADER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltEvent.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltEvent.h
deleted file mode 100644
index de754bb..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltEvent.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Event
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP Eventing
- */
-
-#ifndef _PLT_EVENT_H_
-#define _PLT_EVENT_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttpClientTask.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_StateVariable;
-class PLT_DeviceData;
-class PLT_Service;
-class PLT_TaskManager;
-class PLT_CtrlPoint;
-
-/*----------------------------------------------------------------------
-|   PLT_EventNotification class
-+---------------------------------------------------------------------*/
-/**
- The PLT_EventNotification class represents an event notification for a given
- service to a given subscriber 
- */
-class PLT_EventNotification
-{
-public:
-    ~PLT_EventNotification() {}
-
-    static PLT_EventNotification* Parse(const NPT_HttpRequest&        request,
-                                        const NPT_HttpRequestContext& context,
-                                        NPT_HttpResponse&             response);
-
-
-    NPT_TimeStamp                 m_ReceptionTime;
-    NPT_HttpUrl                   m_RequestUrl;
-    NPT_String                    m_SID;
-    NPT_Ordinal                   m_EventKey;
-    NPT_String                    m_XmlBody;
-    
-protected:
-    PLT_EventNotification() : m_EventKey(0) {}
-};
-
-/*----------------------------------------------------------------------
-|   PLT_EventSubscriber class
-+---------------------------------------------------------------------*/
-/**
- The PLT_EventSubscriber class represents an event subscription for a given service
- from a UPnP ControlPoint.
- */
-class PLT_EventSubscriber
-{
-public:
-    PLT_EventSubscriber(PLT_TaskManagerReference task_manager,
-                        PLT_Service*             service,
-                        const char*              sid,
-                        NPT_Timeout              timeout_secs = -1);
-    ~PLT_EventSubscriber();
-
-    PLT_Service*      GetService();
-    NPT_Ordinal       GetEventKey();
-    NPT_Result        SetEventKey(NPT_Ordinal value);
-    NPT_SocketAddress GetLocalIf();
-    NPT_Result        SetLocalIf(NPT_SocketAddress value);
-    NPT_TimeStamp     GetExpirationTime();
-    NPT_Result        SetTimeout(NPT_Timeout seconds = -1);
-    const NPT_String& GetSID() const { return m_SID; }
-    NPT_Result        FindCallbackURL(const char* callback_url);
-    NPT_Result        AddCallbackURL(const char* callback_url);
-    NPT_Result        Notify(NPT_List<PLT_StateVariable*>& vars);
-    
-protected:
-    //members
-    PLT_TaskManagerReference  m_TaskManager;
-    PLT_Service*              m_Service;
-    NPT_Ordinal               m_EventKey;
-    PLT_HttpClientSocketTask* m_SubscriberTask;
-    NPT_String                m_SID;
-    NPT_SocketAddress         m_LocalIf;
-    NPT_Array<NPT_String>     m_CallbackURLs;
-    NPT_TimeStamp             m_ExpirationTime;
-};
-
-typedef NPT_Reference<PLT_EventSubscriber> PLT_EventSubscriberReference;
-
-/*----------------------------------------------------------------------
-|   PLT_EventSubscriberFinderBySID
-+---------------------------------------------------------------------*/
-/**
- The PLT_EventSubscriberFinderBySID class returns an instance of a PLT_EventSubscriber
- given its subscriber ID.
- */
-class PLT_EventSubscriberFinderBySID
-{
-public:
-    // methods
-    PLT_EventSubscriberFinderBySID(const char* sid) : m_SID(sid) {}
-
-    bool operator()(PLT_EventSubscriberReference const & sub) const {
-        return m_SID.Compare(sub->GetSID(), true) ? false : true;
-    }
-
-private:
-    // members
-    NPT_String m_SID;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_EventSubscriberFinderByCallbackURL
-+---------------------------------------------------------------------*/
-/**
- The PLT_EventSubscriberFinderByCallbackURL class returns an instance of a 
- PLT_EventSubscriber given its subscriber callback url.
- */
-class PLT_EventSubscriberFinderByCallbackURL
-{
-public:
-    // methods
-    PLT_EventSubscriberFinderByCallbackURL(const char* callback_url) : 
-      m_CallbackURL(callback_url) {}
-
-    bool operator()(PLT_EventSubscriberReference const & sub) const {
-        return NPT_SUCCEEDED(sub->FindCallbackURL(m_CallbackURL));
-    }
-
-private:
-    // members
-    NPT_String m_CallbackURL;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_EventSubscriberFinderByService
-+---------------------------------------------------------------------*/
-/**
- The PLT_EventSubscriberFinderByService class returns an instance of a 
- PLT_EventSubscriber given a UPnP service.
- */
-class PLT_EventSubscriberFinderByService
-{
-public:
-    // methods
-    PLT_EventSubscriberFinderByService(PLT_Service* service) : m_Service(service) {}
-    virtual ~PLT_EventSubscriberFinderByService() {}
-    bool operator()(PLT_EventSubscriberReference const & eventSub) const;
-
-private:
-    // members
-    PLT_Service* m_Service;
-};
-
-#endif /* _PLT_EVENT_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltFileMediaServer.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltFileMediaServer.h
deleted file mode 100644
index 49ff9d8..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltFileMediaServer.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - File Media Server
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Filesystem based Media Server sample implementation 
- */
-
-#ifndef _PLT_FILE_MEDIA_SERVER_H_
-#define _PLT_FILE_MEDIA_SERVER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltMediaServer.h"
-#include "PltMediaCache.h"
-
-/*----------------------------------------------------------------------
-|   PLT_FileMediaServerDelegate
-+---------------------------------------------------------------------*/
-/**
- File Media Server Delegate.
- The PLT_FileMediaServerDelegate class is an example of a PLT_MediaServerDelegate
- implementation for a file system backed Media Server.
- */
-class PLT_FileMediaServerDelegate : public PLT_MediaServerDelegate
-{
-public:
-    // class methods
-    static NPT_String BuildSafeResourceUri(const NPT_HttpUrl& base_uri, 
-                                           const char*        host, 
-                                           const char*        file_path);
-    // constructor & destructor
-    PLT_FileMediaServerDelegate(const char* url_root, const char* file_root, bool use_cache = false);
-    virtual ~PLT_FileMediaServerDelegate();
-    
-protected:
-    // PLT_MediaServerDelegate methods
-    virtual NPT_Result OnBrowseMetadata(PLT_ActionReference&          action, 
-                                        const char*                   object_id, 
-                                        const char*                   filter,
-                                        NPT_UInt32                    starting_index,
-                                        NPT_UInt32                    requested_count,
-                                        const char*                   sort_criteria,
-                                        const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnBrowseDirectChildren(PLT_ActionReference&          action, 
-                                              const char*                   object_id, 
-                                              const char*                   filter,
-                                              NPT_UInt32                    starting_index,
-                                              NPT_UInt32                    requested_count,
-                                              const char*                   sort_criteria,
-                                              const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnSearchContainer(PLT_ActionReference&          action, 
-                                         const char*                   object_id, 
-                                         const char*                   search_criteria,
-                                         const char*                   filter,
-                                         NPT_UInt32                    starting_index,
-                                         NPT_UInt32                    requested_count,
-                                         const char*                   sort_criteria, 
-                                         const PLT_HttpRequestContext& context);
-    virtual NPT_Result ProcessFileRequest(NPT_HttpRequest&              request, 
-                                          const NPT_HttpRequestContext& context,
-                                          NPT_HttpResponse&             response);
-    
-    // overridable methods
-    virtual NPT_Result ExtractResourcePath(const NPT_HttpUrl& url, NPT_String& file_path);
-    virtual NPT_String BuildResourceUri(const NPT_HttpUrl& base_uri, const char* host, const char* file_path);
-    virtual NPT_Result ServeFile(const NPT_HttpRequest&        request, 
-                                 const NPT_HttpRequestContext& context,
-                                 NPT_HttpResponse&             response,
-                                 const NPT_String&             file_path);
-    virtual NPT_Result GetFilePath(const char* object_id, NPT_String& filepath);
-    virtual bool       ProcessFile(const NPT_String&, const char* filter = NULL) { NPT_COMPILER_UNUSED(filter); return true;}
-    virtual PLT_MediaObject* BuildFromFilePath(const NPT_String&             filepath, 
-                                               const PLT_HttpRequestContext& context,
-                                               bool                          with_count = true,
-                                               bool                          keep_extension_in_title = false,
-                                               bool                          allip = false);
-    
-protected:
-    friend class PLT_MediaItem;
-    
-    NPT_String  m_UrlRoot;
-    NPT_String  m_FileRoot;
-    bool        m_FilterUnknownOut;
-    bool        m_UseCache;
-    
-    PLT_MediaCache<NPT_Reference<NPT_List<NPT_String> >, NPT_TimeStamp> m_DirCache;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_FileMediaServer
-+---------------------------------------------------------------------*/
-/**
- File Media Server.
- The PLT_FileMediaServer class is an example of a PLT_MediaServer implementation
- for a file system backed Media Server.
- */
-class PLT_FileMediaServer : public PLT_MediaServer,
-                            public PLT_FileMediaServerDelegate
-{
-public:    // constructor
-    PLT_FileMediaServer(const char*  file_root,
-                        const char*  friendly_name,
-                        bool         show_ip = false,
-                        const char*  uuid = NULL,
-                        NPT_UInt16   port = 0,
-                        bool         port_rebind = false) :
-        PLT_MediaServer(friendly_name, 
-                        show_ip,
-                        uuid, 
-                        port,
-                        port_rebind),
-        PLT_FileMediaServerDelegate("/", file_root) {SetDelegate(this);}
-
-protected:
-    virtual ~PLT_FileMediaServer() {}
-};
-
-#endif /* _PLT_FILE_MEDIA_SERVER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltFrameBuffer.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltFrameBuffer.h
deleted file mode 100644
index aa270df..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltFrameBuffer.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Frame Buffer
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_FRAME_BUFFER_H_
-#define _PLT_FRAME_BUFFER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   PLT_FrameBuffer
-+---------------------------------------------------------------------*/
-class PLT_FrameBuffer 
-{
- public:
-    // constructor & destructor
-    PLT_FrameBuffer(const char* mime_type);
-    virtual ~PLT_FrameBuffer();
-    
-    void Reset();
-    void Abort();
-    void AddReader()    { m_Readers.Increment(); }
-    void RemoveReader() { m_Readers.Decrement(); }
-    int  GetNbReaders() { return m_Readers.GetValue(); }
-    const char* GetMimeType() { return m_MimeType; }
-
-    // data buffer handling methods
-    virtual NPT_Result SetNextFrame(const NPT_Byte* buffer, NPT_Size bufferSize);
-    virtual NPT_Result GetNextFrame(NPT_UInt32&     last_frame_index, 
-                                    NPT_DataBuffer& buffer, 
-                                    NPT_Timeout     timeout = NPT_TIMEOUT_INFINITE);
-
- protected:
-    // members
-    NPT_String         m_MimeType;
-    bool               m_Aborted;
-    NPT_SharedVariable m_FrameIndex;
-    NPT_DataBuffer     m_Frame;
-    NPT_Mutex          m_FrameLock;
-    NPT_AtomicVariable m_Readers;
-};
-
-#endif // _PLT_FRAME_BUFFER_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltFrameServer.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltFrameServer.h
deleted file mode 100644
index 62a730a..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltFrameServer.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Frame Server
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_FRAME_SERVER_H_
-#define _PLT_FRAME_SERVER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttpServer.h"
-#include "PltFrameBuffer.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_SocketPolicyServer;
-
-/*----------------------------------------------------------------------
-|   PLT_StreamValidator class
-+---------------------------------------------------------------------*/
-class PLT_StreamValidator
-{
-public:
-    virtual ~PLT_StreamValidator() {}
-    virtual bool OnNewRequestAccept(const NPT_HttpRequest&          request, 
-                                    const NPT_HttpRequestContext&   context,
-                                    NPT_HttpResponse&               response, 
-                                    NPT_Reference<PLT_FrameBuffer>& buffer) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_HttpStreamRequestHandler
-+---------------------------------------------------------------------*/
-class PLT_HttpStreamRequestHandler : public NPT_HttpRequestHandler
-{
-public:
-    // constructor
-    PLT_HttpStreamRequestHandler(PLT_StreamValidator& stream_validator) :
-        m_StreamValidator(stream_validator) {}
-
-    // NPT_HttpRequestHandler methods
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request, 
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response);
-
-private:
-    PLT_StreamValidator& m_StreamValidator;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_FrameServer class
-+---------------------------------------------------------------------*/
-class PLT_FrameServer : public PLT_HttpServer
-{
-public:
-    PLT_FrameServer(const char*          resource_name,
-                    PLT_StreamValidator& stream_validator,
-                    NPT_IpAddress        address = NPT_IpAddress::Any,
-                    NPT_UInt16           port = 0,
-                    bool                 policy_server_enabled = false);
-    virtual ~PLT_FrameServer();
-    
-    virtual NPT_Result Start();
-
-protected:
-    PLT_SocketPolicyServer* m_PolicyServer;
-    PLT_StreamValidator&    m_StreamValidator;
-    bool                    m_PolicyServerEnabled;
-};
-
-#endif /* _PLT_FRAME_SERVER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltFrameStream.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltFrameStream.h
deleted file mode 100644
index 0eda3c3..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltFrameStream.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Frame Stream
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_FRAMESTREAM_H_
-#define _PLT_FRAMESTREAM_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltFrameBuffer.h"
-
-/*----------------------------------------------------------------------
-|   PLT_InputFrameStream
-+---------------------------------------------------------------------*/
-class PLT_InputFrameStream : public NPT_InputStream
-{
-public:
-    // methods
-    PLT_InputFrameStream(NPT_Reference<PLT_FrameBuffer>& frame_buffer,
-                         const char*                     boundary);
-    virtual ~PLT_InputFrameStream();
-
-    // NPT_InputStream methods
-    NPT_Result Read(void*     buffer, 
-                    NPT_Size  bytes_to_read, 
-                    NPT_Size* bytes_read = 0);
-
-    NPT_Result Seek(NPT_Position offset)      { NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-    NPT_Result Skip(NPT_Size offset)          { NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-    NPT_Result Tell(NPT_Position& offset)     { NPT_COMPILER_UNUSED(offset); return NPT_FAILURE; }
-    NPT_Result GetSize(NPT_LargeSize& size)   { NPT_COMPILER_UNUSED(size);   return NPT_FAILURE; }
-    NPT_Result GetAvailable(NPT_LargeSize& available);
-        
-private:
-    NPT_Result FillBuffer();
-
-protected:
-    NPT_Reference<PLT_FrameBuffer> m_FrameBuffer;
-    NPT_MemoryStream               m_Part;
-    NPT_UInt32                     m_LastFrameIndex;
-    NPT_String                     m_Boundary;
-    bool                           m_Eos;
-};
-
-typedef NPT_Reference<PLT_InputFrameStream> PLT_InputFrameStreamReference;
-
-#endif /* _PLT_FRAMESTREAM_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltHttp.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltHttp.h
deleted file mode 100644
index fc3d1b5..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltHttp.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - HTTP Helper
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- HTTP utilities
- */
-
-#ifndef _PLT_HTTP_H_
-#define _PLT_HTTP_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltVersion.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#if !defined(PLT_HTTP_DEFAULT_USER_AGENT)
-#define PLT_HTTP_DEFAULT_USER_AGENT "UPnP/1.0 DLNADOC/1.50 Platinum/" PLT_PLATINUM_SDK_VERSION_STRING
-#endif
-
-#if !defined(PLT_HTTP_DEFAULT_SERVER)
-#define PLT_HTTP_DEFAULT_SERVER "UPnP/1.0 DLNADOC/1.50 Platinum/" PLT_PLATINUM_SDK_VERSION_STRING
-#endif
-
-/*----------------------------------------------------------------------
-|   types
-+---------------------------------------------------------------------*/
-typedef enum {
-	PLT_DEVICE_UNKNOWN,
-	PLT_DEVICE_XBOX,
-	PLT_DEVICE_PS3,
-	PLT_DEVICE_WMP,
-    PLT_DEVICE_SONOS,
-    PLT_DEVICE_MAC,
-    PLT_DEVICE_WINDOWS,
-    PLT_DEVICE_VLC
-} PLT_DeviceSignature;
-
-/*----------------------------------------------------------------------
-|   PLT_HttpHelper
-+---------------------------------------------------------------------*/
-/**
- The PLT_HttpHelper class is a set of utility functions for manipulating 
- HTTP headers, entities and messages.
- */
-class PLT_HttpHelper {
-public:
-    static bool         IsConnectionKeepAlive(NPT_HttpMessage& message);
-    static bool         IsBodyStreamSeekable(NPT_HttpMessage& message);
-
-    static NPT_Result   ToLog(NPT_LoggerReference logger, int level, const char* prefix, NPT_HttpRequest* request);
-    static NPT_Result   ToLog(NPT_LoggerReference logger, int level, const char* prefix, const NPT_HttpRequest& request);
-    static NPT_Result   ToLog(NPT_LoggerReference logger, int level, const char* prefix, NPT_HttpResponse* response);
-    static NPT_Result   ToLog(NPT_LoggerReference logger, int level, const char* prefix, const NPT_HttpResponse& response);
-
-    static NPT_Result   GetContentType(const NPT_HttpMessage& message, NPT_String& type);
-    static NPT_Result   GetContentLength(const NPT_HttpMessage& message, NPT_LargeSize& len);
-
-    static NPT_Result   GetHost(const NPT_HttpRequest& request, NPT_String& value);
-    static void         SetHost(NPT_HttpRequest& request, const char* host);
-	static PLT_DeviceSignature GetDeviceSignature(const NPT_HttpRequest& request);
-
-    static NPT_Result   SetBody(NPT_HttpMessage& message, NPT_String& text, NPT_HttpEntity** entity = NULL);
-    static NPT_Result   SetBody(NPT_HttpMessage& message, const char* text, NPT_HttpEntity** entity = NULL);
-    static NPT_Result   SetBody(NPT_HttpMessage& message, const void* body, NPT_LargeSize len, NPT_HttpEntity** entity = NULL);
-    static NPT_Result   SetBody(NPT_HttpMessage& message, NPT_InputStreamReference stream, NPT_HttpEntity** entity = NULL);
-    static NPT_Result   GetBody(const NPT_HttpMessage& message, NPT_String& body);
-    static NPT_Result   ParseBody(const NPT_HttpMessage& message, NPT_XmlElementNode*& xml);
-
-	static void			SetBasicAuthorization(NPT_HttpRequest& request, const char* username, const char* password);
-};
-
-/*----------------------------------------------------------------------
-|   PLT_HttpRequestContext
-+---------------------------------------------------------------------*/
-/** 
- The PLT_HttpRequestContext class holds information about the request sent, the
- local & remote ip addresses and ports associated with a connection. It is used
- mostly when processing a HTTP response.
- */
-class PLT_HttpRequestContext : public NPT_HttpRequestContext {
-public:
-    // constructors and destructor
-    PLT_HttpRequestContext(const NPT_HttpRequest& request) : 
-        m_Request(request) {}
-    PLT_HttpRequestContext(const NPT_HttpRequest& request, const NPT_HttpRequestContext& context) :
-        NPT_HttpRequestContext(&context.GetLocalAddress(), &context.GetRemoteAddress()),
-        m_Request(request) {}
-    virtual ~PLT_HttpRequestContext() {}
-    
-    const NPT_HttpRequest& GetRequest() const { return m_Request; }
-	PLT_DeviceSignature GetDeviceSignature() { return PLT_HttpHelper::GetDeviceSignature(m_Request); }
-    
-private:
-    const NPT_HttpRequest& m_Request;
-};
-
-/*----------------------------------------------------------------------
-|   macros
-+---------------------------------------------------------------------*/
-#if defined(NPT_CONFIG_ENABLE_LOGGING)
-#define PLT_LOG_HTTP_MESSAGE_L(_logger, _level, _prefix, _msg) \
-    PLT_HttpHelper::ToLog((_logger), (_level), (_prefix), (_msg))
-#define PLT_LOG_HTTP_MESSAGE(_level, _prefix, _msg) \
-	PLT_HttpHelper::ToLog((_NPT_LocalLogger), (_level), (_prefix), (_msg))
-
-#else /* NPT_CONFIG_ENABLE_LOGGING */
-#define PLT_LOG_HTTP_MESSAGE_L(_logger, _level, _prefix, _msg)
-#define PLT_LOG_HTTP_MESSAGE(_level, _prefix, _msg)
-#endif /* NPT_CONFIG_ENABLE_LOGGING */
-
-/*----------------------------------------------------------------------
-|   PLT_HttpRequestHandler
-+---------------------------------------------------------------------*/
-/**
- The PLT_HttpRequestHandler class delegates the handling of the response of a
- received HTTP request by a HTTP Server.
- */
-class PLT_HttpRequestHandler : public NPT_HttpRequestHandler
-{
-public:
-    PLT_HttpRequestHandler(NPT_HttpRequestHandler* delegate) : 
-        m_Delegate(delegate) {}
-    virtual ~PLT_HttpRequestHandler() {}
-
-    // NPT_HttpRequestHandler methods
-    NPT_Result SetupResponse(NPT_HttpRequest&              request, 
-                             const NPT_HttpRequestContext& context,
-                             NPT_HttpResponse&             response) {
-        return m_Delegate->SetupResponse(request, context, response);
-    }
-
-private:
-    NPT_HttpRequestHandler* m_Delegate;
-};
-
-#endif /* _PLT_HTTP_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltHttpClientTask.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltHttpClientTask.h
deleted file mode 100644
index 293c592..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltHttpClientTask.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - HTTP Client Tasks
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- HTTP Client tasks
- */
-
-#ifndef _PLT_HTTP_CLIENT_TASK_H_
-#define _PLT_HTTP_CLIENT_TASK_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttp.h"
-#include "PltThreadTask.h"
-
-/*----------------------------------------------------------------------
-|   PLT_HttpClientSocketTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_HttpClientSocketTask class is the base class used to send a HTTP request
- asynchronously using a task (thread). It supports persistent connections
- and HTTP pipelining with automatic fallback and reconnection when HTTP 1.0 
- is used.
- */
-class PLT_HttpClientSocketTask : public PLT_ThreadTask
-{
-friend class PLT_ThreadTask;
-
-public:
-    PLT_HttpClientSocketTask(NPT_HttpRequest* request = NULL, 
-                             bool             wait_forever = false);
-    virtual ~PLT_HttpClientSocketTask();
-
-    virtual NPT_Result AddRequest(NPT_HttpRequest* request);
-    virtual NPT_Result SetHttpClientConfig(const NPT_HttpClient::Config& config);
-
-protected:
-    // PLT_ThreadTask methods
-    virtual void DoAbort();
-    virtual void DoRun();
-
-    virtual NPT_Result ProcessResponse(NPT_Result                    res, 
-                                       const NPT_HttpRequest&        request, 
-                                       const NPT_HttpRequestContext& context,
-                                       NPT_HttpResponse*             response);
-
-private:
-    NPT_Result GetNextRequest(NPT_HttpRequest*& request, NPT_Timeout timeout_ms);
-
-protected:
-    NPT_HttpClient              m_Client;
-    bool                        m_WaitForever;
-    NPT_Queue<NPT_HttpRequest>  m_Requests;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_HttpClientTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_HttpClientTask class is a templatized version of PLT_HttpClientSocketTask
- to support arbitrary delegation of HTTP response handling.
- */
-template <class T>
-class PLT_HttpClientTask : public PLT_HttpClientSocketTask
-{
-public:
-    PLT_HttpClientTask<T>(const NPT_HttpUrl& url, T* data) : 
-        PLT_HttpClientSocketTask(new NPT_HttpRequest(url, 
-                                                     "GET", 
-                                                     NPT_HTTP_PROTOCOL_1_1)), 
-                                 m_Data(data) {}
- protected:
-    virtual ~PLT_HttpClientTask<T>() {}
-
-protected:
-    // PLT_HttpClientSocketTask method
-    NPT_Result ProcessResponse(NPT_Result                    res, 
-                               const NPT_HttpRequest&        request, 
-                               const NPT_HttpRequestContext& context, 
-                               NPT_HttpResponse*             response) {
-        return m_Data->ProcessResponse(res, request, context, response);
-    }
-
-protected:
-    T* m_Data;
-};
-
-#endif /* _PLT_HTTP_CLIENT_TASK_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltHttpServer.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltHttpServer.h
deleted file mode 100644
index 562e141..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltHttpServer.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - HTTP Server
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- HTTP Server
- */
-
-#ifndef _PLT_HTTP_SERVER_H_
-#define _PLT_HTTP_SERVER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttpServerTask.h"
-
-/*----------------------------------------------------------------------
-|   PLT_HttpServer class
-+---------------------------------------------------------------------*/
-/**
- The PLT_HttpServer class provides an asynchronous way to handle multiple HTTP requests
- concurrently. Pipelining requests and keep-alive connections are supported.
- */
-class PLT_HttpServer : public NPT_HttpRequestHandler,
-                       public NPT_HttpServer
-{
-public:
-    PLT_HttpServer(NPT_IpAddress address = NPT_IpAddress::Any,
-                   NPT_IpPort    port = 0,
-                   bool          allow_random_port_on_bind_failure = false,
-                   NPT_Cardinal  max_clients = 50,
-                   bool          reuse_address = false);
-    virtual ~PLT_HttpServer();
-    
-    // class methods
-    static NPT_Result ServeFile(const NPT_HttpRequest&        request, 
-                                const NPT_HttpRequestContext& context,
-                                NPT_HttpResponse&             response, 
-                                NPT_String                    file_path);
-    static NPT_Result ServeStream(const NPT_HttpRequest&        request, 
-                                  const NPT_HttpRequestContext& context,
-                                  NPT_HttpResponse&             response,
-                                  NPT_InputStreamReference&     stream, 
-                                  const char*                   content_type);
-
-    // NPT_HttpRequestHandler methods
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request,
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response);
-
-    // methods
-    virtual NPT_Result   Start();
-    virtual NPT_Result   Stop();
-    virtual unsigned int GetPort() { return m_Port; }
-
-private:
-    PLT_TaskManagerReference        m_TaskManager;
-    NPT_Reference<NPT_HttpServer>   m_Server;
-    NPT_IpAddress                   m_Address;
-    NPT_IpPort                      m_Port;
-    bool                            m_AllowRandomPortOnBindFailure;
-    bool                            m_ReuseAddress;
-    bool                            m_Running;
-    bool                            m_Aborted;
-};
-
-typedef NPT_Reference<PLT_HttpServer> PLT_HttpServerReference;
-
-#endif /* _PLT_HTTP_SERVER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltHttpServerTask.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltHttpServerTask.h
deleted file mode 100644
index 58b2a3f..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltHttpServerTask.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - HTTP Server Tasks
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- HTTP Server Tasks
- */
-
-#ifndef _PLT_HTTP_SERVER_TASK_H_
-#define _PLT_HTTP_SERVER_TASK_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttp.h"
-#include "PltDatagramStream.h"
-#include "PltThreadTask.h"
-
-/*----------------------------------------------------------------------
-|   PLT_HttpServerSocketTask class
-+---------------------------------------------------------------------*/
-/** 
- The PLT_HttpServerSocketTask class is a task used for handling one or more HTTP 
- requests from a client. It is created by a PLT_HttpListenTask instance upon
- receiving a connection request. A PLT_HttpServer will handle the delegation for
- setting up the HTTP response.
- */
-class PLT_HttpServerSocketTask : public PLT_ThreadTask
-{
-    friend class PLT_ThreadTask;
-
-public:
-    PLT_HttpServerSocketTask(NPT_Socket* socket, bool stay_alive_forever = false);
-
-protected:
-    virtual ~PLT_HttpServerSocketTask();
-
-protected:
-    // Request callback handler
-    virtual NPT_Result SetupResponse(NPT_HttpRequest&              request, 
-                                     const NPT_HttpRequestContext& context,
-                                     NPT_HttpResponse&             response) = 0;
-
-    // overridables
-    virtual NPT_Result GetInputStream(NPT_InputStreamReference& stream);
-    virtual NPT_Result GetInfo(NPT_SocketInfo& info);
-
-    // PLT_ThreadTask methods
-    virtual void DoAbort() { if (m_Socket) m_Socket->Cancel(); }
-    virtual void DoRun();
-
-private:
-    virtual NPT_Result Read(NPT_BufferedInputStreamReference& buffered_input_stream, 
-                            NPT_HttpRequest*&                 request,
-                            NPT_HttpRequestContext*           context = NULL);
-    virtual NPT_Result Write(NPT_HttpResponse* response, 
-                             bool&             keep_alive, 
-                             bool              headers_only = false);
-    virtual NPT_Result RespondToClient(NPT_HttpRequest&              request, 
-                                       const NPT_HttpRequestContext& context,
-                                       NPT_HttpResponse*&            response);
-    virtual NPT_Result SendResponseHeaders(NPT_HttpResponse* response,
-                                           NPT_OutputStream& output_stream,
-                                           bool&             keep_alive);
-    virtual NPT_Result SendResponseBody(NPT_HttpResponse* response,
-                                        NPT_OutputStream& output_stream);
-
-protected:
-    NPT_Socket*         m_Socket;
-    bool                m_StayAliveForever;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_HttpServerTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_HttpServerTask class is a version of PLT_HttpServerSocketTask that supports 
- delegation of HTTP request handling.
- */
-class PLT_HttpServerTask : public PLT_HttpServerSocketTask
-{
-public:
-    PLT_HttpServerTask(NPT_HttpRequestHandler* handler, 
-                       NPT_Socket*             socket, 
-                       bool                    keep_alive = false) : 
-        PLT_HttpServerSocketTask(socket, keep_alive), m_Handler(handler) {}
-
-protected:
-    virtual ~PLT_HttpServerTask() {}
-
-    NPT_Result SetupResponse(NPT_HttpRequest&              request, 
-                             const NPT_HttpRequestContext& context,
-                             NPT_HttpResponse&             response) {
-        return m_Handler->SetupResponse(request, context, response);
-    }
-
-protected:
-    NPT_HttpRequestHandler* m_Handler;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_HttpListenTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_HttpListenTask class is used by a PLT_HttpServer to listen for incoming
- connections and spawn a new task for handling each request.
- */
-class PLT_HttpListenTask : public PLT_ThreadTask
-{
-public:
-    PLT_HttpListenTask(NPT_HttpRequestHandler* handler, 
-                       NPT_TcpServerSocket*    socket, 
-                       bool                    owns_socket = true) : 
-        m_Handler(handler), m_Socket(socket), m_OwnsSocket(owns_socket) {}
-
-protected:
-    virtual ~PLT_HttpListenTask() { 
-        if (m_OwnsSocket && m_Socket) delete m_Socket;
-    }
-
-protected:
-    // PLT_ThreadTask methods
-    virtual void DoAbort() { if (m_Socket) m_Socket->Cancel(); }
-    virtual void DoRun();
-
-protected:
-    NPT_HttpRequestHandler* m_Handler;
-    NPT_TcpServerSocket*    m_Socket;
-    bool                    m_OwnsSocket;
-};
-
-#endif /* _PLT_HTTP_SERVER_TASK_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltLeaks.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltLeaks.h
deleted file mode 100644
index 73d1e3a..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltLeaks.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Leaks
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_LEAKS_H_
-#define _PLT_LEAKS_H_ 
-
-/*----------------------------------------------------------------------
-|   functions
-+---------------------------------------------------------------------*/
-#if defined(__cplusplus)
-extern "C" {
-#endif 
-
-void PLT_Leak_Enable(void);
-
-#if defined(__cplusplus)
-}
-#endif 
-
-#endif /* _PLT_LEAKS_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaBrowser.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaBrowser.h
deleted file mode 100644
index 2ee032b..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaBrowser.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media Browser (Media Server Control Point)
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Media Controller implementation.
- */
-
-#ifndef _PLT_MEDIA_BROWSER_H_
-#define _PLT_MEDIA_BROWSER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "PltCtrlPoint.h"
-#include "PltMediaItem.h"
-
-/*----------------------------------------------------------------------
-|   PLT_BrowseInfo
-+---------------------------------------------------------------------*/
-/**
- The PLT_BrowseInfo struct is used to marshall Browse or Search action 
- response results across different threads of execution.
- */
-typedef struct {
-    NPT_String                   object_id;
-    PLT_MediaObjectListReference items;
-    NPT_UInt32                   si;
-    NPT_UInt32                   nr;
-    NPT_UInt32                   tm;
-    NPT_UInt32                   uid;
-} PLT_BrowseInfo;
-
-/*----------------------------------------------------------------------
-|   PLT_MediaBrowserDelegate
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaBrowserDelegate class is an interface for receiving PLT_MediaBrowser
- events or action responses.
- */
-class PLT_MediaBrowserDelegate
-{
-public:
-    virtual ~PLT_MediaBrowserDelegate() {}
-    
-    virtual bool OnMSAdded(PLT_DeviceDataReference& /* device */) { return true; }
-    virtual void OnMSRemoved(PLT_DeviceDataReference& /* device */) {}
-    virtual void OnMSStateVariablesChanged(
-        PLT_Service*                  /*service*/, 
-        NPT_List<PLT_StateVariable*>* /*vars*/) {}
-
-    // ContentDirectory
-    virtual void OnBrowseResult(
-        NPT_Result               /*res*/, 
-        PLT_DeviceDataReference& /*device*/, 
-        PLT_BrowseInfo*          /*info*/, 
-        void*                    /*userdata*/) {}
-
-	virtual void OnSearchResult(
-        NPT_Result               /*res*/, 
-        PLT_DeviceDataReference& /*device*/, 
-        PLT_BrowseInfo*          /*info*/, 
-        void*                    /*userdata*/) {}
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaBrowser
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaBrowser class implements a UPnP AV Media Server control point.
- */
-class PLT_MediaBrowser : public PLT_CtrlPointListener
-{
-public:
-    PLT_MediaBrowser(PLT_CtrlPointReference&   ctrl_point,
-                     PLT_MediaBrowserDelegate* delegate = NULL);
-    virtual ~PLT_MediaBrowser();
-
-    // ContentDirectory service
-    virtual NPT_Result Browse(PLT_DeviceDataReference& device, 
-                              const char*              object_id, 
-                              NPT_UInt32               start_index,
-                              NPT_UInt32               count = 30, // DLNA recommendations
-                              bool                     browse_metadata = false,
-                              const char*              filter = "dc:date,upnp:genre,res,res at duration,res at size,upnp:albumArtURI,upnp:originalTrackNumber,upnp:album,upnp:artist,upnp:author", // explicitely specify res otherwise WMP won't return a URL!
-                              const char*              sort_criteria = "",
-                              void*                    userdata = NULL);
-
-	virtual NPT_Result Search(PLT_DeviceDataReference& device, 
-		                      const char*              container_id,
-							  const char*              search_criteria,
-				              NPT_UInt32               start_index,
-					          NPT_UInt32               count = 30, // DLNA recommendations
-                              const char*              filter = "dc:date,upnp:genre,res,res at duration,res at size,upnp:albumArtURI,upnp:originalTrackNumber,upnp:album,upnp:artist,upnp:author", // explicitely specify res otherwise WMP won't return a URL!
-						  	  void*                    userdata = NULL);
-
-    // methods
-    virtual const NPT_Lock<PLT_DeviceDataReferenceList>& GetMediaServers() { return m_MediaServers; }
-    virtual NPT_Result FindServer(const char* uuid, PLT_DeviceDataReference& device);    
-    virtual void SetDelegate(PLT_MediaBrowserDelegate* delegate) { m_Delegate = delegate; }
-
-protected:
-    // PLT_CtrlPointListener methods
-    virtual NPT_Result OnDeviceAdded(PLT_DeviceDataReference& device);
-    virtual NPT_Result OnDeviceRemoved(PLT_DeviceDataReference& device);
-    virtual NPT_Result OnActionResponse(NPT_Result res, PLT_ActionReference& action, void* userdata);
-    virtual NPT_Result OnEventNotify(PLT_Service* service, NPT_List<PLT_StateVariable*>* vars);
-    
-    // ContentDirectory service responses
-    virtual NPT_Result OnBrowseResponse(NPT_Result               res, 
-                                        PLT_DeviceDataReference& device, 
-                                        PLT_ActionReference&     action, 
-                                        void*                    userdata);
-
-	virtual NPT_Result OnSearchResponse(NPT_Result               res, 
-                                        PLT_DeviceDataReference& device, 
-                                        PLT_ActionReference&     action, 
-                                        void*                    userdata);
-    
-protected:
-    PLT_CtrlPointReference                m_CtrlPoint;
-    PLT_MediaBrowserDelegate*             m_Delegate;
-    NPT_Lock<PLT_DeviceDataReferenceList> m_MediaServers;
-};
-
-#endif /* _PLT_MEDIA_BROWSER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaCache.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaCache.h
deleted file mode 100644
index 8e365d8..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaCache.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media Cache
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- Simple Object Caching utility.
- */
-
-#ifndef _PLT_MEDIA_CACHE_H_
-#define _PLT_MEDIA_CACHE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   PLT_MediaCache
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaCache template provides a way to hold references to object in 
- memory. 
- */ 
-template <typename T, typename U>
-class PLT_MediaCache
-{
-public:
-    typedef typename NPT_Map<NPT_String,T>::Entry ElementEntry;
-    typedef typename NPT_List<ElementEntry*>::Iterator ElementIterator;
-
-    PLT_MediaCache<T,U>() {}
-    virtual ~PLT_MediaCache<T,U>() {}
-
-    NPT_Result Put(const char* root, const char* key, T& value, U* tag = NULL);
-    NPT_Result Get(const char* root, const char* key, T& value, U* tag = NULL);
-    NPT_Result Clear(const char* root, const char* key);
-    NPT_Result Clear(const char* root = NULL);
-
-private:
-    // methods
-    NPT_String GenerateKey(const char* root, const char* key);
-
-private:
-    // members
-    NPT_Mutex              m_Mutex;
-    NPT_Map<NPT_String, T> m_Items;
-    NPT_Map<NPT_String, U> m_Tags;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaCache::GenerateKey
-+---------------------------------------------------------------------*/
-template <typename T, typename U>
-inline
-NPT_String
-PLT_MediaCache<T,U>::GenerateKey(const char* root, const char* key)
-{
-    // TODO: There could be collision
-    NPT_String result = root;
-    result += "/";
-    result += key;
-    return result;
-}
-
-/*----------------------------------------------------------------------
-|   PLT_MediaCache::Put
-+---------------------------------------------------------------------*/
-template <typename T, typename U>
-inline
-NPT_Result
-PLT_MediaCache<T,U>::Put(const char* root,
-                         const char* key, 
-                         T&          value,
-                         U*          tag)
-{
-    NPT_AutoLock lock(m_Mutex);
-
-    NPT_String fullkey = GenerateKey(root, key);
-    if (fullkey.GetLength() == 0) return NPT_ERROR_INVALID_PARAMETERS;
-
-    m_Items.Erase(fullkey);
-    NPT_CHECK(m_Items.Put(fullkey, value));
-    
-    if (tag) NPT_CHECK(m_Tags.Put(fullkey, *tag));
-    
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   PLT_MediaCache::Get
-+---------------------------------------------------------------------*/
-template <typename T, typename U>
-inline
-NPT_Result
-PLT_MediaCache<T,U>::Get(const char* root,
-                         const char* key,
-                         T&          value,
-                         U*          tag /* = NULL */)
-{
-    NPT_AutoLock lock(m_Mutex);
-
-    NPT_String fullkey = GenerateKey(root, key);
-    if (fullkey.GetLength() == 0) return NPT_ERROR_INVALID_PARAMETERS;
-    
-    T* _value = NULL;
-    NPT_CHECK(m_Items.Get(fullkey, _value));
-    
-    U* _tag;
-    if (tag) {
-        m_Tags.Get(fullkey, _tag);
-        if (_tag) *tag = *_tag;
-    }
-
-    value = *_value;
-    return NPT_SUCCESS;
-}
-
-/*----------------------------------------------------------------------
-|   PLT_MediaCache::Clear
-+---------------------------------------------------------------------*/
-template <typename T, typename U>
-inline
-NPT_Result 
-PLT_MediaCache<T,U>::Clear(const char* root, const char* key) 
-{
-    NPT_AutoLock lock(m_Mutex);
-
-    NPT_String fullkey = GenerateKey(root, key);
-    if (fullkey.GetLength() == 0) return NPT_ERROR_INVALID_PARAMETERS;
-
-    ElementIterator entries = m_Items.GetEntries().GetFirstItem();
-    ElementIterator entry;
-    while (entries) {
-        entry = entries++;
-        if ((*entry)->GetKey() == (fullkey)) {
-            m_Items.Erase(fullkey);
-            m_Tags.Erase(fullkey);
-            return NPT_SUCCESS;
-        }
-    }
-
-    return NPT_ERROR_NO_SUCH_ITEM;
-}
-
-/*----------------------------------------------------------------------
-|   PLT_MediaCache::Clear
-+---------------------------------------------------------------------*/
-template <typename T, typename U>
-inline
-NPT_Result
-PLT_MediaCache<T,U>::Clear(const char* root)
-{
-    NPT_AutoLock lock(m_Mutex);
-
-    if (!root || root[0]=='\0') 
-        return m_Items.Clear();
-
-    NPT_String key = GenerateKey(root, "");
-    ElementIterator entries = m_Items.GetEntries().GetFirstItem();
-    ElementIterator entry;
-    while (entries) {
-        entry = entries++;
-        NPT_String entry_key = (*entry)->GetKey();
-        if (entry_key.StartsWith(key)) {
-            m_Items.Erase(entry_key);
-            m_Tags.Erase(entry_key);
-        }
-    }
-
-    return NPT_SUCCESS;
-}
-
-#endif /* _PLT_MEDIA_CACHE_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaConnect.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaConnect.h
deleted file mode 100644
index c9ada41..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaConnect.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*****************************************************************
-|
-|      Platinum - AV Media Connect Device
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_MEDIA_CONNECT_H_
-#define _PLT_MEDIA_CONNECT_H_
-
-/*----------------------------------------------------------------------
-|       includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltFileMediaServer.h"
-
-/*----------------------------------------------------------------------
-|   PLT_MediaConnect
-+---------------------------------------------------------------------*/
-class PLT_MediaConnect : public PLT_MediaServer
-{
-public:
-    // class methods
-    static NPT_Result GetMappedObjectId(const char* object_id, 
-                                        NPT_String& mapped_object_id);
-    
-    // constructor
-    PLT_MediaConnect(const char*  friendly_name,
-                     bool         add_hostname = true,
-                     const char*  udn = NULL,
-                     NPT_UInt16   port = 0,
-                     bool         port_rebind = false);
-
-protected:
-    virtual ~PLT_MediaConnect();
-    
-    // PLT_DeviceHost methods
-    virtual NPT_Result SetupServices();
-    virtual NPT_Result OnAction(PLT_ActionReference&          action, 
-                                const PLT_HttpRequestContext& context);
-    virtual NPT_Result ProcessGetDescription(NPT_HttpRequest&              request,
-                                             const NPT_HttpRequestContext& context,
-                                             NPT_HttpResponse&             response);
-    virtual NPT_Result ProcessGetSCPD(PLT_Service*                  service,
-                                      NPT_HttpRequest&              request,
-                                      const NPT_HttpRequestContext& context,
-                                      NPT_HttpResponse&             response);
-
-    // X_MS_MediaReceiverRegistrar
-    virtual NPT_Result OnIsAuthorized(PLT_ActionReference&  action);
-    virtual NPT_Result OnRegisterDevice(PLT_ActionReference&  action);
-    virtual NPT_Result OnIsValidated(PLT_ActionReference&  action);
-
-protected:
-	NPT_Mutex   m_Lock;
-    bool        m_AddHostname;
-};
-
-/*----------------------------------------------------------------------
- |   PLT_FileMediaConnectDelegate class
- +---------------------------------------------------------------------*/
-class PLT_FileMediaConnectDelegate : public PLT_FileMediaServerDelegate
-{
-public:
-    // constructor & destructor
-    PLT_FileMediaConnectDelegate(const char* url_root, const char* file_root) :
-        PLT_FileMediaServerDelegate(url_root, file_root) {}
-    virtual ~PLT_FileMediaConnectDelegate() {}
-    
-    // PLT_FileMediaServerDelegate methods
-    virtual NPT_Result GetFilePath(const char* object_id, NPT_String& filepath);
-    virtual NPT_Result OnSearchContainer(PLT_ActionReference&          action, 
-                                         const char*                   object_id, 
-                                         const char*                   search_criteria,
-                                         const char*                   filter,
-                                         NPT_UInt32                    starting_index,
-                                         NPT_UInt32                    requested_count,
-                                         const char*                   sort_criteria, 
-                                         const PLT_HttpRequestContext& context);
-};
-
-#endif /* _PLT_MEDIA_CONNECT_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaController.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaController.h
deleted file mode 100644
index 672c12a..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaController.h
+++ /dev/null
@@ -1,344 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media Controller (Media Renderer Control Point)
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-| 
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_MEDIA_CONTROLLER_H_
-#define _PLT_MEDIA_CONTROLLER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "PltCtrlPoint.h"
-#include "PltMediaItem.h"
-
-/*----------------------------------------------------------------------
-|   Defines
-+---------------------------------------------------------------------*/
-typedef NPT_List<NPT_String> PLT_StringList;
-
-typedef struct {
-    PLT_StringList play_media;
-    PLT_StringList rec_media;
-    PLT_StringList rec_quality_modes;
-} PLT_DeviceCapabilities;
-
-typedef struct {
-    NPT_UInt32    num_tracks;
-    NPT_TimeStamp media_duration;
-    NPT_String    cur_uri;
-    NPT_String    cur_metadata;
-    NPT_String    next_uri;
-    NPT_String    next_metadata;
-    NPT_String    play_medium;
-    NPT_String    rec_medium;
-    NPT_String    write_status;
-} PLT_MediaInfo;
-
-typedef struct {
-    NPT_UInt32    track;
-    NPT_TimeStamp track_duration;
-    NPT_String    track_metadata;
-    NPT_String    track_uri;
-    NPT_TimeStamp rel_time;
-    NPT_TimeStamp abs_time;
-    NPT_Int32     rel_count;
-    NPT_Int32     abs_count;
-} PLT_PositionInfo;
-
-typedef struct {
-    NPT_String cur_transport_state;
-    NPT_String cur_transport_status;
-    NPT_String cur_speed;
-} PLT_TransportInfo;
-
-typedef struct {
-    NPT_String play_mode;
-    NPT_String rec_quality_mode;
-} PLT_TransportSettings;
-
-typedef struct {
-    NPT_UInt32 rcs_id;
-    NPT_UInt32 avtransport_id;
-    NPT_String protocol_info;
-    NPT_String peer_connection_mgr;
-    NPT_UInt32 peer_connection_id;
-    NPT_String direction;
-    NPT_String status;
-} PLT_ConnectionInfo;
-
-/*----------------------------------------------------------------------
-|   PLT_MediaControllerDelegate
-+---------------------------------------------------------------------*/
-class PLT_MediaControllerDelegate
-{
-public:
-    virtual ~PLT_MediaControllerDelegate() {}
-
-    virtual bool OnMRAdded(PLT_DeviceDataReference& /* device */) { return true; }
-    virtual void OnMRRemoved(PLT_DeviceDataReference& /* device */) {}
-    virtual void OnMRStateVariablesChanged(PLT_Service*                  /* service */, 
-                                           NPT_List<PLT_StateVariable*>* /* vars */) {}
-
-    // AVTransport
-    virtual void OnGetCurrentTransportActionsResult(
-        NPT_Result               /* res */, 
-        PLT_DeviceDataReference& /* device */,
-        PLT_StringList*          /* actions */, 
-        void*                    /* userdata */) {}
-
-    virtual void OnGetDeviceCapabilitiesResult(
-        NPT_Result               /* res */, 
-        PLT_DeviceDataReference& /* device */,
-        PLT_DeviceCapabilities*  /* capabilities */,
-        void*                    /* userdata */) {}
-
-    virtual void OnGetMediaInfoResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        PLT_MediaInfo*           /* info */,
-        void*                    /* userdata */) {}
-
-    virtual void OnGetPositionInfoResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        PLT_PositionInfo*        /* info */,
-        void*                    /* userdata */) {}
-
-    virtual void OnGetTransportInfoResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        PLT_TransportInfo*       /* info */,
-        void*                    /* userdata */) {}
-
-    virtual void OnGetTransportSettingsResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        PLT_TransportSettings*   /* settings */,
-        void*                    /* userdata */) {}
-
-    virtual void OnNextResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-    virtual void OnPauseResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}  
-
-    virtual void OnPlayResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-    virtual void OnPreviousResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-    virtual void OnSeekResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-    virtual void OnSetAVTransportURIResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-    virtual void OnSetPlayModeResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-    virtual void OnStopResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-        
-    // ConnectionManager
-    virtual void OnGetCurrentConnectionIDsResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        PLT_StringList*          /* ids */,
-        void*                    /* userdata */) {}
-
-    virtual void OnGetCurrentConnectionInfoResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        PLT_ConnectionInfo*      /* info */,
-        void*                    /* userdata */) {}
-
-    virtual void OnGetProtocolInfoResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        PLT_StringList*          /* sources */,
-        PLT_StringList*          /* sinks */,
-        void*                    /* userdata */) {}
-        
-    // RenderingControl
-    virtual void OnSetMuteResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-    virtual void OnGetMuteResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        const char*              /* channel */,
-        bool                     /* mute */,
-        void*                    /* userdata */) {}
-
-	virtual void OnSetVolumeResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-        void*                    /* userdata */) {}
-
-	virtual void OnGetVolumeResult(
-        NPT_Result               /* res */,
-        PLT_DeviceDataReference& /* device */,
-		const char*              /* channel */,
-    	NPT_UInt32				 /* volume */,
-	    void*                    /* userdata */) {}
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaController
-+---------------------------------------------------------------------*/
-class PLT_MediaController : public PLT_CtrlPointListener
-{
-public:
-    PLT_MediaController(PLT_CtrlPointReference&      ctrl_point, 
-                        PLT_MediaControllerDelegate* delegate = NULL);
-    virtual ~PLT_MediaController();
-
-    // public methods
-    virtual void SetDelegate(PLT_MediaControllerDelegate* delegate) {
-        m_Delegate = delegate;
-    }
-
-    // PLT_CtrlPointListener methods
-    virtual NPT_Result OnDeviceAdded(PLT_DeviceDataReference& device);
-    virtual NPT_Result OnDeviceRemoved(PLT_DeviceDataReference& device);
-    virtual NPT_Result OnActionResponse(NPT_Result res, PLT_ActionReference& action, void* userdata);
-    virtual NPT_Result OnEventNotify(PLT_Service* service, NPT_List<PLT_StateVariable*>* vars);
-
-    // AVTransport
-    NPT_Result GetCurrentTransportActions(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result GetDeviceCapabilities(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result GetMediaInfo(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result GetPositionInfo(PLT_DeviceDataReference& device,  NPT_UInt32 instance_id, void* userdata);
-    NPT_Result GetTransportInfo(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result GetTransportSettings(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result Next(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result Pause(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result Play(PLT_DeviceDataReference&  device, NPT_UInt32 instance_id, NPT_String speed, void* userdata);
-    NPT_Result Previous(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-    NPT_Result Seek(PLT_DeviceDataReference&  device, NPT_UInt32 instance_id, NPT_String unit, NPT_String target, void* userdata);
-    bool       CanSetNextAVTransportURI(PLT_DeviceDataReference& device);
-    NPT_Result SetAVTransportURI(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, const char* uri, const char* metadata, void* userdata);
-    NPT_Result SetNextAVTransportURI(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, const char* next_uri, const char* next_metadata, void* userdata);
-    NPT_Result SetPlayMode(PLT_DeviceDataReference&  device, NPT_UInt32 instance_id, NPT_String new_play_mode, void* userdata);
-    NPT_Result Stop(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, void* userdata);
-
-    // ConnectionManager
-    NPT_Result GetCurrentConnectionIDs(PLT_DeviceDataReference& device, void* userdata);
-    NPT_Result GetCurrentConnectionInfo(PLT_DeviceDataReference& device, NPT_UInt32 connection_id, void* userdata);
-    NPT_Result GetProtocolInfo(PLT_DeviceDataReference& device, void* userdata);
-    
-    // RenderingControl
-    NPT_Result SetMute(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, const char* channel, bool mute, void* userdata);
-    NPT_Result GetMute(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, const char* channel, void* userdata);
-	NPT_Result SetVolume(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, const char* channel, int volume, void* userdata);
-	NPT_Result GetVolume(PLT_DeviceDataReference& device, NPT_UInt32 instance_id, const char* channel, void* userdata);	
-
-    // VariableStates    
-    virtual NPT_Result GetProtocolInfoSink(const NPT_String& device_uuid, NPT_List<NPT_String>& sinks);
-    virtual NPT_Result GetTransportState(const NPT_String&  device_uuid, NPT_String& state);
-    virtual NPT_Result GetVolumeState(const NPT_String&  device_uuid, NPT_UInt32& volume);
-    
-    // methods
-    virtual NPT_Result FindRenderer(const char* uuid, PLT_DeviceDataReference& device);
-    virtual NPT_Result FindMatchingProtocolInfo(NPT_List<NPT_String>& sinks, const char* protocol_info);
-    virtual NPT_Result FindBestResource(PLT_DeviceDataReference& device, PLT_MediaObject& item, NPT_Cardinal& resource_index);
-
-private:
-    NPT_Result InvokeActionWithInstance(PLT_ActionReference& action, NPT_UInt32 instance_id, void* userdata = NULL);
-
-    NPT_Result OnGetCurrentTransportActionsResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    NPT_Result OnGetDeviceCapabilitiesResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    NPT_Result OnGetMediaInfoResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    NPT_Result OnGetPositionInfoResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    NPT_Result OnGetTransportInfoResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    NPT_Result OnGetTransportSettingsResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-
-    NPT_Result OnGetCurrentConnectionIDsResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    NPT_Result OnGetCurrentConnectionInfoResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    NPT_Result OnGetProtocolInfoResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-    
-    NPT_Result OnGetMuteResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-	NPT_Result OnGetVolumeResponse(NPT_Result res, PLT_DeviceDataReference& device, PLT_ActionReference& action, void* userdata);
-
-public:
-    static void ParseCSV(const char* csv, PLT_StringList& values) {
-        const char* start = csv;
-        const char* p = start;
-
-        // look for the , character
-        while (*p) {
-            if (*p == ',') {
-                NPT_String val(start, (int)(p-start));
-                val.Trim(' ');
-                values.Add(val);
-                start = p + 1;
-            }
-            p++;
-        }
-
-        // last one
-        NPT_String last(start, (int)(p-start));
-        last.Trim(' ');
-        if (last.GetLength()) {
-            values.Add(last);
-        }
-    }
-
-private:
-    PLT_CtrlPointReference                m_CtrlPoint;
-    PLT_MediaControllerDelegate*          m_Delegate;
-    NPT_Lock<PLT_DeviceDataReferenceList> m_MediaRenderers;
-};
-
-typedef NPT_Reference<PLT_MediaController> PLT_MediaControllerReference;
-
-#endif /* _PLT_MEDIA_CONTROLLER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaItem.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaItem.h
deleted file mode 100644
index 81f3dc8..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaItem.h
+++ /dev/null
@@ -1,304 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media Item
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Media Object reprensentation.
- */
-
-#ifndef _PLT_MEDIA_ITEM_H_
-#define _PLT_MEDIA_ITEM_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttp.h"
-#include "PltProtocolInfo.h"
-
-/*----------------------------------------------------------------------
-|   typedefs
-+---------------------------------------------------------------------*/
-/**
- The PLT_ObjectClass struct is used to assign a type to a PLT_MediaObject.
- */
-typedef struct { 
-    NPT_String type;
-    NPT_String friendly_name;
-} PLT_ObjectClass;
-
-typedef struct { 
-    NPT_String type;
-    NPT_String friendly_name;
-    bool       include_derived;
-} PLT_SearchClass;
-
-typedef struct {
-    NPT_String name;
-    NPT_String role;
-} PLT_PersonRole;
-
-class PLT_PersonRoles  : public NPT_List<PLT_PersonRole>
-{
-public:
-    NPT_Result Add(const NPT_String& name, const NPT_String& role = "");
-    NPT_Result ToDidl(NPT_String& didl, const NPT_String& tag);
-    NPT_Result FromDidl(const NPT_Array<NPT_XmlElementNode*>& nodes);
-};
-
-typedef struct {
-    NPT_String allowed_use; // (CSV)
-    NPT_String validity_start;
-    NPT_String validity_end;
-    NPT_String remaining_time;
-    NPT_String usage_info;
-    NPT_String rights_info_uri;
-    NPT_String content_info_uri;
-} PLT_Constraint;
-
-typedef struct {
-    PLT_PersonRoles artists;
-    PLT_PersonRoles actors;
-    PLT_PersonRoles authors;
-    NPT_String      producer; //TODO: can be multiple
-    NPT_String      director; //TODO: can be multiple
-    NPT_String      publisher; //TODO: can be multiple
-    NPT_String      contributor; // should match m_Creator (dc:creator) //TODO: can be multiple
-} PLT_PeopleInfo;
-
-typedef struct {
-    NPT_List<NPT_String> genres;
-    NPT_String album; //TODO: can be multiple
-    NPT_String playlist; // dc:title of the playlist item the content belongs too //TODO: can be multiple
-} PLT_AffiliationInfo;
-
-typedef struct {
-    NPT_String description;
-    NPT_String long_description;
-    NPT_String icon_uri;
-    NPT_String region;
-    NPT_String rating;
-    NPT_String rights; //TODO: can be multiple
-    NPT_String date;
-    NPT_String language;
-} PLT_Description;
-
-typedef struct {
-    NPT_String uri;
-    NPT_String dlna_profile;
-} PLT_AlbumArtInfo;
-
-typedef struct {
-    NPT_List<PLT_AlbumArtInfo> album_arts;
-    NPT_String artist_discography_uri;
-    NPT_String lyrics_uri;
-    NPT_List<NPT_String> relations; // dc:relation
-} PLT_ExtraInfo;
-
-typedef struct {
-    NPT_UInt32 dvdregioncode;
-    NPT_UInt32 original_track_number;
-    NPT_String toc;
-    NPT_String user_annotation; //TODO: can be multiple
-} PLT_MiscInfo;
-
-typedef struct {
-    NPT_UInt64 total;
-    NPT_UInt64 used;
-    NPT_UInt64 free;
-    NPT_UInt64 max_partition;
-    NPT_UInt64 medium;
-} PLT_StorageInfo;
-
-typedef struct {
-    NPT_String program_title;
-    NPT_String series_title;
-    NPT_UInt32 episode_number;
-} PLT_RecordedInfo;
-
-/*----------------------------------------------------------------------
-|   PLT_MediaItemResource
-+---------------------------------------------------------------------*/
-class PLT_MediaItemResource
-{
-public:
-    PLT_MediaItemResource();
-    ~PLT_MediaItemResource() {}
-
-    NPT_String       m_Uri;
-    PLT_ProtocolInfo m_ProtocolInfo;
-    NPT_UInt32       m_Duration; /* seconds */
-    NPT_LargeSize    m_Size;
-    NPT_String       m_Protection;
-    NPT_UInt32       m_Bitrate; /* bytes/seconds */
-    NPT_UInt32       m_BitsPerSample;
-    NPT_UInt32       m_SampleFrequency;
-    NPT_UInt32       m_NbAudioChannels;
-    NPT_String       m_Resolution;
-    NPT_UInt32       m_ColorDepth;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaObject
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaObject class is any data entity that can be returned by a
- ContentDirectory Service from a browsing or searching action. This is the
- base class from which PLT_MediaItem and PLT_MediaContainer derive.
- */
-class PLT_MediaObject
-{
-protected:
-    NPT_IMPLEMENT_DYNAMIC_CAST(PLT_MediaObject)
-
-    PLT_MediaObject() : m_Restricted(true) {}
-
-public:
-    virtual ~PLT_MediaObject() {}
-
-    bool IsContainer() { return m_ObjectClass.type.StartsWith("object.container"); }
-
-    static const char* GetUPnPClass(const char* filename, 
-                                    const PLT_HttpRequestContext* context = NULL);
-
-    virtual NPT_Result Reset();
-    virtual NPT_Result ToDidl(const NPT_String& filter, NPT_String& didl);
-    virtual NPT_Result ToDidl(NPT_UInt32 mask, NPT_String& didl);
-    virtual NPT_Result FromDidl(NPT_XmlElementNode* entry);
-
-public:
-    /* common properties */
-    PLT_ObjectClass     m_ObjectClass;
-    NPT_String          m_ObjectID;
-    NPT_String          m_ParentID;
-    NPT_String          m_ReferenceID;
-
-    /* metadata */
-    NPT_String          m_Title;
-    NPT_String          m_Creator;
-    NPT_String          m_Date;
-    PLT_PeopleInfo      m_People;
-    PLT_AffiliationInfo m_Affiliation;
-    PLT_Description     m_Description;
-    PLT_RecordedInfo    m_Recorded;
-
-    /* properties */
-    bool m_Restricted;
-
-    /* extras */
-    PLT_ExtraInfo m_ExtraInfo;
-
-    /* miscellaneous info */
-    PLT_MiscInfo m_MiscInfo;
-
-    /* resources related */
-    NPT_Array<PLT_MediaItemResource> m_Resources;
-
-    /* original DIDL for Control Points to pass to a renderer when invoking SetAVTransportURI */
-    NPT_String m_Didl;    
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaItem
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaItem class represents a first-level class derived directly from
- PLT_MediaObject. It most often represents a single piece of AV data. 
- */
-class PLT_MediaItem : public PLT_MediaObject
-{
-public:
-    NPT_IMPLEMENT_DYNAMIC_CAST_D(PLT_MediaItem, PLT_MediaObject)
-
-    PLT_MediaItem();
-    virtual ~PLT_MediaItem();
-
-    // PLT_MediaObject methods
-    NPT_Result ToDidl(const NPT_String& filter, NPT_String& didl);
-    NPT_Result ToDidl(NPT_UInt32 mask, NPT_String& didl);
-    NPT_Result FromDidl(NPT_XmlElementNode* entry);
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaContainer
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaContainer class represents a first-level class derived directly
- from PLT_MediaObject. A PLT_MediaContainer represents a collection of 
- PLT_MediaObject instances.
- */
-class PLT_MediaContainer : public PLT_MediaObject
-{
-public:
-    NPT_IMPLEMENT_DYNAMIC_CAST_D(PLT_MediaContainer, PLT_MediaObject)
-
-    PLT_MediaContainer();
-    virtual ~PLT_MediaContainer();
-
-    // PLT_MediaObject methods
-    NPT_Result Reset();
-    NPT_Result ToDidl(const NPT_String& filter, NPT_String& didl);
-    NPT_Result ToDidl(NPT_UInt32 mask, NPT_String& didl);
-    NPT_Result FromDidl(NPT_XmlElementNode* entry);
-
-public:
-    NPT_List<PLT_SearchClass> m_SearchClasses;
-
-    /* properties */
-    bool m_Searchable;
-
-    /* container info related */
-    NPT_Int32  m_ChildrenCount;    
-    NPT_UInt32 m_ContainerUpdateID;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaObjectList
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaObjectList class is a list of PLT_MediaObject instances.
- */
-class PLT_MediaObjectList : public NPT_List<PLT_MediaObject*>
-{
-public:
-    PLT_MediaObjectList();
-
-protected:
-    virtual ~PLT_MediaObjectList(void);
-    friend class NPT_Reference<PLT_MediaObjectList>;
-};
-
-typedef NPT_Reference<PLT_MediaObjectList> PLT_MediaObjectListReference;
-typedef NPT_Reference<PLT_MediaObject> PLT_MediaObjectReference;
-
-#endif /* _PLT_MEDIA_ITEM_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaRenderer.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaRenderer.h
deleted file mode 100644
index d596838..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaRenderer.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media Renderer Device
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-| 
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_MEDIA_RENDERER_H_
-#define _PLT_MEDIA_RENDERER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "PltDeviceHost.h"
-
-/*----------------------------------------------------------------------
-|   PLT_MediaRendererDelegate
-+---------------------------------------------------------------------*/
-class PLT_MediaRendererDelegate
-{
-public:
-    virtual ~PLT_MediaRendererDelegate() {}
-
-    // ConnectionManager
-    virtual NPT_Result OnGetCurrentConnectionInfo(PLT_ActionReference& action) = 0;
-
-    // AVTransport
-    virtual NPT_Result OnNext(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnPause(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnPlay(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnPrevious(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnSeek(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnStop(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnSetAVTransportURI(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnSetPlayMode(PLT_ActionReference& action) = 0;
-
-    // RenderingControl
-    virtual NPT_Result OnSetVolume(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnSetVolumeDB(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnGetVolumeDBRange(PLT_ActionReference& action) = 0;
-    virtual NPT_Result OnSetMute(PLT_ActionReference& action) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaRenderer
-+---------------------------------------------------------------------*/
-class PLT_MediaRenderer : public PLT_DeviceHost
-{
-public:
-    PLT_MediaRenderer(const char*  friendly_name,
-                      bool         show_ip = false,
-                      const char*  uuid = NULL,
-                      unsigned int port = 0,
-                      bool         port_rebind = false);
-    // methods
-    virtual void SetDelegate(PLT_MediaRendererDelegate* delegate) { m_Delegate = delegate; }
-
-    // PLT_DeviceHost methods
-    virtual NPT_Result SetupServices();
-    virtual NPT_Result OnAction(PLT_ActionReference&          action, 
-                                const PLT_HttpRequestContext& context);
-
-protected:
-    virtual ~PLT_MediaRenderer();
-
-    // PLT_MediaRendererInterface methods
-    // ConnectionManager
-    virtual NPT_Result OnGetCurrentConnectionInfo(PLT_ActionReference& action);
-
-    // AVTransport
-    virtual NPT_Result OnNext(PLT_ActionReference& action);
-    virtual NPT_Result OnPause(PLT_ActionReference& action);
-    virtual NPT_Result OnPlay(PLT_ActionReference& action);
-    virtual NPT_Result OnPrevious(PLT_ActionReference& action);
-    virtual NPT_Result OnSeek(PLT_ActionReference& action);
-    virtual NPT_Result OnStop(PLT_ActionReference& action);
-    virtual NPT_Result OnSetAVTransportURI(PLT_ActionReference& action);
-    virtual NPT_Result OnSetPlayMode(PLT_ActionReference& action);
-
-    // RenderingControl
-    virtual NPT_Result OnSetVolume(PLT_ActionReference& action);
-    virtual NPT_Result OnSetVolumeDB(PLT_ActionReference &action);
-    virtual NPT_Result OnGetVolumeDBRange(PLT_ActionReference &action);
-    virtual NPT_Result OnSetMute(PLT_ActionReference& action);
-
-private:
-    PLT_MediaRendererDelegate* m_Delegate;
-};
-
-#endif /* _PLT_MEDIA_RENDERER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaServer.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaServer.h
deleted file mode 100644
index fb4f9f3..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaServer.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media Server Device
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Media Server.
- */
-
-#ifndef _PLT_MEDIA_SERVER_H_
-#define _PLT_MEDIA_SERVER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltDeviceHost.h"
-#include "PltMediaItem.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#define MAX_PATH_LENGTH 1024
-
-/*----------------------------------------------------------------------
-|   PLT_MediaServerDelegate
-+---------------------------------------------------------------------*/
-/** 
- The PLT_MediaServerDelegate class is an interface for delegating the handling 
- of the required UPnP AV ContentDirectory service actions. It also handles 
- resource HTTP requests (downloading).
- */
-class PLT_MediaServerDelegate
-{
-public:
-    PLT_MediaServerDelegate() {}
-    virtual ~PLT_MediaServerDelegate() {}
-    
-    virtual NPT_Result OnBrowseMetadata(PLT_ActionReference&          /*action*/, 
-                                        const char*                   /*object_id*/, 
-                                        const char*                   /*filter*/,
-                                        NPT_UInt32                    /*starting_index*/,
-                                        NPT_UInt32                    /*requested_count*/,
-                                        const char*                   /*sort_criteria*/,
-                                        const PLT_HttpRequestContext& /*context*/) = 0;
-    virtual NPT_Result OnBrowseDirectChildren(PLT_ActionReference&          /*action*/, 
-                                              const char*                   /*object_id*/, 
-                                              const char*                   /*filter*/,
-                                              NPT_UInt32                    /*starting_index*/,
-                                              NPT_UInt32                    /*requested_count*/,
-                                              const char*                   /*sort_criteria*/, 
-                                              const PLT_HttpRequestContext& /*context*/) = 0;
-    virtual NPT_Result OnSearchContainer(PLT_ActionReference&          /*action*/, 
-                                         const char*                   /*container_id*/, 
-                                         const char*                   /*search_criteria*/,
- 										 const char*                   /*filter*/,
-                                         NPT_UInt32                    /*starting_index*/,
-                                         NPT_UInt32                    /*requested_count*/,
-                                         const char*                   /*sort_criteria*/, 
-                                         const PLT_HttpRequestContext& /*context*/) = 0;
-    virtual NPT_Result ProcessFileRequest(NPT_HttpRequest&              /*request*/,
-                                          const NPT_HttpRequestContext& /*context*/,
-                                          NPT_HttpResponse&             /*response*/) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MediaServer
-+---------------------------------------------------------------------*/
-/**
- The PLT_MediaServer class implements the base class for a UPnP AV 
- Media Server device.
- */
-class PLT_MediaServer : public PLT_DeviceHost
-{
-public:
-    /* BrowseFlags */
-    enum BrowseFlags {
-        BROWSEMETADATA,
-        BROWSEDIRECTCHILDREN
-    };
-    
-    // class methods
-    static NPT_Result ParseBrowseFlag(const char* str, BrowseFlags& flag);
-    static NPT_Result ParseSort(const NPT_String& sort, NPT_List<NPT_String>& list);
-
-    // constructor
-    PLT_MediaServer(const char*  friendly_name,
-                    bool         show_ip = false,
-                    const char*  uuid = NULL,
-                    NPT_UInt16   port = 0,
-                    bool         port_rebind = false);
-    
-    // methods
-    virtual void SetDelegate(PLT_MediaServerDelegate* delegate) { m_Delegate = delegate; }
-    PLT_MediaServerDelegate* GetDelegate() { return m_Delegate; }
-    virtual void UpdateSystemUpdateID(NPT_UInt32 update);
-    virtual void UpdateContainerUpdateID(const char* id, NPT_UInt32 update);
-    
-protected:
-    virtual ~PLT_MediaServer();
-    
-    // PLT_DeviceHost methods
-    virtual NPT_Result SetupServices();
-    virtual NPT_Result OnAction(PLT_ActionReference&          action, 
-                                const PLT_HttpRequestContext& context);
-    virtual NPT_Result ProcessHttpGetRequest(NPT_HttpRequest&              request, 
-                                             const NPT_HttpRequestContext& context,
-                                             NPT_HttpResponse&             response);
-    
-    // ConnectionManager
-    virtual NPT_Result OnGetCurrentConnectionIDs(PLT_ActionReference&          action, 
-                                                 const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnGetProtocolInfo(PLT_ActionReference&          action, 
-                                         const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnGetCurrentConnectionInfo(PLT_ActionReference&          action, 
-                                                  const PLT_HttpRequestContext& context);
-
-    // ContentDirectory
-    virtual NPT_Result OnGetSortCapabilities(PLT_ActionReference&          action, 
-                                             const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnGetSearchCapabilities(PLT_ActionReference&          action, 
-                                               const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnGetSystemUpdateID(PLT_ActionReference&          action, 
-                                           const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnBrowse(PLT_ActionReference&          action, 
-                                const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnSearch(PLT_ActionReference&          action, 
-                                const PLT_HttpRequestContext& context);
-
-    // overridable methods
-    virtual NPT_Result OnBrowseMetadata(PLT_ActionReference&          action, 
-                                        const char*                   object_id, 
-                                        const char*                   filter,
-                                        NPT_UInt32                    starting_index,
-                                        NPT_UInt32                    requested_count,
-                                        const char*                   sort_criteria,
-                                        const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnBrowseDirectChildren(PLT_ActionReference&          action, 
-                                              const char*                   object_id, 
-                                              const char*                   filter,
-                                              NPT_UInt32                    starting_index,
-                                              NPT_UInt32                    requested_count,
-                                              const char*                   sort_criteria, 
-                                              const PLT_HttpRequestContext& context);
-    virtual NPT_Result OnSearchContainer(PLT_ActionReference&          action, 
-                                         const char*                   container_id, 
-                                         const char*                   search_criteria,
- 										 const char*                   filter,
-                                         NPT_UInt32                    starting_index,
-                                         NPT_UInt32                    requested_count,
-                                         const char*                   sort_criteria, 
-                                         const PLT_HttpRequestContext& context);
-    
-private:
-    PLT_MediaServerDelegate* m_Delegate;
-};
-
-#endif /* _PLT_MEDIA_SERVER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaServerObject.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaServerObject.h
deleted file mode 100644
index ceeeb64..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMediaServerObject.h
+++ /dev/null
@@ -1,87 +0,0 @@
-//
-//  PltMediaServerObject.h
-//  Platinum
-//
-//  Created by Sylvain on 9/14/10.
-//  Copyright 2010 Plutinosoft LLC. All rights reserved.
-//
-
-#import "NptConfig.h"
-
-#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
-#include <UIKit/UIKit.h>
-#else
-#import <Cocoa/Cocoa.h>
-#endif
-
-#import "PltUPnPObject.h"
-
-// define 
-#if !defined(_PLATINUM_H_)
-typedef class PLT_HttpRequestContext PLT_HttpRequestContext;
-typedef class NPT_HttpResponse NPT_HttpResponse;
-#endif
-
-/*----------------------------------------------------------------------
-|   PLT_MediaServerObject
-+---------------------------------------------------------------------*/
- at interface PLT_MediaServerObject : PLT_DeviceHostObject {
-    id delegate;
-}
-
- at property (nonatomic, assign) id delegate; // we do not retain to avoid circular ref count
- at end
-
-/*----------------------------------------------------------------------
-|   PLT_MediaServerBrowseCapsule
-+---------------------------------------------------------------------*/
- at interface PLT_MediaServerBrowseCapsule : PLT_ActionObject {
-    NSString*               objectId;
-    NPT_UInt32              start;
-    NPT_UInt32              count;
-    NSString*               filter;
-    NSString*               sort;
-    PLT_HttpRequestContext* context;
-}
-
-- (id)initWithAction:(PLT_Action*)action objectId:(const char*)objectId filter:(const char*)filter start:(NPT_UInt32)start count:(NPT_UInt32)count sort:(const char*)sort context:(PLT_HttpRequestContext*)context;
-
- at property (readonly, assign) NSString* objectId;
- at property (readonly) NPT_UInt32 start;
- at property (readonly) NPT_UInt32 count;
- at property (readonly, assign) NSString* filter;
- at property (readonly, assign) NSString* sort;
- at end
-
-/*----------------------------------------------------------------------
-|   PLT_MediaServerSearchCapsule
-+---------------------------------------------------------------------*/
- at interface PLT_MediaServerSearchCapsule : PLT_MediaServerBrowseCapsule {
-    NSString* search;
-}
-
-- (id)initWithAction:(PLT_Action*)action objectId:(const char*)objectId search:(const char*)search filter:(const char*)filter start:(NPT_UInt32)start count:(NPT_UInt32)count sort:(const char*)sort context:(PLT_HttpRequestContext*)context;
-
- at property (readonly, assign) NSString* search;
- at end
-
-/*----------------------------------------------------------------------
-|   PLT_MediaServerFileRequestCapsule
-+---------------------------------------------------------------------*/
- at interface PLT_MediaServerFileRequestCapsule : NSObject {
-    NPT_HttpResponse*       response;
-    PLT_HttpRequestContext* context;
-}
-
-- (id)initWithResponse:(NPT_HttpResponse*)response context:(PLT_HttpRequestContext*)context;
- at end
-
-/*----------------------------------------------------------------------
-|   PLT_MediaServerDelegateObject
-+---------------------------------------------------------------------*/
- at protocol PLT_MediaServerDelegateObject
-- (NPT_Result)onBrowseMetadata:(PLT_MediaServerBrowseCapsule*)info;
-- (NPT_Result)onBrowseDirectChildren:(PLT_MediaServerBrowseCapsule*)info;
-- (NPT_Result)onSearchContainer:(PLT_MediaServerSearchCapsule*)info;
-- (NPT_Result)onFileRequest:(PLT_MediaServerFileRequestCapsule*)info;
- at end
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMetadataHandler.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMetadataHandler.h
deleted file mode 100644
index d1709bd..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMetadataHandler.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Metadata Handler
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_METADATA_HANDLER_H_
-#define _PLT_METADATA_HANDLER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   PLT_MetadataHandler class
-+---------------------------------------------------------------------*/
-class PLT_MetadataHandler
-{
-public:
-    virtual ~PLT_MetadataHandler() {}
-
-    // metadata overridables
-    virtual bool HandleExtension(const char* extension) = 0;
-    virtual NPT_Result  Load(NPT_InputStream&  stream, 
-                             NPT_TimeInterval  sleeptime = NPT_TimeInterval(.01), 
-                             NPT_TimeInterval  timeout = NPT_TimeInterval(30.)) = 0;
-    virtual NPT_Result  Save(NPT_OutputStream& stream,
-                             NPT_TimeInterval  sleeptime = NPT_TimeInterval(.01), 
-                             NPT_TimeInterval  timeout = NPT_TimeInterval(30.)) = 0;
-
-    virtual const char* GetLicenseData(NPT_String& licenseData) = 0;
-    virtual NPT_Result  GetCoverArtData(char*& caData, int& len) = 0;
-    virtual const char* GetContentID(NPT_String& value) = 0;
-    virtual const char* GetTitle(NPT_String& value) = 0;
-    virtual const char* GetDescription(NPT_String& value) = 0;
-    virtual NPT_Result  GetDuration(NPT_UInt32& seconds) = 0;
-    virtual const char* GetProtection(NPT_String& protection) = 0;
-    virtual NPT_Result  GetYear(NPT_Size& year) = 0;
-    
-    // helper functions
-    virtual NPT_Result  Load(const char* filename);
-    virtual NPT_Result  Save(const char* filename);
-};
-
-/*----------------------------------------------------------------------
-|   PLT_MetadataHandlerFinder
-+---------------------------------------------------------------------*/
-class PLT_MetadataHandlerFinder
-{
-public:
-    // methods
-    PLT_MetadataHandlerFinder(const char* extension) : m_Extension(extension) {}
-    bool operator()(PLT_MetadataHandler* const & handler) const {
-        return handler->HandleExtension(m_Extension) ? true : false;
-    }
-
-private:
-    // members
-    NPT_String m_Extension;
-};
-
-#endif /* _PLT_METADATA_HANDLER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMimeType.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMimeType.h
deleted file mode 100644
index 0af0a89..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltMimeType.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media MimeType
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Media MimeType.
- */
-
-#ifndef _PLT_MIMETYPE_H_
-#define _PLT_MIMETYPE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttp.h"
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_HttpRequestContext;
-
-/*----------------------------------------------------------------------
-|   PLT_MimeType
-+---------------------------------------------------------------------*/
-class PLT_MimeType
-{
-public:
-    virtual ~PLT_MimeType() {}
-
-    static const char* GetMimeType(const NPT_String&             filename, 
-                                   const PLT_HttpRequestContext* context = NULL);
-    static const char* GetMimeType(const NPT_String&   filename,
-                                   PLT_DeviceSignature signature = PLT_DEVICE_UNKNOWN);
-    
-    static const char* GetMimeTypeFromExtension(const NPT_String&             extension, 
-                                                const PLT_HttpRequestContext* context = NULL);
-    static const char* GetMimeTypeFromExtension(const NPT_String&   extension,
-                                                PLT_DeviceSignature signature = PLT_DEVICE_UNKNOWN);
-
-private:
-    PLT_MimeType() {}
-
-};
-
-#endif /* _PLT_MIMETYPE_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltProtocolInfo.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltProtocolInfo.h
deleted file mode 100644
index d86ef0c..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltProtocolInfo.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - AV Media Protocol Info
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-| 
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Media Object Protocol Info.
- */
-
-#ifndef _PLT_PROTOCOL_INFO_H_
-#define _PLT_PROTOCOL_INFO_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltHttp.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_HttpRequestContext;
-
-/*----------------------------------------------------------------------
-|   typedefs
-+---------------------------------------------------------------------*/
-typedef struct PLT_HttpFileRequestHandler_DefaultDlnaExtMapEntry {
-    const char* mime_type;
-    const char* dlna_ext;
-} PLT_HttpFileRequestHandler_DefaultDlnaExtMapEntry ;
-
-/*----------------------------------------------------------------------
-|   PLT_ProtocolInfo
-+---------------------------------------------------------------------*/
-/**
- The PLT_ProtocolInfo class holds information about the protocol info of a 
- given UPnP Media Item resource.
- */
-class PLT_ProtocolInfo
-{
-public:
-    class FieldEntry {
-    public:
-        FieldEntry(const char* key, const char* value) :
-            m_Key(key), m_Value(value) {}
-        NPT_String m_Key;
-        NPT_String m_Value;
-    };
-
-    // class methods
-    static NPT_String  GetMimeTypeFromProtocolInfo(const char* protocol_info);
-    
-    static const char* GetDlnaExtension(const char* mime_type, 
-                                        const PLT_HttpRequestContext* context = NULL);
-    static const char* GetDlnaExtension(const char* mime_type, 
-                                        PLT_DeviceSignature signature = PLT_DEVICE_UNKNOWN);
-    
-    static PLT_ProtocolInfo GetProtocolInfo(const char* filename, 
-                                            bool with_dlna_extension = true, 
-                                            const PLT_HttpRequestContext* context = NULL);
-    static PLT_ProtocolInfo GetProtocolInfo(const char* filename, 
-                                            bool with_dlna_extension = true, 
-                                            PLT_DeviceSignature signature = PLT_DEVICE_UNKNOWN);
-    
-    static PLT_ProtocolInfo GetProtocolInfoFromMimeType(const char* mime_type, 
-                                                        bool with_dlna_extension = true, 
-                                                        const PLT_HttpRequestContext* context = NULL);
-    static PLT_ProtocolInfo GetProtocolInfoFromMimeType(const char* mime_type, 
-                                                        bool with_dlna_extension = true, 
-                                                        PLT_DeviceSignature signature = PLT_DEVICE_UNKNOWN);
-
-    // methods
-    PLT_ProtocolInfo();
-    //PLT_ProtocolInfo(NPT_String protocol_info);
-    PLT_ProtocolInfo(const char* protocol_info);
-    PLT_ProtocolInfo(const char* protocol,
-                     const char* mask,
-                     const char* content_type,
-                     const char* extra);
-    const NPT_String& GetProtocol()     const { return m_Protocol;  }
-    const NPT_String& GetMask()         const { return m_Mask; }
-    const NPT_String& GetContentType()  const { return m_ContentType;  }
-    const NPT_String& GetExtra()        const { return m_Extra; }
-    
-    const NPT_String& GetDLNA_PN()      const { return m_DLNA_PN; }
-
-    bool IsValid() { return m_Valid; }
-
-    NPT_String ToString() const;
-
-    bool Match(const PLT_ProtocolInfo& other) const;
-
-private:
-	typedef enum {
-		PLT_PROTINFO_PARSER_STATE_START,
-		PLT_PROTINFO_PARSER_STATE_PN,
-		PLT_PROTINFO_PARSER_STATE_OP,
-		PLT_PROTINFO_PARSER_STATE_PS,
-		PLT_PROTINFO_PARSER_STATE_CI,
-		PLT_PROTINFO_PARSER_STATE_FLAGS,
-		PLT_PROTINFO_PARSER_STATE_MAXSP,
-		PLT_PROTINFO_PARSER_STATE_OTHER
-	} PLT_ProtocolInfoParserState;
-
-    NPT_Result SetProtocolInfo(const char* protocol_info);
-    NPT_Result ValidateField(const char*  val, 
-                        const char*  valid_chars, 
-                        NPT_Cardinal num_chars = 0); // 0 means variable number of chars
-    NPT_Result ParseExtra(NPT_List<FieldEntry>& entries);
-    NPT_Result ValidateExtra();
-
-private:
-    NPT_String           m_Protocol;
-    NPT_String           m_Mask;
-    NPT_String           m_ContentType;
-    NPT_String           m_Extra;
-    
-    NPT_String           m_DLNA_PN;    // DLNA.ORG_PN Parameter (pn-param)
-    NPT_String           m_DLNA_OP;    // Operations Parameter (op-param)
-    NPT_String           m_DLNA_PS;    // Server-Side PlaySpeeds Parameter (ps-param)
-    NPT_String           m_DLNA_CI;    // Conversion Indicator Flag (ci-param)
-    NPT_String           m_DLNA_FLAGS; // Flags Parameter (flags-param)
-    NPT_String           m_DLNA_MAXSP; // Maximum RTSP Speed Header value (maxsp-param)
-    NPT_List<FieldEntry> m_DLNA_OTHER; // Vendor-defined 4th field Parameters (other-param)
-    
-    bool                 m_Valid;
-};
-
-#endif /* _PLT_PROTOCOL_INFO_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltRingBufferStream.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltRingBufferStream.h
deleted file mode 100644
index d8ecd11..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltRingBufferStream.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Ring buffer stream
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_RING_BUFFER_STREAM_H_
-#define _PLT_RING_BUFFER_STREAM_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptStreams.h"
-#include "NptRingBuffer.h"
-#include "NptThreads.h"
-
-/*----------------------------------------------------------------------
-|   PLT_RingBufferStream class
-+---------------------------------------------------------------------*/
-class PLT_RingBufferStream : public NPT_DelegatingInputStream,   
-                             public NPT_DelegatingOutputStream
-{
-public:
-    PLT_RingBufferStream(NPT_Size buffer_size = 4096, bool blocking = true);
-    PLT_RingBufferStream(NPT_RingBufferReference& buffer, bool blocking = true);
-    virtual ~PLT_RingBufferStream();
-    
-    // methods
-    bool IsAborted() { return m_Aborted; }
-    
-    // NPT_InputStream methods
-    NPT_Result Read(void*     buffer, 
-                    NPT_Size  bytes_to_read, 
-                    NPT_Size* bytes_read = NULL);
-    NPT_Result GetSize(NPT_LargeSize& size)  {
-        NPT_COMPILER_UNUSED(size);
-        return NPT_ERROR_NOT_SUPPORTED;
-    }
-    NPT_Result GetSpace(NPT_LargeSize& space) { 
-        NPT_AutoLock autoLock(m_Lock);
-        space = m_RingBuffer->GetSpace();
-        return NPT_SUCCESS;
-    }
-    NPT_Result GetAvailable(NPT_LargeSize& available) { 
-        NPT_AutoLock autoLock(m_Lock);
-        available = m_RingBuffer->GetAvailable();
-        return NPT_SUCCESS;
-    }
-
-    // NPT_OutputStream methods
-    NPT_Result Write(const void* buffer, 
-                     NPT_Size    bytes_to_write, 
-                     NPT_Size*   bytes_written = NULL);
-    NPT_Result Flush();
-    NPT_Result SetEOS();
-    NPT_Result Abort();
-
-protected:
-    // NPT_DelegatingInputStream methods
-    NPT_Result InputSeek(NPT_Position offset) {
-        NPT_COMPILER_UNUSED(offset);
-        return NPT_ERROR_NOT_SUPPORTED;
-    }
-    NPT_Result InputTell(NPT_Position& offset) { 
-        NPT_AutoLock autoLock(m_Lock);
-        offset = m_TotalBytesRead; 
-        return NPT_SUCCESS;
-    }
-
-    // NPT_DelegatingOutputStream methods
-    NPT_Result OutputSeek(NPT_Position offset) {
-        NPT_COMPILER_UNUSED(offset);
-        return NPT_ERROR_NOT_SUPPORTED;
-    }
-    NPT_Result OutputTell(NPT_Position& offset) {
-        NPT_AutoLock autoLock(m_Lock);
-        offset = m_TotalBytesWritten; 
-        return NPT_SUCCESS;
-    }
-
-private:
-    NPT_RingBufferReference m_RingBuffer;
-    NPT_Offset              m_TotalBytesRead;
-    NPT_Offset              m_TotalBytesWritten;
-    NPT_Mutex               m_Lock;
-    bool                    m_Blocking;
-    bool                    m_Eos;
-    bool                    m_Aborted;
-};
-
-typedef NPT_Reference<PLT_RingBufferStream> PLT_RingBufferStreamReference;
-
-#endif // _PLT_RING_BUFFER_STREAM_H_ 
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltService.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltService.h
deleted file mode 100644
index 84959f2..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltService.h
+++ /dev/null
@@ -1,521 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Service
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP Service
- */
-
-#ifndef _PLT_SERVICE_H_
-#define _PLT_SERVICE_H_
-
-/*----------------------------------------------------------------------
-|    includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltEvent.h"
-#include "PltArgument.h"
-#include "PltStateVariable.h"
-#include "PltAction.h"
-
-/*----------------------------------------------------------------------
-|    forward declarations
-+---------------------------------------------------------------------*/
-class PLT_DeviceData;
-
-/*----------------------------------------------------------------------
-|    PLT_Service class
-+---------------------------------------------------------------------*/
-/**
- UPnP Service.
- The PLT_Service class holds information about a UPnP service of a given device.
- It maintains a list of actions and state variables. A PLT_DeviceData instance can own 
- one or more PLT_Service instances. When a PLT_Service is advertised as part of a
- a UPnP Device (PLT_DeviceHost), it also maintains a list of subscribers to nofify when
- state variables change.
- */
-class PLT_Service
-{
-public:
-    // methods
-    /**
-     Create an instance of a UPnP Service either hosted or discovered.
-     @param device Pointer to the PLT_DeviceData the service is associated to
-     @param type String representing the UPnP service type
-     @param id String representing the UPnP service id
-     @param name A String to create unique service SCPD, control and eventing urls
-     @param last_change_namespace A String for the LastChange state variable namespace if any
-     */
-    PLT_Service(PLT_DeviceData* device,
-                const char*     type, 
-                const char*     id,
-                const char*     name,
-                const char*     last_change_namespace = NULL);
-    virtual ~PLT_Service();
-    
-    // methods
-    /**
-     When service is hosted by a PLT_DeviceHost, this setups the SCPD, control and event urls.
-     @param service_name the service name used to format unique urls
-     */
-    NPT_Result InitURLs(const char* service_name);
-    
-    /**
-     Verify the service has been properly initialized or is a valid discovered service.
-     @return true if valid.
-     */
-    bool IsValid() {  return (m_ActionDescs.GetItemCount() > 0); }
-    
-    /**
-     When a PLT_DeviceHost needs to change more than one state variables at a time
-     but would rather send only one event with all state variable changes, this can be 
-     used to pause and resume the automatic eventing.
-     @param pause Flag to indicate if eventing should be paused or resumed 
-     */
-    NPT_Result PauseEventing(bool pause = true);
-
-    // class methods
-    static bool IsTrue(const NPT_String& value) {
-        if (value.Compare("1", true)    && 
-            value.Compare("true", true) && 
-            value.Compare("yes", true)) {
-            return false;
-        }
-        return true;
-    }
-
-    // accessor methods
-    /**
-     Set the SCPD url for control points to be able to fetch the SCPD xml document.
-     @param url relative path of SCPD url
-     */
-    NPT_Result SetSCPDURL(const char* url)     { m_SCPDURL = url; return NPT_SUCCESS; }
-    
-    /*
-     Set the Service Control url for control points to be able to invoke actions.
-     @param url relative path of control url
-     */
-    NPT_Result SetControlURL(const char* url)  { m_ControlURL = url; return NPT_SUCCESS; };
-    
-    /**
-     Set the Service Event subscription url for control points to be able to subscribe
-     to events.
-     @param url relative path of even url
-     */
-    NPT_Result SetEventSubURL(const char* url) { m_EventSubURL = url; return NPT_SUCCESS; };
-    
-    /**
-     Return the SCPD url associated with this service.
-     @param absolute flag to indicate if absolute url including ip and port should
-     be returned
-     @return SCPD url
-     */
-    NPT_String GetSCPDURL(bool absolute = false);
-    
-    /**
-     Return the Control url associated with this service.
-     @param absolute flag to indicate if absolute url including ip and port should
-     be returned
-     @return Control url
-     */
-    NPT_String GetControlURL(bool absolute = false);
-    
-    /**
-     Return the Event subscription url associated with this service.
-     @param absolute flag to indicate if absolute url including ip and port should
-     be returned
-     @return Event url
-     */
-    NPT_String GetEventSubURL(bool absolute = false);
-    
-    /**
-     Return the service id.
-     @return service id
-     */
-    const NPT_String& GetServiceID() const { return m_ServiceID;   }
-    
-    /**
-     Return the service type.
-     @return service type
-     */
-    const NPT_String& GetServiceType() const { return m_ServiceType; }
-
-    /**
-     Return the service friendly name.
-     @return service name
-     */
-    const NPT_String& GetServiceName() const { return m_ServiceName; } 
-
-    /**
-     Return the PLT_DeviceData* the service is associated with.
-     @return PLT_DeviceData pointer
-     */
-    PLT_DeviceData* GetDevice() { return m_Device;      }
-    
-    /**
-     When a control point discover a new service with a higher version number
-     than it can work with, a lower version can be set to force backward 
-     compatibility.
-     @param version Integer specifying the version to use
-     */
-    NPT_Result ForceVersion(NPT_Cardinal version);
-
-    /**
-     Return the service SCPD xml document.
-     @param xml String to receive document
-     */
-    NPT_Result GetSCPDXML(NPT_String& xml);
-    
-    /**
-     Set the service SCPD xml document.
-     @param xml String SCPD xml document
-     */
-    NPT_Result SetSCPDXML(const char* xml);
-    
-    /**
-     Populate the UPnP Device description document with service information.
-     @param parent XML Element where to insert the service XML Element
-     @param service Pointer to service XML Element node newly created so it can be
-     extended with additional non standard information.
-     */
-    NPT_Result GetDescription(NPT_XmlElementNode* parent, NPT_XmlElementNode** service = NULL);
-
-    /**
-     Set a new value for a given state variable. The service keeps track of which
-     state variables have changed and events are being triggered by a PLT_ServiceEventTask
-     when necessary.
-     @param name state variable name
-     @param value new State Variable value.
-     */
-    NPT_Result SetStateVariable(const char* name, const char* value);
-    
-    /**
-     Certain state variables notifications must not be sent faster than a certain 
-     rate according to the UPnP specs. This sets the rate for a given state variable.
-     @param name state variable name
-     @param rate a time interval specifying the minimum interval allowed between
-     notifications.
-     */
-    NPT_Result SetStateVariableRate(const char* name, NPT_TimeInterval rate);
-    
-    /**
-     Certain state variables require extra xml attributes when serialized.
-     @param name state variable name
-     @param key the attribute name
-     @param value the attribute value
-     */
-	NPT_Result SetStateVariableExtraAttribute(const char* name, const char* key, const char* value);
-    
-    /**
-     Helper function to increment a state variable representing a number.
-     @param name state variable name
-     */
-    NPT_Result IncStateVariable(const char* name);
-    
-    /**
-     Return the PLT_StateVariable pointer given a state variable name.
-     @param name state variable name
-     @return PLT_StateVariable pointer
-     */
-    PLT_StateVariable* FindStateVariable(const char* name);
-    
-    /**
-     Return the state variable value given a state variable name.
-     @param name state variable name
-     @param value state variable value output
-     */
-    NPT_Result GetStateVariableValue(const char* name, NPT_String& value);
-    
-    /**
-     Return whether a service is capable of sending events.
-     @return true if sending events
-     */
-    bool IsSubscribable();
-    
-    /**
-     Return the list of state variables.
-     @return list of state variable pointers.
-     */
-    const NPT_List<PLT_StateVariable*>& GetStateVariables() const { return m_StateVars; }
-
-    /**
-     Return the PLT_ActionDesc given an action name
-     @param name action name
-     @return PLT_ActioDesc pointer
-     */
-    PLT_ActionDesc* FindActionDesc(const char* name);
-    
-    /**
-     Return an array of actions descriptions PLT_ActionDesc.
-     @return array of PLT_ActionDesc pointers.
-     */
-    const NPT_Array<PLT_ActionDesc*>& GetActionDescs() const { return m_ActionDescs; }
-
-private:    
-    /**
-     A task to send events.
-     The PLT_ServiceEventTask is started when receiving a first subscription. It
-     monitors if some state variables have changed and sends events to all
-     subscribers if so.
-     */
-    class PLT_ServiceEventTask : public PLT_ThreadTask {
-    public:
-        PLT_ServiceEventTask(PLT_Service* service) : m_Service(service) {}
-        
-        void DoRun() { 
-            while (!IsAborting(100)) m_Service->NotifyChanged();
-        }
-        
-    private:
-        PLT_Service* m_Service;
-    };
-    
-    // methods
-    void Cleanup();
-    
-    /**
-     Called by a PLT_StateVariable to keep track of what events need to be 
-     sent by the PLT_ServiceEventTask task.
-     @param var PLT_StateVariable pointer
-     */
-    NPT_Result AddChanged(PLT_StateVariable* var);
-    
-    /**
-     Certain UPnP services combine state variable changes into one single
-     state variable called "LastChange". This function updates the LastChange
-     state variable by looking through the list passed for state variables that
-     are not individually evented.
-     */
-    NPT_Result UpdateLastChange(NPT_List<PLT_StateVariable*>& vars);
-    
-    /**
-     Send state variable change events to all subscribers.
-     */
-    NPT_Result NotifyChanged();
-
-    // Events
-    /**
-     Called by PLT_DeviceHost when it receives a request for a new subscription.
-     */
-    NPT_Result ProcessNewSubscription(
-        PLT_TaskManagerReference task_manager,
-        const NPT_SocketAddress& addr, 
-        const NPT_String&        callback_urls, 
-        int                      timeout, 
-        NPT_HttpResponse&        response);
-    
-    /**
-     Called by PLT_DeviceHost when it receives a request renewing an existing
-     subscription.
-     */
-    NPT_Result ProcessRenewSubscription(
-        const NPT_SocketAddress& addr, 
-        const NPT_String&        sid, 
-        int                      timeout,
-        NPT_HttpResponse&        response);
-    
-    /**
-     Called by PLT_DeviceHost when it receives a request to cancel an existing
-     subscription.
-     */
-    NPT_Result ProcessCancelSubscription(
-        const NPT_SocketAddress& addr, 
-        const NPT_String&        sid, 
-        NPT_HttpResponse&        response);
-
-
-protected:
-    // friends that need to call private functions
-    friend class PLT_StateVariable; // AddChanged
-    friend class PLT_DeviceHost;    // ProcessXXSubscription
-    
-    //members
-    PLT_DeviceData*                         m_Device;
-    NPT_String                              m_ServiceType;
-    NPT_String                              m_ServiceID;
-	NPT_String                              m_ServiceName;
-    NPT_String                              m_SCPDURL;
-    NPT_String                              m_ControlURL;
-    NPT_String                              m_EventSubURL;
-    PLT_ServiceEventTask*                   m_EventTask;
-    NPT_Array<PLT_ActionDesc*>              m_ActionDescs;
-    NPT_List<PLT_StateVariable*>            m_StateVars;
-    NPT_Mutex                               m_Lock;
-    NPT_List<PLT_StateVariable*>            m_StateVarsChanged;
-    NPT_List<PLT_StateVariable*>            m_StateVarsToPublish;
-    NPT_List<PLT_EventSubscriberReference>  m_Subscribers;
-    bool                                    m_EventingPaused;
-    NPT_String                              m_LastChangeNamespace;
-};
-
-/*----------------------------------------------------------------------
-|    PLT_ServiceSCPDURLFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ServiceSCPDURLFinder class returns an instance of a PLT_Service given a 
- service SCPD url.
- */
-class PLT_ServiceSCPDURLFinder
-{
-public:
-    // methods
-    PLT_ServiceSCPDURLFinder(const char* url) : m_URL(url) {}
-    virtual ~PLT_ServiceSCPDURLFinder() {}
-    bool operator()(PLT_Service* const & service) const;
-
-private:
-    // members
-    NPT_String m_URL;
-};
-
-/*----------------------------------------------------------------------
-|    PLT_ServiceControlURLFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ServiceControlURLFinder class returns an instance of a PLT_Service 
- given a service control url.
- */
-class PLT_ServiceControlURLFinder
-{
-public:
-    // methods
-    PLT_ServiceControlURLFinder(const char* url) : m_URL(url) {}
-    virtual ~PLT_ServiceControlURLFinder() {}
-    bool operator()(PLT_Service* const & service) const;
-
-private:
-    // members
-    NPT_String m_URL;
-};
-
-/*----------------------------------------------------------------------
-|    PLT_ServiceEventSubURLFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ServiceEventSubURLFinder class returns an instance of a PLT_Service 
- given a service event subscription url.
- */
-class PLT_ServiceEventSubURLFinder
-{
-public:
-    // methods
-    PLT_ServiceEventSubURLFinder(const char* url) : m_URL(url) {}
-    virtual ~PLT_ServiceEventSubURLFinder() {}
-    bool operator()(PLT_Service* const & service) const;
-
-private:
-    // members
-    NPT_String m_URL;
-};
-
-/*----------------------------------------------------------------------
-|    PLT_ServiceIDFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ServiceIDFinder class returns an instance of a PLT_Service given a 
- service id.
- */
-class PLT_ServiceIDFinder
-{
-public:
-    // methods
-    PLT_ServiceIDFinder(const char* id) : m_Id(id) {}
-    virtual ~PLT_ServiceIDFinder() {}
-    bool operator()(PLT_Service* const & service) const;
-
-private:
-    // members
-    NPT_String m_Id;
-};
-
-/*----------------------------------------------------------------------
-|    PLT_ServiceTypeFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ServiceTypeFinder class returns an instance of a PLT_Service given a 
- service type.
- */
-class PLT_ServiceTypeFinder
-{
-public:
-    // methods
-    PLT_ServiceTypeFinder(const char* type) : m_Type(type) {}
-    virtual ~PLT_ServiceTypeFinder() {}
-    bool operator()(PLT_Service* const & service) const;
-
-private:
-    // members
-    NPT_String m_Type;
-};
-
-/*----------------------------------------------------------------------
-|    PLT_ServiceNameFinder
-+---------------------------------------------------------------------*/
-/** 
- The PLT_ServiceNameFinder class returns an instance of a PLT_Service given a 
- service name.
- */
-class PLT_ServiceNameFinder
-{
-public:
-    // methods
-    PLT_ServiceNameFinder(const char* name) : m_Name(name) {}
-    virtual ~PLT_ServiceNameFinder() {}
-    bool operator()(PLT_Service* const & service) const;
-
-private:
-    // members
-    NPT_String m_Name;
-};
-
-/*----------------------------------------------------------------------
-|    PLT_LastChangeXMLIterator
-+---------------------------------------------------------------------*/
-/**
- The PLT_LastChangeXMLIterator class is used to serialize the LastChange variable
- changes into xml given a list of state variables.
- */
-class PLT_LastChangeXMLIterator
-{
-public:
-    // methods
-    PLT_LastChangeXMLIterator(NPT_XmlElementNode* node) : m_Node(node) {}
-    virtual ~PLT_LastChangeXMLIterator() {}
-
-    NPT_Result operator()(PLT_StateVariable* const & var) const;
-
-private:
-    NPT_XmlElementNode* m_Node;
-};
-
-#endif /* _PLT_SERVICE_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltSsdp.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltSsdp.h
deleted file mode 100644
index 21015e5..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltSsdp.h
+++ /dev/null
@@ -1,389 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - SSDP
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP SSDP
- */
-
-#ifndef _PLT_SSDP_H_
-#define _PLT_SSDP_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltThreadTask.h"
-#include "PltHttpServerTask.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_DeviceHost;
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpAnnounceType
-+---------------------------------------------------------------------*/
-typedef enum {
-    PLT_ANNOUNCETYPE_BYEBYE,
-    PLT_ANNOUNCETYPE_ALIVE,
-    PLT_ANNOUNCETYPE_UPDATE
-} PLT_SsdpAnnounceType;
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpPacketListener class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpPacketListener class is an interface for handling SSDP packets
- (M-SEARCH and NOTIFY).
- */
-class PLT_SsdpPacketListener
-{
-public:
-    virtual ~PLT_SsdpPacketListener() {}
-    virtual NPT_Result OnSsdpPacket(const NPT_HttpRequest&        request, 
-                                    const NPT_HttpRequestContext& context) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpSearchResponseListener class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpSearchResponseListener class is an interface for handling SSDP M-SEARCH 
- responses.
- */
-class PLT_SsdpSearchResponseListener
-{
-public:
-    virtual ~PLT_SsdpSearchResponseListener() {}
-    virtual NPT_Result ProcessSsdpSearchResponse(NPT_Result                    res,  
-                                                 const NPT_HttpRequestContext& context,
-                                                 NPT_HttpResponse*             response) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpSender class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpSender class provides a mechanism to format and send SSDP packets.
- */
-class PLT_SsdpSender
-{
-public:
-    static NPT_Result SendSsdp(NPT_HttpRequest&   request, 
-                               const char*        usn,
-                               const char*        nt,
-                               NPT_UdpSocket&     socket,
-                               bool               notify,
-                               const NPT_SocketAddress* addr = NULL);
-     
-    static NPT_Result SendSsdp(NPT_HttpResponse&  response,
-                               const char*        usn,
-                               const char*        nt,
-                               NPT_UdpSocket&     socket,
-                               bool               notify, 
-                               const NPT_SocketAddress* addr = NULL);
-
-private:
-    static NPT_Result FormatPacket(NPT_HttpMessage&   message,
-                                   const char*        usn,
-                                   const char*        nt,
-                                   NPT_UdpSocket&     socket,
-                                   bool               notify);
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpDeviceSearchResponseInterfaceIterator class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpDeviceSearchResponseInterfaceIterator class looks for the best network
- interface to use then sends a SSDP M-SEARCH response.
- */
-class PLT_SsdpDeviceSearchResponseInterfaceIterator
-{
-public:
-    PLT_SsdpDeviceSearchResponseInterfaceIterator(PLT_DeviceHost*   device, 
-                                                  NPT_SocketAddress remote_addr,
-                                                  const char*       st) :
-        m_Device(device), m_RemoteAddr(remote_addr), m_ST(st)  {}
-    virtual ~PLT_SsdpDeviceSearchResponseInterfaceIterator() {}
-      
-    NPT_Result operator()(NPT_NetworkInterface*& if_addr) const;
-
-private:
-    PLT_DeviceHost*   m_Device;
-    NPT_SocketAddress m_RemoteAddr;
-    NPT_String        m_ST;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpDeviceSearchResponseTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpDeviceSearchResponseTask class is used by a PLT_DeviceHost to respond
- to SSDP M-SEARCH requests from UPnP ControlPoints.
- */
-class PLT_SsdpDeviceSearchResponseTask : public PLT_ThreadTask
-{
-public:
-    PLT_SsdpDeviceSearchResponseTask(PLT_DeviceHost*   device, 
-                                     NPT_SocketAddress remote_addr,
-                                     const char*       st) : 
-        m_Device(device), m_RemoteAddr(remote_addr), m_ST(st) {}
-
-protected:
-    virtual ~PLT_SsdpDeviceSearchResponseTask() {}
-
-    // PLT_ThreadTask methods
-    virtual void DoRun();
-    
-protected:
-    PLT_DeviceHost*     m_Device;
-    NPT_SocketAddress   m_RemoteAddr;
-    NPT_String          m_ST;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpAnnounceInterfaceIterator class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpAnnounceInterfaceIterator class is used to send SSDP announcements 
- given a list of network interaces. 
- */
-class PLT_SsdpAnnounceInterfaceIterator
-{
-public:
-    PLT_SsdpAnnounceInterfaceIterator(PLT_DeviceHost* device, PLT_SsdpAnnounceType type, bool broadcast = false) :
-        m_Device(device), m_Type(type), m_Broadcast(broadcast) {}
-      
-    NPT_Result operator()(NPT_NetworkInterface*& if_addr) const;
-
-private:
-    PLT_DeviceHost*         m_Device;
-    PLT_SsdpAnnounceType    m_Type;
-    bool                    m_Broadcast;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpInitMulticastIterator class
-+---------------------------------------------------------------------*/
-/** 
- The PLT_SsdpInitMulticastIterator class is used to join a multicast group 
- given a list of IP addresses.
- */
-class PLT_SsdpInitMulticastIterator
-{
-public:
-    PLT_SsdpInitMulticastIterator(NPT_UdpMulticastSocket* socket) :
-        m_Socket(socket) {}
-
-    NPT_Result operator()(NPT_IpAddress& if_addr) const {
-        NPT_IpAddress addr;
-        addr.ResolveName("239.255.255.250");
-        // OSX bug, since we're reusing the socket, we need to leave group first
-        // before joining it
-        m_Socket->LeaveGroup(addr, if_addr);
-        return m_Socket->JoinGroup(addr, if_addr);
-    }
-
-private:
-    NPT_UdpMulticastSocket* m_Socket;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpDeviceAnnounceTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpDeviceAnnounceTask class is a task to send UPnP Device SSDP announcements
- (alive or byebye). It can be setup to automatically repeat after an interval.
- */
-class PLT_SsdpDeviceAnnounceTask : public PLT_ThreadTask
-{
-public:
-    PLT_SsdpDeviceAnnounceTask(PLT_DeviceHost*  device, 
-                               NPT_TimeInterval repeat,
-                               bool             is_byebye_first = false,
-                               bool             extra_broadcast = false) : 
-        m_Device(device), 
-        m_Repeat(repeat),
-        m_IsByeByeFirst(is_byebye_first),
-        m_ExtraBroadcast(extra_broadcast) {}
-
-protected:
-    virtual ~PLT_SsdpDeviceAnnounceTask() {}
-
-    // PLT_ThreadTask methods
-    virtual void DoRun();
-
-protected:
-    PLT_DeviceHost*             m_Device;
-    NPT_TimeInterval            m_Repeat;
-    bool                        m_IsByeByeFirst;
-    bool                        m_ExtraBroadcast;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_NetworkInterfaceAddressSearchIterator class
-+---------------------------------------------------------------------*/
-/**
- The PLT_NetworkInterfaceAddressSearchIterator class returns the network interface
- given an IP address.
- */
-class PLT_NetworkInterfaceAddressSearchIterator
-{
-public:
-    PLT_NetworkInterfaceAddressSearchIterator(NPT_String ip) : m_Ip(ip)  {}
-    virtual ~PLT_NetworkInterfaceAddressSearchIterator() {}
-
-    NPT_Result operator()(NPT_NetworkInterface*& addr) const {
-        NPT_List<NPT_NetworkInterfaceAddress>::Iterator niaddr = addr->GetAddresses().GetFirstItem();
-        if (!niaddr) return NPT_FAILURE;
-
-        return (m_Ip.Compare((*niaddr).GetPrimaryAddress().ToString(), true) == 0) ? NPT_SUCCESS : NPT_FAILURE;
-    }
-
-private:
-    NPT_String m_Ip;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpPacketListenerIterator class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpPacketListenerIterator class iterates through a list of 
- PLT_SsdpPacketListener instances to notify of a new SSDP incoming packet.
- */
-class PLT_SsdpPacketListenerIterator
-{
-public:
-    PLT_SsdpPacketListenerIterator(NPT_HttpRequest&              request, 
-                                   const NPT_HttpRequestContext& context) :
-      m_Request(request), m_Context(context) {}
-
-    NPT_Result operator()(PLT_SsdpPacketListener*& listener) const {
-        return listener->OnSsdpPacket(m_Request, m_Context);
-    }
-
-private:
-    NPT_HttpRequest&              m_Request;
-    const NPT_HttpRequestContext& m_Context;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpListenTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpListenTask class is used to listen for incoming SSDP packets and 
- keep track of a list of PLT_SsdpPacketListener listeners to notify when a new 
- SSDP packet has arrived.
- */
-class PLT_SsdpListenTask : public PLT_HttpServerSocketTask
-{
-public:
-    PLT_SsdpListenTask(NPT_Socket* socket) : 
-        PLT_HttpServerSocketTask(socket, true) {
-        // Change read time out for UDP because iPhone 3.0 seems to hang
-        // after reading everything from the socket even though
-        // more stuff arrived
-#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
-        m_Socket->SetReadTimeout(10000);
-#endif
-    }
-
-    NPT_Result AddListener(PLT_SsdpPacketListener* listener) {
-        NPT_AutoLock lock(m_Mutex);
-        m_Listeners.Add(listener);
-        return NPT_SUCCESS;
-    }
-
-    NPT_Result RemoveListener(PLT_SsdpPacketListener* listener) {
-        NPT_AutoLock lock(m_Mutex);
-        m_Listeners.Remove(listener);
-        return NPT_SUCCESS;
-    }
-    
-    // PLT_Task methods
-    void DoAbort();
-
-protected:
-    virtual ~PLT_SsdpListenTask() {}
-
-    // PLT_HttpServerSocketTask methods
-    NPT_Result GetInputStream(NPT_InputStreamReference& stream);
-    NPT_Result GetInfo(NPT_SocketInfo& info);
-    NPT_Result SetupResponse(NPT_HttpRequest&              request, 
-                             const NPT_HttpRequestContext& context,
-                             NPT_HttpResponse&             response);
-
-protected:
-    PLT_InputDatagramStreamReference  m_Datagram;
-    NPT_List<PLT_SsdpPacketListener*> m_Listeners;
-    NPT_Mutex                         m_Mutex;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SsdpSearchTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_SsdpSearchTask class is a task used by a PLT_CtrlPoint to issue a SSDP
- M-SEARCH request. It can be set to repeat at a certain frequencey.
- */
-class PLT_SsdpSearchTask : public PLT_ThreadTask
-{
-public:
-    PLT_SsdpSearchTask(NPT_UdpSocket*                  socket,
-                       PLT_SsdpSearchResponseListener* listener, 
-                       NPT_HttpRequest*                request,
-                       NPT_TimeInterval                frequency = NPT_TimeInterval(0.)); // pass 0 for one time
-
-protected:
-    virtual ~PLT_SsdpSearchTask();
-
-    // PLT_ThreadTask methods
-    virtual void DoAbort();
-    virtual void DoRun();
-
-    virtual NPT_Result ProcessResponse(NPT_Result                    res, 
-                                       const NPT_HttpRequest&        request,  
-                                       const NPT_HttpRequestContext& context,
-                                       NPT_HttpResponse*             response);
-
-private:
-    PLT_SsdpSearchResponseListener* m_Listener;
-    NPT_HttpRequest*                m_Request;
-    NPT_TimeInterval                m_Frequency;
-    bool                            m_Repeat;
-    NPT_UdpSocket*                  m_Socket;
-};
-
-#endif /* _PLT_SSDP_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltStateVariable.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltStateVariable.h
deleted file mode 100644
index 46ec9e9..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltStateVariable.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Service State Variable
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP State Variable
- */
-
-#ifndef _PLT_STATE_VARIABLE_H_
-#define _PLT_STATE_VARIABLE_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_Argument;
-class PLT_Service;
-
-/*----------------------------------------------------------------------
-|   NPT_AllowedValueRange struct
-+---------------------------------------------------------------------*/
-/**
- The NPT_AllowedValueRange struct holds the min, max and step value allowed of
- a UPnP Service state variable.
- */
-typedef struct {
-    NPT_Int32 min_value;
-    NPT_Int32 max_value;
-    NPT_Int32 step;
-} NPT_AllowedValueRange;
-
-/*----------------------------------------------------------------------
-|   PLT_StateVariable class
-+---------------------------------------------------------------------*/
-/**
- The PLT_StateVariable class maintains the state of a UPnP Service state variable. 
- It is used by a PLT_DeviceHost instance to notify subscribers of a change or by a
- subscriber (PLT_CtrlPoint) when a service state variable change notification
- has been received.
- */
-class PLT_StateVariable
-{
-public:
-    PLT_StateVariable(PLT_Service* service);
-    ~PLT_StateVariable();
-
-    /**
-     Populate the SCPD xml document with state variable information.
-     @param node XML Element where to insert the state variable XML Element
-     */
-    NPT_Result GetSCPDXML(NPT_XmlElementNode* node);
-    
-    /**
-     Return the PLT_Service that this state variable is associated with.
-     @return PLT_Service pointer.
-     */
-    PLT_Service* GetService();
-    
-    /**
-     Return whether the state variable is eventable directly or indirectly. A state
-     variable sends events indirectly when part of the "LastChange" state variable.
-     @param indirectly Boolean to test if the state variable is sending events indirectly
-     @return Whether the state variable sends events according to the input flag specified.
-     */
-    bool IsSendingEvents(bool indirectly = false);
-    
-    /**
-     Force the state variable to send events directly.
-     */
-    void DisableIndirectEventing();
-    
-    /**
-     Certain state variables notifications must not be sent faster than a certain 
-     rate according to the UPnP specs. This sets the rate for a given state variable.
-     @param rate time interval to respect between notifications.
-     */
-    NPT_Result SetRate(NPT_TimeInterval rate);
-    
-    /**
-     Set the state variable value. The value is first validated to make sure
-     it is an allowed value. Once the value is validated, it is marked for eventing by
-     calling the PLT_Service AddChanged function.
-     @param value new state variable value. Can be a comma separated list of values.
-     */
-    NPT_Result SetValue(const char* value);
-    
-    /**
-     Validate the new value of the state variable.
-     @param value new state variable value. Can be a comma separated list of values.
-     */
-    NPT_Result ValidateValue(const char* value);
-    
-    /**
-     Certain state variables require extra xml attributes when serialized.
-     @param name the attribute name
-     @param value the attribute value
-     */
-	NPT_Result SetExtraAttribute(const char* name, const char* value);
-
-    /**
-     Return the state variable name.
-     @return state variable name.
-     */
-    const NPT_String& GetName()     const { return m_Name;     }
-    
-    /**
-     Return the current state variable value.
-     @return state variable current value.
-     */
-    const NPT_String& GetValue()    const { return m_Value;    }
-    
-    /**
-     Return the state variable data type.
-     @return state variable data type.
-     */
-    const NPT_String& GetDataType() const { return m_DataType; }
-    
-    /**
-     Return the state variable allowed value range if any.
-     @return state variable value range pointer or null if none.
-     */
-	const NPT_AllowedValueRange* GetAllowedValueRange() const { return m_AllowedValueRange; }
-
-    /**
-     Helper function to return a state variable given a list of state variables
-     and a state variable name.
-     @param vars list of state variables
-     @param name state variable name to look for
-     @return PLT_StateVariable pointer.
-     */
-    static PLT_StateVariable* Find(NPT_List<PLT_StateVariable*>& vars, 
-                                   const char*                   name);
-
-protected:
-    /**
-     Return whether the state variable value changed and subscribers need to
-     be notified.
-     */
-    bool IsReadyToPublish();
-    
-    /**
-     Serialize the state variable into xml.
-     */
-	NPT_Result Serialize(NPT_XmlElementNode& node);
-
-protected:
-    friend class PLT_Service;
-    friend class PLT_LastChangeXMLIterator;
-
-    //members
-    PLT_Service*            m_Service;
-    NPT_AllowedValueRange*  m_AllowedValueRange;
-    NPT_String              m_Name;
-    NPT_String              m_DataType;
-    NPT_String              m_DefaultValue;
-    bool                    m_IsSendingEvents;
-    bool                    m_IsSendingEventsIndirectly;
-    NPT_TimeInterval        m_Rate;
-    NPT_TimeStamp           m_LastEvent;
-    NPT_Array<NPT_String*>  m_AllowedValues;
-    NPT_String              m_Value;
-
-	NPT_Map<NPT_String,NPT_String> m_ExtraAttributes;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_StateVariableNameFinder
-+---------------------------------------------------------------------*/
-/**
- The PLT_StateVariableNameFinder class returns the PLT_StateVariable instance
- given a state variable name.
- */
-class PLT_StateVariableNameFinder 
-{
-public:
-    // methods
-    PLT_StateVariableNameFinder(const char* name) : m_Name(name) {}
-    virtual ~PLT_StateVariableNameFinder() {}
-
-    bool operator()(const PLT_StateVariable* const & state_variable) const {
-        return state_variable->GetName().Compare(m_Name, true) ? false : true;
-    }
-
-private:
-    // members
-    NPT_String   m_Name;
-};
-
-#endif /* _PLT_STATE_VARIABLE_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltStreamPump.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltStreamPump.h
deleted file mode 100644
index 58ef256..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltStreamPump.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Stream Pump
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_STREAM_PUMP_H_
-#define _PLT_STREAM_PUMP_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "NptStreams.h"
-#include "NptRingBuffer.h"
-
-/*----------------------------------------------------------------------
-|   PLT_PipeInputStream
-+---------------------------------------------------------------------*/
-class PLT_PipeInputStream
-{
-public:
-    // constructor and destructor
-    virtual ~PLT_PipeInputStream() {};
-
-    // methods
-    virtual NPT_Result Receive(NPT_InputStream& stream, NPT_Size max_bytes_to_read, NPT_Size* bytes_read = 0) = 0;
-};
-
-typedef NPT_Reference<PLT_PipeInputStream> PLT_PipeInputStreamReference;
-
-/*----------------------------------------------------------------------
-|   PLT_PipeOutputStream
-+---------------------------------------------------------------------*/
-class PLT_PipeOutputStream
-{
-public:
-    // constructor and destructor
-    virtual ~PLT_PipeOutputStream() {};
-
-    // methods
-    virtual NPT_Result Transmit(NPT_OutputStream& stream) = 0;
-};
-
-typedef NPT_Reference<PLT_PipeOutputStream> PLT_PipeOutputStreamReference;
-
-/*----------------------------------------------------------------------
-|   PLT_StreamPump class
-+---------------------------------------------------------------------*/
-class PLT_StreamPump
-{
-public:
-    virtual ~PLT_StreamPump();
-
-protected:
-    // methods
-    PLT_StreamPump(NPT_Size size = 65535);
-    NPT_Result PullData(NPT_InputStream& input, NPT_Size max_bytes_to_read);
-    NPT_Result PushData(NPT_OutputStream& output, NPT_Size& bytes_written);
-
-    // members
-    NPT_RingBuffer*     m_RingBuffer;
-    NPT_Offset          m_TotalBytesRead;
-    NPT_Offset          m_TotalBytesWritten;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_PipeInputStreamPump class
-+---------------------------------------------------------------------*/
-class PLT_PipeInputStreamPump : public PLT_StreamPump,
-                                public PLT_PipeInputStream
-{
-public:
-    PLT_PipeInputStreamPump(NPT_OutputStreamReference& output, NPT_Size size = 65535);
-    virtual ~PLT_PipeInputStreamPump();
-
-    NPT_Result Receive(NPT_InputStream& input, NPT_Size max_bytes_to_read, NPT_Size* bytes_read);
-
-protected:
-    NPT_OutputStreamReference   m_Output;
-    NPT_Result                  m_LastRes;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_PipeInputStreamPump class
-+---------------------------------------------------------------------*/
-class PLT_PipeOutputStreamPump : public PLT_StreamPump,
-                                 public PLT_PipeOutputStream
-{
-public:
-    PLT_PipeOutputStreamPump(NPT_InputStreamReference& input, 
-                             NPT_Size                  size = 65535,
-                             NPT_Size                  max_bytes_to_read = 0);
-    virtual ~PLT_PipeOutputStreamPump();
-
-    NPT_Result Transmit(NPT_OutputStream& output);
-
-protected:
-    NPT_InputStreamReference    m_Input;
-    NPT_Size                    m_MaxBytesToRead;
-    NPT_Result                  m_LastRes;
-};
-
-
-#endif // _PLT_STREAM_PUMP_H_ 
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltSyncMediaBrowser.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltSyncMediaBrowser.h
deleted file mode 100644
index 0fe43b5..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltSyncMediaBrowser.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Synchronous Media Browser
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP AV Media Controller synchronous implementation.
- */
-
-#ifndef _PLT_SYNC_MEDIA_BROWSER_
-#define _PLT_SYNC_MEDIA_BROWSER_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltCtrlPoint.h"
-#include "PltMediaBrowser.h"
-#include "PltMediaCache.h"
-
-/*----------------------------------------------------------------------
-|   types
-+---------------------------------------------------------------------*/
-typedef NPT_Map<NPT_String, PLT_DeviceDataReference>         PLT_DeviceMap;
-typedef NPT_Map<NPT_String, PLT_DeviceDataReference>::Entry  PLT_DeviceMapEntry;
-
-typedef struct PLT_BrowseData {
-    NPT_SharedVariable shared_var;
-    NPT_Result         res;
-    PLT_BrowseInfo     info;
-} PLT_BrowseData;
-
-typedef NPT_Reference<PLT_BrowseData> PLT_BrowseDataReference;
-
-/*----------------------------------------------------------------------
-|   PLT_MediaContainerListener
-+---------------------------------------------------------------------*/
-class PLT_MediaContainerChangesListener
-{
-public:
-    virtual ~PLT_MediaContainerChangesListener() {}
-    virtual void OnContainerChanged(PLT_DeviceDataReference& device, 
-                                    const char*              item_id, 
-                                    const char*              update_id) = 0;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_SyncMediaBrowser
-+---------------------------------------------------------------------*/
-class PLT_SyncMediaBrowser : public PLT_MediaBrowser,
-                             public PLT_MediaBrowserDelegate
-{
-public:
-    PLT_SyncMediaBrowser(PLT_CtrlPointReference&            ctrlPoint, 
-                         bool                               use_cache = false, 
-                         PLT_MediaContainerChangesListener* listener = NULL);
-    virtual ~PLT_SyncMediaBrowser();
-
-    // PLT_MediaBrowser methods
-    virtual NPT_Result OnDeviceAdded(PLT_DeviceDataReference& device);
-    virtual NPT_Result OnDeviceRemoved(PLT_DeviceDataReference& device);
-
-    // PLT_MediaBrowserDelegate methods
-    virtual void OnMSStateVariablesChanged(PLT_Service*                  service, 
-                                           NPT_List<PLT_StateVariable*>* vars);
-    virtual void OnBrowseResult(NPT_Result               res, 
-                                PLT_DeviceDataReference& device, 
-                                PLT_BrowseInfo*          info, 
-                                void*                    userdata);
-
-    // methods
-    void       SetContainerListener(PLT_MediaContainerChangesListener* listener) {
-        m_ContainerListener = listener;
-    }
-    NPT_Result BrowseSync(PLT_DeviceDataReference&      device, 
-                          const char*                   id, 
-                          PLT_MediaObjectListReference& list,
-                          bool                          metadata = false,
-                          NPT_Int32                     start = 0,
-                          NPT_Cardinal                  max_results = 0); // 0 means all
-
-    const NPT_Lock<PLT_DeviceMap>& GetMediaServersMap() const { return m_MediaServers; }
-    bool IsCached(const char* uuid, const char* object_id);
-
-protected:
-    NPT_Result BrowseSync(PLT_BrowseDataReference& browse_data,
-                          PLT_DeviceDataReference& device, 
-                          const char*              object_id,
-                          NPT_Int32                index, 
-                          NPT_Int32                count,
-                          bool                     browse_metadata = false,
-                          const char*              filter = "dc:date,upnp:genre,res,res at duration,res at size,upnp:albumArtURI,upnp:album,upnp:artist,upnp:author,searchable,childCount", // explicitely specify res otherwise WMP won't return a URL!
-                          const char*              sort = "");
-private:
-    NPT_Result Find(const char* ip, PLT_DeviceDataReference& device);
-    NPT_Result WaitForResponse(NPT_SharedVariable& shared_var);
-
-private:
-    NPT_Lock<PLT_DeviceMap>              m_MediaServers;
-    PLT_MediaContainerChangesListener*   m_ContainerListener;
-    bool                                 m_UseCache;
-    PLT_MediaCache<PLT_MediaObjectListReference,NPT_String> m_Cache;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceMapFinderByIp
-+---------------------------------------------------------------------*/
-class PLT_DeviceMapFinderByIp
-{
-public:
-    // methods
-    PLT_DeviceMapFinderByIp(const char* ip) : m_IP(ip) {}
-
-    bool operator()(const PLT_DeviceMapEntry* const& entry) const {
-        const PLT_DeviceDataReference& device = entry->GetValue();
-        return (device->GetURLBase().GetHost() == m_IP);
-    }
-
-private:
-    // members
-    NPT_String m_IP;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceFinderByUUID
-+---------------------------------------------------------------------*/
-class PLT_DeviceMapFinderByUUID
-{
-public:
-    // methods
-    PLT_DeviceMapFinderByUUID(const char* uuid) : m_UUID(uuid) {}
-
-    bool operator()(const PLT_DeviceMapEntry* const& entry) const {
-        PLT_DeviceDataReference device = entry->GetValue();
-        return device->GetUUID() == m_UUID;
-    }
-
-private:
-    // members
-    NPT_String m_UUID;
-};
-
-#endif /* _PLT_SYNC_MEDIA_BROWSER_ */
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltTaskManager.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltTaskManager.h
deleted file mode 100644
index cf8f4cb..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltTaskManager.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Task Manager
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- Runnable Tasks Manager
- */
-
-#ifndef _PLT_TASKMANAGER_H_
-#define _PLT_TASKMANAGER_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   forward declarations
-+---------------------------------------------------------------------*/
-class PLT_ThreadTask;
-
-/*----------------------------------------------------------------------
-|   PLT_TaskManager class
-+---------------------------------------------------------------------*/
-/**
- The PLT_TaskManager class maintains a list of runnable tasks. During shutdown, it
- can stop all running tasks. Additionally, it can limit the number of
- tasks that can run at any given time.
- */
-class PLT_TaskManager
-{
-public:
-    /**
-     Create a new Task Manager.
-     @param max_tasks Maximum number of concurrent tasks that the task manager
-     will allow. When the value is reached, a thread calling AddTask will block until
-     a task has finished.
-     */
-	PLT_TaskManager(NPT_Cardinal max_tasks = 0);
-	virtual ~PLT_TaskManager();
-
-    /**
-     Start a new new task and associates it with this task manager.
-     @param task new task
-     @param delay optional time interval to wait before launching the new task
-     @param auto_destroy a flag to indicate if the task is owned by someone else
-     and thus should not destroy itself when done.
-     */
-    virtual NPT_Result StartTask(PLT_ThreadTask*   task, 
-                                 NPT_TimeInterval* delay = NULL,
-                                 bool              auto_destroy = true);
-    
-    /**
-     Stop all tasks associated with this task manager.
-     */
-    NPT_Result Abort();
-    
-    /**
-     Reset task manager after an Abort so new tasks can be queued.
-     */
-    NPT_Result Reset();
-
-    /**
-     Returns the max number of concurrent tasks allowed. 0 for no limit.
-     */
-    NPT_Cardinal GetMaxTasks() { return m_MaxTasks; }
-
-private:
-    friend class PLT_ThreadTask;
-
-    // called by PLT_ThreadTask
-    NPT_Result AddTask(PLT_ThreadTask* task);
-    NPT_Result RemoveTask(PLT_ThreadTask* task);
-
-private:
-    NPT_List<PLT_ThreadTask*>  m_Tasks;
-    NPT_Mutex                  m_TasksLock;
-    NPT_Mutex                  m_CallbackLock;
-    NPT_Queue<int>*            m_Queue;
-    NPT_Cardinal               m_MaxTasks;
-    NPT_Cardinal               m_RunningTasks;
-    bool                       m_Stopping;
-};
-
-typedef NPT_Reference<PLT_TaskManager> PLT_TaskManagerReference;
-
-#endif /* _PLT_TASKMANAGER_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltThreadTask.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltThreadTask.h
deleted file mode 100644
index 8315999..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltThreadTask.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Thread Tasks
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- Runnable Task
- */
-
-#ifndef _PLT_THREADTASK_H_
-#define _PLT_THREADTASK_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-#include "PltTaskManager.h"
-
-/*----------------------------------------------------------------------
-|   PLT_ThreadTask class
-+---------------------------------------------------------------------*/
-/**
- The PLT_ThreadTask class is a base class for executing a given task in a worker
- thread. A PLT_ThreadTask is usually always associated to a PLT_TaskManager 
- which maintains a list to stop and destroy tasks when finished.
- */
-class PLT_ThreadTask : public NPT_Runnable
-{
-public:
-    friend class PLT_TaskManager;
-
-    /**
-     When a task is not managed by a PLT_TaskManager, the owner must call
-     this to stop and destroy it.
-     */
-    NPT_Result Kill();
-    
-protected:
-    /**
-     Return whether this task is in the process of stopping.
-     @param timeout number of milliseconds to wait
-     @return boolean indicating if the task is stopping
-     */
-    virtual bool IsAborting(NPT_Timeout timeout) {
-        return NPT_SUCCEEDED(m_Abort.WaitUntilEquals(1, timeout));
-    }
-    
-    /**
-     Start a task by associating it with a task manager.
-     @param task_manager PLT_TaskManager pointer
-     @param delay optional time interval to wait before launching the new task
-     @param auto_destroy a flag to indicate if the task is owned by someone else
-     and thus should not destroy itself when done.
-     */
-    NPT_Result Start(PLT_TaskManager*  task_manager = NULL, 
-                     NPT_TimeInterval* delay = NULL,
-                     bool              auto_destroy = true);
-    /**
-     Stop the task. This is either called by a task manager or the Kill method.
-     @param blocking Whether the method should block until the task has finished.
-     */
-    NPT_Result Stop(bool blocking = true);
-    
-    /**
-     This method to override in derived classes is called when the task is about
-     to start. 
-     */
-    virtual void DoInit()    {}
-    
-    /**
-     This method to override in derived classes is called when the task is about
-     to stop.
-     */
-    virtual void DoAbort()   {}
-    
-    /**
-     This method to override in derived classes is the main task loop.
-     */
-    virtual void DoRun()     {}
-    
-    /**
-     A PLT_ThreadTask base class is never instantiated directly.
-     */
-    PLT_ThreadTask();
-    
-    /**
-     The task manager will destroy the task when finished if m_AutoDestroy is 
-     true otherwise the owner of this task must use the Kill method.
-     */
-    virtual ~PLT_ThreadTask();
-    
-private:    
-    NPT_Result StartThread();
-    
-    // NPT_Thread methods
-    void Run();
-
-protected:
-    // members
-    PLT_TaskManager*    m_TaskManager;
-
-private:
-    // members
-    NPT_SharedVariable  m_Started;
-    NPT_SharedVariable  m_Abort;
-    NPT_Thread*         m_Thread;
-    bool                m_AutoDestroy;
-    NPT_TimeInterval    m_Delay;
-};
-
-#endif /* _PLT_THREADTASK_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltUPnP.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltUPnP.h
deleted file mode 100644
index 7822bf3..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltUPnP.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - UPnP Engine
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-/** @file
- UPnP Devices and ControlPoints Manager
- */
-
-#ifndef _PLT_UPNP_H_
-#define _PLT_UPNP_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "PltTaskManager.h"
-#include "PltCtrlPoint.h"
-#include "PltDeviceHost.h"
-#include "PltUtilities.h"
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#define PLT_DLNA_SSDP_DELAY       0.05f
-#define PLT_DLNA_SSDP_DELAY_GROUP 0.2f
-
-/*----------------------------------------------------------------------
-|   forward definitions
-+---------------------------------------------------------------------*/
-class PLT_SsdpListenTask;
-
-/*----------------------------------------------------------------------
-|   PLT_UPnP class
-+---------------------------------------------------------------------*/
-/**
- The PLT_UPnP class maintains a list of devices (PLT_DeviceHost) to advertise and/or 
- control points (PLT_CtrlPoint).
- */
-class PLT_UPnP
-{
-public:
-    /**
-     Create a UPnP instance.
-     */
-    PLT_UPnP();
-    ~PLT_UPnP();
-
-    /**
-     Add and start a device inside this UPnP context.
-     @param device device to start.
-     */
-    NPT_Result AddDevice(PLT_DeviceHostReference& device);
-    
-    /**
-     Add and start a control point inside this UPnP context.
-     @param ctrlpoint control point to start.
-     */
-    NPT_Result AddCtrlPoint(PLT_CtrlPointReference& ctrlpoint);
-
-    /**
-     Remove an existing device from this UPnP context.
-     @param device device to stop.
-     */
-    NPT_Result RemoveDevice(PLT_DeviceHostReference& device);
-    
-    /**
-     Remove an existing control point from this UPnP context.
-     @param ctrlpoint control point to stop.
-     */
-    NPT_Result RemoveCtrlPoint(PLT_CtrlPointReference& ctrlpoint);
-
-    /**
-     Start the UPnP context and all existing devices and control points
-     associated with it.
-     */
-    NPT_Result Start();
-    
-    /**
-     Stop the UPnP context and all existing devices and control points
-     associated with it.
-     */
-    NPT_Result Stop();
-    
-    /**
-     Return the UPnP Engine state.
-     @return True if the UPnP engine is running.
-     */
-    bool IsRunning() { return m_Started; }
-
-    /**
-     When a device and a control point are added to the same UPnP context, it is
-     desired that the device be not discovered by the control point. For example when
-     creating a combo UPnP Renderer/CtrlPoint. This methods tells the control point
-     to ignore devices associated with the same UPnP context.
-     @param ignore boolean to ignore devices in context
-     */
-	void SetIgnoreLocalUUIDs(bool ignore) { m_IgnoreLocalUUIDs = ignore; }
-
-private:
-    // members
-    NPT_Mutex                           m_Lock;
-    NPT_List<PLT_DeviceHostReference>   m_Devices;
-    NPT_List<PLT_CtrlPointReference>    m_CtrlPoints;
-    NPT_Reference<PLT_TaskManager>      m_TaskManager;
-
-    // Since we can only have one socket listening on port 1900, 
-    // we create it in here and we will attach every control points
-    // and devices to it when they're added
-    bool                                m_Started;
-    PLT_SsdpListenTask*                 m_SsdpListenTask; 
-	bool								m_IgnoreLocalUUIDs;
-};
-
-#endif /* _PLT_UPNP_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltUPnPObject.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltUPnPObject.h
deleted file mode 100644
index b7bf9e7..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltUPnPObject.h
+++ /dev/null
@@ -1,65 +0,0 @@
-//
-//  PltUPnPObject.h
-//  Platinum
-//
-//  Created by Sylvain on 9/14/10.
-//  Copyright 2010 Plutinosoft LLC. All rights reserved.
-//
-
-#import "NptConfig.h"
-#import "NptTypes.h"
-#import "NptResults.h"
-
-#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
-#include <UIKit/UIKit.h>
-#else
-#import <Cocoa/Cocoa.h>
-#endif
-
-
-#if !defined(_PLATINUM_H_)
-typedef struct PLT_UPnP PLT_UPnP;
-typedef struct PLT_Action PLT_Action;
-typedef struct PLT_DeviceHostReference PLT_DeviceHostReference;
-#endif
-
-/*----------------------------------------------------------------------
-|   PLT_ActionObject
-+---------------------------------------------------------------------*/
- at interface PLT_ActionObject : NSObject {
- at private
-    PLT_Action* action;
-}
-
-- (id)initWithAction:(PLT_Action *)_action;
-- (NPT_Result)setValue:(NSString*)value forArgument:(NSString*)argument;
-- (NPT_Result)setErrorCode:(unsigned int)code withDescription:(NSString*)description;
- at end
-
-/*----------------------------------------------------------------------
-|   PLT_DeviceHostObject
-+---------------------------------------------------------------------*/
- at interface PLT_DeviceHostObject : NSObject {
- at private
-    PLT_DeviceHostReference* device;
-}
-
-- (id)initWithDeviceHost:(PLT_DeviceHostReference*)device;
- at end
-
-/*----------------------------------------------------------------------
-|   PLT_UPnPObject
-+---------------------------------------------------------------------*/
- at interface PLT_UPnPObject : NSObject {
- at private
-    PLT_UPnP* upnp;
-}
-
-- (NPT_Result)start;
-- (NPT_Result)stop;
-- (bool)isRunning;
-
-- (NPT_Result)addDevice:(PLT_DeviceHostObject*)device;
-- (NPT_Result)removeDevice:(PLT_DeviceHostObject*)device;
-
- at end
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltUtilities.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltUtilities.h
deleted file mode 100644
index bdc1340..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltUtilities.h
+++ /dev/null
@@ -1,765 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Utilities
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-|  
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_UTILITIES_H_
-#define _PLT_UTILITIES_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "Neptune.h"
-
-/*----------------------------------------------------------------------
-|   PLT_XmlAttributeFinder
-+---------------------------------------------------------------------*/
-/**
- The PLT_XmlAttributeFinder class is used to determine if an attribute 
- exists given an xml element node, an attribute name and namespace.
- */
-class PLT_XmlAttributeFinder
-{
-public:
-    // if 'namespc' is NULL, we're looking for ANY namespace
-    // if 'namespc' is '\0', we're looking for NO namespace
-    // if 'namespc' is non-empty, look for that SPECIFIC namespace
-    PLT_XmlAttributeFinder(const NPT_XmlElementNode& element, 
-                           const char*               name, 
-                           const char*               namespc) : 
-      m_Element(element), m_Name(name), m_Namespace(namespc) {}
-
-    bool operator()(const NPT_XmlAttribute* const & attribute) const {
-        if (attribute->GetName() == m_Name) {
-            if (m_Namespace) {
-                const NPT_String& prefix = attribute->GetPrefix();
-                if (m_Namespace[0] == '\0') {
-                    // match if the attribute has NO namespace
-                    return prefix.IsEmpty();
-                } else {
-                    // match if the attribute has the SPECIFIC namespace
-                    // we're looking for
-                    const NPT_String* namespc = m_Element.GetNamespaceUri(prefix);
-                    return namespc && *namespc == m_Namespace;
-                }
-            } else {
-                // ANY namespace will match
-                return true;
-            }
-        } else {
-            return false;
-        }
-    }
-
-private:
-    const NPT_XmlElementNode& m_Element;
-    const char*               m_Name;
-    const char*               m_Namespace;
-};
-
-/*----------------------------------------------------------------------
-|   PLT_XmlHelper
-+---------------------------------------------------------------------*/
-/**
- The PLT_XmlHelper class is a set of utility functions for manipulating 
- xml documents and DOM trees.
- */
-class PLT_XmlHelper
-{
-public:
-
-    // static methods
-
-    static NPT_Result Parse(const NPT_String& xml, NPT_XmlElementNode*& tree) {
-        // reset tree
-        tree = NULL;
-
-        // parse body
-        NPT_XmlParser parser;
-        NPT_XmlNode*  node;
-        NPT_Result result = parser.Parse(xml, node);
-        if (NPT_FAILED(result)) {
-            //NPT_LOG_FINEST_1("Failed to parse %s", xml.IsEmpty()?"(empty string)":xml.GetChars());
-            NPT_CHECK(result);
-        }
-
-        tree = node->AsElementNode();
-        if (!tree) {
-            delete node;
-            return NPT_FAILURE;
-        }
-        
-        return NPT_SUCCESS;
-    }
-
-    static NPT_Result GetChildText(NPT_XmlElementNode* node, 
-                                   const char*         tag, 
-                                   NPT_String&         value,
-                                   const char*         namespc = "",
-                                   NPT_Cardinal        max_size = 1024) {
-        value = "";
-
-        if (!node) return NPT_FAILURE;
-
-        // special case "" means we look for the same namespace as the parent
-        if (namespc && namespc[0] == '\0') {
-            namespc = node->GetNamespace()?node->GetNamespace()->GetChars():NPT_XML_NO_NAMESPACE;
-        }
-
-        NPT_XmlElementNode* child = node->GetChild(tag, namespc);
-        if (!child) return NPT_FAILURE;
-
-        const NPT_String* text = child->GetText();
-        // DLNA 7.3.17
-        value = text?text->SubString(0, max_size):"";
-        return NPT_SUCCESS;
-    }
-                                   
-    static NPT_Result RemoveAttribute(NPT_XmlElementNode* node, 
-                                      const char*         name,
-                                      const char*         namespc = "") {
-        if (!node) return NPT_FAILURE;
-
-        // special case "" means we look for the same namespace as the parent
-        if (namespc && namespc[0] == '\0') {
-            namespc = node->GetNamespace()?node->GetNamespace()->GetChars():NPT_XML_NO_NAMESPACE;
-        }
-
-        NPT_List<NPT_XmlAttribute*>::Iterator attribute;
-        attribute = node->GetAttributes().Find(PLT_XmlAttributeFinder(*node, name, namespc));
-        if (!attribute) return NPT_FAILURE;
-
-        delete *attribute;
-        NPT_CHECK(node->GetAttributes().Erase(attribute));
-
-        return NPT_SUCCESS;
-    }
-                                   
-    static NPT_Result GetAttribute(NPT_XmlElementNode* node, 
-                                   const char*         name,
-                                   NPT_XmlAttribute*&  attr,
-                                   const char*         namespc = "") {
-        attr = NULL;
-
-        if (!node) return NPT_FAILURE;
-
-        // special case "" means we look for the same namespace as the parent
-        if (namespc && namespc[0] == '\0') {
-            namespc = node->GetNamespace()?node->GetNamespace()->GetChars():NPT_XML_NO_NAMESPACE;
-        }
-
-        NPT_List<NPT_XmlAttribute*>::Iterator attribute;
-        attribute = node->GetAttributes().Find(PLT_XmlAttributeFinder(*node, name, namespc));
-        if (!attribute) {
-            //NPT_Debug("Failed to find attribute [%s]:%s", namespc, name);
-            return NPT_FAILURE;
-        }
-
-        attr = (*attribute);
-        return NPT_SUCCESS;
-    }
-
-    static NPT_Result GetAttribute(NPT_XmlElementNode* node, 
-                                   const char*         name,
-                                   NPT_String&         value,
-                                   const char*         namespc = "",
-                                   NPT_Cardinal        max_size = 1024) {
-        value = "";
-        
-        NPT_XmlAttribute* attribute = NULL;
-        NPT_Result result = GetAttribute(node, name, attribute, namespc);
-        if (NPT_FAILED(result)) return result;
-        
-        if (!attribute) return NPT_FAILURE;
-        // DLNA 7.3.17 truncate to 1024 bytes
-        value = attribute->GetValue().SubString(0, max_size);
-        return NPT_SUCCESS;
-    }
-
-    static NPT_Result SetAttribute(NPT_XmlElementNode* node, 
-                                   const char*         name,
-                                   const char*         value,
-                                   const char*         namespc = "") {
-        NPT_XmlAttribute* attribute = NULL;
-        NPT_CHECK(GetAttribute(node, name, attribute, namespc));
-        if (!attribute) return NPT_FAILURE;
-
-        attribute->SetValue(value);
-        return NPT_SUCCESS;
-    }
-
-    static NPT_Result AddChildText(NPT_XmlElementNode* node,
-                                   const char*         tag,
-                                   const char*         text,
-                                   const char*         prefix = NULL) {
-        if (!node) return NPT_FAILURE;
-        NPT_XmlElementNode* child = new NPT_XmlElementNode(prefix, tag);
-        child->AddText(text);
-        return node->AddChild(child);
-    }
-
-    static bool IsMatch(const NPT_XmlNode* const & node, const char* tag, const char* namespc_mapped) {
-        // if m_Namespace is NULL, we're looking for ANY namespace
-        // if m_Namespace is '\0', we're looking for NO namespace
-        // if m_Namespace is non-empty, look for that SPECIFIC namespace
-        
-        const NPT_XmlElementNode* element = node->AsElementNode();
-        // is tag the same (case sensitive)?
-        if (element && element->GetTag() == tag) {
-            if (namespc_mapped) {
-                // look for a SPECIFIC namespace or NO namespace
-                const NPT_String* namespc = element->GetNamespace();
-                if (namespc) {
-                    // the element has a namespace, match if it is equal to
-                    // what we're looking for
-                    return *namespc == namespc_mapped;
-                } else {
-                    // the element does not have a namespace, match if we're
-                    // looking for NO namespace
-                    return namespc_mapped[0] == '\0';
-                }
-            } else {
-                // ANY namespace will match
-                return true;
-            }
-        }
-        return false;
-    } 
-
-    static NPT_Result GetChildren(NPT_XmlElementNode*              node,
-                                  NPT_Array<NPT_XmlElementNode*>&  children,
-                                  const char*                      tag,
-                                  const char*                      namespc = "") {
-        if (!node) return NPT_FAILURE;
-
-        // special case "" means we look for the same namespace as the parent
-        if (namespc && namespc[0] == '\0') {
-            namespc = node->GetNamespace()?node->GetNamespace()->GetChars():NPT_XML_NO_NAMESPACE;
-        }
-
-        const char* namespc_mapped = (namespc==NULL)?"":(namespc[0]=='*' && namespc[1]=='\0')?NULL:namespc;
-
-        // get all children first
-        NPT_List<NPT_XmlNode*>& allchildren = node->GetChildren();
-
-        // iterate through children and add only elements with matching tag
-        NPT_List<NPT_XmlNode*>::Iterator child = allchildren.GetFirstItem();
-        while  (child) {
-            if (IsMatch(*child, tag, namespc_mapped)) {
-                children.Add((*child)->AsElementNode());
-            }
-            ++child;
-        }
-        return NPT_SUCCESS;
-    }
-
-    static NPT_XmlElementNode* GetChild(NPT_XmlElementNode* node,
-                                        const char*         tag,
-                                        const char*         namespc = "") {
-        if (!node) return NULL;
-
-        // special case "" means we look for the same namespace as the parent
-        if (namespc && namespc[0] == '\0') {
-            namespc = node->GetNamespace()?node->GetNamespace()->GetChars():NPT_XML_NO_NAMESPACE;
-        }
-
-        return node->GetChild(tag, namespc);
-    }
-
-    static NPT_Result GetChild(NPT_XmlElementNode*  parent,
-                               NPT_XmlElementNode*& child,
-                               NPT_Ordinal          n = 0) {
-        if (!parent) return NPT_FAILURE;
-
-        // reset child
-        child = NULL;
-
-        // get all children first
-        NPT_List<NPT_XmlNode*>::Iterator children = parent->GetChildren().GetFirstItem();
-        while  (children) {
-            if ((*children)->AsElementNode() && n-- == 0) {
-                child = (*children)->AsElementNode();
-                return NPT_SUCCESS;
-            }
-            children++;
-        }
-
-        return NPT_FAILURE;
-    }
-
-    static NPT_Result Serialize(NPT_XmlNode& node, NPT_String& xml, bool add_header = true, NPT_Int8 indentation = 0) {
-        NPT_XmlWriter writer(indentation);
-        NPT_StringOutputStreamReference stream(new NPT_StringOutputStream(&xml));
-        NPT_CHECK(writer.Serialize(node, *stream, add_header));
-        return NPT_SUCCESS;
-    }
-
-	static NPT_String Serialize(NPT_XmlNode& node, bool add_header = true, NPT_Int8 indentation = 0) {
-		NPT_XmlWriter writer(indentation);
-		NPT_String xml;
-		NPT_StringOutputStreamReference stream(new NPT_StringOutputStream(&xml));
-		if (NPT_FAILED(writer.Serialize(node, *stream, add_header))) {
-			NPT_Debug("Failed to serialize xml node");
-			return "";
-		}
-
-		return xml;
-	}
-private:
-    // members
-};
-
-/*----------------------------------------------------------------------
-|   NPT_StringFinder
-+---------------------------------------------------------------------*/
-/**
- The NPT_StringFinder class is used to determine if a string is found 
- as part of a list of strings.
- */
-class NPT_StringFinder
-{
-public:
-    // methods
-    explicit NPT_StringFinder(NPT_String& value, bool ignore_case = false) :
-        m_Value(value.GetChars()), m_IgnoreCase(ignore_case) {}
- 
-    explicit NPT_StringFinder(const char* value, bool ignore_case = false) :
-        m_Value(value), m_IgnoreCase(ignore_case) {}
-    
-    virtual ~NPT_StringFinder() {}
-    
-    bool operator()(const NPT_String* const & value) const {
-        return value->Compare(m_Value, m_IgnoreCase) ? false : true;
-    }
-    bool operator()(const NPT_String& value) const {
-        return value.Compare(m_Value, m_IgnoreCase) ? false : true;
-    }
-    
-private:
-    // members
-    const char*  m_Value;
-    bool         m_IgnoreCase;
-};
-
-/*----------------------------------------------------------------------
-|   NPT_IpAddressFinder
-+---------------------------------------------------------------------*/
-/**
- The NPT_IpAddressFinder class is used to determine if a IP Address is found 
- as part of a list of IP Addresses.
- */
-class NPT_IpAddressFinder
-{
-public:
-    // methods
-    NPT_IpAddressFinder(NPT_IpAddress ip) : m_Value(ip) {}
-    virtual ~NPT_IpAddressFinder() {}
-    
-    bool operator()(const NPT_IpAddress* const & value) const {
-        return *value == m_Value;
-    }
-    bool operator()(const NPT_IpAddress& value) const {
-        return value == m_Value;
-    }
-    
-private:
-    // members
-    NPT_IpAddress m_Value;
-};
-
-
-/*----------------------------------------------------------------------
-|   PLT_UPnPMessageHelper class
-+---------------------------------------------------------------------*/
-/**
- The PLT_UPnPMessageHelper class is a set of utility functions for manipulating 
- specific UPnP HTTP headers.
- */
-class PLT_UPnPMessageHelper
-{
-public:
-    // methods
-    static const NPT_String* GetST(const NPT_HttpMessage& message) { 
-        return message.GetHeaders().GetHeaderValue("ST"); 
-    }
-    static NPT_Result SetST(NPT_HttpMessage& message, 
-                            const char*      st) { 
-        return message.GetHeaders().SetHeader("ST", st); 
-    }
-    
-    static const NPT_String* GetNT(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue("NT"); 
-    }
-    static NPT_Result SetNT(NPT_HttpMessage& message, 
-                            const char*      nt) { 
-        return message.GetHeaders().SetHeader("NT", nt); 
-    }
-    
-    static const NPT_String* GetNTS(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue("NTS"); 
-    }
-    static NPT_Result SetNTS(NPT_HttpMessage& message, 
-                             const char*      nts) { 
-        return message.GetHeaders().SetHeader("NTS", nts); 
-    }
-    
-    static const NPT_String* GetMAN(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue("MAN"); 
-    }
-    static NPT_Result SetMAN(NPT_HttpMessage& message, 
-                             const char*      man) { 
-        return message.GetHeaders().SetHeader("MAN", man); 
-    }
-    
-    static const NPT_String* GetLocation(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue("Location"); 
-    }
-    static NPT_Result SetLocation(NPT_HttpMessage& message, 
-                                  const char*      location) { 
-        return message.GetHeaders().SetHeader("Location", location); 
-    }
-    
-    static const NPT_String* GetServer(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue(NPT_HTTP_HEADER_SERVER); 
-    }
-    static NPT_Result SetServer(NPT_HttpMessage& message, 
-                                const char*      server, 
-                                bool             replace = true) { 
-        return message.GetHeaders().SetHeader(
-                                              NPT_HTTP_HEADER_SERVER, 
-                                              server, 
-                                              replace); 
-    }
-    
-    static const NPT_String* GetUSN(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue("USN"); 
-    }
-    static NPT_Result SetUSN(NPT_HttpMessage& message, 
-                             const char*      usn) { 
-        return message.GetHeaders().SetHeader("USN", usn); 
-    }
-    
-    static const NPT_String* GetCallbacks(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue("CALLBACK"); 
-    }
-    static NPT_Result SetCallbacks(NPT_HttpMessage& message, const char* callbacks) {
-        return message.GetHeaders().SetHeader("CALLBACK", callbacks); 
-    }
-    
-    static const NPT_String* GetSID(const NPT_HttpMessage& message) {
-        return message.GetHeaders().GetHeaderValue("SID"); 
-    }
-    static NPT_Result SetSID(NPT_HttpMessage& message, 
-                             const char*      sid) { 
-        return message.GetHeaders().SetHeader("SID", sid); 
-    }
-    
-    static NPT_Result GetLeaseTime(const NPT_HttpMessage& message, NPT_TimeInterval& lease) {
-        const NPT_String* cc = 
-        message.GetHeaders().GetHeaderValue("Cache-Control");
-        NPT_CHECK_POINTER(cc);
-        return ExtractLeaseTime(*cc, lease);
-    }
-    static NPT_Result SetLeaseTime(NPT_HttpMessage& message, const NPT_TimeInterval& lease) {
-        return message.GetHeaders().SetHeader("Cache-Control",
-                                              "max-age="+NPT_String::FromInteger(lease.ToSeconds())); 
-    }
-    
-    static NPT_Result GetBootId(const NPT_HttpMessage& message, NPT_UInt32& bootId) {
-        bootId = 0;
-        const NPT_String* bid = message.GetHeaders().GetHeaderValue("BOOTID.UPNP.ORG");
-        NPT_CHECK_POINTER(bid);
-        return NPT_ParseInteger32(*bid, bootId, false);
-    }
-    static NPT_Result SetBootId(NPT_HttpMessage& message, const NPT_UInt32& bootId) {
-        return message.GetHeaders().SetHeader("BOOTID.UPNP.ORG",
-                                              NPT_String::FromInteger(bootId));
-    }
-    
-    static NPT_Result GetNextBootId(const NPT_HttpMessage& message, NPT_UInt32& nextBootId) {
-        nextBootId = 0;
-        const NPT_String* nbid = message.GetHeaders().GetHeaderValue("NEXTBOOTID.UPNP.ORG");
-        NPT_CHECK_POINTER(nbid);
-        return NPT_ParseInteger32(*nbid, nextBootId, false);
-    }
-    static NPT_Result SetNextBootId(NPT_HttpMessage&  message, const NPT_UInt32& nextBootId) {
-        return message.GetHeaders().SetHeader("NEXTBOOTID.UPNP.ORG",
-                                              NPT_String::FromInteger(nextBootId));
-    }
-    
-    static NPT_Result GetConfigId(const NPT_HttpMessage& message, NPT_UInt32& configId) {
-        configId = 0;
-        const NPT_String* cid = message.GetHeaders().GetHeaderValue("CONFIGID.UPNP.ORG");
-        NPT_CHECK_POINTER(cid);
-        return NPT_ParseInteger32(*cid, configId, false);
-    }
-    static NPT_Result SetConfigId(NPT_HttpMessage&  message, const NPT_UInt32& configId) {
-        return message.GetHeaders().SetHeader("CONFIGID.UPNP.ORG", NPT_String::FromInteger(configId));
-    }
-    
-    static NPT_Result GetTimeOut(const NPT_HttpMessage& message, NPT_Int32& seconds) {
-        seconds = 0;
-        const NPT_String* timeout = 
-        message.GetHeaders().GetHeaderValue("TIMEOUT"); 
-        NPT_CHECK_POINTER(timeout);
-        return ExtractTimeOut(*timeout, seconds); 
-    }
-    static NPT_Result SetTimeOut(NPT_HttpMessage& message, const NPT_Int32 seconds) {
-        if (seconds >= 0) {
-            return message.GetHeaders().SetHeader("TIMEOUT", "Second-"+NPT_String::FromInteger(seconds));
-        } else {
-            return message.GetHeaders().SetHeader("TIMEOUT", "Second-infinite");
-        }
-    }
-    
-    static NPT_Result SetDate(NPT_HttpMessage& message) {
-        NPT_TimeStamp now;
-        NPT_System::GetCurrentTimeStamp(now);
-        NPT_DateTime date(now);
-        
-        return message.GetHeaders().SetHeader("Date", date.ToString(NPT_DateTime::FORMAT_RFC_1123)); 
-    }
-    
-    static NPT_Result GetIfModifiedSince(const NPT_HttpMessage& message, NPT_DateTime& date) {
-        const NPT_String* value = message.GetHeaders().GetHeaderValue("If-Modified-Since");
-        if (!value) return NPT_FAILURE;
-        
-        // Try RFC 1123, RFC 1036, then ANSI
-        if (NPT_SUCCEEDED(date.FromString(*value, NPT_DateTime::FORMAT_RFC_1123))) 
-            return NPT_SUCCESS;
-        
-        if (NPT_SUCCEEDED(date.FromString(*value, NPT_DateTime::FORMAT_RFC_1036)))
-            return NPT_SUCCESS;
-        
-        return date.FromString(*value, NPT_DateTime::FORMAT_ANSI);
-    }            
-    static NPT_Result SetIfModifiedSince(NPT_HttpMessage& message, const NPT_DateTime& date) {
-        return message.GetHeaders().SetHeader("If-Modified-Since",
-                                              date.ToString(NPT_DateTime::FORMAT_RFC_1123));
-    }
-    
-    static NPT_Result GetMX(const NPT_HttpMessage& message, NPT_UInt32& value) {
-        value = 0;
-        const NPT_String* mx = 
-        message.GetHeaders().GetHeaderValue("MX");
-        NPT_CHECK_POINTER(mx);
-        return NPT_ParseInteger32(*mx, value, false); // no relax to be UPnP compliant
-    }
-    static NPT_Result SetMX(NPT_HttpMessage& message, const NPT_UInt32 mx) {
-        return message.GetHeaders().SetHeader("MX",
-                                              NPT_String::FromInteger(mx)); 
-    }
-    
-    static NPT_Result GetSeq(const NPT_HttpMessage& message, NPT_UInt32& value) {
-        value = 0;
-        const NPT_String* seq = 
-        message.GetHeaders().GetHeaderValue("SEQ");
-        NPT_CHECK_POINTER(seq);
-        return NPT_ParseInteger32(*seq, value);
-    }
-    static NPT_Result SetSeq(NPT_HttpMessage& message, const NPT_UInt32 seq) {
-        return message.GetHeaders().SetHeader("SEQ",
-                                              NPT_String::FromInteger(seq)); 
-    }
-    
-    static const char* GenerateUUID(int count, NPT_String& uuid) {
-        uuid = "";
-        for (int i=0;i<(count<100?count:100);i++) {
-            int random = NPT_System::GetRandomInteger();
-            uuid += (char)((random % 25) + 66);
-        }
-        return uuid;
-    }
-    
-    static const char* GenerateSerialNumber(NPT_String& sn, int count = 40) {
-        sn = "{";
-        for (int i=0;i<count;i++) {
-            char nibble = (char)(NPT_System::GetRandomInteger() % 16);
-            sn += (nibble < 10) ? ('0' + nibble) : ('a' + (nibble-10));
-        }
-        sn += "}";
-        return sn;
-    }
-    
-    static const char* GenerateGUID(NPT_String& guid) {
-        guid = "";
-        for (int i=0;i<32;i++) {
-            char nibble = (char)(NPT_System::GetRandomInteger() % 16);
-            guid += (nibble < 10) ? ('0' + nibble) : ('a' + (nibble-10));
-            if (i == 7 || i == 11 || i == 15 || i == 19) {
-                guid += '-';
-            }
-        }
-        return guid;
-    }
-    
-    static NPT_Result ExtractLeaseTime(const NPT_String& cache_control, NPT_TimeInterval& lease) {
-        NPT_Int32 value;
-        if (cache_control.StartsWith("max-age=", true) &&
-            NPT_SUCCEEDED(NPT_ParseInteger32(cache_control.GetChars()+8, value))) {
-            lease.SetSeconds(value);
-            return NPT_SUCCESS;
-        }
-        return NPT_FAILURE;
-    }
-    
-    static NPT_Result ExtractTimeOut(const char* timeout, NPT_Int32& len) {
-        NPT_String temp = timeout;
-        if (temp.CompareN("Second-", 7, true)) {
-            return NPT_ERROR_INVALID_FORMAT;
-        }
-        
-        if (temp.Compare("Second-infinite", true) == 0) {
-            len = NPT_TIMEOUT_INFINITE;
-            return NPT_SUCCESS;
-        }
-        return temp.SubString(7).ToInteger(len);
-    }
-    
-    static NPT_Result GetIPAddresses(NPT_List<NPT_IpAddress>& ips, bool with_localhost = false) {
-        NPT_List<NPT_NetworkInterface*> if_list;
-        NPT_CHECK(GetNetworkInterfaces(if_list, with_localhost));
-        
-        NPT_List<NPT_NetworkInterface*>::Iterator iface = if_list.GetFirstItem();
-        while (iface) {
-            NPT_IpAddress ip = (*(*iface)->GetAddresses().GetFirstItem()).GetPrimaryAddress();
-            if (ip.ToString().Compare("0.0.0.0") && 
-                (with_localhost || ip.ToString().Compare("127.0.0.1"))) {
-                ips.Add(ip);
-            }
-            ++iface;
-        }
-        
-        if (with_localhost && !ips.Find(NPT_IpAddressFinder(NPT_IpAddress(127, 0, 0, 1)))) {
-            NPT_IpAddress localhost;
-            localhost.Parse("127.0.0.1");
-            ips.Add(localhost);
-        }
-        
-        if_list.Apply(NPT_ObjectDeleter<NPT_NetworkInterface>());
-        return NPT_SUCCESS;
-    }
-    
-    static NPT_Result GetNetworkInterfaces(NPT_List<NPT_NetworkInterface*>& if_list, 
-                                           bool with_localhost = false) {
-        NPT_CHECK(_GetNetworkInterfaces(if_list, with_localhost, false));
-        
-        // if no valid interfaces or if requested, add localhost interface
-        if (if_list.GetItemCount() == 0) {
-            NPT_CHECK(_GetNetworkInterfaces(if_list, true, true));
-        }
-        return NPT_SUCCESS;
-    }
-    
-	static NPT_Result GetMACAddresses(NPT_List<NPT_String>& addresses) {
-        NPT_List<NPT_NetworkInterface*> if_list;
-        NPT_CHECK(GetNetworkInterfaces(if_list));
-        
-        NPT_List<NPT_NetworkInterface*>::Iterator iface = if_list.GetFirstItem();
-        while (iface) {
-            NPT_String ip = (*(*iface)->GetAddresses().GetFirstItem()).GetPrimaryAddress().ToString();
-            if (ip.Compare("0.0.0.0") && ip.Compare("127.0.0.1")) {
-				addresses.Add((*iface)->GetMacAddress().ToString());
-            }
-            ++iface;
-        }
-        
-        if_list.Apply(NPT_ObjectDeleter<NPT_NetworkInterface>());
-        return NPT_SUCCESS;
-    }
-    
-    
-	static bool IsLocalNetworkAddress(const NPT_IpAddress& address) {
-		if (address.ToString() == "127.0.0.1") return true;
-        
-		NPT_List<NPT_NetworkInterface*> if_list;
-        NPT_NetworkInterface::GetNetworkInterfaces(if_list);
-        
-		NPT_List<NPT_NetworkInterface*>::Iterator iface = if_list.GetFirstItem();
-        while (iface) {
-			if((*iface)->IsAddressInNetwork(address)) return true;
-            ++iface;
-        }
-        
-		if_list.Apply(NPT_ObjectDeleter<NPT_NetworkInterface>());
-		return false;
-	}
-    
-private:
-    
-    static NPT_Result _GetNetworkInterfaces(NPT_List<NPT_NetworkInterface*>& if_list,
-                                            bool include_localhost = false,
-                                            bool only_localhost = false) {
-        NPT_List<NPT_NetworkInterface*> _if_list;
-        NPT_CHECK(NPT_NetworkInterface::GetNetworkInterfaces(_if_list));
-        
-        NPT_NetworkInterface* iface;
-        while (NPT_SUCCEEDED(_if_list.PopHead(iface))) {
-            // only interested in non PTP & multicast capable interfaces
-            if ((iface->GetAddresses().GetItemCount() == 0) ||
-                !(iface->GetFlags() & NPT_NETWORK_INTERFACE_FLAG_MULTICAST) ||
-                 (iface->GetFlags() & NPT_NETWORK_INTERFACE_FLAG_POINT_TO_POINT)) {
-                delete iface;
-                continue;
-            }
-            
-            NPT_String ip = iface->GetAddresses().GetFirstItem()->GetPrimaryAddress().ToString();
-            
-            if (iface->GetFlags() & NPT_NETWORK_INTERFACE_FLAG_LOOPBACK) {
-                if (include_localhost || only_localhost) {
-                    if_list.Add(iface);
-                    continue;
-                }
-            } else if (ip.Compare("0.0.0.0") && !only_localhost) {
-                if_list.Add(iface);
-                continue;
-            }
-            
-            delete iface;
-        }
-        
-        // cleanup any remaining items in list if we breaked early
-        _if_list.Apply(NPT_ObjectDeleter<NPT_NetworkInterface>());
-        return NPT_SUCCESS;
-    }
-};
-
-#endif // _PLT_UTILITIES_H_
-
-
-
-
-
-
-
-
-
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltVersion.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltVersion.h
deleted file mode 100644
index 5101009..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltVersion.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - Version Info
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-| 
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_VERSION_H_
-#define _PLT_VERSION_H_
-
-/*----------------------------------------------------------------------
-|   constants
-+---------------------------------------------------------------------*/
-#define PLT_PLATINUM_SDK_VERSION            0x00010513
-#define PLT_PLATINUM_SDK_VERSION_STRING     "1.0.5.13"
-
-#endif // _PLT_VERSION_H_
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltXbox360.h b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltXbox360.h
deleted file mode 100644
index 6bae726..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Headers/PltXbox360.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*****************************************************************
-|
-|   Platinum - XBox 360
-|
-| Copyright (c) 2004-2010, Plutinosoft, LLC.
-| All rights reserved.
-| http://www.plutinosoft.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.
-|
-| OEMs, ISVs, VARs and other distributors that combine and 
-| distribute commercially licensed software with Platinum software
-| and do not wish to distribute the source code for the commercially
-| licensed software under version 2, or (at your option) any later
-| version, of the GNU General Public License (the "GPL") must enter
-| into a commercial license agreement with Plutinosoft, LLC.
-| licensing at plutinosoft.com
-| 
-| 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; see the file LICENSE.txt. If not, write to
-| the Free Software Foundation, Inc., 
-| 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-| http://www.gnu.org/licenses/gpl-2.0.html
-|
-****************************************************************/
-
-#ifndef _PLT_XBOX360_H_
-#define _PLT_XBOX360_H_
-
-/*----------------------------------------------------------------------
-|   includes
-+---------------------------------------------------------------------*/
-#include "PltMediaRenderer.h"
-
-class PLT_Xbox360 : public PLT_MediaRenderer
-{
-public:
-    PLT_Xbox360(const char*  uuid        = NULL, 
-                unsigned int port        = 0,
-                bool         port_rebind = false);
-
-protected:
-    // PLT_DeviceHost methods
-    virtual NPT_Result SetupServices();
-    virtual NPT_Result SetupIcons();
-    virtual NPT_Result InitServiceURLs(PLT_Service* service, const char* service_name);
-    
-    virtual NPT_Result Announce(PLT_DeviceData*      device, 
-                                NPT_HttpRequest&     request,
-                                NPT_UdpSocket&       socket,
-                                PLT_SsdpAnnounceType type);
-
-    // PLT_DeviceData methods
-    virtual NPT_Result GetDescription(NPT_String& desc) { return PLT_MediaRenderer::GetDescription(desc); }
-    virtual NPT_Result GetDescription(NPT_XmlElementNode*  parent, 
-                                      NPT_XmlElementNode** device = NULL);
-
-protected:
-    virtual ~PLT_Xbox360();
-
-    virtual NPT_Result AnnouncePresence(NPT_UdpSocket& socket, 
-                                        const char*    serial_number);
-};
-
-#endif /* _PLT_XBOX360_H_ */
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Platinum b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Platinum
deleted file mode 100644
index 4bc29da..0000000
Binary files a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Platinum and /dev/null differ
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Resources/Info.plist b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Resources/Info.plist
deleted file mode 100644
index c16027b..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Resources/Info.plist
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>BuildMachineOSBuild</key>
-	<string>13C64</string>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>Platinum</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.plutinosoft.Platinum</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>Platinum</string>
-	<key>CFBundlePackageType</key>
-	<string>FMWK</string>
-	<key>CFBundleShortVersionString</key>
-	<string>0.6.9</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>0.6.9</string>
-	<key>DTCompiler</key>
-	<string>com.apple.compilers.llvm.clang.1_0</string>
-	<key>DTPlatformBuild</key>
-	<string>5B130a</string>
-	<key>DTPlatformVersion</key>
-	<string>GM</string>
-	<key>DTSDKBuild</key>
-	<string>13C64</string>
-	<key>DTSDKName</key>
-	<string>macosx10.9</string>
-	<key>DTXcode</key>
-	<string>0510</string>
-	<key>DTXcodeBuild</key>
-	<string>5B130a</string>
-	<key>NSHumanReadableCopyright</key>
-	<string>Copyright © 2011 Plutinosoft LLC. All rights reserved.</string>
-</dict>
-</plist>
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Resources/en.lproj/InfoPlist.strings b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Resources/en.lproj/InfoPlist.strings
deleted file mode 100644
index 5e45963..0000000
Binary files a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/A/Resources/en.lproj/InfoPlist.strings and /dev/null differ
diff --git a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/Current b/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/Current
deleted file mode 100644
index 8c7e5a6..0000000
--- a/lib/libUPnP/Platinum/Targets/universal-apple-macosx/Release/Platinum.framework/Versions/Current
+++ /dev/null
@@ -1 +0,0 @@
-A
\ No newline at end of file
diff --git a/lib/libUPnP/Platinum/ThirdParty/log4net/log4net.xml b/lib/libUPnP/Platinum/ThirdParty/log4net/log4net.xml
deleted file mode 100644
index db9e99f..0000000
--- a/lib/libUPnP/Platinum/ThirdParty/log4net/log4net.xml
+++ /dev/null
@@ -1,28655 +0,0 @@
-<?xml version="1.0"?>
-<doc>
-    <assembly>
-        <name>log4net</name>
-    </assembly>
-    <members>
-        <member name="T:log4net.Appender.AdoNetAppender">
-            <summary>
-            Appender that logs to a database.
-            </summary>
-            <remarks>
-            <para>
-            <see cref="T:log4net.Appender.AdoNetAppender"/> appends logging events to a table within a
-            database. The appender can be configured to specify the connection 
-            string by setting the <see cref="P:log4net.Appender.AdoNetAppender.ConnectionString"/> property. 
-            The connection type (provider) can be specified by setting the <see cref="P:log4net.Appender.AdoNetAppender.ConnectionType"/>
-            property. For more information on database connection strings for
-            your specific database see <a href="http://www.connectionstrings.com/">http://www.connectionstrings.com/</a>.
-            </para>
-            <para>
-            Records are written into the database either using a prepared
-            statement or a stored procedure. The <see cref="P:log4net.Appender.AdoNetAppender.CommandType"/> property
-            is set to <see cref="F:System.Data.CommandType.Text"/> (<c>System.Data.CommandType.Text</c>) to specify a prepared statement
-            or to <see cref="F:System.Data.CommandType.StoredProcedure"/> (<c>System.Data.CommandType.StoredProcedure</c>) to specify a stored
-            procedure.
-            </para>
-            <para>
-            The prepared statement text or the name of the stored procedure
-            must be set in the <see cref="P:log4net.Appender.AdoNetAppender.CommandText"/> property.
-            </para>
-            <para>
-            The prepared statement or stored procedure can take a number
-            of parameters. Parameters are added using the <see cref="M:log4net.Appender.AdoNetAppender.AddParameter(log4net.Appender.AdoNetAppenderParameter)"/>
-            method. This adds a single <see cref="T:log4net.Appender.AdoNetAppenderParameter"/> to the
-            ordered list of parameters. The <see cref="T:log4net.Appender.AdoNetAppenderParameter"/>
-            type may be subclassed if required to provide database specific
-            functionality. The <see cref="T:log4net.Appender.AdoNetAppenderParameter"/> specifies
-            the parameter name, database type, size, and how the value should
-            be generated using a <see cref="T:log4net.Layout.ILayout"/>.
-            </para>
-            </remarks>
-            <example>
-            An example of a SQL Server table that could be logged to:
-            <code lang="SQL">
-            CREATE TABLE [dbo].[Log] ( 
-              [ID] [int] IDENTITY (1, 1) NOT NULL ,
-              [Date] [datetime] NOT NULL ,
-              [Thread] [varchar] (255) NOT NULL ,
-              [Level] [varchar] (20) NOT NULL ,
-              [Logger] [varchar] (255) NOT NULL ,
-              [Message] [varchar] (4000) NOT NULL 
-            ) ON [PRIMARY]
-            </code>
-            </example>
-            <example>
-            An example configuration to log to the above table:
-            <code lang="XML" escaped="true">
-            <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
-              <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
-              <connectionString value="data source=SQLSVR;initial catalog=test_log4net;integrated security=false;persist security info=True;User ID=sa;Password=sa"/>
-              <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)"/>
-              <parameter>
-                <parameterName value="@log_date"/>
-                <dbType value="DateTime"/>
-                <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}"/>
-              </parameter>
-              <parameter>
-                <parameterName value="@thread"/>
-                <dbType value="String"/>
-                <size value="255"/>
-                <layout type="log4net.Layout.PatternLayout" value="%thread"/>
-              </parameter>
-              <parameter>
-                <parameterName value="@log_level"/>
-                <dbType value="String"/>
-                <size value="50"/>
-                <layout type="log4net.Layout.PatternLayout" value="%level"/>
-              </parameter>
-              <parameter>
-                <parameterName value="@logger"/>
-                <dbType value="String"/>
-                <size value="255"/>
-                <layout type="log4net.Layout.PatternLayout" value="%logger"/>
-              </parameter>
-              <parameter>
-                <parameterName value="@message"/>
-                <dbType value="String"/>
-                <size value="4000"/>
-                <layout type="log4net.Layout.PatternLayout" value="%message"/>
-              </parameter>
-            </appender>
-            </code>
-            </example>
-            <author>Julian Biddle</author>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-            <author>Lance Nehring</author>
-        </member>
-        <member name="T:log4net.Appender.BufferingAppenderSkeleton">
-            <summary>
-            Abstract base class implementation of <see cref="T:log4net.Appender.IAppender"/> that 
-            buffers events in a fixed size buffer.
-            </summary>
-            <remarks>
-            <para>
-            This base class should be used by appenders that need to buffer a 
-            number of events before logging them. For example the <see cref="T:log4net.Appender.AdoNetAppender"/> 
-            buffers events and then submits the entire contents of the buffer to 
-            the underlying database in one go.
-            </para>
-            <para>
-            Subclasses should override the <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/>
-            method to deliver the buffered events.
-            </para>
-            <para>The BufferingAppenderSkeleton maintains a fixed size cyclic 
-            buffer of events. The size of the buffer is set using 
-            the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> property.
-            </para>
-            <para>A <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> is used to inspect 
-            each event as it arrives in the appender. If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> 
-            triggers, then the current buffer is sent immediately 
-            (see <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/>). Otherwise the event 
-            is stored in the buffer. For example, an evaluator can be used to 
-            deliver the events immediately when an ERROR event arrives.
-            </para>
-            <para>
-            The buffering appender can be configured in a <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> mode. 
-            By default the appender is NOT lossy. When the buffer is full all 
-            the buffered events are sent with <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/>.
-            If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> property is set to <c>true</c> then the 
-            buffer will not be sent when it is full, and new events arriving 
-            in the appender will overwrite the oldest event in the buffer. 
-            In lossy mode the buffer will only be sent when the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/>
-            triggers. This can be useful behavior when you need to know about 
-            ERROR events but not about events with a lower level, configure an 
-            evaluator that will trigger when an ERROR event arrives, the whole 
-            buffer will be sent which gives a history of events leading up to
-            the ERROR event.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Appender.AppenderSkeleton">
-            <summary>
-            Abstract base class implementation of <see cref="T:log4net.Appender.IAppender"/>. 
-            </summary>
-            <remarks>
-            <para>
-            This class provides the code for common functionality, such 
-            as support for threshold filtering and support for general filters.
-            </para>
-            <para>
-            Appenders can also implement the <see cref="T:log4net.Core.IOptionHandler"/> interface. Therefore
-            they would require that the <see cref="M:log4net.Core.IOptionHandler.ActivateOptions"/> method
-            be called after the appenders properties have been configured.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Appender.IAppender">
-            <summary>
-            Implement this interface for your own strategies for printing log statements.
-            </summary>
-            <remarks>
-            <para>
-            Implementors should consider extending the <see cref="T:log4net.Appender.AppenderSkeleton"/>
-            class which provides a default implementation of this interface.
-            </para>
-            <para>
-            Appenders can also implement the <see cref="T:log4net.Core.IOptionHandler"/> interface. Therefore
-            they would require that the <see cref="M:log4net.Core.IOptionHandler.ActivateOptions"/> method
-            be called after the appenders properties have been configured.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Appender.IAppender.Close">
-            <summary>
-            Closes the appender and releases resources.
-            </summary>
-            <remarks>
-            <para>
-            Releases any resources allocated within the appender such as file handles, 
-            network connections, etc.
-            </para>
-            <para>
-            It is a programming error to append to a closed appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.IAppender.DoAppend(log4net.Core.LoggingEvent)">
-            <summary>
-            Log the logging event in Appender specific way.
-            </summary>
-            <param name="loggingEvent">The event to log</param>
-            <remarks>
-            <para>
-            This method is called to log a message into this appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.IAppender.Name">
-            <summary>
-            Gets or sets the name of this appender.
-            </summary>
-            <value>The name of the appender.</value>
-            <remarks>
-            <para>The name uniquely identifies the appender.</para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.IBulkAppender">
-            <summary>
-            Interface for appenders that support bulk logging.
-            </summary>
-            <remarks>
-            <para>
-            This interface extends the <see cref="T:log4net.Appender.IAppender"/> interface to
-            support bulk logging of <see cref="T:log4net.Core.LoggingEvent"/> objects. Appenders
-            should only implement this interface if they can bulk log efficiently.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Appender.IBulkAppender.DoAppend(log4net.Core.LoggingEvent[])">
-            <summary>
-            Log the array of logging events in Appender specific way.
-            </summary>
-            <param name="loggingEvents">The events to log</param>
-            <remarks>
-            <para>
-            This method is called to log an array of events into this appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.IOptionHandler">
-            <summary>
-            Interface used to delay activate a configured object.
-            </summary>
-            <remarks>
-            <para>
-            This allows an object to defer activation of its options until all
-            options have been set. This is required for components which have
-            related options that remain ambiguous until all are set.
-            </para>
-            <para>
-            If a component implements this interface then the <see cref="M:log4net.Core.IOptionHandler.ActivateOptions"/> method 
-            must be called by the container after its all the configured properties have been set 
-            and before the component can be used.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Core.IOptionHandler.ActivateOptions">
-            <summary>
-            Activate the options that were previously set with calls to properties.
-            </summary>
-            <remarks>
-            <para>
-            This allows an object to defer activation of its options until all
-            options have been set. This is required for components which have
-            related options that remain ambiguous until all are set.
-            </para>
-            <para>
-            If a component implements this interface then this method must be called
-            after its properties have been set before the component can be used.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AppenderSkeleton.c_renderBufferSize">
-            <summary>
-            Initial buffer size
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AppenderSkeleton.c_renderBufferMaxCapacity">
-            <summary>
-            Maximum buffer size before it is recycled
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>Empty default constructor</para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.Finalize">
-            <summary>
-            Finalizes this appender by calling the implementation's 
-            <see cref="M:log4net.Appender.AppenderSkeleton.Close"/> method.
-            </summary>
-            <remarks>
-            <para>
-            If this appender has not been closed then the <c>Finalize</c> method
-            will call <see cref="M:log4net.Appender.AppenderSkeleton.Close"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.ActivateOptions">
-            <summary>
-            Initialize the appender based on the options set
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.Close">
-            <summary>
-            Closes the appender and release resources.
-            </summary>
-            <remarks>
-            <para>
-            Release any resources allocated within the appender such as file handles, 
-            network connections, etc.
-            </para>
-            <para>
-            It is a programming error to append to a closed appender.
-            </para>
-            <para>
-            This method cannot be overridden by subclasses. This method 
-            delegates the closing of the appender to the <see cref="M:log4net.Appender.AppenderSkeleton.OnClose"/>
-            method which must be overridden in the subclass.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)">
-            <summary>
-            Performs threshold checks and invokes filters before 
-            delegating actual logging to the subclasses specific 
-            <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/> method.
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            This method cannot be overridden by derived classes. A
-            derived class should override the <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/> method
-            which is called by this method.
-            </para>
-            <para>
-            The implementation of this method is as follows:
-            </para>
-            <para>
-            <list type="bullet">
-            	<item>
-            		<description>
-            		Checks that the severity of the <paramref name="loggingEvent"/>
-            		is greater than or equal to the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> of this
-            		appender.</description>
-            	</item>
-            	<item>
-            		<description>
-            		Checks that the <see cref="T:log4net.Filter.IFilter"/> chain accepts the 
-            		<paramref name="loggingEvent"/>.
-            		</description>
-            	</item>
-            	<item>
-            		<description>
-            		Calls <see cref="M:log4net.Appender.AppenderSkeleton.PreAppendCheck"/> and checks that 
-            		it returns <c>true</c>.</description>
-            	</item>
-            </list>
-            </para>
-            <para>
-            If all of the above steps succeed then the <paramref name="loggingEvent"/>
-            will be passed to the abstract <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/> method.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent[])">
-            <summary>
-            Performs threshold checks and invokes filters before 
-            delegating actual logging to the subclasses specific 
-            <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent[])"/> method.
-            </summary>
-            <param name="loggingEvents">The array of events to log.</param>
-            <remarks>
-            <para>
-            This method cannot be overridden by derived classes. A
-            derived class should override the <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent[])"/> method
-            which is called by this method.
-            </para>
-            <para>
-            The implementation of this method is as follows:
-            </para>
-            <para>
-            <list type="bullet">
-            	<item>
-            		<description>
-            		Checks that the severity of the <paramref name="loggingEvent"/>
-            		is greater than or equal to the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> of this
-            		appender.</description>
-            	</item>
-            	<item>
-            		<description>
-            		Checks that the <see cref="T:log4net.Filter.IFilter"/> chain accepts the 
-            		<paramref name="loggingEvent"/>.
-            		</description>
-            	</item>
-            	<item>
-            		<description>
-            		Calls <see cref="M:log4net.Appender.AppenderSkeleton.PreAppendCheck"/> and checks that 
-            		it returns <c>true</c>.</description>
-            	</item>
-            </list>
-            </para>
-            <para>
-            If all of the above steps succeed then the <paramref name="loggingEvents"/>
-            will be passed to the <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent[])"/> method.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.FilterEvent(log4net.Core.LoggingEvent)">
-            <summary>
-            Test if the logging event should we output by this appender
-            </summary>
-            <param name="loggingEvent">the event to test</param>
-            <returns><c>true</c> if the event should be output, <c>false</c> if the event should be ignored</returns>
-            <remarks>
-            <para>
-            This method checks the logging event against the threshold level set
-            on this appender and also against the filters specified on this
-            appender.
-            </para>
-            <para>
-            The implementation of this method is as follows:
-            </para>
-            <para>
-            <list type="bullet">
-            	<item>
-            		<description>
-            		Checks that the severity of the <paramref name="loggingEvent"/>
-            		is greater than or equal to the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> of this
-            		appender.</description>
-            	</item>
-            	<item>
-            		<description>
-            		Checks that the <see cref="T:log4net.Filter.IFilter"/> chain accepts the 
-            		<paramref name="loggingEvent"/>.
-            		</description>
-            	</item>
-            </list>
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.AddFilter(log4net.Filter.IFilter)">
-            <summary>
-            Adds a filter to the end of the filter chain.
-            </summary>
-            <param name="filter">the filter to add to this appender</param>
-            <remarks>
-            <para>
-            The Filters are organized in a linked list.
-            </para>
-            <para>
-            Setting this property causes the new filter to be pushed onto the 
-            back of the filter chain.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.ClearFilters">
-            <summary>
-            Clears the filter list for this appender.
-            </summary>
-            <remarks>
-            <para>
-            Clears the filter list for this appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.IsAsSevereAsThreshold(log4net.Core.Level)">
-            <summary>
-            Checks if the message level is below this appender's threshold.
-            </summary>
-            <param name="level"><see cref="T:log4net.Core.Level"/> to test against.</param>
-            <remarks>
-            <para>
-            If there is no threshold set, then the return value is always <c>true</c>.
-            </para>
-            </remarks>
-            <returns>
-            <c>true</c> if the <paramref name="level"/> meets the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> 
-            requirements of this appender.
-            </returns>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.OnClose">
-            <summary>
-            Is called when the appender is closed. Derived classes should override 
-            this method if resources need to be released.
-            </summary>
-            <remarks>
-            <para>
-            Releases any resources allocated within the appender such as file handles, 
-            network connections, etc.
-            </para>
-            <para>
-            It is a programming error to append to a closed appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            Subclasses of <see cref="T:log4net.Appender.AppenderSkeleton"/> should implement this method 
-            to perform actual logging.
-            </summary>
-            <param name="loggingEvent">The event to append.</param>
-            <remarks>
-            <para>
-            A subclass must implement this method to perform
-            logging of the <paramref name="loggingEvent"/>.
-            </para>
-            <para>This method will be called by <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/>
-            if all the conditions listed for that method are met.
-            </para>
-            <para>
-            To restrict the logging of events in the appender
-            override the <see cref="M:log4net.Appender.AppenderSkeleton.PreAppendCheck"/> method.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent[])">
-            <summary>
-            Append a bulk array of logging events.
-            </summary>
-            <param name="loggingEvents">the array of logging events</param>
-            <remarks>
-            <para>
-            This base class implementation calls the <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/>
-            method for each element in the bulk array.
-            </para>
-            <para>
-            A sub class that can better process a bulk array of events should
-            override this method in addition to <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.PreAppendCheck">
-            <summary>
-            Called before <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/> as a precondition.
-            </summary>
-            <remarks>
-            <para>
-            This method is called by <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/>
-            before the call to the abstract <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/> method.
-            </para>
-            <para>
-            This method can be overridden in a subclass to extend the checks 
-            made before the event is passed to the <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/> method.
-            </para>
-            <para>
-            A subclass should ensure that they delegate this call to
-            this base class if it is overridden.
-            </para>
-            </remarks>
-            <returns><c>true</c> if the call to <see cref="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)"/> should proceed.</returns>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(log4net.Core.LoggingEvent)">
-            <summary>
-            Renders the <see cref="T:log4net.Core.LoggingEvent"/> to a string.
-            </summary>
-            <param name="loggingEvent">The event to render.</param>
-            <returns>The event rendered as a string.</returns>
-            <remarks>
-            <para>
-            Helper method to render a <see cref="T:log4net.Core.LoggingEvent"/> to 
-            a string. This appender must have a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/>
-            set to render the <paramref name="loggingEvent"/> to 
-            a string.
-            </para>
-            <para>If there is exception data in the logging event and 
-            the layout does not process the exception, this method 
-            will append the exception text to the rendered string.
-            </para>
-            <para>
-            Where possible use the alternative version of this method
-            <see cref="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(System.IO.TextWriter,log4net.Core.LoggingEvent)"/>.
-            That method streams the rendering onto an existing Writer
-            which can give better performance if the caller already has
-            a <see cref="T:System.IO.TextWriter"/> open and ready for writing.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Renders the <see cref="T:log4net.Core.LoggingEvent"/> to a string.
-            </summary>
-            <param name="loggingEvent">The event to render.</param>
-            <param name="writer">The TextWriter to write the formatted event to</param>
-            <remarks>
-            <para>
-            Helper method to render a <see cref="T:log4net.Core.LoggingEvent"/> to 
-            a string. This appender must have a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/>
-            set to render the <paramref name="loggingEvent"/> to 
-            a string.
-            </para>
-            <para>If there is exception data in the logging event and 
-            the layout does not process the exception, this method 
-            will append the exception text to the rendered string.
-            </para>
-            <para>
-            Use this method in preference to <see cref="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(log4net.Core.LoggingEvent)"/>
-            where possible. If, however, the caller needs to render the event
-            to a string then <see cref="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(log4net.Core.LoggingEvent)"/> does
-            provide an efficient mechanism for doing so.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AppenderSkeleton.m_layout">
-            <summary>
-            The layout of this appender.
-            </summary>
-            <remarks>
-            See <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> for more information.
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AppenderSkeleton.m_name">
-            <summary>
-            The name of this appender.
-            </summary>
-            <remarks>
-            See <see cref="P:log4net.Appender.AppenderSkeleton.Name"/> for more information.
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AppenderSkeleton.m_threshold">
-            <summary>
-            The level threshold of this appender.
-            </summary>
-            <remarks>
-            <para>
-            There is no level threshold filtering by default.
-            </para>
-            <para>
-            See <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> for more information.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AppenderSkeleton.m_errorHandler">
-            <summary>
-            It is assumed and enforced that errorHandler is never null.
-            </summary>
-            <remarks>
-            <para>
-            It is assumed and enforced that errorHandler is never null.
-            </para>
-            <para>
-            See <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/> for more information.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AppenderSkeleton.m_headFilter">
-            <summary>
-            The first filter in the filter chain.
-            </summary>
-            <remarks>
-            <para>
-            Set to <c>null</c> initially.
-            </para>
-            <para>
-            See <see cref="T:log4net.Filter.IFilter"/> for more information.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AppenderSkeleton.m_tailFilter">
-            <summary>
-            The last filter in the filter chain.
-            </summary>
-            <remarks>
-            See <see cref="T:log4net.Filter.IFilter"/> for more information.
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AppenderSkeleton.m_closed">
-            <summary>
-            Flag indicating if this appender is closed.
-            </summary>
-            <remarks>
-            See <see cref="M:log4net.Appender.AppenderSkeleton.Close"/> for more information.
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AppenderSkeleton.m_recursiveGuard">
-            <summary>
-            The guard prevents an appender from repeatedly calling its own DoAppend method
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AppenderSkeleton.m_renderWriter">
-            <summary>
-            StringWriter used to render events
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.AppenderSkeleton.Threshold">
-            <summary>
-            Gets or sets the threshold <see cref="T:log4net.Core.Level"/> of this appender.
-            </summary>
-            <value>
-            The threshold <see cref="T:log4net.Core.Level"/> of the appender. 
-            </value>
-            <remarks>
-            <para>
-            All log events with lower level than the threshold level are ignored 
-            by the appender.
-            </para>
-            <para>
-            In configuration files this option is specified by setting the
-            value of the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> option to a level
-            string, such as "DEBUG", "INFO" and so on.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AppenderSkeleton.ErrorHandler">
-            <summary>
-            Gets or sets the <see cref="T:log4net.Core.IErrorHandler"/> for this appender.
-            </summary>
-            <value>The <see cref="T:log4net.Core.IErrorHandler"/> of the appender</value>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Appender.AppenderSkeleton"/> provides a default 
-            implementation for the <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/> property. 
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AppenderSkeleton.FilterHead">
-            <summary>
-            The filter chain.
-            </summary>
-            <value>The head of the filter chain filter chain.</value>
-            <remarks>
-            <para>
-            Returns the head Filter. The Filters are organized in a linked list
-            and so all Filters on this Appender are available through the result.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AppenderSkeleton.Layout">
-            <summary>
-            Gets or sets the <see cref="T:log4net.Layout.ILayout"/> for this appender.
-            </summary>
-            <value>The layout of the appender.</value>
-            <remarks>
-            <para>
-            See <see cref="P:log4net.Appender.AppenderSkeleton.RequiresLayout"/> for more information.
-            </para>
-            </remarks>
-            <seealso cref="P:log4net.Appender.AppenderSkeleton.RequiresLayout"/>
-        </member>
-        <member name="P:log4net.Appender.AppenderSkeleton.Name">
-            <summary>
-            Gets or sets the name of this appender.
-            </summary>
-            <value>The name of the appender.</value>
-            <remarks>
-            <para>
-            The name uniquely identifies the appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AppenderSkeleton.RequiresLayout">
-            <summary>
-            Tests if this appender requires a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> to be set.
-            </summary>
-            <remarks>
-            <para>
-            In the rather exceptional case, where the appender 
-            implementation admits a layout but can also work without it, 
-            then the appender should return <c>true</c>.
-            </para>
-            <para>
-            This default implementation always returns <c>true</c>.
-            </para>
-            </remarks>
-            <returns>
-            <c>true</c> if the appender requires a layout object, otherwise <c>false</c>.
-            </returns>
-        </member>
-        <member name="F:log4net.Appender.BufferingAppenderSkeleton.DEFAULT_BUFFER_SIZE">
-            <summary>
-            The default buffer size.
-            </summary>
-            <remarks>
-            The default size of the cyclic buffer used to store events.
-            This is set to 512 by default.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingAppenderSkeleton.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.BufferingAppenderSkeleton"/> class.
-            </summary>
-            <remarks>
-            <para>
-            Protected default constructor to allow subclassing.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingAppenderSkeleton.#ctor(System.Boolean)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.BufferingAppenderSkeleton"/> class.
-            </summary>
-            <param name="eventMustBeFixed">the events passed through this appender must be
-            fixed by the time that they arrive in the derived class' <c>SendBuffer</c> method.</param>
-            <remarks>
-            <para>
-            Protected constructor to allow subclassing.
-            </para>
-            <para>
-            The <paramref name="eventMustBeFixed"/> should be set if the subclass
-            expects the events delivered to be fixed even if the 
-            <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> is set to zero, i.e. when no buffering occurs.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingAppenderSkeleton.Flush">
-            <summary>
-            Flush the currently buffered events
-            </summary>
-            <remarks>
-            <para>
-            Flushes any events that have been buffered.
-            </para>
-            <para>
-            If the appender is buffering in <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> mode then the contents
-            of the buffer will NOT be flushed to the appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingAppenderSkeleton.Flush(System.Boolean)">
-            <summary>
-            Flush the currently buffered events
-            </summary>
-            <param name="flushLossyBuffer">set to <c>true</c> to flush the buffer of lossy events</param>
-            <remarks>
-            <para>
-            Flushes events that have been buffered. If <paramref name="flushLossyBuffer"/> is
-            <c>false</c> then events will only be flushed if this buffer is non-lossy mode.
-            </para>
-            <para>
-            If the appender is buffering in <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> mode then the contents
-            of the buffer will only be flushed if <paramref name="flushLossyBuffer"/> is <c>true</c>.
-            In this case the contents of the buffer will be tested against the 
-            <see cref="P:log4net.Appender.BufferingAppenderSkeleton.LossyEvaluator"/> and if triggering will be output. All other buffered
-            events will be discarded.
-            </para>
-            <para>
-            If <paramref name="flushLossyBuffer"/> is <c>true</c> then the buffer will always
-            be emptied by calling this method.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions">
-            <summary>
-            Initialize the appender based on the options set
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingAppenderSkeleton.OnClose">
-            <summary>
-            Close this appender instance.
-            </summary>
-            <remarks>
-            <para>
-            Close this appender instance. If this appender is marked
-            as not <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> then the remaining events in 
-            the buffer must be sent when the appender is closed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingAppenderSkeleton.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method. 
-            </summary>
-            <param name="loggingEvent">the event to log</param>
-            <remarks>
-            <para>
-            Stores the <paramref name="loggingEvent"/> in the cyclic buffer.
-            </para>
-            <para>
-            The buffer will be sent (i.e. passed to the <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/> 
-            method) if one of the following conditions is met:
-            </para>
-            <list type="bullet">
-            	<item>
-            		<description>The cyclic buffer is full and this appender is
-            		marked as not lossy (see <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/>)</description>
-            	</item>
-            	<item>
-            		<description>An <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> is set and
-            		it is triggered for the <paramref name="loggingEvent"/>
-            		specified.</description>
-            	</item>
-            </list>
-            <para>
-            Before the event is stored in the buffer it is fixed
-            (see <see cref="M:log4net.Core.LoggingEvent.FixVolatileData(log4net.Core.FixFlags)"/>) to ensure that
-            any data referenced by the event will be valid when the buffer
-            is processed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingAppenderSkeleton.SendFromBuffer(log4net.Core.LoggingEvent,log4net.Util.CyclicBuffer)">
-            <summary>
-            Sends the contents of the buffer.
-            </summary>
-            <param name="firstLoggingEvent">The first logging event.</param>
-            <param name="buffer">The buffer containing the events that need to be send.</param>
-            <remarks>
-            <para>
-            The subclass must override <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])">
-            <summary>
-            Sends the events.
-            </summary>
-            <param name="events">The events that need to be send.</param>
-            <remarks>
-            <para>
-            The subclass must override this method to process the buffered events.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_bufferSize">
-            <summary>
-            The size of the cyclic buffer used to hold the logging events.
-            </summary>
-            <remarks>
-            Set to <see cref="F:log4net.Appender.BufferingAppenderSkeleton.DEFAULT_BUFFER_SIZE"/> by default.
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_cb">
-            <summary>
-            The cyclic buffer used to store the logging events.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_evaluator">
-            <summary>
-            The triggering event evaluator that causes the buffer to be sent immediately.
-            </summary>
-            <remarks>
-            The object that is used to determine if an event causes the entire
-            buffer to be sent immediately. This field can be <c>null</c>, which 
-            indicates that event triggering is not to be done. The evaluator
-            can be set using the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> property. If this appender
-            has the <see cref="F:log4net.Appender.BufferingAppenderSkeleton.m_lossy"/> (<see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> property) set to 
-            <c>true</c> then an <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must be set.
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_lossy">
-            <summary>
-            Indicates if the appender should overwrite events in the cyclic buffer 
-            when it becomes full, or if the buffer should be flushed when the 
-            buffer is full.
-            </summary>
-            <remarks>
-            If this field is set to <c>true</c> then an <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must 
-            be set.
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_lossyEvaluator">
-            <summary>
-            The triggering event evaluator filters discarded events.
-            </summary>
-            <remarks>
-            The object that is used to determine if an event that is discarded should
-            really be discarded or if it should be sent to the appenders. 
-            This field can be <c>null</c>, which indicates that all discarded events will
-            be discarded. 
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_fixFlags">
-            <summary>
-            Value indicating which fields in the event should be fixed
-            </summary>
-            <remarks>
-            By default all fields are fixed
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_eventMustBeFixed">
-            <summary>
-            The events delivered to the subclass must be fixed.
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.BufferingAppenderSkeleton.Lossy">
-            <summary>
-            Gets or sets a value that indicates whether the appender is lossy.
-            </summary>
-            <value>
-            <c>true</c> if the appender is lossy, otherwise <c>false</c>. The default is <c>false</c>.
-            </value>
-            <remarks>
-            <para>
-            This appender uses a buffer to store logging events before 
-            delivering them. A triggering event causes the whole buffer
-            to be send to the remote sink. If the buffer overruns before
-            a triggering event then logging events could be lost. Set
-            <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> to <c>false</c> to prevent logging events 
-            from being lost.
-            </para>
-            <para>If <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> is set to <c>true</c> then an
-            <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must be specified.</para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize">
-            <summary>
-            Gets or sets the size of the cyclic buffer used to hold the 
-            logging events.
-            </summary>
-            <value>
-            The size of the cyclic buffer used to hold the logging events.
-            </value>
-            <remarks>
-            <para>
-            The <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> option takes a positive integer
-            representing the maximum number of logging events to collect in 
-            a cyclic buffer. When the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> is reached,
-            oldest events are deleted as new events are added to the
-            buffer. By default the size of the cyclic buffer is 512 events.
-            </para>
-            <para>
-            If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> is set to a value less than
-            or equal to 1 then no buffering will occur. The logging event
-            will be delivered synchronously (depending on the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/>
-            and <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> properties). Otherwise the event will
-            be buffered.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator">
-            <summary>
-            Gets or sets the <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> that causes the 
-            buffer to be sent immediately.
-            </summary>
-            <value>
-            The <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> that causes the buffer to be
-            sent immediately.
-            </value>
-            <remarks>
-            <para>
-            The evaluator will be called for each event that is appended to this 
-            appender. If the evaluator triggers then the current buffer will 
-            immediately be sent (see <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/>).
-            </para>
-            <para>If <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> is set to <c>true</c> then an
-            <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must be specified.</para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.BufferingAppenderSkeleton.LossyEvaluator">
-            <summary>
-            Gets or sets the value of the <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> to use.
-            </summary>
-            <value>
-            The value of the <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> to use.
-            </value>
-            <remarks>
-            <para>
-            The evaluator will be called for each event that is discarded from this 
-            appender. If the evaluator triggers then the current buffer will immediately 
-            be sent (see <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/>).
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.BufferingAppenderSkeleton.OnlyFixPartialEventData">
-            <summary>
-            Gets or sets a value indicating if only part of the logging event data
-            should be fixed.
-            </summary>
-            <value>
-            <c>true</c> if the appender should only fix part of the logging event 
-            data, otherwise <c>false</c>. The default is <c>false</c>.
-            </value>
-            <remarks>
-            <para>
-            Setting this property to <c>true</c> will cause only part of the
-            event data to be fixed and serialized. This will improve performance.
-            </para>
-            <para>
-            See <see cref="M:log4net.Core.LoggingEvent.FixVolatileData(log4net.Core.FixFlags)"/> for more information.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.BufferingAppenderSkeleton.Fix">
-            <summary>
-            Gets or sets a the fields that will be fixed in the event
-            </summary>
-            <value>
-            The event fields that will be fixed before the event is buffered
-            </value>
-            <remarks>
-            <para>
-            The logging event needs to have certain thread specific values 
-            captured before it can be buffered. See <see cref="P:log4net.Core.LoggingEvent.Fix"/>
-            for details.
-            </para>
-            </remarks>
-            <seealso cref="P:log4net.Core.LoggingEvent.Fix"/>
-        </member>
-        <member name="M:log4net.Appender.AdoNetAppender.#ctor">
-            <summary> 
-            Initializes a new instance of the <see cref="T:log4net.Appender.AdoNetAppender"/> class.
-            </summary>
-            <remarks>
-            Public default constructor to initialize a new instance of this class.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AdoNetAppender.ActivateOptions">
-            <summary>
-            Initialize the appender based on the options set
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Appender.AdoNetAppender.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Appender.AdoNetAppender.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Appender.AdoNetAppender.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AdoNetAppender.OnClose">
-            <summary>
-            Override the parent method to close the database
-            </summary>
-            <remarks>
-            <para>
-            Closes the database command and database connection.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AdoNetAppender.SendBuffer(log4net.Core.LoggingEvent[])">
-            <summary>
-            Inserts the events into the database.
-            </summary>
-            <param name="events">The events to insert into the database.</param>
-            <remarks>
-            <para>
-            Insert all the events specified in the <paramref name="events"/>
-            array into the database.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AdoNetAppender.AddParameter(log4net.Appender.AdoNetAppenderParameter)">
-            <summary>
-            Adds a parameter to the command.
-            </summary>
-            <param name="parameter">The parameter to add to the command.</param>
-            <remarks>
-            <para>
-            Adds a parameter to the ordered list of command parameters.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AdoNetAppender.SendBuffer(System.Data.IDbTransaction,log4net.Core.LoggingEvent[])">
-            <summary>
-            Writes the events to the database using the transaction specified.
-            </summary>
-            <param name="dbTran">The transaction that the events will be executed under.</param>
-            <param name="events">The array of events to insert into the database.</param>
-            <remarks>
-            <para>
-            The transaction argument can be <c>null</c> if the appender has been
-            configured not to use transactions. See <see cref="P:log4net.Appender.AdoNetAppender.UseTransactions"/>
-            property for more information.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AdoNetAppender.GetLogStatement(log4net.Core.LoggingEvent)">
-            <summary>
-            Formats the log message into database statement text.
-            </summary>
-            <param name="logEvent">The event being logged.</param>
-            <remarks>
-            This method can be overridden by subclasses to provide 
-            more control over the format of the database statement.
-            </remarks>
-            <returns>
-            Text that can be passed to a <see cref="T:System.Data.IDbCommand"/>.
-            </returns>
-        </member>
-        <member name="M:log4net.Appender.AdoNetAppender.InitializeDatabaseConnection">
-            <summary>
-            Connects to the database.
-            </summary>		
-        </member>
-        <member name="M:log4net.Appender.AdoNetAppender.ResolveConnectionType">
-            <summary>
-            Retrieves the class type of the ADO.NET provider.
-            </summary>
-            <remarks>
-            <para>
-            Gets the Type of the ADO.NET provider to use to connect to the
-            database. This method resolves the type specified in the 
-            <see cref="P:log4net.Appender.AdoNetAppender.ConnectionType"/> property.
-            </para>
-            <para>
-            Subclasses can override this method to return a different type
-            if necessary.
-            </para>
-            </remarks>
-            <returns>The <see cref="T:System.Type"/> of the ADO.NET provider</returns>
-        </member>
-        <member name="M:log4net.Appender.AdoNetAppender.InitializeDatabaseCommand">
-            <summary>
-            Prepares the database command and initialize the parameters.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppender.m_usePreparedCommand">
-            <summary>
-            Flag to indicate if we are using a command object
-            </summary>
-            <remarks>
-            <para>
-            Set to <c>true</c> when the appender is to use a prepared
-            statement or stored procedure to insert into the database.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppender.m_parameters">
-            <summary>
-            The list of <see cref="T:log4net.Appender.AdoNetAppenderParameter"/> objects.
-            </summary>
-            <remarks>
-            <para>
-            The list of <see cref="T:log4net.Appender.AdoNetAppenderParameter"/> objects.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppender.m_securityContext">
-            <summary>
-            The security context to use for privileged calls
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppender.m_dbConnection">
-            <summary>
-            The <see cref="T:System.Data.IDbConnection"/> that will be used
-            to insert logging events into a database.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppender.m_dbCommand">
-            <summary>
-            The database command.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppender.m_connectionString">
-            <summary>
-            Database connection string.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppender.m_connectionType">
-            <summary>
-            String type name of the <see cref="T:System.Data.IDbConnection"/> type name.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppender.m_commandText">
-            <summary>
-            The text of the command.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppender.m_commandType">
-            <summary>
-            The command type.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppender.m_useTransactions">
-            <summary>
-            Indicates whether to use transactions when writing to the database.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppender.m_reconnectOnError">
-            <summary>
-            Indicates whether to use transactions when writing to the database.
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.AdoNetAppender.ConnectionString">
-            <summary>
-            Gets or sets the database connection string that is used to connect to 
-            the database.
-            </summary>
-            <value>
-            The database connection string used to connect to the database.
-            </value>
-            <remarks>
-            <para>
-            The connections string is specific to the connection type.
-            See <see cref="P:log4net.Appender.AdoNetAppender.ConnectionType"/> for more information.
-            </para>
-            </remarks>
-            <example>Connection string for MS Access via ODBC:
-            <code>"DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb"</code>
-            </example>
-            <example>Another connection string for MS Access via ODBC:
-            <code>"Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;"</code>
-            </example>
-            <example>Connection string for MS Access via OLE DB:
-            <code>"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;"</code>
-            </example>
-        </member>
-        <member name="P:log4net.Appender.AdoNetAppender.ConnectionType">
-            <summary>
-            Gets or sets the type name of the <see cref="T:System.Data.IDbConnection"/> connection
-            that should be created.
-            </summary>
-            <value>
-            The type name of the <see cref="T:System.Data.IDbConnection"/> connection.
-            </value>
-            <remarks>
-            <para>
-            The type name of the ADO.NET provider to use.
-            </para>
-            <para>
-            The default is to use the OLE DB provider.
-            </para>
-            </remarks>
-            <example>Use the OLE DB Provider. This is the default value.
-            <code>System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
-            </example>
-            <example>Use the MS SQL Server Provider. 
-            <code>System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
-            </example>
-            <example>Use the ODBC Provider. 
-            <code>Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral</code>
-            This is an optional package that you can download from 
-            <a href="http://msdn.microsoft.com/downloads">http://msdn.microsoft.com/downloads</a> 
-            search for <b>ODBC .NET Data Provider</b>.
-            </example>
-            <example>Use the Oracle Provider. 
-            <code>System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
-            This is an optional package that you can download from 
-            <a href="http://msdn.microsoft.com/downloads">http://msdn.microsoft.com/downloads</a> 
-            search for <b>.NET Managed Provider for Oracle</b>.
-            </example>
-        </member>
-        <member name="P:log4net.Appender.AdoNetAppender.CommandText">
-            <summary>
-            Gets or sets the command text that is used to insert logging events
-            into the database.
-            </summary>
-            <value>
-            The command text used to insert logging events into the database.
-            </value>
-            <remarks>
-            <para>
-            Either the text of the prepared statement or the
-            name of the stored procedure to execute to write into
-            the database.
-            </para>
-            <para>
-            The <see cref="P:log4net.Appender.AdoNetAppender.CommandType"/> property determines if
-            this text is a prepared statement or a stored procedure.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AdoNetAppender.CommandType">
-            <summary>
-            Gets or sets the command type to execute.
-            </summary>
-            <value>
-            The command type to execute.
-            </value>
-            <remarks>
-            <para>
-            This value may be either <see cref="F:System.Data.CommandType.Text"/> (<c>System.Data.CommandType.Text</c>) to specify
-            that the <see cref="P:log4net.Appender.AdoNetAppender.CommandText"/> is a prepared statement to execute, 
-            or <see cref="F:System.Data.CommandType.StoredProcedure"/> (<c>System.Data.CommandType.StoredProcedure</c>) to specify that the
-            <see cref="P:log4net.Appender.AdoNetAppender.CommandText"/> property is the name of a stored procedure
-            to execute.
-            </para>
-            <para>
-            The default value is <see cref="F:System.Data.CommandType.Text"/> (<c>System.Data.CommandType.Text</c>).
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AdoNetAppender.UseTransactions">
-            <summary>
-            Should transactions be used to insert logging events in the database.
-            </summary>
-            <value>
-            <c>true</c> if transactions should be used to insert logging events in
-            the database, otherwise <c>false</c>. The default value is <c>true</c>.
-            </value>
-            <remarks>
-            <para>
-            Gets or sets a value that indicates whether transactions should be used
-            to insert logging events in the database.
-            </para>
-            <para>
-            When set a single transaction will be used to insert the buffered events
-            into the database. Otherwise each event will be inserted without using
-            an explicit transaction.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AdoNetAppender.SecurityContext">
-            <summary>
-            Gets or sets the <see cref="P:log4net.Appender.AdoNetAppender.SecurityContext"/> used to call the NetSend method.
-            </summary>
-            <value>
-            The <see cref="P:log4net.Appender.AdoNetAppender.SecurityContext"/> used to call the NetSend method.
-            </value>
-            <remarks>
-            <para>
-            Unless a <see cref="P:log4net.Appender.AdoNetAppender.SecurityContext"/> specified here for this appender
-            the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
-            security context to use. The default behavior is to use the security context
-            of the current thread.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AdoNetAppender.ReconnectOnError">
-            <summary>
-            Should this appender try to reconnect to the database on error.
-            </summary>
-            <value>
-            <c>true</c> if the appender should try to reconnect to the database after an
-            error has occurred, otherwise <c>false</c>. The default value is <c>false</c>, 
-            i.e. not to try to reconnect.
-            </value>
-            <remarks>
-            <para>
-            The default behaviour is for the appender not to try to reconnect to the
-            database if an error occurs. Subsequent logging events are discarded.
-            </para>
-            <para>
-            To force the appender to attempt to reconnect to the database set this
-            property to <c>true</c>.
-            </para>
-            <note>
-            When the appender attempts to connect to the database there may be a
-            delay of up to the connection timeout specified in the connection string.
-            This delay will block the calling application's thread. 
-            Until the connection can be reestablished this potential delay may occur multiple times.
-            </note>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AdoNetAppender.Connection">
-            <summary>
-            Gets or sets the underlying <see cref="T:System.Data.IDbConnection"/>.
-            </summary>
-            <value>
-            The underlying <see cref="T:System.Data.IDbConnection"/>.
-            </value>
-            <remarks>
-            <see cref="T:log4net.Appender.AdoNetAppender"/> creates a <see cref="T:System.Data.IDbConnection"/> to insert 
-            logging events into a database.  Classes deriving from <see cref="T:log4net.Appender.AdoNetAppender"/> 
-            can use this property to get or set this <see cref="T:System.Data.IDbConnection"/>.  Use the 
-            underlying <see cref="T:System.Data.IDbConnection"/> returned from <see cref="P:log4net.Appender.AdoNetAppender.Connection"/> if 
-            you require access beyond that which <see cref="T:log4net.Appender.AdoNetAppender"/> provides.
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.AdoNetAppenderParameter">
-            <summary>
-            Parameter type used by the <see cref="T:log4net.Appender.AdoNetAppender"/>.
-            </summary>
-            <remarks>
-            <para>
-            This class provides the basic database parameter properties
-            as defined by the <see cref="T:System.Data.IDbDataParameter"/> interface.
-            </para>
-            <para>This type can be subclassed to provide database specific
-            functionality. The two methods that are called externally are
-            <see cref="M:log4net.Appender.AdoNetAppenderParameter.Prepare(System.Data.IDbCommand)"/> and <see cref="M:log4net.Appender.AdoNetAppenderParameter.FormatValue(System.Data.IDbCommand,log4net.Core.LoggingEvent)"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AdoNetAppenderParameter.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.AdoNetAppenderParameter"/> class.
-            </summary>
-            <remarks>
-            Default constructor for the AdoNetAppenderParameter class.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AdoNetAppenderParameter.Prepare(System.Data.IDbCommand)">
-            <summary>
-            Prepare the specified database command object.
-            </summary>
-            <param name="command">The command to prepare.</param>
-            <remarks>
-            <para>
-            Prepares the database command object by adding
-            this parameter to its collection of parameters.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AdoNetAppenderParameter.FormatValue(System.Data.IDbCommand,log4net.Core.LoggingEvent)">
-            <summary>
-            Renders the logging event and set the parameter value in the command.
-            </summary>
-            <param name="command">The command containing the parameter.</param>
-            <param name="loggingEvent">The event to be rendered.</param>
-            <remarks>
-            <para>
-            Renders the logging event using this parameters layout
-            object. Sets the value of the parameter on the command object.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppenderParameter.m_parameterName">
-            <summary>
-            The name of this parameter.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppenderParameter.m_dbType">
-            <summary>
-            The database type for this parameter.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppenderParameter.m_inferType">
-            <summary>
-            Flag to infer type rather than use the DbType
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppenderParameter.m_precision">
-            <summary>
-            The precision for this parameter.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppenderParameter.m_scale">
-            <summary>
-            The scale for this parameter.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppenderParameter.m_size">
-            <summary>
-            The size for this parameter.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AdoNetAppenderParameter.m_layout">
-            <summary>
-            The <see cref="T:log4net.Layout.IRawLayout"/> to use to render the
-            logging event into an object for this parameter.
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.AdoNetAppenderParameter.ParameterName">
-            <summary>
-            Gets or sets the name of this parameter.
-            </summary>
-            <value>
-            The name of this parameter.
-            </value>
-            <remarks>
-            <para>
-            The name of this parameter. The parameter name
-            must match up to a named parameter to the SQL stored procedure
-            or prepared statement.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AdoNetAppenderParameter.DbType">
-            <summary>
-            Gets or sets the database type for this parameter.
-            </summary>
-            <value>
-            The database type for this parameter.
-            </value>
-            <remarks>
-            <para>
-            The database type for this parameter. This property should
-            be set to the database type from the <see cref="P:log4net.Appender.AdoNetAppenderParameter.DbType"/>
-            enumeration. See <see cref="P:System.Data.IDataParameter.DbType"/>.
-            </para>
-            <para>
-            This property is optional. If not specified the ADO.NET provider 
-            will attempt to infer the type from the value.
-            </para>
-            </remarks>
-            <seealso cref="P:System.Data.IDataParameter.DbType"/>
-        </member>
-        <member name="P:log4net.Appender.AdoNetAppenderParameter.Precision">
-            <summary>
-            Gets or sets the precision for this parameter.
-            </summary>
-            <value>
-            The precision for this parameter.
-            </value>
-            <remarks>
-            <para>
-            The maximum number of digits used to represent the Value.
-            </para>
-            <para>
-            This property is optional. If not specified the ADO.NET provider 
-            will attempt to infer the precision from the value.
-            </para>
-            </remarks>
-            <seealso cref="P:System.Data.IDbDataParameter.Precision"/>
-        </member>
-        <member name="P:log4net.Appender.AdoNetAppenderParameter.Scale">
-            <summary>
-            Gets or sets the scale for this parameter.
-            </summary>
-            <value>
-            The scale for this parameter.
-            </value>
-            <remarks>
-            <para>
-            The number of decimal places to which Value is resolved.
-            </para>
-            <para>
-            This property is optional. If not specified the ADO.NET provider 
-            will attempt to infer the scale from the value.
-            </para>
-            </remarks>
-            <seealso cref="P:System.Data.IDbDataParameter.Scale"/>
-        </member>
-        <member name="P:log4net.Appender.AdoNetAppenderParameter.Size">
-            <summary>
-            Gets or sets the size for this parameter.
-            </summary>
-            <value>
-            The size for this parameter.
-            </value>
-            <remarks>
-            <para>
-            The maximum size, in bytes, of the data within the column.
-            </para>
-            <para>
-            This property is optional. If not specified the ADO.NET provider 
-            will attempt to infer the size from the value.
-            </para>
-            </remarks>
-            <seealso cref="P:System.Data.IDbDataParameter.Size"/>
-        </member>
-        <member name="P:log4net.Appender.AdoNetAppenderParameter.Layout">
-            <summary>
-            Gets or sets the <see cref="T:log4net.Layout.IRawLayout"/> to use to 
-            render the logging event into an object for this 
-            parameter.
-            </summary>
-            <value>
-            The <see cref="T:log4net.Layout.IRawLayout"/> used to render the
-            logging event into an object for this parameter.
-            </value>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Layout.IRawLayout"/> that renders the value for this
-            parameter.
-            </para>
-            <para>
-            The <see cref="T:log4net.Layout.RawLayoutConverter"/> can be used to adapt
-            any <see cref="T:log4net.Layout.ILayout"/> into a <see cref="T:log4net.Layout.IRawLayout"/>
-            for use in the property.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.AnsiColorTerminalAppender">
-            <summary>
-            Appends logging events to the terminal using ANSI color escape sequences.
-            </summary>
-            <remarks>
-            <para>
-            AnsiColorTerminalAppender appends log events to the standard output stream
-            or the error output stream using a layout specified by the 
-            user. It also allows the color of a specific level of message to be set.
-            </para>
-            <note>
-            This appender expects the terminal to understand the VT100 control set 
-            in order to interpret the color codes. If the terminal or console does not
-            understand the control codes the behavior is not defined.
-            </note>
-            <para>
-            By default, all output is written to the console's standard output stream.
-            The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> property can be set to direct the output to the
-            error stream.
-            </para>
-            <para>
-            NOTE: This appender writes each message to the <c>System.Console.Out</c> or 
-            <c>System.Console.Error</c> that is set at the time the event is appended.
-            Therefore it is possible to programmatically redirect the output of this appender 
-            (for example NUnit does this to capture program output). While this is the desired
-            behavior of this appender it may have security implications in your application. 
-            </para>
-            <para>
-            When configuring the ANSI colored terminal appender, a mapping should be
-            specified to map a logging level to a color. For example:
-            </para>
-            <code lang="XML" escaped="true">
-            <mapping>
-            	<level value="ERROR"/>
-            	<foreColor value="White"/>
-            	<backColor value="Red"/>
-                <attributes value="Bright,Underscore"/>
-            </mapping>
-            <mapping>
-            	<level value="DEBUG"/>
-            	<backColor value="Green"/>
-            </mapping>
-            </code>
-            <para>
-            The Level is the standard log4net logging level and ForeColor and BackColor can be any
-            of the following values:
-            <list type="bullet">
-            <item><term>Blue</term><description></description></item>
-            <item><term>Green</term><description></description></item>
-            <item><term>Red</term><description></description></item>
-            <item><term>White</term><description></description></item>
-            <item><term>Yellow</term><description></description></item>
-            <item><term>Purple</term><description></description></item>
-            <item><term>Cyan</term><description></description></item>
-            </list>
-            These color values cannot be combined together to make new colors.
-            </para>
-            <para>
-            The attributes can be any combination of the following:
-            <list type="bullet">
-            <item><term>Bright</term><description>foreground is brighter</description></item>
-            <item><term>Dim</term><description>foreground is dimmer</description></item>
-            <item><term>Underscore</term><description>message is underlined</description></item>
-            <item><term>Blink</term><description>foreground is blinking (does not work on all terminals)</description></item>
-            <item><term>Reverse</term><description>foreground and background are reversed</description></item>
-            <item><term>Hidden</term><description>output is hidden</description></item>
-            <item><term>Strikethrough</term><description>message has a line through it</description></item>
-            </list>
-            While any of these attributes may be combined together not all combinations
-            work well together, for example setting both <i>Bright</i> and <i>Dim</i> attributes makes
-            no sense.
-            </para>
-            </remarks>
-            <author>Patrick Wagstrom</author>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.ConsoleOut">
-            <summary>
-            The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console 
-            standard output stream.
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console 
-            standard output stream.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.ConsoleError">
-            <summary>
-            The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console 
-            standard error output stream.
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console 
-            standard error output stream.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.PostEventCodes">
-            <summary>
-            Ansi code to reset terminal
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.AnsiColorTerminalAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.AnsiColorTerminalAppender"/> class.
-            </summary>
-            <remarks>
-            The instance of the <see cref="T:log4net.Appender.AnsiColorTerminalAppender"/> class is set up to write 
-            to the standard output stream.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AnsiColorTerminalAppender.AddMapping(log4net.Appender.AnsiColorTerminalAppender.LevelColors)">
-            <summary>
-            Add a mapping of level to color
-            </summary>
-            <param name="mapping">The mapping to add</param>
-            <remarks>
-            <para>
-            Add a <see cref="T:log4net.Appender.AnsiColorTerminalAppender.LevelColors"/> mapping to this appender.
-            Each mapping defines the foreground and background colours
-            for a level.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AnsiColorTerminalAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method.
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            Writes the event to the console.
-            </para>
-            <para>
-            The format of the output will depend on the appender's layout.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AnsiColorTerminalAppender.ActivateOptions">
-            <summary>
-            Initialize the options for this appender
-            </summary>
-            <remarks>
-            <para>
-            Initialize the level to color mappings set on this appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.m_writeToErrorStream">
-            <summary>
-            Flag to write output to the error stream rather than the standard output stream
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.m_levelMapping">
-            <summary>
-            Mapping from level object to color value
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.AnsiColorTerminalAppender.Target">
-            <summary>
-            Target is the value of the console output stream.
-            </summary>
-            <value>
-            Target is the value of the console output stream.
-            This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
-            </value>
-            <remarks>
-            <para>
-            Target is the value of the console output stream.
-            This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AnsiColorTerminalAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes">
-            <summary>
-            The enum of possible display attributes
-            </summary>
-            <remarks>
-            <para>
-            The following flags can be combined together to
-            form the ANSI color attributes.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Appender.AnsiColorTerminalAppender"/>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Bright">
-            <summary>
-            text is bright
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Dim">
-            <summary>
-            text is dim
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Underscore">
-            <summary>
-            text is underlined
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Blink">
-            <summary>
-            text is blinking
-            </summary>
-            <remarks>
-            Not all terminals support this attribute
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Reverse">
-            <summary>
-            text and background colors are reversed
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Hidden">
-            <summary>
-            text is hidden
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Strikethrough">
-            <summary>
-            text is displayed with a strikethrough
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.AnsiColorTerminalAppender.AnsiColor">
-            <summary>
-            The enum of possible foreground or background color values for 
-            use with the color mapping method
-            </summary>
-            <remarks>
-            <para>
-            The output can be in one for the following ANSI colors.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Appender.AnsiColorTerminalAppender"/>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Black">
-            <summary>
-            color is black
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Red">
-            <summary>
-            color is red
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Green">
-            <summary>
-            color is green
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Yellow">
-            <summary>
-            color is yellow
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Blue">
-            <summary>
-            color is blue
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Magenta">
-            <summary>
-            color is magenta
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Cyan">
-            <summary>
-            color is cyan
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.White">
-            <summary>
-            color is white
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.AnsiColorTerminalAppender.LevelColors">
-            <summary>
-            A class to act as a mapping between the level that a logging call is made at and
-            the color it should be displayed as.
-            </summary>
-            <remarks>
-            <para>
-            Defines the mapping between a level and the color it should be displayed in.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.LevelMappingEntry">
-            <summary>
-            An entry in the <see cref="T:log4net.Util.LevelMapping"/>
-            </summary>
-            <remarks>
-            <para>
-            This is an abstract base class for types that are stored in the
-            <see cref="T:log4net.Util.LevelMapping"/> object.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.LevelMappingEntry.#ctor">
-            <summary>
-            Default protected constructor
-            </summary>
-            <remarks>
-            <para>
-            Default protected constructor
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LevelMappingEntry.ActivateOptions">
-            <summary>
-            Initialize any options defined on this entry
-            </summary>
-            <remarks>
-            <para>
-            Should be overridden by any classes that need to initialise based on their options
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.LevelMappingEntry.Level">
-            <summary>
-            The level that is the key for this mapping 
-            </summary>
-            <value>
-            The <see cref="P:log4net.Util.LevelMappingEntry.Level"/> that is the key for this mapping 
-            </value>
-            <remarks>
-            <para>
-            Get or set the <see cref="P:log4net.Util.LevelMappingEntry.Level"/> that is the key for this
-            mapping subclass.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AnsiColorTerminalAppender.LevelColors.ActivateOptions">
-            <summary>
-            Initialize the options for the object
-            </summary>
-            <remarks>
-            <para>
-            Combine the <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.ForeColor"/> and <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.BackColor"/> together
-            and append the attributes.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.ForeColor">
-            <summary>
-            The mapped foreground color for the specified level
-            </summary>
-            <remarks>
-            <para>
-            Required property.
-            The mapped foreground color for the specified level
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.BackColor">
-            <summary>
-            The mapped background color for the specified level
-            </summary>
-            <remarks>
-            <para>
-            Required property.
-            The mapped background color for the specified level
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.Attributes">
-            <summary>
-            The color attributes for the specified level
-            </summary>
-            <remarks>
-            <para>
-            Required property.
-            The color attributes for the specified level
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.CombinedColor">
-            <summary>
-            The combined <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.ForeColor"/>, <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.BackColor"/> and
-            <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.Attributes"/> suitable for setting the ansi terminal color.
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.AppenderCollection">
-            <summary>
-            A strongly-typed collection of <see cref="T:log4net.Appender.IAppender"/> objects.
-            </summary>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.ReadOnly(log4net.Appender.AppenderCollection)">
-            <summary>
-            Creates a read-only wrapper for a <c>AppenderCollection</c> instance.
-            </summary>
-            <param name="list">list to create a readonly wrapper arround</param>
-            <returns>
-            An <c>AppenderCollection</c> wrapper that is read-only.
-            </returns>
-        </member>
-        <member name="F:log4net.Appender.AppenderCollection.EmptyCollection">
-            <summary>
-            An empty readonly static AppenderCollection
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.#ctor">
-            <summary>
-            Initializes a new instance of the <c>AppenderCollection</c> class
-            that is empty and has the default initial capacity.
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.#ctor(System.Int32)">
-            <summary>
-            Initializes a new instance of the <c>AppenderCollection</c> class
-            that has the specified initial capacity.
-            </summary>
-            <param name="capacity">
-            The number of elements that the new <c>AppenderCollection</c> is initially capable of storing.
-            </param>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.#ctor(log4net.Appender.AppenderCollection)">
-            <summary>
-            Initializes a new instance of the <c>AppenderCollection</c> class
-            that contains elements copied from the specified <c>AppenderCollection</c>.
-            </summary>
-            <param name="c">The <c>AppenderCollection</c> whose elements are copied to the new collection.</param>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.#ctor(log4net.Appender.IAppender[])">
-            <summary>
-            Initializes a new instance of the <c>AppenderCollection</c> class
-            that contains elements copied from the specified <see cref="T:log4net.Appender.IAppender"/> array.
-            </summary>
-            <param name="a">The <see cref="T:log4net.Appender.IAppender"/> array whose elements are copied to the new list.</param>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.#ctor(System.Collections.ICollection)">
-            <summary>
-            Initializes a new instance of the <c>AppenderCollection</c> class
-            that contains elements copied from the specified <see cref="T:log4net.Appender.IAppender"/> collection.
-            </summary>
-            <param name="col">The <see cref="T:log4net.Appender.IAppender"/> collection whose elements are copied to the new list.</param>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.#ctor(log4net.Appender.AppenderCollection.Tag)">
-            <summary>
-            Allow subclasses to avoid our default constructors
-            </summary>
-            <param name="tag"></param>
-            <exclude/>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.CopyTo(log4net.Appender.IAppender[])">
-            <summary>
-            Copies the entire <c>AppenderCollection</c> to a one-dimensional
-            <see cref="T:log4net.Appender.IAppender"/> array.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:log4net.Appender.IAppender"/> array to copy to.</param>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.CopyTo(log4net.Appender.IAppender[],System.Int32)">
-            <summary>
-            Copies the entire <c>AppenderCollection</c> to a one-dimensional
-            <see cref="T:log4net.Appender.IAppender"/> array, starting at the specified index of the target array.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:log4net.Appender.IAppender"/> array to copy to.</param>
-            <param name="start">The zero-based index in <paramref name="array"/> at which copying begins.</param>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.Add(log4net.Appender.IAppender)">
-            <summary>
-            Adds a <see cref="T:log4net.Appender.IAppender"/> to the end of the <c>AppenderCollection</c>.
-            </summary>
-            <param name="item">The <see cref="T:log4net.Appender.IAppender"/> to be added to the end of the <c>AppenderCollection</c>.</param>
-            <returns>The index at which the value has been added.</returns>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.Clear">
-            <summary>
-            Removes all elements from the <c>AppenderCollection</c>.
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.Clone">
-            <summary>
-            Creates a shallow copy of the <see cref="T:log4net.Appender.AppenderCollection"/>.
-            </summary>
-            <returns>A new <see cref="T:log4net.Appender.AppenderCollection"/> with a shallow copy of the collection data.</returns>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.Contains(log4net.Appender.IAppender)">
-            <summary>
-            Determines whether a given <see cref="T:log4net.Appender.IAppender"/> is in the <c>AppenderCollection</c>.
-            </summary>
-            <param name="item">The <see cref="T:log4net.Appender.IAppender"/> to check for.</param>
-            <returns><c>true</c> if <paramref name="item"/> is found in the <c>AppenderCollection</c>; otherwise, <c>false</c>.</returns>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.IndexOf(log4net.Appender.IAppender)">
-            <summary>
-            Returns the zero-based index of the first occurrence of a <see cref="T:log4net.Appender.IAppender"/>
-            in the <c>AppenderCollection</c>.
-            </summary>
-            <param name="item">The <see cref="T:log4net.Appender.IAppender"/> to locate in the <c>AppenderCollection</c>.</param>
-            <returns>
-            The zero-based index of the first occurrence of <paramref name="item"/> 
-            in the entire <c>AppenderCollection</c>, if found; otherwise, -1.
-            </returns>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.Insert(System.Int32,log4net.Appender.IAppender)">
-            <summary>
-            Inserts an element into the <c>AppenderCollection</c> at the specified index.
-            </summary>
-            <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
-            <param name="item">The <see cref="T:log4net.Appender.IAppender"/> to insert.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <para><paramref name="index"/> is less than zero</para>
-            <para>-or-</para>
-            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.Remove(log4net.Appender.IAppender)">
-            <summary>
-            Removes the first occurrence of a specific <see cref="T:log4net.Appender.IAppender"/> from the <c>AppenderCollection</c>.
-            </summary>
-            <param name="item">The <see cref="T:log4net.Appender.IAppender"/> to remove from the <c>AppenderCollection</c>.</param>
-            <exception cref="T:System.ArgumentException">
-            The specified <see cref="T:log4net.Appender.IAppender"/> was not found in the <c>AppenderCollection</c>.
-            </exception>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.RemoveAt(System.Int32)">
-            <summary>
-            Removes the element at the specified index of the <c>AppenderCollection</c>.
-            </summary>
-            <param name="index">The zero-based index of the element to remove.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <para><paramref name="index"/> is less than zero</para>
-            <para>-or-</para>
-            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.GetEnumerator">
-            <summary>
-            Returns an enumerator that can iterate through the <c>AppenderCollection</c>.
-            </summary>
-            <returns>An <see cref="T:log4net.Appender.AppenderCollection.Enumerator"/> for the entire <c>AppenderCollection</c>.</returns>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.AddRange(log4net.Appender.AppenderCollection)">
-            <summary>
-            Adds the elements of another <c>AppenderCollection</c> to the current <c>AppenderCollection</c>.
-            </summary>
-            <param name="x">The <c>AppenderCollection</c> whose elements should be added to the end of the current <c>AppenderCollection</c>.</param>
-            <returns>The new <see cref="P:log4net.Appender.AppenderCollection.Count"/> of the <c>AppenderCollection</c>.</returns>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.AddRange(log4net.Appender.IAppender[])">
-            <summary>
-            Adds the elements of a <see cref="T:log4net.Appender.IAppender"/> array to the current <c>AppenderCollection</c>.
-            </summary>
-            <param name="x">The <see cref="T:log4net.Appender.IAppender"/> array whose elements should be added to the end of the <c>AppenderCollection</c>.</param>
-            <returns>The new <see cref="P:log4net.Appender.AppenderCollection.Count"/> of the <c>AppenderCollection</c>.</returns>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.AddRange(System.Collections.ICollection)">
-            <summary>
-            Adds the elements of a <see cref="T:log4net.Appender.IAppender"/> collection to the current <c>AppenderCollection</c>.
-            </summary>
-            <param name="col">The <see cref="T:log4net.Appender.IAppender"/> collection whose elements should be added to the end of the <c>AppenderCollection</c>.</param>
-            <returns>The new <see cref="P:log4net.Appender.AppenderCollection.Count"/> of the <c>AppenderCollection</c>.</returns>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.TrimToSize">
-            <summary>
-            Sets the capacity to the actual number of elements.
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.ToArray">
-            <summary>
-            Return the collection elements as an array
-            </summary>
-            <returns>the array</returns>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.ValidateIndex(System.Int32)">
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <para><paramref name="index"/> is less than zero</para>
-            <para>-or-</para>
-            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.ValidateIndex(System.Int32,System.Boolean)">
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <para><paramref name="index"/> is less than zero</para>
-            <para>-or-</para>
-            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="P:log4net.Appender.AppenderCollection.Count">
-            <summary>
-            Gets the number of elements actually contained in the <c>AppenderCollection</c>.
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.AppenderCollection.IsSynchronized">
-            <summary>
-            Gets a value indicating whether access to the collection is synchronized (thread-safe).
-            </summary>
-            <returns>true if access to the ICollection is synchronized (thread-safe); otherwise, false.</returns>
-        </member>
-        <member name="P:log4net.Appender.AppenderCollection.SyncRoot">
-            <summary>
-            Gets an object that can be used to synchronize access to the collection.
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.AppenderCollection.Item(System.Int32)">
-            <summary>
-            Gets or sets the <see cref="T:log4net.Appender.IAppender"/> at the specified index.
-            </summary>
-            <param name="index">The zero-based index of the element to get or set.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            	<para><paramref name="index"/> is less than zero</para>
-            	<para>-or-</para>
-            	<para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="P:log4net.Appender.AppenderCollection.IsFixedSize">
-            <summary>
-            Gets a value indicating whether the collection has a fixed size.
-            </summary>
-            <value>true if the collection has a fixed size; otherwise, false. The default is false</value>
-        </member>
-        <member name="P:log4net.Appender.AppenderCollection.IsReadOnly">
-            <summary>
-            Gets a value indicating whether the IList is read-only.
-            </summary>
-            <value>true if the collection is read-only; otherwise, false. The default is false</value>
-        </member>
-        <member name="P:log4net.Appender.AppenderCollection.Capacity">
-            <summary>
-            Gets or sets the number of elements the <c>AppenderCollection</c> can contain.
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator">
-            <summary>
-            Supports type-safe iteration over a <see cref="T:log4net.Appender.AppenderCollection"/>.
-            </summary>
-            <exclude/>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator.MoveNext">
-            <summary>
-            Advances the enumerator to the next element in the collection.
-            </summary>
-            <returns>
-            <c>true</c> if the enumerator was successfully advanced to the next element; 
-            <c>false</c> if the enumerator has passed the end of the collection.
-            </returns>
-            <exception cref="T:System.InvalidOperationException">
-            The collection was modified after the enumerator was created.
-            </exception>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator.Reset">
-            <summary>
-            Sets the enumerator to its initial position, before the first element in the collection.
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator.Current">
-            <summary>
-            Gets the current element in the collection.
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.AppenderCollection.Tag">
-            <summary>
-            Type visible only to our subclasses
-            Used to access protected constructor
-            </summary>
-            <exclude/>
-        </member>
-        <member name="F:log4net.Appender.AppenderCollection.Tag.Default">
-            <summary>
-            A value
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.AppenderCollection.Enumerator">
-            <summary>
-            Supports simple iteration over a <see cref="T:log4net.Appender.AppenderCollection"/>.
-            </summary>
-            <exclude/>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.Enumerator.#ctor(log4net.Appender.AppenderCollection)">
-            <summary>
-            Initializes a new instance of the <c>Enumerator</c> class.
-            </summary>
-            <param name="tc"></param>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.Enumerator.MoveNext">
-            <summary>
-            Advances the enumerator to the next element in the collection.
-            </summary>
-            <returns>
-            <c>true</c> if the enumerator was successfully advanced to the next element; 
-            <c>false</c> if the enumerator has passed the end of the collection.
-            </returns>
-            <exception cref="T:System.InvalidOperationException">
-            The collection was modified after the enumerator was created.
-            </exception>
-        </member>
-        <member name="M:log4net.Appender.AppenderCollection.Enumerator.Reset">
-            <summary>
-            Sets the enumerator to its initial position, before the first element in the collection.
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.AppenderCollection.Enumerator.Current">
-            <summary>
-            Gets the current element in the collection.
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.AppenderCollection.ReadOnlyAppenderCollection">
-            <exclude/>
-        </member>
-        <member name="T:log4net.Appender.AspNetTraceAppender">
-            <summary>
-            <para>
-            Appends log events to the ASP.NET <see cref="T:System.Web.TraceContext"/> system.
-            </para>
-            </summary>
-            <remarks>
-            <para>
-            Diagnostic information and tracing messages that you specify are appended to the output 
-            of the page that is sent to the requesting browser. Optionally, you can view this information
-            from a separate trace viewer (Trace.axd) that displays trace information for every page in a 
-            given application.
-            </para>
-            <para>
-            Trace statements are processed and displayed only when tracing is enabled. You can control 
-            whether tracing is displayed to a page, to the trace viewer, or both.
-            </para>
-            <para>
-            The logging event is passed to the <see cref="M:System.Web.TraceContext.Write(System.String)"/> or 
-            <see cref="M:System.Web.TraceContext.Warn(System.String)"/> method depending on the level of the logging event.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Appender.AspNetTraceAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.AspNetTraceAppender"/> class.
-            </summary>
-            <remarks>
-            <para>
-            Default constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.AspNetTraceAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            Write the logging event to the ASP.NET trace
-            </summary>
-            <param name="loggingEvent">the event to log</param>
-            <remarks>
-            <para>
-            Write the logging event to the ASP.NET trace
-            <c>HttpContext.Current.Trace</c> 
-            (<see cref="T:System.Web.TraceContext"/>).
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.AspNetTraceAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.BufferingForwardingAppender">
-            <summary>
-            Buffers events and then forwards them to attached appenders.
-            </summary>
-            <remarks>
-            <para>
-            The events are buffered in this appender until conditions are
-            met to allow the appender to deliver the events to the attached 
-            appenders. See <see cref="T:log4net.Appender.BufferingAppenderSkeleton"/> for the
-            conditions that cause the buffer to be sent.
-            </para>
-            <para>The forwarding appender can be used to specify different 
-            thresholds and filters for the same appender at different locations 
-            within the hierarchy.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Core.IAppenderAttachable">
-            <summary>
-            Interface for attaching appenders to objects.
-            </summary>
-            <remarks>
-            <para>
-            Interface for attaching, removing and retrieving appenders.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Core.IAppenderAttachable.AddAppender(log4net.Appender.IAppender)">
-            <summary>
-            Attaches an appender.
-            </summary>
-            <param name="appender">The appender to add.</param>
-            <remarks>
-            <para>
-            Add the specified appender. The implementation may
-            choose to allow or deny duplicate appenders.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.IAppenderAttachable.GetAppender(System.String)">
-            <summary>
-            Gets an attached appender with the specified name.
-            </summary>
-            <param name="name">The name of the appender to get.</param>
-            <returns>
-            The appender with the name specified, or <c>null</c> if no appender with the
-            specified name is found.
-            </returns>
-            <remarks>
-            <para>
-            Returns an attached appender with the <paramref name="name"/> specified.
-            If no appender with the specified name is found <c>null</c> will be
-            returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.IAppenderAttachable.RemoveAllAppenders">
-            <summary>
-            Removes all attached appenders.
-            </summary>
-            <remarks>
-            <para>
-            Removes and closes all attached appenders
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.IAppenderAttachable.RemoveAppender(log4net.Appender.IAppender)">
-            <summary>
-            Removes the specified appender from the list of attached appenders.
-            </summary>
-            <param name="appender">The appender to remove.</param>
-            <returns>The appender removed from the list</returns>
-            <remarks>
-            <para>
-            The appender removed is not closed.
-            If you are discarding the appender you must call
-            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.IAppenderAttachable.RemoveAppender(System.String)">
-            <summary>
-            Removes the appender with the specified name from the list of appenders.
-            </summary>
-            <param name="name">The name of the appender to remove.</param>
-            <returns>The appender removed from the list</returns>
-            <remarks>
-            <para>
-            The appender removed is not closed.
-            If you are discarding the appender you must call
-            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.IAppenderAttachable.Appenders">
-            <summary>
-            Gets all attached appenders.
-            </summary>
-            <value>
-            A collection of attached appenders.
-            </value>
-            <remarks>
-            <para>
-            Gets a collection of attached appenders.
-            If there are no attached appenders the
-            implementation should return an empty 
-            collection rather than <c>null</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingForwardingAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.BufferingForwardingAppender"/> class.
-            </summary>
-            <remarks>
-            <para>
-            Default constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingForwardingAppender.OnClose">
-            <summary>
-            Closes the appender and releases resources.
-            </summary>
-            <remarks>
-            <para>
-            Releases any resources allocated within the appender such as file handles, 
-            network connections, etc.
-            </para>
-            <para>
-            It is a programming error to append to a closed appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingForwardingAppender.SendBuffer(log4net.Core.LoggingEvent[])">
-            <summary>
-            Send the events.
-            </summary>
-            <param name="events">The events that need to be send.</param>
-            <remarks>
-            <para>
-            Forwards the events to the attached appenders.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingForwardingAppender.AddAppender(log4net.Appender.IAppender)">
-            <summary>
-            Adds an <see cref="T:log4net.Appender.IAppender"/> to the list of appenders of this
-            instance.
-            </summary>
-            <param name="newAppender">The <see cref="T:log4net.Appender.IAppender"/> to add to this appender.</param>
-            <remarks>
-            <para>
-            If the specified <see cref="T:log4net.Appender.IAppender"/> is already in the list of
-            appenders, then it won't be added again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingForwardingAppender.GetAppender(System.String)">
-            <summary>
-            Looks for the appender with the specified name.
-            </summary>
-            <param name="name">The name of the appender to lookup.</param>
-            <returns>
-            The appender with the specified name, or <c>null</c>.
-            </returns>
-            <remarks>
-            <para>
-            Get the named appender attached to this buffering appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingForwardingAppender.RemoveAllAppenders">
-            <summary>
-            Removes all previously added appenders from this appender.
-            </summary>
-            <remarks>
-            <para>
-            This is useful when re-reading configuration information.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingForwardingAppender.RemoveAppender(log4net.Appender.IAppender)">
-            <summary>
-            Removes the specified appender from the list of appenders.
-            </summary>
-            <param name="appender">The appender to remove.</param>
-            <returns>The appender removed from the list</returns>
-            <remarks>
-            The appender removed is not closed.
-            If you are discarding the appender you must call
-            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.BufferingForwardingAppender.RemoveAppender(System.String)">
-            <summary>
-            Removes the appender with the specified name from the list of appenders.
-            </summary>
-            <param name="name">The name of the appender to remove.</param>
-            <returns>The appender removed from the list</returns>
-            <remarks>
-            The appender removed is not closed.
-            If you are discarding the appender you must call
-            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.BufferingForwardingAppender.m_appenderAttachedImpl">
-            <summary>
-            Implementation of the <see cref="T:log4net.Core.IAppenderAttachable"/> interface
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.BufferingForwardingAppender.Appenders">
-            <summary>
-            Gets the appenders contained in this appender as an 
-            <see cref="T:System.Collections.ICollection"/>.
-            </summary>
-            <remarks>
-            If no appenders can be found, then an <see cref="T:log4net.Util.EmptyCollection"/> 
-            is returned.
-            </remarks>
-            <returns>
-            A collection of the appenders in this appender.
-            </returns>
-        </member>
-        <member name="T:log4net.Appender.ColoredConsoleAppender">
-            <summary>
-            Appends logging events to the console.
-            </summary>
-            <remarks>
-            <para>
-            ColoredConsoleAppender appends log events to the standard output stream
-            or the error output stream using a layout specified by the 
-            user. It also allows the color of a specific type of message to be set.
-            </para>
-            <para>
-            By default, all output is written to the console's standard output stream.
-            The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> property can be set to direct the output to the
-            error stream.
-            </para>
-            <para>
-            NOTE: This appender writes directly to the application's attached console
-            not to the <c>System.Console.Out</c> or <c>System.Console.Error</c> <c>TextWriter</c>.
-            The <c>System.Console.Out</c> and <c>System.Console.Error</c> streams can be
-            programmatically redirected (for example NUnit does this to capture program output).
-            This appender will ignore these redirections because it needs to use Win32
-            API calls to colorize the output. To respect these redirections the <see cref="T:log4net.Appender.ConsoleAppender"/>
-            must be used.
-            </para>
-            <para>
-            When configuring the colored console appender, mapping should be
-            specified to map a logging level to a color. For example:
-            </para>
-            <code lang="XML" escaped="true">
-            <mapping>
-            	<level value="ERROR"/>
-            	<foreColor value="White"/>
-            	<backColor value="Red, HighIntensity"/>
-            </mapping>
-            <mapping>
-            	<level value="DEBUG"/>
-            	<backColor value="Green"/>
-            </mapping>
-            </code>
-            <para>
-            The Level is the standard log4net logging level and ForeColor and BackColor can be any
-            combination of the following values:
-            <list type="bullet">
-            <item><term>Blue</term><description></description></item>
-            <item><term>Green</term><description></description></item>
-            <item><term>Red</term><description></description></item>
-            <item><term>White</term><description></description></item>
-            <item><term>Yellow</term><description></description></item>
-            <item><term>Purple</term><description></description></item>
-            <item><term>Cyan</term><description></description></item>
-            <item><term>HighIntensity</term><description></description></item>
-            </list>
-            </para>
-            </remarks>
-            <author>Rick Hobbs</author>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Appender.ColoredConsoleAppender.ConsoleOut">
-            <summary>
-            The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> to use when writing to the Console 
-            standard output stream.
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> to use when writing to the Console 
-            standard output stream.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.ColoredConsoleAppender.ConsoleError">
-            <summary>
-            The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> to use when writing to the Console 
-            standard error output stream.
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> to use when writing to the Console 
-            standard error output stream.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ColoredConsoleAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender"/> class.
-            </summary>
-            <remarks>
-            The instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender"/> class is set up to write 
-            to the standard output stream.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ColoredConsoleAppender.#ctor(log4net.Layout.ILayout)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender"/> class
-            with the specified layout.
-            </summary>
-            <param name="layout">the layout to use for this appender</param>
-            <remarks>
-            The instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender"/> class is set up to write 
-            to the standard output stream.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ColoredConsoleAppender.#ctor(log4net.Layout.ILayout,System.Boolean)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender"/> class
-            with the specified layout.
-            </summary>
-            <param name="layout">the layout to use for this appender</param>
-            <param name="writeToErrorStream">flag set to <c>true</c> to write to the console error stream</param>
-            <remarks>
-            When <paramref name="writeToErrorStream"/> is set to <c>true</c>, output is written to
-            the standard error output stream.  Otherwise, output is written to the standard
-            output stream.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ColoredConsoleAppender.AddMapping(log4net.Appender.ColoredConsoleAppender.LevelColors)">
-            <summary>
-            Add a mapping of level to color - done by the config file
-            </summary>
-            <param name="mapping">The mapping to add</param>
-            <remarks>
-            <para>
-            Add a <see cref="T:log4net.Appender.ColoredConsoleAppender.LevelColors"/> mapping to this appender.
-            Each mapping defines the foreground and background colors
-            for a level.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ColoredConsoleAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method.
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            Writes the event to the console.
-            </para>
-            <para>
-            The format of the output will depend on the appender's layout.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ColoredConsoleAppender.ActivateOptions">
-            <summary>
-            Initialize the options for this appender
-            </summary>
-            <remarks>
-            <para>
-            Initialize the level to color mappings set on this appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.ColoredConsoleAppender.m_writeToErrorStream">
-            <summary>
-            Flag to write output to the error stream rather than the standard output stream
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.ColoredConsoleAppender.m_levelMapping">
-            <summary>
-            Mapping from level object to color value
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.ColoredConsoleAppender.m_consoleOutputWriter">
-            <summary>
-            The console output stream writer to write to
-            </summary>
-            <remarks>
-            <para>
-            This writer is not thread safe.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.ColoredConsoleAppender.Target">
-            <summary>
-            Target is the value of the console output stream.
-            This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
-            </summary>
-            <value>
-            Target is the value of the console output stream.
-            This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
-            </value>
-            <remarks>
-            <para>
-            Target is the value of the console output stream.
-            This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.ColoredConsoleAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.ColoredConsoleAppender.Colors">
-            <summary>
-            The enum of possible color values for use with the color mapping method
-            </summary>
-            <remarks>
-            <para>
-            The following flags can be combined together to
-            form the colors.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Appender.ColoredConsoleAppender"/>
-        </member>
-        <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Blue">
-            <summary>
-            color is blue
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Green">
-            <summary>
-            color is green
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Red">
-            <summary>
-            color is red
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.White">
-            <summary>
-            color is white
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Yellow">
-            <summary>
-            color is yellow
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Purple">
-            <summary>
-            color is purple
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Cyan">
-            <summary>
-            color is cyan
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.HighIntensity">
-            <summary>
-            color is intensified
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.ColoredConsoleAppender.LevelColors">
-            <summary>
-            A class to act as a mapping between the level that a logging call is made at and
-            the color it should be displayed as.
-            </summary>
-            <remarks>
-            <para>
-            Defines the mapping between a level and the color it should be displayed in.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ColoredConsoleAppender.LevelColors.ActivateOptions">
-            <summary>
-            Initialize the options for the object
-            </summary>
-            <remarks>
-            <para>
-            Combine the <see cref="P:log4net.Appender.ColoredConsoleAppender.LevelColors.ForeColor"/> and <see cref="P:log4net.Appender.ColoredConsoleAppender.LevelColors.BackColor"/> together.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.ColoredConsoleAppender.LevelColors.ForeColor">
-            <summary>
-            The mapped foreground color for the specified level
-            </summary>
-            <remarks>
-            <para>
-            Required property.
-            The mapped foreground color for the specified level.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.ColoredConsoleAppender.LevelColors.BackColor">
-            <summary>
-            The mapped background color for the specified level
-            </summary>
-            <remarks>
-            <para>
-            Required property.
-            The mapped background color for the specified level.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.ColoredConsoleAppender.LevelColors.CombinedColor">
-            <summary>
-            The combined <see cref="P:log4net.Appender.ColoredConsoleAppender.LevelColors.ForeColor"/> and <see cref="P:log4net.Appender.ColoredConsoleAppender.LevelColors.BackColor"/> suitable for 
-            setting the console color.
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.ConsoleAppender">
-            <summary>
-            Appends logging events to the console.
-            </summary>
-            <remarks>
-            <para>
-            ConsoleAppender appends log events to the standard output stream
-            or the error output stream using a layout specified by the 
-            user.
-            </para>
-            <para>
-            By default, all output is written to the console's standard output stream.
-            The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> property can be set to direct the output to the
-            error stream.
-            </para>
-            <para>
-            NOTE: This appender writes each message to the <c>System.Console.Out</c> or 
-            <c>System.Console.Error</c> that is set at the time the event is appended.
-            Therefore it is possible to programmatically redirect the output of this appender 
-            (for example NUnit does this to capture program output). While this is the desired
-            behavior of this appender it may have security implications in your application. 
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="F:log4net.Appender.ConsoleAppender.ConsoleOut">
-            <summary>
-            The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console 
-            standard output stream.
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console 
-            standard output stream.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.ConsoleAppender.ConsoleError">
-            <summary>
-            The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console 
-            standard error output stream.
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console 
-            standard error output stream.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ConsoleAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class.
-            </summary>
-            <remarks>
-            The instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class is set up to write 
-            to the standard output stream.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ConsoleAppender.#ctor(log4net.Layout.ILayout)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class
-            with the specified layout.
-            </summary>
-            <param name="layout">the layout to use for this appender</param>
-            <remarks>
-            The instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class is set up to write 
-            to the standard output stream.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ConsoleAppender.#ctor(log4net.Layout.ILayout,System.Boolean)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class
-            with the specified layout.
-            </summary>
-            <param name="layout">the layout to use for this appender</param>
-            <param name="writeToErrorStream">flag set to <c>true</c> to write to the console error stream</param>
-            <remarks>
-            When <paramref name="writeToErrorStream"/> is set to <c>true</c>, output is written to
-            the standard error output stream.  Otherwise, output is written to the standard
-            output stream.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ConsoleAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method.
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            Writes the event to the console.
-            </para>
-            <para>
-            The format of the output will depend on the appender's layout.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.ConsoleAppender.Target">
-            <summary>
-            Target is the value of the console output stream.
-            This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
-            </summary>
-            <value>
-            Target is the value of the console output stream.
-            This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
-            </value>
-            <remarks>
-            <para>
-            Target is the value of the console output stream.
-            This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.ConsoleAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.DebugAppender">
-            <summary>
-            Appends log events to the <see cref="T:System.Diagnostics.Debug"/> system.
-            </summary>
-            <remarks>
-            <para>
-            The application configuration file can be used to control what listeners 
-            are actually used. See the MSDN documentation for the 
-            <see cref="T:System.Diagnostics.Debug"/> class for details on configuring the
-            debug system.
-            </para>
-            <para>
-            Events are written using the <see cref="M:System.Diagnostics.Debug.Write(System.String,System.String)"/>
-            method. The event's logger name is passed as the value for the category name to the Write method.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Appender.DebugAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.DebugAppender"/>.
-            </summary>
-            <remarks>
-            <para>
-            Default constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.DebugAppender.#ctor(log4net.Layout.ILayout)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.DebugAppender"/> 
-            with a specified layout.
-            </summary>
-            <param name="layout">The layout to use with this appender.</param>
-            <remarks>
-            <para>
-            Obsolete constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.DebugAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            Writes the logging event to the <see cref="T:System.Diagnostics.Debug"/> system.
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            Writes the logging event to the <see cref="T:System.Diagnostics.Debug"/> system.
-            If <see cref="P:log4net.Appender.DebugAppender.ImmediateFlush"/> is <c>true</c> then the <see cref="M:System.Diagnostics.Debug.Flush"/>
-            is called.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.DebugAppender.m_immediateFlush">
-            <summary>
-            Immediate flush means that the underlying writer or output stream
-            will be flushed at the end of each append operation.
-            </summary>
-            <remarks>
-            <para>
-            Immediate flush is slower but ensures that each append request is 
-            actually written. If <see cref="P:log4net.Appender.DebugAppender.ImmediateFlush"/> is set to
-            <c>false</c>, then there is a good chance that the last few
-            logs events are not actually written to persistent media if and
-            when the application crashes.
-            </para>
-            <para>
-            The default value is <c>true</c>.</para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.DebugAppender.ImmediateFlush">
-            <summary>
-            Gets or sets a value that indicates whether the appender will 
-            flush at the end of each write.
-            </summary>
-            <remarks>
-            <para>The default behavior is to flush at the end of each 
-            write. If the option is set to<c>false</c>, then the underlying 
-            stream can defer writing to physical medium to a later time. 
-            </para>
-            <para>
-            Avoiding the flush operation at the end of each append results 
-            in a performance gain of 10 to 20 percent. However, there is safety
-            trade-off involved in skipping flushing. Indeed, when flushing is
-            skipped, then it is likely that the last few log events will not
-            be recorded on disk when the application exits. This is a high
-            price to pay even for a 20% performance gain.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.DebugAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.EventLogAppender">
-            <summary>
-            Writes events to the system event log.
-            </summary>
-            <remarks>
-            <para>
-            The <c>EventID</c> of the event log entry can be
-            set using the <c>EventLogEventID</c> property (<see cref="P:log4net.Core.LoggingEvent.Properties"/>)
-            on the <see cref="T:log4net.Core.LoggingEvent"/>.
-            </para>
-            <para>
-            There is a limit of 32K characters for an event log message
-            </para>
-            <para>
-            When configuring the EventLogAppender a mapping can be
-            specified to map a logging level to an event log entry type. For example:
-            </para>
-            <code lang="XML">
-            <mapping>
-            	<level value="ERROR" />
-            	<eventLogEntryType value="Error" />
-            </mapping>
-            <mapping>
-            	<level value="DEBUG" />
-            	<eventLogEntryType value="Information" />
-            </mapping>
-            </code>
-            <para>
-            The Level is the standard log4net logging level and eventLogEntryType can be any value
-            from the <see cref="T:System.Diagnostics.EventLogEntryType"/> enum, i.e.:
-            <list type="bullet">
-            <item><term>Error</term><description>an error event</description></item>
-            <item><term>Warning</term><description>a warning event</description></item>
-            <item><term>Information</term><description>an informational event</description></item>
-            </list>
-            </para>
-            </remarks>
-            <author>Aspi Havewala</author>
-            <author>Douglas de la Torre</author>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-            <author>Thomas Voss</author>
-        </member>
-        <member name="M:log4net.Appender.EventLogAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.EventLogAppender"/> class.
-            </summary>
-            <remarks>
-            <para>
-            Default constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.EventLogAppender.#ctor(log4net.Layout.ILayout)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.EventLogAppender"/> class
-            with the specified <see cref="T:log4net.Layout.ILayout"/>.
-            </summary>
-            <param name="layout">The <see cref="T:log4net.Layout.ILayout"/> to use with this appender.</param>
-            <remarks>
-            <para>
-            Obsolete constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.EventLogAppender.AddMapping(log4net.Appender.EventLogAppender.Level2EventLogEntryType)">
-            <summary>
-            Add a mapping of level to <see cref="T:System.Diagnostics.EventLogEntryType"/> - done by the config file
-            </summary>
-            <param name="mapping">The mapping to add</param>
-            <remarks>
-            <para>
-            Add a <see cref="T:log4net.Appender.EventLogAppender.Level2EventLogEntryType"/> mapping to this appender.
-            Each mapping defines the event log entry type for a level.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.EventLogAppender.ActivateOptions">
-            <summary>
-            Initialize the appender based on the options set
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Appender.EventLogAppender.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Appender.EventLogAppender.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Appender.EventLogAppender.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.EventLogAppender.CreateEventSource(System.String,System.String,System.String)">
-            <summary>
-            Create an event log source
-            </summary>
-            <remarks>
-            Uses different API calls under NET_2_0
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.EventLogAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/>
-            method. 
-            </summary>
-            <param name="loggingEvent">the event to log</param>
-            <remarks>
-            <para>Writes the event to the system event log using the 
-            <see cref="P:log4net.Appender.EventLogAppender.ApplicationName"/>.</para>
-            
-            <para>If the event has an <c>EventID</c> property (see <see cref="P:log4net.Core.LoggingEvent.Properties"/>)
-            set then this integer will be used as the event log event id.</para>
-            
-            <para>
-            There is a limit of 32K characters for an event log message
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.EventLogAppender.GetEntryType(log4net.Core.Level)">
-            <summary>
-            Get the equivalent <see cref="T:System.Diagnostics.EventLogEntryType"/> for a <see cref="T:log4net.Core.Level"/> <paramref name="p"/>
-            </summary>
-            <param name="level">the Level to convert to an EventLogEntryType</param>
-            <returns>The equivalent <see cref="T:System.Diagnostics.EventLogEntryType"/> for a <see cref="T:log4net.Core.Level"/> <paramref name="p"/></returns>
-            <remarks>
-            Because there are fewer applicable <see cref="T:System.Diagnostics.EventLogEntryType"/>
-            values to use in logging levels than there are in the 
-            <see cref="T:log4net.Core.Level"/> this is a one way mapping. There is
-            a loss of information during the conversion.
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.EventLogAppender.m_logName">
-            <summary>
-            The log name is the section in the event logs where the messages
-            are stored.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.EventLogAppender.m_applicationName">
-            <summary>
-            Name of the application to use when logging.  This appears in the
-            application column of the event log named by <see cref="F:log4net.Appender.EventLogAppender.m_logName"/>.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.EventLogAppender.m_machineName">
-            <summary>
-            The name of the machine which holds the event log. This is
-            currently only allowed to be '.' i.e. the current machine.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.EventLogAppender.m_levelMapping">
-            <summary>
-            Mapping from level object to EventLogEntryType
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.EventLogAppender.m_securityContext">
-            <summary>
-            The security context to use for privileged calls
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.EventLogAppender.LogName">
-            <summary>
-            The name of the log where messages will be stored.
-            </summary>
-            <value>
-            The string name of the log where messages will be stored.
-            </value>
-            <remarks>
-            <para>This is the name of the log as it appears in the Event Viewer
-            tree. The default value is to log into the <c>Application</c>
-            log, this is where most applications write their events. However
-            if you need a separate log for your application (or applications)
-            then you should set the <see cref="P:log4net.Appender.EventLogAppender.LogName"/> appropriately.</para>
-            <para>This should not be used to distinguish your event log messages
-            from those of other applications, the <see cref="P:log4net.Appender.EventLogAppender.ApplicationName"/>
-            property should be used to distinguish events. This property should be 
-            used to group together events into a single log.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.EventLogAppender.ApplicationName">
-            <summary>
-            Property used to set the Application name.  This appears in the
-            event logs when logging.
-            </summary>
-            <value>
-            The string used to distinguish events from different sources.
-            </value>
-            <remarks>
-            Sets the event log source property.
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.EventLogAppender.MachineName">
-            <summary>
-            This property is used to return the name of the computer to use
-            when accessing the event logs.  Currently, this is the current
-            computer, denoted by a dot "."
-            </summary>
-            <value>
-            The string name of the machine holding the event log that 
-            will be logged into.
-            </value>
-            <remarks>
-            This property cannot be changed. It is currently set to '.'
-            i.e. the local machine. This may be changed in future.
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.EventLogAppender.SecurityContext">
-            <summary>
-            Gets or sets the <see cref="P:log4net.Appender.EventLogAppender.SecurityContext"/> used to write to the EventLog.
-            </summary>
-            <value>
-            The <see cref="P:log4net.Appender.EventLogAppender.SecurityContext"/> used to write to the EventLog.
-            </value>
-            <remarks>
-            <para>
-            The system security context used to write to the EventLog.
-            </para>
-            <para>
-            Unless a <see cref="P:log4net.Appender.EventLogAppender.SecurityContext"/> specified here for this appender
-            the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
-            security context to use. The default behavior is to use the security context
-            of the current thread.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.EventLogAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.EventLogAppender.Level2EventLogEntryType">
-            <summary>
-            A class to act as a mapping between the level that a logging call is made at and
-            the color it should be displayed as.
-            </summary>
-            <remarks>
-            <para>
-            Defines the mapping between a level and its event log entry type.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.EventLogAppender.Level2EventLogEntryType.EventLogEntryType">
-            <summary>
-            The <see cref="P:log4net.Appender.EventLogAppender.Level2EventLogEntryType.EventLogEntryType"/> for this entry
-            </summary>
-            <remarks>
-            <para>
-            Required property.
-            The <see cref="P:log4net.Appender.EventLogAppender.Level2EventLogEntryType.EventLogEntryType"/> for this entry
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.FileAppender">
-            <summary>
-            Appends logging events to a file.
-            </summary>
-            <remarks>
-            <para>
-            Logging events are sent to the file specified by
-            the <see cref="P:log4net.Appender.FileAppender.File"/> property.
-            </para>
-            <para>
-            The file can be opened in either append or overwrite mode 
-            by specifying the <see cref="P:log4net.Appender.FileAppender.AppendToFile"/> property.
-            If the file path is relative it is taken as relative from 
-            the application base directory. The file encoding can be
-            specified by setting the <see cref="P:log4net.Appender.FileAppender.Encoding"/> property.
-            </para>
-            <para>
-            The layout's <see cref="P:log4net.Layout.ILayout.Header"/> and <see cref="P:log4net.Layout.ILayout.Footer"/>
-            values will be written each time the file is opened and closed
-            respectively. If the <see cref="P:log4net.Appender.FileAppender.AppendToFile"/> property is <see langword="true"/>
-            then the file may contain multiple copies of the header and footer.
-            </para>
-            <para>
-            This appender will first try to open the file for writing when <see cref="M:log4net.Appender.FileAppender.ActivateOptions"/>
-            is called. This will typically be during configuration.
-            If the file cannot be opened for writing the appender will attempt
-            to open the file again each time a message is logged to the appender.
-            If the file cannot be opened for writing when a message is logged then
-            the message will be discarded by this appender.
-            </para>
-            <para>
-            The <see cref="T:log4net.Appender.FileAppender"/> supports pluggable file locking models via
-            the <see cref="P:log4net.Appender.FileAppender.LockingModel"/> property.
-            The default behavior, implemented by <see cref="T:log4net.Appender.FileAppender.ExclusiveLock"/> 
-            is to obtain an exclusive write lock on the file until this appender is closed.
-            The alternative model, <see cref="T:log4net.Appender.FileAppender.MinimalLock"/>, only holds a
-            write lock while the appender is writing a logging event.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-            <author>Rodrigo B. de Oliveira</author>
-            <author>Douglas de la Torre</author>
-            <author>Niall Daley</author>
-        </member>
-        <member name="T:log4net.Appender.TextWriterAppender">
-            <summary>
-            Sends logging events to a <see cref="T:System.IO.TextWriter"/>.
-            </summary>
-            <remarks>
-            <para>
-            An Appender that writes to a <see cref="T:System.IO.TextWriter"/>.
-            </para>
-            <para>
-            This appender may be used stand alone if initialized with an appropriate
-            writer, however it is typically used as a base class for an appender that
-            can open a <see cref="T:System.IO.TextWriter"/> to write to.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-            <author>Douglas de la Torre</author>
-        </member>
-        <member name="M:log4net.Appender.TextWriterAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.TextWriterAppender"/> class.
-            </summary>
-            <remarks>
-            <para>
-            Default constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TextWriterAppender.#ctor(log4net.Layout.ILayout,System.IO.Stream)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.TextWriterAppender"/> class and
-            sets the output destination to a new <see cref="T:System.IO.StreamWriter"/> initialized 
-            with the specified <see cref="T:System.IO.Stream"/>.
-            </summary>
-            <param name="layout">The layout to use with this appender.</param>
-            <param name="os">The <see cref="T:System.IO.Stream"/> to output to.</param>
-            <remarks>
-            <para>
-            Obsolete constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TextWriterAppender.#ctor(log4net.Layout.ILayout,System.IO.TextWriter)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.TextWriterAppender"/> class and sets
-            the output destination to the specified <see cref="T:System.IO.StreamWriter"/>.
-            </summary>
-            <param name="layout">The layout to use with this appender</param>
-            <param name="writer">The <see cref="T:System.IO.TextWriter"/> to output to</param>
-            <remarks>
-            The <see cref="T:System.IO.TextWriter"/> must have been previously opened.
-            </remarks>
-            <remarks>
-            <para>
-            Obsolete constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TextWriterAppender.PreAppendCheck">
-            <summary>
-            This method determines if there is a sense in attempting to append.
-            </summary>
-            <remarks>
-            <para>
-            This method checked if an output target has been set and if a
-            layout has been set. 
-            </para>
-            </remarks>
-            <returns><c>false</c> if any of the preconditions fail.</returns>
-        </member>
-        <member name="M:log4net.Appender.TextWriterAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/>
-            method. 
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            Writes a log statement to the output stream if the output stream exists 
-            and is writable.  
-            </para>
-            <para>
-            The format of the output will depend on the appender's layout.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TextWriterAppender.Append(log4net.Core.LoggingEvent[])">
-            <summary>
-            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent[])"/>
-            method. 
-            </summary>
-            <param name="loggingEvents">The array of events to log.</param>
-            <remarks>
-            <para>
-            This method writes all the bulk logged events to the output writer
-            before flushing the stream.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TextWriterAppender.OnClose">
-            <summary>
-            Close this appender instance. The underlying stream or writer is also closed.
-            </summary>
-            <remarks>
-            Closed appenders cannot be reused.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TextWriterAppender.WriteFooterAndCloseWriter">
-            <summary>
-            Writes the footer and closes the underlying <see cref="T:System.IO.TextWriter"/>.
-            </summary>
-            <remarks>
-            <para>
-            Writes the footer and closes the underlying <see cref="T:System.IO.TextWriter"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TextWriterAppender.CloseWriter">
-            <summary>
-            Closes the underlying <see cref="T:System.IO.TextWriter"/>.
-            </summary>
-            <remarks>
-            <para>
-            Closes the underlying <see cref="T:System.IO.TextWriter"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TextWriterAppender.Reset">
-            <summary>
-            Clears internal references to the underlying <see cref="T:System.IO.TextWriter"/> 
-            and other variables.
-            </summary>
-            <remarks>
-            <para>
-            Subclasses can override this method for an alternate closing behavior.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TextWriterAppender.WriteFooter">
-            <summary>
-            Writes a footer as produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Footer"/> property.
-            </summary>
-            <remarks>
-            <para>
-            Writes a footer as produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Footer"/> property.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TextWriterAppender.WriteHeader">
-            <summary>
-            Writes a header produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Header"/> property.
-            </summary>
-            <remarks>
-            <para>
-            Writes a header produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Header"/> property.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TextWriterAppender.PrepareWriter">
-            <summary>
-            Called to allow a subclass to lazily initialize the writer
-            </summary>
-            <remarks>
-            <para>
-            This method is called when an event is logged and the <see cref="P:log4net.Appender.TextWriterAppender.Writer"/> or
-            <see cref="P:log4net.Appender.TextWriterAppender.QuietWriter"/> have not been set. This allows a subclass to
-            attempt to initialize the writer multiple times.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.TextWriterAppender.m_qtw">
-            <summary>
-            This is the <see cref="T:log4net.Util.QuietTextWriter"/> where logging events
-            will be written to. 
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.TextWriterAppender.m_immediateFlush">
-            <summary>
-            Immediate flush means that the underlying <see cref="T:System.IO.TextWriter"/> 
-            or output stream will be flushed at the end of each append operation.
-            </summary>
-            <remarks>
-            <para>
-            Immediate flush is slower but ensures that each append request is 
-            actually written. If <see cref="P:log4net.Appender.TextWriterAppender.ImmediateFlush"/> is set to
-            <c>false</c>, then there is a good chance that the last few
-            logging events are not actually persisted if and when the application 
-            crashes.
-            </para>
-            <para>
-            The default value is <c>true</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.TextWriterAppender.ImmediateFlush">
-            <summary>
-            Gets or set whether the appender will flush at the end 
-            of each append operation.
-            </summary>
-            <value>
-            <para>
-            The default behavior is to flush at the end of each 
-            append operation.
-            </para>
-            <para>
-            If this option is set to <c>false</c>, then the underlying 
-            stream can defer persisting the logging event to a later 
-            time.
-            </para>
-            </value>
-            <remarks>
-            Avoiding the flush operation at the end of each append results in
-            a performance gain of 10 to 20 percent. However, there is safety
-            trade-off involved in skipping flushing. Indeed, when flushing is
-            skipped, then it is likely that the last few log events will not
-            be recorded on disk when the application exits. This is a high
-            price to pay even for a 20% performance gain.
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.TextWriterAppender.Writer">
-            <summary>
-            Sets the <see cref="T:System.IO.TextWriter"/> where the log output will go.
-            </summary>
-            <remarks>
-            <para>
-            The specified <see cref="T:System.IO.TextWriter"/> must be open and writable.
-            </para>
-            <para>
-            The <see cref="T:System.IO.TextWriter"/> will be closed when the appender 
-            instance is closed.
-            </para>
-            <para>
-            <b>Note:</b> Logging to an unopened <see cref="T:System.IO.TextWriter"/> will fail.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.TextWriterAppender.ErrorHandler">
-            <summary>
-            Gets or set the <see cref="T:log4net.Core.IErrorHandler"/> and the underlying 
-            <see cref="T:log4net.Util.QuietTextWriter"/>, if any, for this appender. 
-            </summary>
-            <value>
-            The <see cref="T:log4net.Core.IErrorHandler"/> for this appender.
-            </value>
-        </member>
-        <member name="P:log4net.Appender.TextWriterAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.TextWriterAppender.QuietWriter">
-            <summary>
-            Gets or sets the <see cref="T:log4net.Util.QuietTextWriter"/> where logging events
-            will be written to. 
-            </summary>
-            <value>
-            The <see cref="T:log4net.Util.QuietTextWriter"/> where logging events are written.
-            </value>
-            <remarks>
-            <para>
-            This is the <see cref="T:log4net.Util.QuietTextWriter"/> where logging events
-            will be written to. 
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Default constructor
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.#ctor(log4net.Layout.ILayout,System.String,System.Boolean)">
-            <summary>
-            Construct a new appender using the layout, file and append mode.
-            </summary>
-            <param name="layout">the layout to use with this appender</param>
-            <param name="filename">the full path to the file to write to</param>
-            <param name="append">flag to indicate if the file should be appended to</param>
-            <remarks>
-            <para>
-            Obsolete constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.#ctor(log4net.Layout.ILayout,System.String)">
-            <summary>
-            Construct a new appender using the layout and file specified.
-            The file will be appended to.
-            </summary>
-            <param name="layout">the layout to use with this appender</param>
-            <param name="filename">the full path to the file to write to</param>
-            <remarks>
-            <para>
-            Obsolete constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.ActivateOptions">
-            <summary>
-            Activate the options on the file appender. 
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Appender.FileAppender.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Appender.FileAppender.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Appender.FileAppender.ActivateOptions"/> must be called again.
-            </para>
-            <para>
-            This will cause the file to be opened.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.Reset">
-            <summary>
-            Closes any previously opened file and calls the parent's <see cref="M:log4net.Appender.TextWriterAppender.Reset"/>.
-            </summary>
-            <remarks>
-            <para>
-            Resets the filename and the file stream.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.PrepareWriter">
-            <summary>
-            Called to initialize the file writer
-            </summary>
-            <remarks>
-            <para>
-            Will be called for each logged message until the file is
-            successfully opened.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/>
-            method. 
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            Writes a log statement to the output stream if the output stream exists 
-            and is writable.  
-            </para>
-            <para>
-            The format of the output will depend on the appender's layout.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.Append(log4net.Core.LoggingEvent[])">
-            <summary>
-            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent[])"/>
-            method. 
-            </summary>
-            <param name="loggingEvents">The array of events to log.</param>
-            <remarks>
-            <para>
-            Acquires the output file locks once before writing all the events to
-            the stream.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.WriteFooter">
-            <summary>
-            Writes a footer as produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Footer"/> property.
-            </summary>
-            <remarks>
-            <para>
-            Writes a footer as produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Footer"/> property.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.WriteHeader">
-            <summary>
-            Writes a header produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Header"/> property.
-            </summary>
-            <remarks>
-            <para>
-            Writes a header produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Header"/> property.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.CloseWriter">
-            <summary>
-            Closes the underlying <see cref="T:System.IO.TextWriter"/>.
-            </summary>
-            <remarks>
-            <para>
-            Closes the underlying <see cref="T:System.IO.TextWriter"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.CloseFile">
-            <summary>
-            Closes the previously opened file.
-            </summary>
-            <remarks>
-            <para>
-            Writes the <see cref="P:log4net.Layout.ILayout.Footer"/> to the file and then
-            closes the file.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.SafeOpenFile(System.String,System.Boolean)">
-            <summary>
-            Sets and <i>opens</i> the file where the log output will go. The specified file must be writable.
-            </summary>
-            <param name="fileName">The path to the log file. Must be a fully qualified path.</param>
-            <param name="append">If true will append to fileName. Otherwise will truncate fileName</param>
-            <remarks>
-            <para>
-            Calls <see cref="M:log4net.Appender.FileAppender.OpenFile(System.String,System.Boolean)"/> but guarantees not to throw an exception.
-            Errors are passed to the <see cref="P:log4net.Appender.TextWriterAppender.ErrorHandler"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.OpenFile(System.String,System.Boolean)">
-            <summary>
-            Sets and <i>opens</i> the file where the log output will go. The specified file must be writable.
-            </summary>
-            <param name="fileName">The path to the log file. Must be a fully qualified path.</param>
-            <param name="append">If true will append to fileName. Otherwise will truncate fileName</param>
-            <remarks>
-            <para>
-            If there was already an opened file, then the previous file
-            is closed first.
-            </para>
-            <para>
-            This method will ensure that the directory structure
-            for the <paramref name="fileName"/> specified exists.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.SetQWForFiles(System.IO.Stream)">
-            <summary>
-            Sets the quiet writer used for file output
-            </summary>
-            <param name="fileStream">the file stream that has been opened for writing</param>
-            <remarks>
-            <para>
-            This implementation of <see cref="M:log4net.Appender.FileAppender.SetQWForFiles(System.IO.Stream)"/> creates a <see cref="T:System.IO.StreamWriter"/>
-            over the <paramref name="fileStream"/> and passes it to the 
-            <see cref="M:log4net.Appender.FileAppender.SetQWForFiles(System.IO.TextWriter)"/> method.
-            </para>
-            <para>
-            This method can be overridden by sub classes that want to wrap the
-            <see cref="T:System.IO.Stream"/> in some way, for example to encrypt the output
-            data using a <c>System.Security.Cryptography.CryptoStream</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.SetQWForFiles(System.IO.TextWriter)">
-            <summary>
-            Sets the quiet writer being used.
-            </summary>
-            <param name="writer">the writer over the file stream that has been opened for writing</param>
-            <remarks>
-            <para>
-            This method can be overridden by sub classes that want to
-            wrap the <see cref="T:System.IO.TextWriter"/> in some way.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.ConvertToFullPath(System.String)">
-            <summary>
-            Convert a path into a fully qualified path.
-            </summary>
-            <param name="path">The path to convert.</param>
-            <returns>The fully qualified path.</returns>
-            <remarks>
-            <para>
-            Converts the path specified to a fully
-            qualified path. If the path is relative it is
-            taken as relative from the application base 
-            directory.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.FileAppender.m_appendToFile">
-            <summary>
-            Flag to indicate if we should append to the file
-            or overwrite the file. The default is to append.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.FileAppender.m_fileName">
-            <summary>
-            The name of the log file.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.FileAppender.m_encoding">
-            <summary>
-            The encoding to use for the file stream.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.FileAppender.m_securityContext">
-            <summary>
-            The security context to use for privileged calls
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.FileAppender.m_stream">
-            <summary>
-            The stream to log to. Has added locking semantics
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.FileAppender.m_lockingModel">
-            <summary>
-            The locking model to use
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.FileAppender.File">
-            <summary>
-            Gets or sets the path to the file that logging will be written to.
-            </summary>
-            <value>
-            The path to the file that logging will be written to.
-            </value>
-            <remarks>
-            <para>
-            If the path is relative it is taken as relative from 
-            the application base directory.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.FileAppender.AppendToFile">
-            <summary>
-            Gets or sets a flag that indicates whether the file should be
-            appended to or overwritten.
-            </summary>
-            <value>
-            Indicates whether the file should be appended to or overwritten.
-            </value>
-            <remarks>
-            <para>
-            If the value is set to false then the file will be overwritten, if 
-            it is set to true then the file will be appended to.
-            </para>
-            The default value is true.
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.FileAppender.Encoding">
-            <summary>
-            Gets or sets <see cref="P:log4net.Appender.FileAppender.Encoding"/> used to write to the file.
-            </summary>
-            <value>
-            The <see cref="P:log4net.Appender.FileAppender.Encoding"/> used to write to the file.
-            </value>
-            <remarks>
-            <para>
-            The default encoding set is <see cref="P:System.Text.Encoding.Default"/>
-            which is the encoding for the system's current ANSI code page.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.FileAppender.SecurityContext">
-            <summary>
-            Gets or sets the <see cref="P:log4net.Appender.FileAppender.SecurityContext"/> used to write to the file.
-            </summary>
-            <value>
-            The <see cref="P:log4net.Appender.FileAppender.SecurityContext"/> used to write to the file.
-            </value>
-            <remarks>
-            <para>
-            Unless a <see cref="P:log4net.Appender.FileAppender.SecurityContext"/> specified here for this appender
-            the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
-            security context to use. The default behavior is to use the security context
-            of the current thread.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.FileAppender.LockingModel">
-            <summary>
-            Gets or sets the <see cref="P:log4net.Appender.FileAppender.LockingModel"/> used to handle locking of the file.
-            </summary>
-            <value>
-            The <see cref="P:log4net.Appender.FileAppender.LockingModel"/> used to lock the file.
-            </value>
-            <remarks>
-            <para>
-            Gets or sets the <see cref="P:log4net.Appender.FileAppender.LockingModel"/> used to handle locking of the file.
-            </para>
-            <para>
-            There are two built in locking models, <see cref="T:log4net.Appender.FileAppender.ExclusiveLock"/> and <see cref="T:log4net.Appender.FileAppender.MinimalLock"/>.
-            The former locks the file from the start of logging to the end and the 
-            later lock only for the minimal amount of time when logging each message.
-            </para>
-            <para>
-            The default locking model is the <see cref="T:log4net.Appender.FileAppender.ExclusiveLock"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.FileAppender.LockingStream">
-            <summary>
-            Write only <see cref="T:System.IO.Stream"/> that uses the <see cref="T:log4net.Appender.FileAppender.LockingModelBase"/> 
-            to manage access to an underlying resource.
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.LockingStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)">
-            <summary>
-            True asynchronous writes are not supported, the implementation forces a synchronous write.
-            </summary>
-        </member>
-        <member name="T:log4net.Core.LogException">
-            <summary>
-            Exception base type for log4net.
-            </summary>
-            <remarks>
-            <para>
-            This type extends <see cref="T:System.ApplicationException"/>. It
-            does not add any new functionality but does differentiate the
-            type of exception being thrown.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Core.LogException.#ctor">
-            <summary>
-            Constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Core.LogException"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogException.#ctor(System.String)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="message">A message to include with the exception.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Core.LogException"/> class with
-            the specified message.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogException.#ctor(System.String,System.Exception)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="message">A message to include with the exception.</param>
-            <param name="innerException">A nested exception to include.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Core.LogException"/> class
-            with the specified message and inner exception.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Serialization constructor
-            </summary>
-            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
-            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Core.LogException"/> class 
-            with serialized data.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.FileAppender.LockingModelBase">
-            <summary>
-            Locking model base class
-            </summary>
-            <remarks>
-            <para>
-            Base class for the locking models available to the <see cref="T:log4net.Appender.FileAppender"/> derived loggers.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.LockingModelBase.OpenFile(System.String,System.Boolean,System.Text.Encoding)">
-            <summary>
-            Open the output file
-            </summary>
-            <param name="filename">The filename to use</param>
-            <param name="append">Whether to append to the file, or overwrite</param>
-            <param name="encoding">The encoding to use</param>
-            <remarks>
-            <para>
-            Open the file specified and prepare for logging. 
-            No writes will be made until <see cref="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock"/> is called.
-            Must be called before any calls to <see cref="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock"/>,
-            <see cref="M:log4net.Appender.FileAppender.LockingModelBase.ReleaseLock"/> and <see cref="M:log4net.Appender.FileAppender.LockingModelBase.CloseFile"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.LockingModelBase.CloseFile">
-            <summary>
-            Close the file
-            </summary>
-            <remarks>
-            <para>
-            Close the file. No further writes will be made.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock">
-            <summary>
-            Acquire the lock on the file
-            </summary>
-            <returns>A stream that is ready to be written to.</returns>
-            <remarks>
-            <para>
-            Acquire the lock on the file in preparation for writing to it. 
-            Return a stream pointing to the file. <see cref="M:log4net.Appender.FileAppender.LockingModelBase.ReleaseLock"/>
-            must be called to release the lock on the output file.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.LockingModelBase.ReleaseLock">
-            <summary>
-            Release the lock on the file
-            </summary>
-            <remarks>
-            <para>
-            Release the lock on the file. No further writes will be made to the 
-            stream until <see cref="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock"/> is called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.FileAppender.LockingModelBase.CurrentAppender">
-            <summary>
-            Gets or sets the <see cref="T:log4net.Appender.FileAppender"/> for this LockingModel
-            </summary>
-            <value>
-            The <see cref="T:log4net.Appender.FileAppender"/> for this LockingModel
-            </value>
-            <remarks>
-            <para>
-            The file appender this locking model is attached to and working on
-            behalf of.
-            </para>
-            <para>
-            The file appender is used to locate the security context and the error handler to use.
-            </para>
-            <para>
-            The value of this property will be set before <see cref="M:log4net.Appender.FileAppender.LockingModelBase.OpenFile(System.String,System.Boolean,System.Text.Encoding)"/> is
-            called.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.FileAppender.ExclusiveLock">
-            <summary>
-            Hold an exclusive lock on the output file
-            </summary>
-            <remarks>
-            <para>
-            Open the file once for writing and hold it open until <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.CloseFile"/> is called. 
-            Maintains an exclusive lock on the file during this time.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.ExclusiveLock.OpenFile(System.String,System.Boolean,System.Text.Encoding)">
-            <summary>
-            Open the file specified and prepare for logging.
-            </summary>
-            <param name="filename">The filename to use</param>
-            <param name="append">Whether to append to the file, or overwrite</param>
-            <param name="encoding">The encoding to use</param>
-            <remarks>
-            <para>
-            Open the file specified and prepare for logging. 
-            No writes will be made until <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.AcquireLock"/> is called.
-            Must be called before any calls to <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.AcquireLock"/>,
-            <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.ReleaseLock"/> and <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.CloseFile"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.ExclusiveLock.CloseFile">
-            <summary>
-            Close the file
-            </summary>
-            <remarks>
-            <para>
-            Close the file. No further writes will be made.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.ExclusiveLock.AcquireLock">
-            <summary>
-            Acquire the lock on the file
-            </summary>
-            <returns>A stream that is ready to be written to.</returns>
-            <remarks>
-            <para>
-            Does nothing. The lock is already taken
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.ExclusiveLock.ReleaseLock">
-            <summary>
-            Release the lock on the file
-            </summary>
-            <remarks>
-            <para>
-            Does nothing. The lock will be released when the file is closed.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.FileAppender.MinimalLock">
-            <summary>
-            Acquires the file lock for each write
-            </summary>
-            <remarks>
-            <para>
-            Opens the file once for each <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/>/<see cref="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock"/> cycle, 
-            thus holding the lock for the minimal amount of time. This method of locking
-            is considerably slower than <see cref="T:log4net.Appender.FileAppender.ExclusiveLock"/> but allows 
-            other processes to move/delete the log file whilst logging continues.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.MinimalLock.OpenFile(System.String,System.Boolean,System.Text.Encoding)">
-            <summary>
-            Prepares to open the file when the first message is logged.
-            </summary>
-            <param name="filename">The filename to use</param>
-            <param name="append">Whether to append to the file, or overwrite</param>
-            <param name="encoding">The encoding to use</param>
-            <remarks>
-            <para>
-            Open the file specified and prepare for logging. 
-            No writes will be made until <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/> is called.
-            Must be called before any calls to <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/>,
-            <see cref="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock"/> and <see cref="M:log4net.Appender.FileAppender.MinimalLock.CloseFile"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.MinimalLock.CloseFile">
-            <summary>
-            Close the file
-            </summary>
-            <remarks>
-            <para>
-            Close the file. No further writes will be made.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock">
-            <summary>
-            Acquire the lock on the file
-            </summary>
-            <returns>A stream that is ready to be written to.</returns>
-            <remarks>
-            <para>
-            Acquire the lock on the file in preparation for writing to it. 
-            Return a stream pointing to the file. <see cref="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock"/>
-            must be called to release the lock on the output file.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock">
-            <summary>
-            Release the lock on the file
-            </summary>
-            <remarks>
-            <para>
-            Release the lock on the file. No further writes will be made to the 
-            stream until <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/> is called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.ForwardingAppender">
-            <summary>
-            This appender forwards logging events to attached appenders.
-            </summary>
-            <remarks>
-            <para>
-            The forwarding appender can be used to specify different thresholds
-            and filters for the same appender at different locations within the hierarchy.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Appender.ForwardingAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.ForwardingAppender"/> class.
-            </summary>
-            <remarks>
-            <para>
-            Default constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ForwardingAppender.OnClose">
-            <summary>
-            Closes the appender and releases resources.
-            </summary>
-            <remarks>
-            <para>
-            Releases any resources allocated within the appender such as file handles, 
-            network connections, etc.
-            </para>
-            <para>
-            It is a programming error to append to a closed appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ForwardingAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            Forward the logging event to the attached appenders 
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            Delivers the logging event to all the attached appenders.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ForwardingAppender.Append(log4net.Core.LoggingEvent[])">
-            <summary>
-            Forward the logging events to the attached appenders 
-            </summary>
-            <param name="loggingEvents">The array of events to log.</param>
-            <remarks>
-            <para>
-            Delivers the logging events to all the attached appenders.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ForwardingAppender.AddAppender(log4net.Appender.IAppender)">
-            <summary>
-            Adds an <see cref="T:log4net.Appender.IAppender"/> to the list of appenders of this
-            instance.
-            </summary>
-            <param name="newAppender">The <see cref="T:log4net.Appender.IAppender"/> to add to this appender.</param>
-            <remarks>
-            <para>
-            If the specified <see cref="T:log4net.Appender.IAppender"/> is already in the list of
-            appenders, then it won't be added again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ForwardingAppender.GetAppender(System.String)">
-            <summary>
-            Looks for the appender with the specified name.
-            </summary>
-            <param name="name">The name of the appender to lookup.</param>
-            <returns>
-            The appender with the specified name, or <c>null</c>.
-            </returns>
-            <remarks>
-            <para>
-            Get the named appender attached to this appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ForwardingAppender.RemoveAllAppenders">
-            <summary>
-            Removes all previously added appenders from this appender.
-            </summary>
-            <remarks>
-            <para>
-            This is useful when re-reading configuration information.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ForwardingAppender.RemoveAppender(log4net.Appender.IAppender)">
-            <summary>
-            Removes the specified appender from the list of appenders.
-            </summary>
-            <param name="appender">The appender to remove.</param>
-            <returns>The appender removed from the list</returns>
-            <remarks>
-            The appender removed is not closed.
-            If you are discarding the appender you must call
-            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.ForwardingAppender.RemoveAppender(System.String)">
-            <summary>
-            Removes the appender with the specified name from the list of appenders.
-            </summary>
-            <param name="name">The name of the appender to remove.</param>
-            <returns>The appender removed from the list</returns>
-            <remarks>
-            The appender removed is not closed.
-            If you are discarding the appender you must call
-            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.ForwardingAppender.m_appenderAttachedImpl">
-            <summary>
-            Implementation of the <see cref="T:log4net.Core.IAppenderAttachable"/> interface
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.ForwardingAppender.Appenders">
-            <summary>
-            Gets the appenders contained in this appender as an 
-            <see cref="T:System.Collections.ICollection"/>.
-            </summary>
-            <remarks>
-            If no appenders can be found, then an <see cref="T:log4net.Util.EmptyCollection"/> 
-            is returned.
-            </remarks>
-            <returns>
-            A collection of the appenders in this appender.
-            </returns>
-        </member>
-        <member name="T:log4net.Appender.LocalSyslogAppender">
-            <summary>
-            Logs events to a local syslog service.
-            </summary>
-            <remarks>
-            <note>
-            This appender uses the POSIX libc library functions <c>openlog</c>, <c>syslog</c>, and <c>closelog</c>.
-            If these functions are not available on the local system then this appender will not work!
-            </note>
-            <para>
-            The functions <c>openlog</c>, <c>syslog</c>, and <c>closelog</c> are specified in SUSv2 and 
-            POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service.
-            </para>
-            <para>
-            This appender talks to a local syslog service. If you need to log to a remote syslog
-            daemon and you cannot configure your local syslog service to do this you may be
-            able to use the <see cref="T:log4net.Appender.RemoteSyslogAppender"/> to log via UDP.
-            </para>
-            <para>
-            Syslog messages must have a facility and and a severity. The severity
-            is derived from the Level of the logging event.
-            The facility must be chosen from the set of defined syslog 
-            <see cref="T:log4net.Appender.LocalSyslogAppender.SyslogFacility"/> values. The facilities list is predefined
-            and cannot be extended.
-            </para>
-            <para>
-            An identifier is specified with each log message. This can be specified
-            by setting the <see cref="P:log4net.Appender.LocalSyslogAppender.Identity"/> property. The identity (also know 
-            as the tag) must not contain white space. The default value for the
-            identity is the application name (from <see cref="P:log4net.Util.SystemInfo.ApplicationFriendlyName"/>).
-            </para>
-            </remarks>
-            <author>Rob Lyon</author>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Appender.LocalSyslogAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.LocalSyslogAppender"/> class.
-            </summary>
-            <remarks>
-            This instance of the <see cref="T:log4net.Appender.LocalSyslogAppender"/> class is set up to write 
-            to a local syslog service.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.LocalSyslogAppender.AddMapping(log4net.Appender.LocalSyslogAppender.LevelSeverity)">
-            <summary>
-            Add a mapping of level to severity
-            </summary>
-            <param name="mapping">The mapping to add</param>
-            <remarks>
-            <para>
-            Adds a <see cref="T:log4net.Appender.LocalSyslogAppender.LevelSeverity"/> to this appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.LocalSyslogAppender.ActivateOptions">
-            <summary>
-            Initialize the appender based on the options set.
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Appender.LocalSyslogAppender.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Appender.LocalSyslogAppender.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Appender.LocalSyslogAppender.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.LocalSyslogAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method.
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            Writes the event to a remote syslog daemon.
-            </para>
-            <para>
-            The format of the output will depend on the appender's layout.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.LocalSyslogAppender.OnClose">
-            <summary>
-            Close the syslog when the appender is closed
-            </summary>
-            <remarks>
-            <para>
-            Close the syslog when the appender is closed
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.LocalSyslogAppender.GetSeverity(log4net.Core.Level)">
-            <summary>
-            Translates a log4net level to a syslog severity.
-            </summary>
-            <param name="level">A log4net level.</param>
-            <returns>A syslog severity.</returns>
-            <remarks>
-            <para>
-            Translates a log4net level to a syslog severity.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.LocalSyslogAppender.GeneratePriority(log4net.Appender.LocalSyslogAppender.SyslogFacility,log4net.Appender.LocalSyslogAppender.SyslogSeverity)">
-            <summary>
-            Generate a syslog priority.
-            </summary>
-            <param name="facility">The syslog facility.</param>
-            <param name="severity">The syslog severity.</param>
-            <returns>A syslog priority.</returns>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.m_facility">
-            <summary>
-            The facility. The default facility is <see cref="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.User"/>.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.m_identity">
-            <summary>
-            The message identity
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.m_handleToIdentity">
-            <summary>
-            Marshaled handle to the identity string. We have to hold on to the
-            string as the <c>openlog</c> and <c>syslog</c> APIs just hold the
-            pointer to the ident and dereference it for each log message.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.m_levelMapping">
-            <summary>
-            Mapping from level object to syslog severity
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.LocalSyslogAppender.openlog(System.IntPtr,System.Int32,log4net.Appender.LocalSyslogAppender.SyslogFacility)">
-            <summary>
-            Open connection to system logger.
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.LocalSyslogAppender.syslog(System.Int32,System.String,System.String)">
-            <summary>
-            Generate a log message.
-            </summary>
-            <remarks>
-            <para>
-            The libc syslog method takes a format string and a variable argument list similar
-            to the classic printf function. As this type of vararg list is not supported
-            by C# we need to specify the arguments explicitly. Here we have specified the
-            format string with a single message argument. The caller must set the format 
-            string to <c>"%s"</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.LocalSyslogAppender.closelog">
-            <summary>
-            Close descriptor used to write to system logger.
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.LocalSyslogAppender.Identity">
-            <summary>
-            Message identity
-            </summary>
-            <remarks>
-            <para>
-            An identifier is specified with each log message. This can be specified
-            by setting the <see cref="P:log4net.Appender.LocalSyslogAppender.Identity"/> property. The identity (also know 
-            as the tag) must not contain white space. The default value for the
-            identity is the application name (from <see cref="P:log4net.Util.SystemInfo.ApplicationFriendlyName"/>).
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.LocalSyslogAppender.Facility">
-            <summary>
-            Syslog facility
-            </summary>
-            <remarks>
-            Set to one of the <see cref="T:log4net.Appender.LocalSyslogAppender.SyslogFacility"/> values. The list of
-            facilities is predefined and cannot be extended. The default value
-            is <see cref="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.User"/>.
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.LocalSyslogAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.LocalSyslogAppender.SyslogSeverity">
-            <summary>
-            syslog severities
-            </summary>
-            <remarks>
-            <para>
-            The log4net Level maps to a syslog severity using the
-            <see cref="M:log4net.Appender.LocalSyslogAppender.AddMapping(log4net.Appender.LocalSyslogAppender.LevelSeverity)"/> method and the <see cref="T:log4net.Appender.LocalSyslogAppender.LevelSeverity"/>
-            class. The severity is set on <see cref="P:log4net.Appender.LocalSyslogAppender.LevelSeverity.Severity"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Emergency">
-            <summary>
-            system is unusable
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Alert">
-            <summary>
-            action must be taken immediately
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Critical">
-            <summary>
-            critical conditions
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Error">
-            <summary>
-            error conditions
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Warning">
-            <summary>
-            warning conditions
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Notice">
-            <summary>
-            normal but significant condition
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Informational">
-            <summary>
-            informational
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Debug">
-            <summary>
-            debug-level messages
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.LocalSyslogAppender.SyslogFacility">
-            <summary>
-            syslog facilities
-            </summary>
-            <remarks>
-            <para>
-            The syslog facility defines which subsystem the logging comes from.
-            This is set on the <see cref="P:log4net.Appender.LocalSyslogAppender.Facility"/> property.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Kernel">
-            <summary>
-            kernel messages
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.User">
-            <summary>
-            random user-level messages
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Mail">
-            <summary>
-            mail system
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Daemons">
-            <summary>
-            system daemons
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Authorization">
-            <summary>
-            security/authorization messages
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Syslog">
-            <summary>
-            messages generated internally by syslogd
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Printer">
-            <summary>
-            line printer subsystem
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.News">
-            <summary>
-            network news subsystem
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Uucp">
-            <summary>
-            UUCP subsystem
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Clock">
-            <summary>
-            clock (cron/at) daemon
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Authorization2">
-            <summary>
-            security/authorization  messages (private)
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Ftp">
-            <summary>
-            ftp daemon
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Ntp">
-            <summary>
-            NTP subsystem
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Audit">
-            <summary>
-            log audit
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Alert">
-            <summary>
-            log alert
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Clock2">
-            <summary>
-            clock daemon
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local0">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local1">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local2">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local3">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local4">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local5">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local6">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Local7">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.LocalSyslogAppender.LevelSeverity">
-            <summary>
-            A class to act as a mapping between the level that a logging call is made at and
-            the syslog severity that is should be logged at.
-            </summary>
-            <remarks>
-            <para>
-            A class to act as a mapping between the level that a logging call is made at and
-            the syslog severity that is should be logged at.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.LocalSyslogAppender.LevelSeverity.Severity">
-            <summary>
-            The mapped syslog severity for the specified level
-            </summary>
-            <remarks>
-            <para>
-            Required property.
-            The mapped syslog severity for the specified level
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.MemoryAppender">
-            <summary>
-            Stores logging events in an array.
-            </summary>
-            <remarks>
-            <para>
-            The memory appender stores all the logging events
-            that are appended in an in-memory array.
-            </para>
-            <para>
-            Use the <see cref="M:log4net.Appender.MemoryAppender.GetEvents"/> method to get
-            the current list of events that have been appended.
-            </para>
-            <para>
-            Use the <see cref="M:log4net.Appender.MemoryAppender.Clear"/> method to clear the
-            current list of events.
-            </para>
-            </remarks>
-            <author>Julian Biddle</author>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Appender.MemoryAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.MemoryAppender"/> class.
-            </summary>
-            <remarks>
-            <para>
-            Default constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.MemoryAppender.GetEvents">
-            <summary>
-            Gets the events that have been logged.
-            </summary>
-            <returns>The events that have been logged</returns>
-            <remarks>
-            <para>
-            Gets the events that have been logged.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.MemoryAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method. 
-            </summary>
-            <param name="loggingEvent">the event to log</param>
-            <remarks>
-            <para>Stores the <paramref name="loggingEvent"/> in the events list.</para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.MemoryAppender.Clear">
-            <summary>
-            Clear the list of events
-            </summary>
-            <remarks>
-            Clear the list of events
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.MemoryAppender.m_eventsList">
-            <summary>
-            The list of events that have been appended.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.MemoryAppender.m_fixFlags">
-            <summary>
-            Value indicating which fields in the event should be fixed
-            </summary>
-            <remarks>
-            By default all fields are fixed
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.MemoryAppender.OnlyFixPartialEventData">
-            <summary>
-            Gets or sets a value indicating whether only part of the logging event 
-            data should be fixed.
-            </summary>
-            <value>
-            <c>true</c> if the appender should only fix part of the logging event 
-            data, otherwise <c>false</c>. The default is <c>false</c>.
-            </value>
-            <remarks>
-            <para>
-            Setting this property to <c>true</c> will cause only part of the event 
-            data to be fixed and stored in the appender, hereby improving performance. 
-            </para>
-            <para>
-            See <see cref="M:log4net.Core.LoggingEvent.FixVolatileData(System.Boolean)"/> for more information.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.MemoryAppender.Fix">
-            <summary>
-            Gets or sets the fields that will be fixed in the event
-            </summary>
-            <remarks>
-            <para>
-            The logging event needs to have certain thread specific values 
-            captured before it can be buffered. See <see cref="P:log4net.Core.LoggingEvent.Fix"/>
-            for details.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.NetSendAppender">
-            <summary>
-            Logs entries by sending network messages using the 
-            <see cref="M:log4net.Appender.NetSendAppender.NetMessageBufferSend(System.String,System.String,System.String,System.String,System.Int32)"/> native function.
-            </summary>
-            <remarks>
-            <para>
-            You can send messages only to names that are active 
-            on the network. If you send the message to a user name, 
-            that user must be logged on and running the Messenger 
-            service to receive the message.
-            </para>
-            <para>
-            The receiver will get a top most window displaying the 
-            messages one at a time, therefore this appender should 
-            not be used to deliver a high volume of messages.
-            </para>
-            <para>
-            The following table lists some possible uses for this appender :
-            </para>
-            <para>
-            <list type="table">
-                <listheader>
-                    <term>Action</term>
-                    <description>Property Value(s)</description>
-                </listheader>
-                <item>
-                    <term>Send a message to a user account on the local machine</term>
-                    <description>
-                        <para>
-                        <paramref name="Server"/> = <name of the local machine>
-                        </para>
-                        <para>
-                        <paramref name="Recipient"/> = <user name>
-                        </para>
-                    </description>
-                </item>
-                <item>
-                    <term>Send a message to a user account on a remote machine</term>
-                    <description>
-                        <para>
-                        <paramref name="Server"/> = <name of the remote machine>
-                        </para>
-                        <para>
-                        <paramref name="Recipient"/> = <user name>
-                        </para>
-                    </description>
-                </item>
-                <item>
-                    <term>Send a message to a domain user account</term>
-                    <description>
-                        <para>
-                        <paramref name="Server"/> = <name of a domain controller | uninitialized>
-                        </para>
-                        <para>
-                        <paramref name="Recipient"/> = <user name>
-                        </para>
-                    </description>
-                </item>
-                <item>
-                    <term>Send a message to all the names in a workgroup or domain</term>
-                    <description>
-                        <para>
-                        <paramref name="Recipient"/> = <workgroup name | domain name>*
-                        </para>
-                    </description>
-                </item>
-                <item>
-                    <term>Send a message from the local machine to a remote machine</term>
-                    <description>
-                        <para>
-                        <paramref name="Server"/> = <name of the local machine | uninitialized>
-                        </para>
-                        <para>
-                        <paramref name="Recipient"/> = <name of the remote machine>
-                        </para>
-                    </description>
-                </item>
-            </list>
-            </para>
-            <para>
-            <b>Note :</b> security restrictions apply for sending 
-            network messages, see <see cref="M:log4net.Appender.NetSendAppender.NetMessageBufferSend(System.String,System.String,System.String,System.String,System.Int32)"/> 
-            for more information.
-            </para>
-            </remarks>
-            <example>
-            <para>
-            An example configuration section to log information 
-            using this appender from the local machine, named 
-            LOCAL_PC, to machine OPERATOR_PC :
-            </para>
-            <code lang="XML" escaped="true">
-            <appender name="NetSendAppender_Operator" type="log4net.Appender.NetSendAppender">
-                <server value="LOCAL_PC"/>
-                <recipient value="OPERATOR_PC"/>
-                <layout type="log4net.Layout.PatternLayout" value="%-5p %c [%x] - %m%n"/>
-            </appender>
-            </code>
-            </example>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="F:log4net.Appender.NetSendAppender.m_server">
-            <summary>
-            The DNS or NetBIOS name of the server on which the function is to execute.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.NetSendAppender.m_sender">
-            <summary>
-            The sender of the network message.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.NetSendAppender.m_recipient">
-            <summary>
-            The message alias to which the message should be sent.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.NetSendAppender.m_securityContext">
-            <summary>
-            The security context to use for privileged calls
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.NetSendAppender.#ctor">
-            <summary>
-            Initializes the appender.
-            </summary>
-            <remarks>
-            The default constructor initializes all fields to their default values.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.NetSendAppender.ActivateOptions">
-            <summary>
-            Initialize the appender based on the options set.
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Appender.NetSendAppender.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Appender.NetSendAppender.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Appender.NetSendAppender.ActivateOptions"/> must be called again.
-            </para>
-            <para>
-            The appender will be ignored if no <see cref="P:log4net.Appender.NetSendAppender.Recipient"/> was specified.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">The required property <see cref="P:log4net.Appender.NetSendAppender.Recipient"/> was not specified.</exception>
-        </member>
-        <member name="M:log4net.Appender.NetSendAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method.
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            Sends the event using a network message.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.NetSendAppender.NetMessageBufferSend(System.String,System.String,System.String,System.String,System.Int32)">
-            <summary>
-            Sends a buffer of information to a registered message alias.
-            </summary>
-            <param name="serverName">The DNS or NetBIOS name of the server on which the function is to execute.</param>
-            <param name="msgName">The message alias to which the message buffer should be sent</param>
-            <param name="fromName">The originator of the message.</param>
-            <param name="buffer">The message text.</param>
-            <param name="bufferSize">The length, in bytes, of the message text.</param>
-            <remarks>
-            <para>
-            The following restrictions apply for sending network messages:
-            </para>
-            <para>
-            <list type="table">
-                <listheader>
-                    <term>Platform</term>
-                    <description>Requirements</description>
-                </listheader>
-                <item>
-                    <term>Windows NT</term>
-                    <description>
-                        <para>
-                        No special group membership is required to send a network message.
-                        </para>
-                        <para>
-                        Admin, Accounts, Print, or Server Operator group membership is required to 
-                        successfully send a network message on a remote server.
-                        </para>
-                    </description>
-                </item>
-                <item>
-                    <term>Windows 2000 or later</term>
-                    <description>
-                        <para>
-                        If you send a message on a domain controller that is running Active Directory, 
-                        access is allowed or denied based on the access control list (ACL) for the securable 
-                        object. The default ACL permits only Domain Admins and Account Operators to send a network message. 
-                        </para>
-                        <para>
-                        On a member server or workstation, only Administrators and Server Operators can send a network message. 
-                        </para>
-                    </description>
-                </item>
-            </list>
-            </para>
-            <para>
-            For more information see <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/netmgmt/security_requirements_for_the_network_management_functions.asp">Security Requirements for the Network Management Functions</a>.
-            </para>
-            </remarks>
-            <returns>
-            <para>
-            If the function succeeds, the return value is zero.
-            </para>
-            </returns>
-        </member>
-        <member name="P:log4net.Appender.NetSendAppender.Sender">
-            <summary>
-            Gets or sets the sender of the message.
-            </summary>
-            <value>
-            The sender of the message.
-            </value>
-            <remarks>
-            If this property is not specified, the message is sent from the local computer.
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.NetSendAppender.Recipient">
-            <summary>
-            Gets or sets the message alias to which the message should be sent.
-            </summary>
-            <value>
-            The recipient of the message.
-            </value>
-            <remarks>
-            This property should always be specified in order to send a message.
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.NetSendAppender.Server">
-            <summary>
-            Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute.
-            </summary>
-            <value>
-            DNS or NetBIOS name of the remote server on which the function is to execute.
-            </value>
-            <remarks>
-            <para>
-            For Windows NT 4.0 and earlier, the string should begin with \\.
-            </para>
-            <para>
-            If this property is not specified, the local computer is used. 
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.NetSendAppender.SecurityContext">
-            <summary>
-            Gets or sets the <see cref="P:log4net.Appender.NetSendAppender.SecurityContext"/> used to call the NetSend method.
-            </summary>
-            <value>
-            The <see cref="P:log4net.Appender.NetSendAppender.SecurityContext"/> used to call the NetSend method.
-            </value>
-            <remarks>
-            <para>
-            Unless a <see cref="P:log4net.Appender.NetSendAppender.SecurityContext"/> specified here for this appender
-            the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
-            security context to use. The default behavior is to use the security context
-            of the current thread.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.NetSendAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.OutputDebugStringAppender">
-            <summary>
-            Appends log events to the OutputDebugString system.
-            </summary>
-            <remarks>
-            <para>
-            OutputDebugStringAppender appends log events to the
-            OutputDebugString system.
-            </para>
-            <para>
-            The string is passed to the native <c>OutputDebugString</c> 
-            function.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Appender.OutputDebugStringAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.OutputDebugStringAppender"/> class.
-            </summary>
-            <remarks>
-            <para>
-            Default constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.OutputDebugStringAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            Write the logging event to the output debug string API
-            </summary>
-            <param name="loggingEvent">the event to log</param>
-            <remarks>
-            <para>
-            Write the logging event to the output debug string API
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.OutputDebugStringAppender.OutputDebugString(System.String)">
-            <summary>
-            Stub for OutputDebugString native method
-            </summary>
-            <param name="message">the string to output</param>
-            <remarks>
-            <para>
-            Stub for OutputDebugString native method
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.OutputDebugStringAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.RemoteSyslogAppender">
-            <summary>
-            Logs events to a remote syslog daemon.
-            </summary>
-            <remarks>
-            <para>
-            The BSD syslog protocol is used to remotely log to
-            a syslog daemon. The syslogd listens for for messages
-            on UDP port 514.
-            </para>
-            <para>
-            The syslog UDP protocol is not authenticated. Most syslog daemons
-            do not accept remote log messages because of the security implications.
-            You may be able to use the LocalSyslogAppender to talk to a local
-            syslog service.
-            </para>
-            <para>
-            There is an RFC 3164 that claims to document the BSD Syslog Protocol.
-            This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html.
-            This appender generates what the RFC calls an "Original Device Message",
-            i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation
-            this format of message will be accepted by all current syslog daemon
-            implementations. The daemon will attach the current time and the source
-            hostname or IP address to any messages received.
-            </para>
-            <para>
-            Syslog messages must have a facility and and a severity. The severity
-            is derived from the Level of the logging event.
-            The facility must be chosen from the set of defined syslog 
-            <see cref="T:log4net.Appender.RemoteSyslogAppender.SyslogFacility"/> values. The facilities list is predefined
-            and cannot be extended.
-            </para>
-            <para>
-            An identifier is specified with each log message. This can be specified
-            by setting the <see cref="P:log4net.Appender.RemoteSyslogAppender.Identity"/> property. The identity (also know 
-            as the tag) must not contain white space. The default value for the
-            identity is the application name (from <see cref="P:log4net.Core.LoggingEvent.Domain"/>).
-            </para>
-            </remarks>
-            <author>Rob Lyon</author>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="T:log4net.Appender.UdpAppender">
-             <summary>
-             Sends logging events as connectionless UDP datagrams to a remote host or a 
-             multicast group using an <see cref="T:System.Net.Sockets.UdpClient"/>.
-             </summary>
-             <remarks>
-             <para>
-             UDP guarantees neither that messages arrive, nor that they arrive in the correct order.
-             </para>
-             <para>
-             To view the logging results, a custom application can be developed that listens for logging 
-             events.
-             </para>
-             <para>
-             When decoding events send via this appender remember to use the same encoding
-             to decode the events as was used to send the events. See the <see cref="P:log4net.Appender.UdpAppender.Encoding"/>
-             property to specify the encoding to use.
-             </para>
-             </remarks>
-             <example>
-             This example shows how to log receive logging events that are sent 
-             on IP address 244.0.0.1 and port 8080 to the console. The event is 
-             encoded in the packet as a unicode string and it is decoded as such. 
-             <code lang="C#">
-             IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
-             UdpClient udpClient;
-             byte[] buffer;
-             string loggingEvent;
-             
-             try 
-             {
-                 udpClient = new UdpClient(8080);
-                 
-                 while(true) 
-                 {
-                     buffer = udpClient.Receive(ref remoteEndPoint);
-                     loggingEvent = System.Text.Encoding.Unicode.GetString(buffer);
-                     Console.WriteLine(loggingEvent);
-                 }
-             } 
-             catch(Exception e) 
-             {
-                 Console.WriteLine(e.ToString());
-             }
-             </code>
-             <code lang="Visual Basic">
-             Dim remoteEndPoint as IPEndPoint
-             Dim udpClient as UdpClient
-             Dim buffer as Byte()
-             Dim loggingEvent as String
-             
-             Try 
-                 remoteEndPoint = new IPEndPoint(IPAddress.Any, 0)
-                 udpClient = new UdpClient(8080)
-            
-                 While True
-                     buffer = udpClient.Receive(ByRef remoteEndPoint)
-                     loggingEvent = System.Text.Encoding.Unicode.GetString(buffer)
-                     Console.WriteLine(loggingEvent)
-                 Wend
-             Catch e As Exception
-                 Console.WriteLine(e.ToString())
-             End Try
-             </code>
-             <para>
-             An example configuration section to log information using this appender to the 
-             IP 224.0.0.1 on port 8080:
-             </para>
-             <code lang="XML" escaped="true">
-             <appender name="UdpAppender" type="log4net.Appender.UdpAppender">
-                 <remoteAddress value="224.0.0.1"/>
-                 <remotePort value="8080"/>
-                 <layout type="log4net.Layout.PatternLayout" value="%-5level %logger [%ndc] - %message%newline"/>
-             </appender>
-             </code>
-             </example>
-             <author>Gert Driesen</author>
-             <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Appender.UdpAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.UdpAppender"/> class.
-            </summary>
-            <remarks>
-            The default constructor initializes all fields to their default values.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.UdpAppender.ActivateOptions">
-            <summary>
-            Initialize the appender based on the options set.
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Appender.UdpAppender.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Appender.UdpAppender.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Appender.UdpAppender.ActivateOptions"/> must be called again.
-            </para>
-            <para>
-            The appender will be ignored if no <see cref="P:log4net.Appender.UdpAppender.RemoteAddress"/> was specified or 
-            an invalid remote or local TCP port number was specified.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">The required property <see cref="P:log4net.Appender.UdpAppender.RemoteAddress"/> was not specified.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The TCP port number assigned to <see cref="P:log4net.Appender.UdpAppender.LocalPort"/> or <see cref="P:log4net.Appender.UdpAppender.RemotePort"/> is less than <see cref="F:System.Net.IPEndPoint.MinPort"/> or greater than <see cref="F:System.Net.IPEndPoint.MaxPort"/>.</exception>
-        </member>
-        <member name="M:log4net.Appender.UdpAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method.
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            Sends the event using an UDP datagram.
-            </para>
-            <para>
-            Exceptions are passed to the <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.UdpAppender.OnClose">
-            <summary>
-            Closes the UDP connection and releases all resources associated with 
-            this <see cref="T:log4net.Appender.UdpAppender"/> instance.
-            </summary>
-            <remarks>
-            <para>
-            Disables the underlying <see cref="T:System.Net.Sockets.UdpClient"/> and releases all managed 
-            and unmanaged resources associated with the <see cref="T:log4net.Appender.UdpAppender"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.UdpAppender.InitializeClientConnection">
-            <summary>
-            Initializes the underlying  <see cref="T:System.Net.Sockets.UdpClient"/> connection.
-            </summary>
-            <remarks>
-            <para>
-            The underlying <see cref="T:System.Net.Sockets.UdpClient"/> is initialized and binds to the 
-            port number from which you intend to communicate.
-            </para>
-            <para>
-            Exceptions are passed to the <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.UdpAppender.m_remoteAddress">
-            <summary>
-            The IP address of the remote host or multicast group to which 
-            the logging event will be sent.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.UdpAppender.m_remotePort">
-            <summary>
-            The TCP port number of the remote host or multicast group to 
-            which the logging event will be sent.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.UdpAppender.m_remoteEndPoint">
-            <summary>
-            The cached remote endpoint to which the logging events will be sent.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.UdpAppender.m_localPort">
-            <summary>
-            The TCP port number from which the <see cref="T:System.Net.Sockets.UdpClient"/> will communicate.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.UdpAppender.m_client">
-            <summary>
-            The <see cref="T:System.Net.Sockets.UdpClient"/> instance that will be used for sending the 
-            logging events.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.UdpAppender.m_encoding">
-            <summary>
-            The encoding to use for the packet.
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.UdpAppender.RemoteAddress">
-            <summary>
-            Gets or sets the IP address of the remote host or multicast group to which
-            the underlying <see cref="T:System.Net.Sockets.UdpClient"/> should sent the logging event.
-            </summary>
-            <value>
-            The IP address of the remote host or multicast group to which the logging event 
-            will be sent.
-            </value>
-            <remarks>
-            <para>
-            Multicast addresses are identified by IP class <b>D</b> addresses (in the range 224.0.0.0 to
-            239.255.255.255).  Multicast packets can pass across different networks through routers, so
-            it is possible to use multicasts in an Internet scenario as long as your network provider 
-            supports multicasting.
-            </para>
-            <para>
-            Hosts that want to receive particular multicast messages must register their interest by joining
-            the multicast group.  Multicast messages are not sent to networks where no host has joined
-            the multicast group.  Class <b>D</b> IP addresses are used for multicast groups, to differentiate
-            them from normal host addresses, allowing nodes to easily detect if a message is of interest.
-            </para>
-            <para>
-            Static multicast addresses that are needed globally are assigned by IANA.  A few examples are listed in the table below:
-            </para>
-            <para>
-            <list type="table">
-                <listheader>
-                    <term>IP Address</term>
-                    <description>Description</description>
-                </listheader>
-                <item>
-                    <term>224.0.0.1</term>
-                    <description>
-                        <para>
-                        Sends a message to all system on the subnet.
-                        </para>
-                    </description>
-                </item>
-                <item>
-                    <term>224.0.0.2</term>
-                    <description>
-                        <para>
-                        Sends a message to all routers on the subnet.
-                        </para>
-                    </description>
-                </item>
-                <item>
-                    <term>224.0.0.12</term>
-                    <description>
-                        <para>
-                        The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet.
-                        </para>
-                    </description>
-                </item>
-            </list>
-            </para>
-            <para>
-            A complete list of actually reserved multicast addresses and their owners in the ranges
-            defined by RFC 3171 can be found at the <A href="http://www.iana.org/assignments/multicast-addresses">IANA web site</A>. 
-            </para>
-            <para>
-            The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative 
-            addresses.  These addresses can be reused with other local groups.  Routers are typically 
-            configured with filters to prevent multicast traffic in this range from flowing outside
-            of the local network.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.UdpAppender.RemotePort">
-            <summary>
-            Gets or sets the TCP port number of the remote host or multicast group to which 
-            the underlying <see cref="T:System.Net.Sockets.UdpClient"/> should sent the logging event.
-            </summary>
-            <value>
-            An integer value in the range <see cref="F:System.Net.IPEndPoint.MinPort"/> to <see cref="F:System.Net.IPEndPoint.MaxPort"/> 
-            indicating the TCP port number of the remote host or multicast group to which the logging event 
-            will be sent.
-            </value>
-            <remarks>
-            The underlying <see cref="T:System.Net.Sockets.UdpClient"/> will send messages to this TCP port number
-            on the remote host or multicast group.
-            </remarks>
-            <exception cref="T:System.ArgumentOutOfRangeException">The value specified is less than <see cref="F:System.Net.IPEndPoint.MinPort"/> or greater than <see cref="F:System.Net.IPEndPoint.MaxPort"/>.</exception>
-        </member>
-        <member name="P:log4net.Appender.UdpAppender.LocalPort">
-            <summary>
-            Gets or sets the TCP port number from which the underlying <see cref="T:System.Net.Sockets.UdpClient"/> will communicate.
-            </summary>
-            <value>
-            An integer value in the range <see cref="F:System.Net.IPEndPoint.MinPort"/> to <see cref="F:System.Net.IPEndPoint.MaxPort"/> 
-            indicating the TCP port number from which the underlying <see cref="T:System.Net.Sockets.UdpClient"/> will communicate.
-            </value>
-            <remarks>
-            <para>
-            The underlying <see cref="T:System.Net.Sockets.UdpClient"/> will bind to this port for sending messages.
-            </para>
-            <para>
-            Setting the value to 0 (the default) will cause the udp client not to bind to
-            a local port.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentOutOfRangeException">The value specified is less than <see cref="F:System.Net.IPEndPoint.MinPort"/> or greater than <see cref="F:System.Net.IPEndPoint.MaxPort"/>.</exception>
-        </member>
-        <member name="P:log4net.Appender.UdpAppender.Encoding">
-            <summary>
-            Gets or sets <see cref="P:log4net.Appender.UdpAppender.Encoding"/> used to write the packets.
-            </summary>
-            <value>
-            The <see cref="P:log4net.Appender.UdpAppender.Encoding"/> used to write the packets.
-            </value>
-            <remarks>
-            <para>
-            The <see cref="P:log4net.Appender.UdpAppender.Encoding"/> used to write the packets.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.UdpAppender.Client">
-            <summary>
-            Gets or sets the underlying <see cref="T:System.Net.Sockets.UdpClient"/>.
-            </summary>
-            <value>
-            The underlying <see cref="T:System.Net.Sockets.UdpClient"/>.
-            </value>
-            <remarks>
-            <see cref="T:log4net.Appender.UdpAppender"/> creates a <see cref="T:System.Net.Sockets.UdpClient"/> to send logging events 
-            over a network.  Classes deriving from <see cref="T:log4net.Appender.UdpAppender"/> can use this
-            property to get or set this <see cref="T:System.Net.Sockets.UdpClient"/>.  Use the underlying <see cref="T:System.Net.Sockets.UdpClient"/>
-            returned from <see cref="P:log4net.Appender.UdpAppender.Client"/> if you require access beyond that which 
-            <see cref="T:log4net.Appender.UdpAppender"/> provides.
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.UdpAppender.RemoteEndPoint">
-            <summary>
-            Gets or sets the cached remote endpoint to which the logging events should be sent.
-            </summary>
-            <value>
-            The cached remote endpoint to which the logging events will be sent.
-            </value>
-            <remarks>
-            The <see cref="M:log4net.Appender.UdpAppender.ActivateOptions"/> method will initialize the remote endpoint 
-            with the values of the <see cref="P:log4net.Appender.UdpAppender.RemoteAddress"/> and <see cref="P:log4net.Appender.UdpAppender.RemotePort"/>
-            properties.
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.UdpAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.DefaultSyslogPort">
-            <summary>
-            Syslog port 514
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.RemoteSyslogAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.RemoteSyslogAppender"/> class.
-            </summary>
-            <remarks>
-            This instance of the <see cref="T:log4net.Appender.RemoteSyslogAppender"/> class is set up to write 
-            to a remote syslog daemon.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RemoteSyslogAppender.AddMapping(log4net.Appender.RemoteSyslogAppender.LevelSeverity)">
-            <summary>
-            Add a mapping of level to severity
-            </summary>
-            <param name="mapping">The mapping to add</param>
-            <remarks>
-            <para>
-            Add a <see cref="T:log4net.Appender.RemoteSyslogAppender.LevelSeverity"/> mapping to this appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RemoteSyslogAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            This method is called by the <see cref="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)"/> method.
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            Writes the event to a remote syslog daemon.
-            </para>
-            <para>
-            The format of the output will depend on the appender's layout.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RemoteSyslogAppender.ActivateOptions">
-            <summary>
-            Initialize the options for this appender
-            </summary>
-            <remarks>
-            <para>
-            Initialize the level to syslog severity mappings set on this appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RemoteSyslogAppender.GetSeverity(log4net.Core.Level)">
-            <summary>
-            Translates a log4net level to a syslog severity.
-            </summary>
-            <param name="level">A log4net level.</param>
-            <returns>A syslog severity.</returns>
-            <remarks>
-            <para>
-            Translates a log4net level to a syslog severity.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RemoteSyslogAppender.GeneratePriority(log4net.Appender.RemoteSyslogAppender.SyslogFacility,log4net.Appender.RemoteSyslogAppender.SyslogSeverity)">
-            <summary>
-            Generate a syslog priority.
-            </summary>
-            <param name="facility">The syslog facility.</param>
-            <param name="severity">The syslog severity.</param>
-            <returns>A syslog priority.</returns>
-            <remarks>
-            <para>
-            Generate a syslog priority.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.m_facility">
-            <summary>
-            The facility. The default facility is <see cref="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.User"/>.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.m_identity">
-            <summary>
-            The message identity
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.m_levelMapping">
-            <summary>
-            Mapping from level object to syslog severity
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.RemoteSyslogAppender.Identity">
-            <summary>
-            Message identity
-            </summary>
-            <remarks>
-            <para>
-            An identifier is specified with each log message. This can be specified
-            by setting the <see cref="P:log4net.Appender.RemoteSyslogAppender.Identity"/> property. The identity (also know 
-            as the tag) must not contain white space. The default value for the
-            identity is the application name (from <see cref="P:log4net.Core.LoggingEvent.Domain"/>).
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.RemoteSyslogAppender.Facility">
-            <summary>
-            Syslog facility
-            </summary>
-            <remarks>
-            Set to one of the <see cref="T:log4net.Appender.RemoteSyslogAppender.SyslogFacility"/> values. The list of
-            facilities is predefined and cannot be extended. The default value
-            is <see cref="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.User"/>.
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.RemoteSyslogAppender.SyslogSeverity">
-            <summary>
-            syslog severities
-            </summary>
-            <remarks>
-            <para>
-            The syslog severities.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Emergency">
-            <summary>
-            system is unusable
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Alert">
-            <summary>
-            action must be taken immediately
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Critical">
-            <summary>
-            critical conditions
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Error">
-            <summary>
-            error conditions
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Warning">
-            <summary>
-            warning conditions
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Notice">
-            <summary>
-            normal but significant condition
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Informational">
-            <summary>
-            informational
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Debug">
-            <summary>
-            debug-level messages
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.RemoteSyslogAppender.SyslogFacility">
-            <summary>
-            syslog facilities
-            </summary>
-            <remarks>
-            <para>
-            The syslog facilities
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Kernel">
-            <summary>
-            kernel messages
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.User">
-            <summary>
-            random user-level messages
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Mail">
-            <summary>
-            mail system
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Daemons">
-            <summary>
-            system daemons
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Authorization">
-            <summary>
-            security/authorization messages
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Syslog">
-            <summary>
-            messages generated internally by syslogd
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Printer">
-            <summary>
-            line printer subsystem
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.News">
-            <summary>
-            network news subsystem
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Uucp">
-            <summary>
-            UUCP subsystem
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Clock">
-            <summary>
-            clock (cron/at) daemon
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Authorization2">
-            <summary>
-            security/authorization  messages (private)
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Ftp">
-            <summary>
-            ftp daemon
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Ntp">
-            <summary>
-            NTP subsystem
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Audit">
-            <summary>
-            log audit
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Alert">
-            <summary>
-            log alert
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Clock2">
-            <summary>
-            clock daemon
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local0">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local1">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local2">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local3">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local4">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local5">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local6">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Local7">
-            <summary>
-            reserved for local use
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.RemoteSyslogAppender.LevelSeverity">
-            <summary>
-            A class to act as a mapping between the level that a logging call is made at and
-            the syslog severity that is should be logged at.
-            </summary>
-            <remarks>
-            <para>
-            A class to act as a mapping between the level that a logging call is made at and
-            the syslog severity that is should be logged at.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.RemoteSyslogAppender.LevelSeverity.Severity">
-            <summary>
-            The mapped syslog severity for the specified level
-            </summary>
-            <remarks>
-            <para>
-            Required property.
-            The mapped syslog severity for the specified level
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.RemotingAppender">
-            <summary>
-            Delivers logging events to a remote logging sink. 
-            </summary>
-            <remarks>
-            <para>
-            This Appender is designed to deliver events to a remote sink. 
-            That is any object that implements the <see cref="T:log4net.Appender.RemotingAppender.IRemoteLoggingSink"/>
-            interface. It delivers the events using .NET remoting. The
-            object to deliver events to is specified by setting the
-            appenders <see cref="P:log4net.Appender.RemotingAppender.Sink"/> property.</para>
-            <para>
-            The RemotingAppender buffers events before sending them. This allows it to 
-            make more efficient use of the remoting infrastructure.</para>
-            <para>
-            Once the buffer is full the events are still not sent immediately. 
-            They are scheduled to be sent using a pool thread. The effect is that 
-            the send occurs asynchronously. This is very important for a 
-            number of non obvious reasons. The remoting infrastructure will 
-            flow thread local variables (stored in the <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/>),
-            if they are marked as <see cref="T:System.Runtime.Remoting.Messaging.ILogicalThreadAffinative"/>, across the 
-            remoting boundary. If the server is not contactable then
-            the remoting infrastructure will clear the <see cref="T:System.Runtime.Remoting.Messaging.ILogicalThreadAffinative"/>
-            objects from the <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/>. To prevent a logging failure from
-            having side effects on the calling application the remoting call must be made
-            from a separate thread to the one used by the application. A <see cref="T:System.Threading.ThreadPool"/>
-            thread is used for this. If no <see cref="T:System.Threading.ThreadPool"/> thread is available then
-            the events will block in the thread pool manager until a thread is available.</para>
-            <para>
-            Because the events are sent asynchronously using pool threads it is possible to close 
-            this appender before all the queued events have been sent.
-            When closing the appender attempts to wait until all the queued events have been sent, but 
-            this will timeout after 30 seconds regardless.</para>
-            <para>
-            If this appender is being closed because the <see cref="E:System.AppDomain.ProcessExit"/>
-            event has fired it may not be possible to send all the queued events. During process
-            exit the runtime limits the time that a <see cref="E:System.AppDomain.ProcessExit"/>
-            event handler is allowed to run for. If the runtime terminates the threads before
-            the queued events have been sent then they will be lost. To ensure that all events
-            are sent the appender must be closed before the application exits. See 
-            <see cref="M:log4net.Core.LoggerManager.Shutdown"/> for details on how to shutdown
-            log4net programmatically.</para>
-            </remarks>
-            <seealso cref="T:log4net.Appender.RemotingAppender.IRemoteLoggingSink"/>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-            <author>Daniel Cazzulino</author>
-        </member>
-        <member name="M:log4net.Appender.RemotingAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.RemotingAppender"/> class.
-            </summary>
-            <remarks>
-            <para>
-            Default constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RemotingAppender.ActivateOptions">
-            <summary>
-            Initialize the appender based on the options set
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Appender.RemotingAppender.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Appender.RemotingAppender.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Appender.RemotingAppender.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RemotingAppender.SendBuffer(log4net.Core.LoggingEvent[])">
-            <summary>
-            Send the contents of the buffer to the remote sink.
-            </summary>
-            <remarks>
-            The events are not sent immediately. They are scheduled to be sent
-            using a pool thread. The effect is that the send occurs asynchronously.
-            This is very important for a number of non obvious reasons. The remoting
-            infrastructure will flow thread local variables (stored in the <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/>),
-            if they are marked as <see cref="T:System.Runtime.Remoting.Messaging.ILogicalThreadAffinative"/>, across the 
-            remoting boundary. If the server is not contactable then
-            the remoting infrastructure will clear the <see cref="T:System.Runtime.Remoting.Messaging.ILogicalThreadAffinative"/>
-            objects from the <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/>. To prevent a logging failure from
-            having side effects on the calling application the remoting call must be made
-            from a separate thread to the one used by the application. A <see cref="T:System.Threading.ThreadPool"/>
-            thread is used for this. If no <see cref="T:System.Threading.ThreadPool"/> thread is available then
-            the events will block in the thread pool manager until a thread is available.
-            </remarks>
-            <param name="events">The events to send.</param>
-        </member>
-        <member name="M:log4net.Appender.RemotingAppender.OnClose">
-            <summary>
-            Override base class close.
-            </summary>
-            <remarks>
-            <para>
-            This method waits while there are queued work items. The events are
-            sent asynchronously using <see cref="T:System.Threading.ThreadPool"/> work items. These items
-            will be sent once a thread pool thread is available to send them, therefore
-            it is possible to close the appender before all the queued events have been
-            sent.</para>
-            <para>
-            This method attempts to wait until all the queued events have been sent, but this 
-            method will timeout after 30 seconds regardless.</para>
-            <para>
-            If the appender is being closed because the <see cref="E:System.AppDomain.ProcessExit"/>
-            event has fired it may not be possible to send all the queued events. During process
-            exit the runtime limits the time that a <see cref="E:System.AppDomain.ProcessExit"/>
-            event handler is allowed to run for.</para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RemotingAppender.BeginAsyncSend">
-            <summary>
-            A work item is being queued into the thread pool
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.RemotingAppender.EndAsyncSend">
-            <summary>
-            A work item from the thread pool has completed
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.RemotingAppender.SendBufferCallback(System.Object)">
-            <summary>
-            Send the contents of the buffer to the remote sink.
-            </summary>
-            <remarks>
-            This method is designed to be used with the <see cref="T:System.Threading.ThreadPool"/>.
-            This method expects to be passed an array of <see cref="T:log4net.Core.LoggingEvent"/>
-            objects in the state param.
-            </remarks>
-            <param name="state">the logging events to send</param>
-        </member>
-        <member name="F:log4net.Appender.RemotingAppender.m_sinkUrl">
-            <summary>
-            The URL of the remote sink.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemotingAppender.m_sinkObj">
-            <summary>
-            The local proxy (.NET remoting) for the remote logging sink.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemotingAppender.m_queuedCallbackCount">
-            <summary>
-            The number of queued callbacks currently waiting or executing
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RemotingAppender.m_workQueueEmptyEvent">
-            <summary>
-            Event used to signal when there are no queued work items
-            </summary>
-            <remarks>
-            This event is set when there are no queued work items. In this
-            state it is safe to close the appender.
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.RemotingAppender.Sink">
-            <summary>
-            Gets or sets the URL of the well-known object that will accept 
-            the logging events.
-            </summary>
-            <value>
-            The well-known URL of the remote sink.
-            </value>
-            <remarks>
-            <para>
-            The URL of the remoting sink that will accept logging events.
-            The sink must implement the <see cref="T:log4net.Appender.RemotingAppender.IRemoteLoggingSink"/>
-            interface.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.RemotingAppender.IRemoteLoggingSink">
-            <summary>
-            Interface used to deliver <see cref="T:log4net.Core.LoggingEvent"/> objects to a remote sink.
-            </summary>
-            <remarks>
-            This interface must be implemented by a remoting sink
-            if the <see cref="T:log4net.Appender.RemotingAppender"/> is to be used
-            to deliver logging events to the sink.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RemotingAppender.IRemoteLoggingSink.LogEvents(log4net.Core.LoggingEvent[])">
-            <summary>
-            Delivers logging events to the remote sink
-            </summary>
-            <param name="events">Array of events to log.</param>
-            <remarks>
-            <para>
-            Delivers logging events to the remote sink
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.RollingFileAppender">
-            <summary>
-            Appender that rolls log files based on size or date or both.
-            </summary>
-            <remarks>
-            <para>
-            RollingFileAppender can roll log files based on size or date or both
-            depending on the setting of the <see cref="P:log4net.Appender.RollingFileAppender.RollingStyle"/> property.
-            When set to <see cref="F:log4net.Appender.RollingFileAppender.RollingMode.Size"/> the log file will be rolled
-            once its size exceeds the <see cref="P:log4net.Appender.RollingFileAppender.MaximumFileSize"/>.
-            When set to <see cref="F:log4net.Appender.RollingFileAppender.RollingMode.Date"/> the log file will be rolled
-            once the date boundary specified in the <see cref="P:log4net.Appender.RollingFileAppender.DatePattern"/> property
-            is crossed.
-            When set to <see cref="F:log4net.Appender.RollingFileAppender.RollingMode.Composite"/> the log file will be
-            rolled once the date boundary specified in the <see cref="P:log4net.Appender.RollingFileAppender.DatePattern"/> property
-            is crossed, but within a date boundary the file will also be rolled
-            once its size exceeds the <see cref="P:log4net.Appender.RollingFileAppender.MaximumFileSize"/>.
-            When set to <see cref="F:log4net.Appender.RollingFileAppender.RollingMode.Once"/> the log file will be rolled when
-            the appender is configured. This effectively means that the log file can be
-            rolled once per program execution.
-            </para>
-            <para>
-            A of few additional optional features have been added:
-            <list type="bullet">
-            <item>Attach date pattern for current log file <see cref="P:log4net.Appender.RollingFileAppender.StaticLogFileName"/></item>
-            <item>Backup number increments for newer files <see cref="P:log4net.Appender.RollingFileAppender.CountDirection"/></item>
-            <item>Infinite number of backups by file size <see cref="P:log4net.Appender.RollingFileAppender.MaxSizeRollBackups"/></item>
-            </list>
-            </para>
-            
-            <note>
-            <para>
-            For large or infinite numbers of backup files a <see cref="P:log4net.Appender.RollingFileAppender.CountDirection"/> 
-            greater than zero is highly recommended, otherwise all the backup files need
-            to be renamed each time a new backup is created.
-            </para>
-            <para>
-            When Date/Time based rolling is used setting <see cref="P:log4net.Appender.RollingFileAppender.StaticLogFileName"/> 
-            to <see langword="true"/> will reduce the number of file renamings to few or none.
-            </para>
-            </note>
-            
-            <note type="caution">
-            <para>
-            Changing <see cref="P:log4net.Appender.RollingFileAppender.StaticLogFileName"/> or <see cref="P:log4net.Appender.RollingFileAppender.CountDirection"/> without clearing
-            the log file directory of backup files will cause unexpected and unwanted side effects.  
-            </para>
-            </note>
-            
-            <para>
-            If Date/Time based rolling is enabled this appender will attempt to roll existing files
-            in the directory without a Date/Time tag based on the last write date of the base log file.
-            The appender only rolls the log file when a message is logged. If Date/Time based rolling 
-            is enabled then the appender will not roll the log file at the Date/Time boundary but
-            at the point when the next message is logged after the boundary has been crossed.
-            </para>
-            
-            <para>
-            The <see cref="T:log4net.Appender.RollingFileAppender"/> extends the <see cref="T:log4net.Appender.FileAppender"/> and
-            has the same behavior when opening the log file.
-            The appender will first try to open the file for writing when <see cref="M:log4net.Appender.RollingFileAppender.ActivateOptions"/>
-            is called. This will typically be during configuration.
-            If the file cannot be opened for writing the appender will attempt
-            to open the file again each time a message is logged to the appender.
-            If the file cannot be opened for writing when a message is logged then
-            the message will be discarded by this appender.
-            </para>
-            <para>
-            When rolling a backup file necessitates deleting an older backup file the
-            file to be deleted is moved to a temporary name before being deleted.
-            </para>
-            
-            <note type="caution">
-            <para>
-            A maximum number of backup files when rolling on date/time boundaries is not supported.
-            </para>
-            </note>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-            <author>Aspi Havewala</author>
-            <author>Douglas de la Torre</author>
-            <author>Edward Smit</author>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.RollingFileAppender"/> class.
-            </summary>
-            <remarks>
-            <para>
-            Default constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.SetQWForFiles(System.IO.TextWriter)">
-            <summary>
-            Sets the quiet writer being used.
-            </summary>
-            <remarks>
-            This method can be overridden by sub classes.
-            </remarks>
-            <param name="writer">the writer to set</param>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            Write out a logging event.
-            </summary>
-            <param name="loggingEvent">the event to write to file.</param>
-            <remarks>
-            <para>
-            Handles append time behavior for RollingFileAppender.  This checks
-            if a roll over either by date (checked first) or time (checked second)
-            is need and then appends to the file last.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.Append(log4net.Core.LoggingEvent[])">
-            <summary>
-            Write out an array of logging events.
-            </summary>
-            <param name="loggingEvents">the events to write to file.</param>
-            <remarks>
-            <para>
-            Handles append time behavior for RollingFileAppender.  This checks
-            if a roll over either by date (checked first) or time (checked second)
-            is need and then appends to the file last.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.AdjustFileBeforeAppend">
-            <summary>
-            Performs any required rolling before outputting the next event
-            </summary>
-            <remarks>
-            <para>
-            Handles append time behavior for RollingFileAppender.  This checks
-            if a roll over either by date (checked first) or time (checked second)
-            is need and then appends to the file last.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.OpenFile(System.String,System.Boolean)">
-            <summary>
-            Creates and opens the file for logging.  If <see cref="P:log4net.Appender.RollingFileAppender.StaticLogFileName"/>
-            is false then the fully qualified name is determined and used.
-            </summary>
-            <param name="fileName">the name of the file to open</param>
-            <param name="append">true to append to existing file</param>
-            <remarks>
-            <para>This method will ensure that the directory structure
-            for the <paramref name="fileName"/> specified exists.</para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.GetNextOutputFileName(System.String)">
-            <summary>
-            Get the current output file name
-            </summary>
-            <param name="fileName">the base file name</param>
-            <returns>the output file name</returns>
-            <remarks>
-            The output file name is based on the base fileName specified.
-            If <see cref="P:log4net.Appender.RollingFileAppender.StaticLogFileName"/> is set then the output 
-            file name is the same as the base file passed in. Otherwise
-            the output file depends on the date pattern, on the count
-            direction or both.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.DetermineCurSizeRollBackups">
-            <summary>
-            Determines curSizeRollBackups (only within the current roll point)
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.GetWildcardPatternForFile(System.String)">
-            <summary>
-            Generates a wildcard pattern that can be used to find all files
-            that are similar to the base file name.
-            </summary>
-            <param name="baseFileName"></param>
-            <returns></returns>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.GetExistingFiles(System.String)">
-            <summary>
-            Builds a list of filenames for all files matching the base filename plus a file
-            pattern.
-            </summary>
-            <param name="baseFilePath"></param>
-            <returns></returns>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.RollOverIfDateBoundaryCrossing">
-            <summary>
-            Initiates a roll over if needed for crossing a date boundary since the last run.
-            </summary>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.ExistingInit">
-            <summary>
-            Initializes based on existing conditions at time of <see cref="M:log4net.Appender.RollingFileAppender.ActivateOptions"/>.
-            </summary>
-            <remarks>
-            <para>
-            Initializes based on existing conditions at time of <see cref="M:log4net.Appender.RollingFileAppender.ActivateOptions"/>.
-            The following is done
-            <list type="bullet">
-            <item>determine curSizeRollBackups (only within the current roll point)</item>
-            <item>initiates a roll over if needed for crossing a date boundary since the last run.</item>
-            </list>
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.InitializeFromOneFile(System.String,System.String)">
-            <summary>
-            Does the work of bumping the 'current' file counter higher
-            to the highest count when an incremental file name is seen.
-            The highest count is either the first file (when count direction
-            is greater than 0) or the last file (when count direction less than 0).
-            In either case, we want to know the highest count that is present.
-            </summary>
-            <param name="baseFile"></param>
-            <param name="curFileName"></param>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.InitializeRollBackups(System.String,System.Collections.ArrayList)">
-            <summary>
-            Takes a list of files and a base file name, and looks for 
-            'incremented' versions of the base file.  Bumps the max
-            count up to the highest count seen.
-            </summary>
-            <param name="baseFile"></param>
-            <param name="arrayFiles"></param>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.ComputeCheckPeriod(System.String)">
-            <summary>
-            Calculates the RollPoint for the datePattern supplied.
-            </summary>
-            <param name="datePattern">the date pattern to calculate the check period for</param>
-            <returns>The RollPoint that is most accurate for the date pattern supplied</returns>
-            <remarks>
-            Essentially the date pattern is examined to determine what the
-            most suitable roll point is. The roll point chosen is the roll point
-            with the smallest period that can be detected using the date pattern
-            supplied. i.e. if the date pattern only outputs the year, month, day 
-            and hour then the smallest roll point that can be detected would be
-            and hourly roll point as minutes could not be detected.
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.ActivateOptions">
-            <summary>
-            Initialize the appender based on the options set
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Appender.RollingFileAppender.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Appender.RollingFileAppender.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Appender.RollingFileAppender.ActivateOptions"/> must be called again.
-            </para>
-            <para>
-            Sets initial conditions including date/time roll over information, first check,
-            scheduledFilename, and calls <see cref="M:log4net.Appender.RollingFileAppender.ExistingInit"/> to initialize
-            the current number of backups.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.RollOverTime(System.Boolean)">
-            <summary>
-            Rollover the file(s) to date/time tagged file(s).
-            </summary>
-            <param name="fileIsOpen">set to true if the file to be rolled is currently open</param>
-            <remarks>
-            <para>
-            Rollover the file(s) to date/time tagged file(s).
-            Resets curSizeRollBackups. 
-            If fileIsOpen is set then the new file is opened (through SafeOpenFile).
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.RollFile(System.String,System.String)">
-            <summary>
-            Renames file <paramref name="fromFile"/> to file <paramref name="toFile"/>.
-            </summary>
-            <param name="fromFile">Name of existing file to roll.</param>
-            <param name="toFile">New name for file.</param>
-            <remarks>
-            <para>
-            Renames file <paramref name="fromFile"/> to file <paramref name="toFile"/>. It
-            also checks for existence of target file and deletes if it does.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.FileExists(System.String)">
-            <summary>
-            Test if a file exists at a specified path
-            </summary>
-            <param name="path">the path to the file</param>
-            <returns>true if the file exists</returns>
-            <remarks>
-            <para>
-            Test if a file exists at a specified path
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.DeleteFile(System.String)">
-            <summary>
-            Deletes the specified file if it exists.
-            </summary>
-            <param name="fileName">The file to delete.</param>
-            <remarks>
-            <para>
-            Delete a file if is exists.
-            The file is first moved to a new filename then deleted.
-            This allows the file to be removed even when it cannot
-            be deleted, but it still can be moved.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.RollOverSize">
-            <summary>
-            Implements file roll base on file size.
-            </summary>
-            <remarks>
-            <para>
-            If the maximum number of size based backups is reached
-            (<c>curSizeRollBackups == maxSizeRollBackups</c>) then the oldest
-            file is deleted -- its index determined by the sign of countDirection.
-            If <c>countDirection</c> < 0, then files
-            {<c>File.1</c>, ..., <c>File.curSizeRollBackups -1</c>}
-            are renamed to {<c>File.2</c>, ...,
-            <c>File.curSizeRollBackups</c>}. Moreover, <c>File</c> is
-            renamed <c>File.1</c> and closed.
-            </para>
-            <para>
-            A new file is created to receive further log output.
-            </para>
-            <para>
-            If <c>maxSizeRollBackups</c> is equal to zero, then the
-            <c>File</c> is truncated with no backup files created.
-            </para>
-            <para>
-            If <c>maxSizeRollBackups</c> < 0, then <c>File</c> is
-            renamed if needed and no files are deleted.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.RollOverRenameFiles(System.String)">
-            <summary>
-            Implements file roll.
-            </summary>
-            <param name="baseFileName">the base name to rename</param>
-            <remarks>
-            <para>
-            If the maximum number of size based backups is reached
-            (<c>curSizeRollBackups == maxSizeRollBackups</c>) then the oldest
-            file is deleted -- its index determined by the sign of countDirection.
-            If <c>countDirection</c> < 0, then files
-            {<c>File.1</c>, ..., <c>File.curSizeRollBackups -1</c>}
-            are renamed to {<c>File.2</c>, ...,
-            <c>File.curSizeRollBackups</c>}. 
-            </para>
-            <para>
-            If <c>maxSizeRollBackups</c> is equal to zero, then the
-            <c>File</c> is truncated with no backup files created.
-            </para>
-            <para>
-            If <c>maxSizeRollBackups</c> < 0, then <c>File</c> is
-            renamed if needed and no files are deleted.
-            </para>
-            <para>
-            This is called by <see cref="M:log4net.Appender.RollingFileAppender.RollOverSize"/> to rename the files.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.RollingFileAppender.NextCheckDate(System.DateTime,log4net.Appender.RollingFileAppender.RollPoint)">
-            <summary>
-            Get the start time of the next window for the current rollpoint
-            </summary>
-            <param name="currentDateTime">the current date</param>
-            <param name="rollPoint">the type of roll point we are working with</param>
-            <returns>the start time for the next roll point an interval after the currentDateTime date</returns>
-            <remarks>
-            <para>
-            Returns the date of the next roll point after the currentDateTime date passed to the method.
-            </para>
-            <para>
-            The basic strategy is to subtract the time parts that are less significant
-            than the rollpoint from the current time. This should roll the time back to
-            the start of the time window for the current rollpoint. Then we add 1 window
-            worth of time and get the start time of the next window for the rollpoint.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_dateTime">
-            <summary>
-            This object supplies the current date/time.  Allows test code to plug in
-            a method to control this class when testing date/time based rolling.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_datePattern">
-            <summary>
-            The date pattern. By default, the pattern is set to <c>".yyyy-MM-dd"</c> 
-            meaning daily rollover.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_scheduledFilename">
-            <summary>
-            The actual formatted filename that is currently being written to
-            or will be the file transferred to on roll over
-            (based on staticLogFileName).
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_nextCheck">
-            <summary>
-            The timestamp when we shall next recompute the filename.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_now">
-            <summary>
-            Holds date of last roll over
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_rollPoint">
-            <summary>
-            The type of rolling done
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_maxFileSize">
-            <summary>
-            The default maximum file size is 10MB
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_maxSizeRollBackups">
-            <summary>
-            There is zero backup files by default
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_curSizeRollBackups">
-            <summary>
-            How many sized based backups have been made so far
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_countDirection">
-            <summary>
-            The rolling file count direction. 
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_rollingStyle">
-            <summary>
-            The rolling mode used in this appender.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_rollDate">
-            <summary>
-            Cache flag set if we are rolling by date.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_rollSize">
-            <summary>
-            Cache flag set if we are rolling by size.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_staticLogFileName">
-            <summary>
-            Value indicating whether to always log to the same file.
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.m_baseFileName">
-            <summary>
-            FileName provided in configuration.  Used for rolling properly
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.s_date1970">
-            <summary>
-            The 1st of January 1970 in UTC
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.RollingFileAppender.DatePattern">
-            <summary>
-            Gets or sets the date pattern to be used for generating file names
-            when rolling over on date.
-            </summary>
-            <value>
-            The date pattern to be used for generating file names when rolling 
-            over on date.
-            </value>
-            <remarks>
-            <para>
-            Takes a string in the same format as expected by 
-            <see cref="T:log4net.DateFormatter.SimpleDateFormatter"/>.
-            </para>
-            <para>
-            This property determines the rollover schedule when rolling over
-            on date.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.RollingFileAppender.MaxSizeRollBackups">
-            <summary>
-            Gets or sets the maximum number of backup files that are kept before
-            the oldest is erased.
-            </summary>
-            <value>
-            The maximum number of backup files that are kept before the oldest is
-            erased.
-            </value>
-            <remarks>
-            <para>
-            If set to zero, then there will be no backup files and the log file 
-            will be truncated when it reaches <see cref="P:log4net.Appender.RollingFileAppender.MaxFileSize"/>.  
-            </para>
-            <para>
-            If a negative number is supplied then no deletions will be made.  Note 
-            that this could result in very slow performance as a large number of 
-            files are rolled over unless <see cref="P:log4net.Appender.RollingFileAppender.CountDirection"/> is used.
-            </para>
-            <para>
-            The maximum applies to <b>each</b> time based group of files and 
-            <b>not</b> the total.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.RollingFileAppender.MaxFileSize">
-            <summary>
-            Gets or sets the maximum size that the output file is allowed to reach
-            before being rolled over to backup files.
-            </summary>
-            <value>
-            The maximum size in bytes that the output file is allowed to reach before being 
-            rolled over to backup files.
-            </value>
-            <remarks>
-            <para>
-            This property is equivalent to <see cref="P:log4net.Appender.RollingFileAppender.MaximumFileSize"/> except
-            that it is required for differentiating the setter taking a
-            <see cref="T:System.Int64"/> argument from the setter taking a <see cref="T:System.String"/> 
-            argument.
-            </para>
-            <para>
-            The default maximum file size is 10MB (10*1024*1024).
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.RollingFileAppender.MaximumFileSize">
-            <summary>
-            Gets or sets the maximum size that the output file is allowed to reach
-            before being rolled over to backup files.
-            </summary>
-            <value>
-            The maximum size that the output file is allowed to reach before being 
-            rolled over to backup files.
-            </value>
-            <remarks>
-            <para>
-            This property allows you to specify the maximum size with the
-            suffixes "KB", "MB" or "GB" so that the size is interpreted being 
-            expressed respectively in kilobytes, megabytes or gigabytes. 
-            </para>
-            <para>
-            For example, the value "10KB" will be interpreted as 10240 bytes.
-            </para>
-            <para>
-            The default maximum file size is 10MB.
-            </para>
-            <para>
-            If you have the option to set the maximum file size programmatically
-            consider using the <see cref="P:log4net.Appender.RollingFileAppender.MaxFileSize"/> property instead as this
-            allows you to set the size in bytes as a <see cref="T:System.Int64"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.RollingFileAppender.CountDirection">
-            <summary>
-            Gets or sets the rolling file count direction. 
-            </summary>
-            <value>
-            The rolling file count direction.
-            </value>
-            <remarks>
-            <para>
-            Indicates if the current file is the lowest numbered file or the
-            highest numbered file.
-            </para>
-            <para>
-            By default newer files have lower numbers (<see cref="P:log4net.Appender.RollingFileAppender.CountDirection"/> < 0),
-            i.e. log.1 is most recent, log.5 is the 5th backup, etc...
-            </para>
-            <para>
-            <see cref="P:log4net.Appender.RollingFileAppender.CountDirection"/> >= 0 does the opposite i.e.
-            log.1 is the first backup made, log.5 is the 5th backup made, etc.
-            For infinite backups use <see cref="P:log4net.Appender.RollingFileAppender.CountDirection"/> >= 0 to reduce 
-            rollover costs.
-            </para>
-            <para>The default file count direction is -1.</para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.RollingFileAppender.RollingStyle">
-            <summary>
-            Gets or sets the rolling style.
-            </summary>
-            <value>The rolling style.</value>
-            <remarks>
-            <para>
-            The default rolling style is <see cref="F:log4net.Appender.RollingFileAppender.RollingMode.Composite"/>.
-            </para>
-            <para>
-            When set to <see cref="F:log4net.Appender.RollingFileAppender.RollingMode.Once"/> this appender's
-            <see cref="P:log4net.Appender.FileAppender.AppendToFile"/> property is set to <c>false</c>, otherwise
-            the appender would append to a single file rather than rolling
-            the file each time it is opened.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.RollingFileAppender.StaticLogFileName">
-            <summary>
-            Gets or sets a value indicating whether to always log to
-            the same file.
-            </summary>
-            <value>
-            <c>true</c> if always should be logged to the same file, otherwise <c>false</c>.
-            </value>
-            <remarks>
-            <para>
-            By default file.log is always the current file.  Optionally
-            file.log.yyyy-mm-dd for current formatted datePattern can by the currently
-            logging file (or file.log.curSizeRollBackup or even
-            file.log.yyyy-mm-dd.curSizeRollBackup).
-            </para>
-            <para>
-            This will make time based rollovers with a large number of backups 
-            much faster as the appender it won't have to rename all the backups!
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.RollingFileAppender.RollingMode">
-            <summary>
-            Style of rolling to use
-            </summary>
-            <remarks>
-            <para>
-            Style of rolling to use
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.RollingMode.Once">
-            <summary>
-            Roll files once per program execution
-            </summary>
-            <remarks>
-            <para>
-            Roll files once per program execution.
-            Well really once each time this appender is
-            configured.
-            </para>
-            <para>
-            Setting this option also sets <c>AppendToFile</c> to
-            <c>false</c> on the <c>RollingFileAppender</c>, otherwise
-            this appender would just be a normal file appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.RollingMode.Size">
-            <summary>
-            Roll files based only on the size of the file
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.RollingMode.Date">
-            <summary>
-            Roll files based only on the date
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.RollingMode.Composite">
-            <summary>
-            Roll files based on both the size and date of the file
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.RollingFileAppender.RollPoint">
-            <summary>
-            The code assumes that the following 'time' constants are in a increasing sequence.
-            </summary>
-            <remarks>
-            <para>
-            The code assumes that the following 'time' constants are in a increasing sequence.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.RollPoint.InvalidRollPoint">
-            <summary>
-            Roll the log not based on the date
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfMinute">
-            <summary>
-            Roll the log for each minute
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfHour">
-            <summary>
-            Roll the log for each hour
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.RollPoint.HalfDay">
-            <summary>
-            Roll the log twice a day (midday and midnight)
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfDay">
-            <summary>
-            Roll the log each day (midnight)
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfWeek">
-            <summary>
-            Roll the log each week
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfMonth">
-            <summary>
-            Roll the log each month
-            </summary>
-        </member>
-        <member name="T:log4net.Appender.RollingFileAppender.IDateTime">
-            <summary>
-            This interface is used to supply Date/Time information to the <see cref="T:log4net.Appender.RollingFileAppender"/>.
-            </summary>
-            <remarks>
-            This interface is used to supply Date/Time information to the <see cref="T:log4net.Appender.RollingFileAppender"/>.
-            Used primarily to allow test classes to plug themselves in so they can
-            supply test date/times.
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.RollingFileAppender.IDateTime.Now">
-            <summary>
-            Gets the <i>current</i> time.
-            </summary>
-            <value>The <i>current</i> time.</value>
-            <remarks>
-            <para>
-            Gets the <i>current</i> time.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.RollingFileAppender.DefaultDateTime">
-            <summary>
-            Default implementation of <see cref="T:log4net.Appender.RollingFileAppender.IDateTime"/> that returns the current time.
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.RollingFileAppender.DefaultDateTime.Now">
-            <summary>
-            Gets the <b>current</b> time.
-            </summary>
-            <value>The <b>current</b> time.</value>
-            <remarks>
-            <para>
-            Gets the <b>current</b> time.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.SmtpAppender">
-            <summary>
-            Send an e-mail when a specific logging event occurs, typically on errors 
-            or fatal errors.
-            </summary>
-            <remarks>
-            <para>
-            The number of logging events delivered in this e-mail depend on
-            the value of <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> option. The
-            <see cref="T:log4net.Appender.SmtpAppender"/> keeps only the last
-            <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> logging events in its 
-            cyclic buffer. This keeps memory requirements at a reasonable level while 
-            still delivering useful application context.
-            </para>
-            <note type="caution">
-            Authentication and setting the server Port are only available on the MS .NET 1.1 runtime.
-            For these features to be enabled you need to ensure that you are using a version of
-            the log4net assembly that is built against the MS .NET 1.1 framework and that you are
-            running the your application on the MS .NET 1.1 runtime. On all other platforms only sending
-            unauthenticated messages to a server listening on port 25 (the default) is supported.
-            </note>
-            <para>
-            Authentication is supported by setting the <see cref="P:log4net.Appender.SmtpAppender.Authentication"/> property to
-            either <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"/> or <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Ntlm"/>.
-            If using <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"/> authentication then the <see cref="P:log4net.Appender.SmtpAppender.Username"/>
-            and <see cref="P:log4net.Appender.SmtpAppender.Password"/> properties must also be set.
-            </para>
-            <para>
-            To set the SMTP server port use the <see cref="P:log4net.Appender.SmtpAppender.Port"/> property. The default port is 25.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Appender.SmtpAppender.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Default constructor
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.SmtpAppender.SendBuffer(log4net.Core.LoggingEvent[])">
-            <summary>
-            Sends the contents of the cyclic buffer as an e-mail message.
-            </summary>
-            <param name="events">The logging events to send.</param>
-        </member>
-        <member name="M:log4net.Appender.SmtpAppender.SendEmail(System.String)">
-            <summary>
-            Send the email message
-            </summary>
-            <param name="messageBody">the body text to include in the mail</param>
-        </member>
-        <member name="P:log4net.Appender.SmtpAppender.To">
-            <summary>
-            Gets or sets a semicolon-delimited list of recipient e-mail addresses.
-            </summary>
-            <value>
-            A semicolon-delimited list of e-mail addresses.
-            </value>
-            <remarks>
-            <para>
-            A semicolon-delimited list of recipient e-mail addresses.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpAppender.From">
-            <summary>
-            Gets or sets the e-mail address of the sender.
-            </summary>
-            <value>
-            The e-mail address of the sender.
-            </value>
-            <remarks>
-            <para>
-            The e-mail address of the sender.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpAppender.Subject">
-            <summary>
-            Gets or sets the subject line of the e-mail message.
-            </summary>
-            <value>
-            The subject line of the e-mail message.
-            </value>
-            <remarks>
-            <para>
-            The subject line of the e-mail message.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpAppender.SmtpHost">
-            <summary>
-            Gets or sets the name of the SMTP relay mail server to use to send 
-            the e-mail messages.
-            </summary>
-            <value>
-            The name of the e-mail relay server. If SmtpServer is not set, the 
-            name of the local SMTP server is used.
-            </value>
-            <remarks>
-            <para>
-            The name of the e-mail relay server. If SmtpServer is not set, the 
-            name of the local SMTP server is used.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpAppender.LocationInfo">
-            <summary>
-            Obsolete
-            </summary>
-            <remarks>
-            Use the BufferingAppenderSkeleton Fix methods instead 
-            </remarks>
-            <remarks>
-            <para>
-            Obsolete property.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpAppender.Authentication">
-            <summary>
-            The mode to use to authentication with the SMTP server
-            </summary>
-            <remarks>
-            <note type="caution">Authentication is only available on the MS .NET 1.1 runtime.</note>
-            <para>
-            Valid Authentication mode values are: <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.None"/>, 
-            <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"/>, and <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Ntlm"/>. 
-            The default value is <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.None"/>. When using 
-            <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"/> you must specify the <see cref="P:log4net.Appender.SmtpAppender.Username"/> 
-            and <see cref="P:log4net.Appender.SmtpAppender.Password"/> to use to authenticate.
-            When using <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Ntlm"/> the Windows credentials for the current
-            thread, if impersonating, or the process will be used to authenticate. 
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpAppender.Username">
-            <summary>
-            The username to use to authenticate with the SMTP server
-            </summary>
-            <remarks>
-            <note type="caution">Authentication is only available on the MS .NET 1.1 runtime.</note>
-            <para>
-            A <see cref="P:log4net.Appender.SmtpAppender.Username"/> and <see cref="P:log4net.Appender.SmtpAppender.Password"/> must be specified when 
-            <see cref="P:log4net.Appender.SmtpAppender.Authentication"/> is set to <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"/>, 
-            otherwise the username will be ignored. 
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpAppender.Password">
-            <summary>
-            The password to use to authenticate with the SMTP server
-            </summary>
-            <remarks>
-            <note type="caution">Authentication is only available on the MS .NET 1.1 runtime.</note>
-            <para>
-            A <see cref="P:log4net.Appender.SmtpAppender.Username"/> and <see cref="P:log4net.Appender.SmtpAppender.Password"/> must be specified when 
-            <see cref="P:log4net.Appender.SmtpAppender.Authentication"/> is set to <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"/>, 
-            otherwise the password will be ignored. 
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpAppender.Port">
-            <summary>
-            The port on which the SMTP server is listening
-            </summary>
-            <remarks>
-            <note type="caution">Server Port is only available on the MS .NET 1.1 runtime.</note>
-            <para>
-            The port on which the SMTP server is listening. The default
-            port is <c>25</c>. The Port can only be changed when running on
-            the MS .NET 1.1 runtime.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpAppender.Priority">
-            <summary>
-            Gets or sets the priority of the e-mail message
-            </summary>
-            <value>
-            One of the <see cref="T:System.Net.Mail.MailPriority"/> values.
-            </value>
-            <remarks>
-            <para>
-            Sets the priority of the e-mails generated by this
-            appender. The default priority is <see cref="F:System.Net.Mail.MailPriority.Normal"/>.
-            </para>
-            <para>
-            If you are using this appender to report errors then
-            you may want to set the priority to <see cref="F:System.Net.Mail.MailPriority.High"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.SmtpAppender.SmtpAuthentication">
-            <summary>
-            Values for the <see cref="P:log4net.Appender.SmtpAppender.Authentication"/> property.
-            </summary>
-            <remarks>
-            <para>
-            SMTP authentication modes.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.SmtpAppender.SmtpAuthentication.None">
-            <summary>
-            No authentication
-            </summary>
-        </member>
-        <member name="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic">
-            <summary>
-            Basic authentication.
-            </summary>
-            <remarks>
-            Requires a username and password to be supplied
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Ntlm">
-            <summary>
-            Integrated authentication
-            </summary>
-            <remarks>
-            Uses the Windows credentials from the current thread or process to authenticate.
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.SmtpPickupDirAppender">
-            <summary>
-            Send an email when a specific logging event occurs, typically on errors 
-            or fatal errors. Rather than sending via smtp it writes a file into the
-            directory specified by <see cref="P:log4net.Appender.SmtpPickupDirAppender.PickupDir"/>. This allows services such
-            as the IIS SMTP agent to manage sending the messages.
-            </summary>
-            <remarks>
-            <para>
-            The configuration for this appender is identical to that of the <c>SMTPAppender</c>,
-            except that instead of specifying the <c>SMTPAppender.SMTPHost</c> you specify
-            <see cref="P:log4net.Appender.SmtpPickupDirAppender.PickupDir"/>.
-            </para>
-            <para>
-            The number of logging events delivered in this e-mail depend on
-            the value of <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> option. The
-            <see cref="T:log4net.Appender.SmtpPickupDirAppender"/> keeps only the last
-            <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> logging events in its 
-            cyclic buffer. This keeps memory requirements at a reasonable level while 
-            still delivering useful application context.
-            </para>
-            </remarks>
-            <author>Niall Daley</author>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Appender.SmtpPickupDirAppender.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Default constructor
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.SmtpPickupDirAppender.SendBuffer(log4net.Core.LoggingEvent[])">
-            <summary>
-            Sends the contents of the cyclic buffer as an e-mail message.
-            </summary>
-            <param name="events">The logging events to send.</param>
-            <remarks>
-            <para>
-            Sends the contents of the cyclic buffer as an e-mail message.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.SmtpPickupDirAppender.ActivateOptions">
-            <summary>
-            Activate the options on this appender. 
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Appender.SmtpPickupDirAppender.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Appender.SmtpPickupDirAppender.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Appender.SmtpPickupDirAppender.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.SmtpPickupDirAppender.ConvertToFullPath(System.String)">
-            <summary>
-            Convert a path into a fully qualified path.
-            </summary>
-            <param name="path">The path to convert.</param>
-            <returns>The fully qualified path.</returns>
-            <remarks>
-            <para>
-            Converts the path specified to a fully
-            qualified path. If the path is relative it is
-            taken as relative from the application base 
-            directory.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.SmtpPickupDirAppender.m_securityContext">
-            <summary>
-            The security context to use for privileged calls
-            </summary>
-        </member>
-        <member name="P:log4net.Appender.SmtpPickupDirAppender.To">
-            <summary>
-            Gets or sets a semicolon-delimited list of recipient e-mail addresses.
-            </summary>
-            <value>
-            A semicolon-delimited list of e-mail addresses.
-            </value>
-            <remarks>
-            <para>
-            A semicolon-delimited list of e-mail addresses.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpPickupDirAppender.From">
-            <summary>
-            Gets or sets the e-mail address of the sender.
-            </summary>
-            <value>
-            The e-mail address of the sender.
-            </value>
-            <remarks>
-            <para>
-            The e-mail address of the sender.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpPickupDirAppender.Subject">
-            <summary>
-            Gets or sets the subject line of the e-mail message.
-            </summary>
-            <value>
-            The subject line of the e-mail message.
-            </value>
-            <remarks>
-            <para>
-            The subject line of the e-mail message.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpPickupDirAppender.PickupDir">
-            <summary>
-            Gets or sets the path to write the messages to.
-            </summary>
-            <remarks>
-            <para>
-            Gets or sets the path to write the messages to. This should be the same
-            as that used by the agent sending the messages.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpPickupDirAppender.SecurityContext">
-            <summary>
-            Gets or sets the <see cref="P:log4net.Appender.SmtpPickupDirAppender.SecurityContext"/> used to write to the pickup directory.
-            </summary>
-            <value>
-            The <see cref="P:log4net.Appender.SmtpPickupDirAppender.SecurityContext"/> used to write to the pickup directory.
-            </value>
-            <remarks>
-            <para>
-            Unless a <see cref="P:log4net.Appender.SmtpPickupDirAppender.SecurityContext"/> specified here for this appender
-            the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
-            security context to use. The default behavior is to use the security context
-            of the current thread.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.SmtpPickupDirAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.TelnetAppender">
-            <summary>
-            Appender that allows clients to connect via Telnet to receive log messages
-            </summary>
-            <remarks>	
-            <para>
-            The TelnetAppender accepts socket connections and streams logging messages
-            back to the client.  
-            The output is provided in a telnet-friendly way so that a log can be monitored 
-            over a TCP/IP socket.
-            This allows simple remote monitoring of application logging.
-            </para>
-            <para>
-            The default <see cref="P:log4net.Appender.TelnetAppender.Port"/> is 23 (the telnet port).
-            </para>
-            </remarks>
-            <author>Keith Long</author>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Appender.TelnetAppender.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Default constructor
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TelnetAppender.OnClose">
-            <summary>
-            Overrides the parent method to close the socket handler
-            </summary>
-            <remarks>
-            <para>
-            Closes all the outstanding connections.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TelnetAppender.ActivateOptions">
-            <summary>
-            Initialize the appender based on the options set.
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Appender.TelnetAppender.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Appender.TelnetAppender.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Appender.TelnetAppender.ActivateOptions"/> must be called again.
-            </para>
-            <para>
-            Create the socket handler and wait for connections
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TelnetAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            Writes the logging event to each connected client.
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            Writes the logging event to each connected client.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.TelnetAppender.Port">
-            <summary>
-            Gets or sets the TCP port number on which this <see cref="T:log4net.Appender.TelnetAppender"/> will listen for connections.
-            </summary>
-            <value>
-            An integer value in the range <see cref="F:System.Net.IPEndPoint.MinPort"/> to <see cref="F:System.Net.IPEndPoint.MaxPort"/> 
-            indicating the TCP port number on which this <see cref="T:log4net.Appender.TelnetAppender"/> will listen for connections.
-            </value>
-            <remarks>
-            <para>
-            The default value is 23 (the telnet port).
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentOutOfRangeException">The value specified is less than <see cref="F:System.Net.IPEndPoint.MinPort"/> 
-            or greater than <see cref="F:System.Net.IPEndPoint.MaxPort"/>.</exception>
-        </member>
-        <member name="P:log4net.Appender.TelnetAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.TelnetAppender.SocketHandler">
-            <summary>
-            Helper class to manage connected clients
-            </summary>
-            <remarks>
-            <para>
-            The SocketHandler class is used to accept connections from
-            clients.  It is threaded so that clients can connect/disconnect
-            asynchronously.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.#ctor(System.Int32)">
-            <summary>
-            Opens a new server port on <paramref ref="port"/>
-            </summary>
-            <param name="port">the local port to listen on for connections</param>
-            <remarks>
-            <para>
-            Creates a socket handler on the specified local server port.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.Send(System.String)">
-            <summary>
-            Sends a string message to each of the connected clients
-            </summary>
-            <param name="message">the text to send</param>
-            <remarks>
-            <para>
-            Sends a string message to each of the connected clients
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.AddClient(log4net.Appender.TelnetAppender.SocketHandler.SocketClient)">
-            <summary>
-            Add a client to the internal clients list
-            </summary>
-            <param name="client">client to add</param>
-        </member>
-        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.RemoveClient(log4net.Appender.TelnetAppender.SocketHandler.SocketClient)">
-            <summary>
-            Remove a client from the internal clients list
-            </summary>
-            <param name="client">client to remove</param>
-        </member>
-        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.OnConnect(System.IAsyncResult)">
-            <summary>
-            Callback used to accept a connection on the server socket
-            </summary>
-            <param name="asyncResult">The result of the asynchronous operation</param>
-            <remarks>
-            <para>
-            On connection adds to the list of connections 
-            if there are two many open connections you will be disconnected
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.Dispose">
-            <summary>
-            Close all network connections
-            </summary>
-            <remarks>
-            <para>
-            Make sure we close all network connections
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.TelnetAppender.SocketHandler.HasConnections">
-            <summary>
-            Test if this handler has active connections
-            </summary>
-            <value>
-            <c>true</c> if this handler has active connections
-            </value>
-            <remarks>
-            <para>
-            This property will be <c>true</c> while this handler has
-            active connections, that is at least one connection that 
-            the handler will attempt to send a message to.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.TelnetAppender.SocketHandler.SocketClient">
-            <summary>
-            Class that represents a client connected to this handler
-            </summary>
-            <remarks>
-            <para>
-            Class that represents a client connected to this handler
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.SocketClient.#ctor(System.Net.Sockets.Socket)">
-            <summary>
-            Create this <see cref="T:log4net.Appender.TelnetAppender.SocketHandler.SocketClient"/> for the specified <see cref="T:System.Net.Sockets.Socket"/>
-            </summary>
-            <param name="socket">the client's socket</param>
-            <remarks>
-            <para>
-            Opens a stream writer on the socket.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.SocketClient.Send(System.String)">
-            <summary>
-            Write a string to the client
-            </summary>
-            <param name="message">string to send</param>
-            <remarks>
-            <para>
-            Write a string to the client
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TelnetAppender.SocketHandler.SocketClient.Dispose">
-            <summary>
-            Cleanup the clients connection
-            </summary>
-            <remarks>
-            <para>
-            Close the socket connection.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Appender.TraceAppender">
-            <summary>
-            Appends log events to the <see cref="T:System.Diagnostics.Trace"/> system.
-            </summary>
-            <remarks>
-            <para>
-            The application configuration file can be used to control what listeners 
-            are actually used. See the MSDN documentation for the 
-            <see cref="T:System.Diagnostics.Trace"/> class for details on configuring the
-            trace system.
-            </para>
-            <para>
-            Events are written using the <c>System.Diagnostics.Trace.Write(string,string)</c>
-            method. The event's logger name is passed as the value for the category name to the Write method.
-            </para>
-            <para>
-            <b>Compact Framework</b><br/>
-            The Compact Framework does not support the <see cref="T:System.Diagnostics.Trace"/>
-            class for any operation except <c>Assert</c>. When using the Compact Framework this
-            appender will write to the <see cref="T:System.Diagnostics.Debug"/> system rather than
-            the Trace system. This appender will therefore behave like the <see cref="T:log4net.Appender.DebugAppender"/>.
-            </para>
-            </remarks>
-            <author>Douglas de la Torre</author>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Appender.TraceAppender.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.TraceAppender"/>.
-            </summary>
-            <remarks>
-            <para>
-            Default constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TraceAppender.#ctor(log4net.Layout.ILayout)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Appender.TraceAppender"/> 
-            with a specified layout.
-            </summary>
-            <param name="layout">The layout to use with this appender.</param>
-            <remarks>
-            <para>
-            Obsolete constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Appender.TraceAppender.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            Writes the logging event to the <see cref="T:System.Diagnostics.Trace"/> system.
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            Writes the logging event to the <see cref="T:System.Diagnostics.Trace"/> system.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Appender.TraceAppender.m_immediateFlush">
-            <summary>
-            Immediate flush means that the underlying writer or output stream
-            will be flushed at the end of each append operation.
-            </summary>
-            <remarks>
-            <para>
-            Immediate flush is slower but ensures that each append request is 
-            actually written. If <see cref="P:log4net.Appender.TraceAppender.ImmediateFlush"/> is set to
-            <c>false</c>, then there is a good chance that the last few
-            logs events are not actually written to persistent media if and
-            when the application crashes.
-            </para>
-            <para>
-            The default value is <c>true</c>.</para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.TraceAppender.ImmediateFlush">
-            <summary>
-            Gets or sets a value that indicates whether the appender will 
-            flush at the end of each write.
-            </summary>
-            <remarks>
-            <para>The default behavior is to flush at the end of each 
-            write. If the option is set to<c>false</c>, then the underlying 
-            stream can defer writing to physical medium to a later time. 
-            </para>
-            <para>
-            Avoiding the flush operation at the end of each append results 
-            in a performance gain of 10 to 20 percent. However, there is safety
-            trade-off involved in skipping flushing. Indeed, when flushing is
-            skipped, then it is likely that the last few log events will not
-            be recorded on disk when the application exits. This is a high
-            price to pay even for a 20% performance gain.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Appender.TraceAppender.RequiresLayout">
-            <summary>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            This appender requires a <see cref="N:log4net.Layout"/> to be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Config.AliasDomainAttribute">
-            <summary>
-            Assembly level attribute that specifies a domain to alias to this assembly's repository.
-            </summary>
-            <remarks>
-            <para>
-            <b>AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute.</b>
-            </para>
-            <para>
-            An assembly's logger repository is defined by its <see cref="T:log4net.Config.DomainAttribute"/>,
-            however this can be overridden by an assembly loaded before the target assembly.
-            </para>
-            <para>
-            An assembly can alias another assembly's domain to its repository by
-            specifying this attribute with the name of the target domain.
-            </para>
-            <para>
-            This attribute can only be specified on the assembly and may be used
-            as many times as necessary to alias all the required domains.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Config.AliasRepositoryAttribute">
-            <summary>
-            Assembly level attribute that specifies a repository to alias to this assembly's repository.
-            </summary>
-            <remarks>
-            <para>
-            An assembly's logger repository is defined by its <see cref="T:log4net.Config.RepositoryAttribute"/>,
-            however this can be overridden by an assembly loaded before the target assembly.
-            </para>
-            <para>
-            An assembly can alias another assembly's repository to its repository by
-            specifying this attribute with the name of the target repository.
-            </para>
-            <para>
-            This attribute can only be specified on the assembly and may be used
-            as many times as necessary to alias all the required repositories.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Config.AliasRepositoryAttribute.#ctor(System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Config.AliasRepositoryAttribute"/> class with 
-            the specified repository to alias to this assembly's repository.
-            </summary>
-            <param name="name">The repository to alias to this assemby's repository.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Config.AliasRepositoryAttribute"/> class with 
-            the specified repository to alias to this assembly's repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Config.AliasRepositoryAttribute.Name">
-            <summary>
-            Gets or sets the repository to alias to this assemby's repository.
-            </summary>
-            <value>
-            The repository to alias to this assemby's repository.
-            </value>
-            <remarks>
-            <para>
-            The name of the repository to alias to this assemby's repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.AliasDomainAttribute.#ctor(System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Config.AliasDomainAttribute"/> class with 
-            the specified domain to alias to this assembly's repository.
-            </summary>
-            <param name="name">The domain to alias to this assemby's repository.</param>
-            <remarks>
-            <para>
-            Obsolete. Use <see cref="T:log4net.Config.AliasRepositoryAttribute"/> instead of <see cref="T:log4net.Config.AliasDomainAttribute"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Config.BasicConfigurator">
-            <summary>
-            Use this class to quickly configure a <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>.
-            </summary>
-            <remarks>
-            <para>
-            Allows very simple programmatic configuration of log4net.
-            </para>
-            <para>
-            Only one appender can be configured using this configurator.
-            The appender is set at the root of the hierarchy and all logging
-            events will be delivered to that appender.
-            </para>
-            <para>
-            Appenders can also implement the <see cref="T:log4net.Core.IOptionHandler"/> interface. Therefore
-            they would require that the <see cref="M:log4net.Core.IOptionHandler.ActivateOptions"/> method
-            be called after the appenders properties have been configured.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Config.BasicConfigurator.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Config.BasicConfigurator"/> class. 
-            </summary>
-            <remarks>
-            <para>
-            Uses a private access modifier to prevent instantiation of this class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.BasicConfigurator.Configure">
-            <summary>
-            Initializes the log4net system with a default configuration.
-            </summary>
-            <remarks>
-            <para>
-            Initializes the log4net logging system using a <see cref="T:log4net.Appender.ConsoleAppender"/>
-            that will write to <c>Console.Out</c>. The log messages are
-            formatted using the <see cref="T:log4net.Layout.PatternLayout"/> layout object
-            with the <see cref="F:log4net.Layout.PatternLayout.DetailConversionPattern"/>
-            layout style.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.BasicConfigurator.Configure(log4net.Appender.IAppender)">
-            <summary>
-            Initializes the log4net system using the specified appender.
-            </summary>
-            <param name="appender">The appender to use to log all logging events.</param>
-            <remarks>
-            <para>
-            Initializes the log4net system using the specified appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.BasicConfigurator.Configure(log4net.Repository.ILoggerRepository)">
-            <summary>
-            Initializes the <see cref="T:log4net.Repository.ILoggerRepository"/> with a default configuration.
-            </summary>
-            <param name="repository">The repository to configure.</param>
-            <remarks>
-            <para>
-            Initializes the specified repository using a <see cref="T:log4net.Appender.ConsoleAppender"/>
-            that will write to <c>Console.Out</c>. The log messages are
-            formatted using the <see cref="T:log4net.Layout.PatternLayout"/> layout object
-            with the <see cref="F:log4net.Layout.PatternLayout.DetailConversionPattern"/>
-            layout style.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.BasicConfigurator.Configure(log4net.Repository.ILoggerRepository,log4net.Appender.IAppender)">
-            <summary>
-            Initializes the <see cref="T:log4net.Repository.ILoggerRepository"/> using the specified appender.
-            </summary>
-            <param name="repository">The repository to configure.</param>
-            <param name="appender">The appender to use to log all logging events.</param>
-            <remarks>
-            <para>
-            Initializes the <see cref="T:log4net.Repository.ILoggerRepository"/> using the specified appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Config.ConfiguratorAttribute">
-            <summary>
-            Base class for all log4net configuration attributes.
-            </summary>
-            <remarks>
-            This is an abstract class that must be extended by 
-            specific configurators. This attribute allows the
-            configurator to be parameterized by an assembly level
-            attribute.
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Config.ConfiguratorAttribute.#ctor(System.Int32)">
-            <summary>
-            Constructor used by subclasses.
-            </summary>
-            <param name="priority">the ordering priority for this configurator</param>
-            <remarks>
-            <para>
-            The <paramref name="priority"/> is used to order the configurator
-            attributes before they are invoked. Higher priority configurators are executed
-            before lower priority ones.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.ConfiguratorAttribute.Configure(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
-            <summary>
-            Configures the <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified assembly.
-            </summary>
-            <param name="sourceAssembly">The assembly that this attribute was defined on.</param>
-            <param name="targetRepository">The repository to configure.</param>
-            <remarks>
-            <para>
-            Abstract method implemented by a subclass. When this method is called
-            the subclass should configure the <paramref name="targetRepository"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.ConfiguratorAttribute.CompareTo(System.Object)">
-            <summary>
-            Compare this instance to another ConfiguratorAttribute
-            </summary>
-            <param name="obj">the object to compare to</param>
-            <returns>see <see cref="M:System.IComparable.CompareTo(System.Object)"/></returns>
-            <remarks>
-            <para>
-            Compares the priorities of the two <see cref="T:log4net.Config.ConfiguratorAttribute"/> instances.
-            Sorts by priority in descending order. Objects with the same priority are
-            randomly ordered.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Config.DomainAttribute">
-            <summary>
-            Assembly level attribute that specifies the logging domain for the assembly.
-            </summary>
-            <remarks>
-            <para>
-            <b>DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute.</b>
-            </para>
-            <para>
-            Assemblies are mapped to logging domains. Each domain has its own
-            logging repository. This attribute specified on the assembly controls
-            the configuration of the domain. The <see cref="P:log4net.Config.RepositoryAttribute.Name"/> property specifies the name
-            of the domain that this assembly is a part of. The <see cref="P:log4net.Config.RepositoryAttribute.RepositoryType"/>
-            specifies the type of the repository objects to create for the domain. If 
-            this attribute is not specified and a <see cref="P:log4net.Config.RepositoryAttribute.Name"/> is not specified
-            then the assembly will be part of the default shared logging domain.
-            </para>
-            <para>
-            This attribute can only be specified on the assembly and may only be used
-            once per assembly.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Config.RepositoryAttribute">
-            <summary>
-            Assembly level attribute that specifies the logging repository for the assembly.
-            </summary>
-            <remarks>
-            <para>
-            Assemblies are mapped to logging repository. This attribute specified 
-            on the assembly controls
-            the configuration of the repository. The <see cref="P:log4net.Config.RepositoryAttribute.Name"/> property specifies the name
-            of the repository that this assembly is a part of. The <see cref="P:log4net.Config.RepositoryAttribute.RepositoryType"/>
-            specifies the type of the <see cref="T:log4net.Repository.ILoggerRepository"/> object 
-            to create for the assembly. If this attribute is not specified or a <see cref="P:log4net.Config.RepositoryAttribute.Name"/> 
-            is not specified then the assembly will be part of the default shared logging repository.
-            </para>
-            <para>
-            This attribute can only be specified on the assembly and may only be used
-            once per assembly.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Config.RepositoryAttribute.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Config.RepositoryAttribute"/> class.
-            </summary>
-            <remarks>
-            <para>
-            Default constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.RepositoryAttribute.#ctor(System.String)">
-            <summary>
-            Initialize a new instance of the <see cref="T:log4net.Config.RepositoryAttribute"/> class 
-            with the name of the repository.
-            </summary>
-            <param name="name">The name of the repository.</param>
-            <remarks>
-            <para>
-            Initialize the attribute with the name for the assembly's repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Config.RepositoryAttribute.Name">
-            <summary>
-            Gets or sets the name of the logging repository.
-            </summary>
-            <value>
-            The string name to use as the name of the repository associated with this
-            assembly.
-            </value>
-            <remarks>
-            <para>
-            This value does not have to be unique. Several assemblies can share the
-            same repository. They will share the logging configuration of the repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Config.RepositoryAttribute.RepositoryType">
-            <summary>
-            Gets or sets the type of repository to create for this assembly.
-            </summary>
-            <value>
-            The type of repository to create for this assembly.
-            </value>
-            <remarks>
-            <para>
-            The type of the repository to create for the assembly.
-            The type must implement the <see cref="T:log4net.Repository.ILoggerRepository"/>
-            interface.
-            </para>
-            <para>
-            This will be the type of repository created when 
-            the repository is created. If multiple assemblies reference the
-            same repository then the repository is only created once using the
-            <see cref="P:log4net.Config.RepositoryAttribute.RepositoryType"/> of the first assembly to call into the 
-            repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.DomainAttribute.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Config.DomainAttribute"/> class.
-            </summary>
-            <remarks>
-            <para>
-            Obsolete. Use RepositoryAttribute instead of DomainAttribute.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.DomainAttribute.#ctor(System.String)">
-            <summary>
-            Initialize a new instance of the <see cref="T:log4net.Config.DomainAttribute"/> class 
-            with the name of the domain.
-            </summary>
-            <param name="name">The name of the domain.</param>
-            <remarks>
-            <para>
-            Obsolete. Use RepositoryAttribute instead of DomainAttribute.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Config.DOMConfigurator">
-            <summary>
-            Use this class to initialize the log4net environment using an Xml tree.
-            </summary>
-            <remarks>
-            <para>
-            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
-            </para>
-            <para>
-            Configures a <see cref="T:log4net.Repository.ILoggerRepository"/> using an Xml tree.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Config.DOMConfigurator.#ctor">
-            <summary>
-            Private constructor
-            </summary>
-        </member>
-        <member name="M:log4net.Config.DOMConfigurator.Configure">
-            <summary>
-            Automatically configures the log4net system based on the 
-            application's configuration settings.
-            </summary>
-            <remarks>
-            <para>
-            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
-            </para>
-            Each application has a configuration file. This has the
-            same name as the application with '.config' appended.
-            This file is XML and calling this function prompts the
-            configurator to look in that file for a section called
-            <c>log4net</c> that contains the configuration data.
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.DOMConfigurator.Configure(log4net.Repository.ILoggerRepository)">
-            <summary>
-            Automatically configures the <see cref="T:log4net.Repository.ILoggerRepository"/> using settings
-            stored in the application's configuration file.
-            </summary>
-            <remarks>
-            <para>
-            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
-            </para>
-            Each application has a configuration file. This has the
-            same name as the application with '.config' appended.
-            This file is XML and calling this function prompts the
-            configurator to look in that file for a section called
-            <c>log4net</c> that contains the configuration data.
-            </remarks>
-            <param name="repository">The repository to configure.</param>
-        </member>
-        <member name="M:log4net.Config.DOMConfigurator.Configure(System.Xml.XmlElement)">
-            <summary>
-            Configures log4net using a <c>log4net</c> element
-            </summary>
-            <remarks>
-            <para>
-            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
-            </para>
-            Loads the log4net configuration from the XML element
-            supplied as <paramref name="element"/>.
-            </remarks>
-            <param name="element">The element to parse.</param>
-        </member>
-        <member name="M:log4net.Config.DOMConfigurator.Configure(log4net.Repository.ILoggerRepository,System.Xml.XmlElement)">
-            <summary>
-            Configures the <see cref="T:log4net.Repository.ILoggerRepository"/> using the specified XML 
-            element.
-            </summary>
-            <remarks>
-            <para>
-            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
-            </para>
-            Loads the log4net configuration from the XML element
-            supplied as <paramref name="element"/>.
-            </remarks>
-            <param name="repository">The repository to configure.</param>
-            <param name="element">The element to parse.</param>
-        </member>
-        <member name="M:log4net.Config.DOMConfigurator.Configure(System.IO.FileInfo)">
-            <summary>
-            Configures log4net using the specified configuration file.
-            </summary>
-            <param name="configFile">The XML file to load the configuration from.</param>
-            <remarks>
-            <para>
-            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
-            </para>
-            <para>
-            The configuration file must be valid XML. It must contain
-            at least one element called <c>log4net</c> that holds
-            the log4net configuration data.
-            </para>
-            <para>
-            The log4net configuration file can possible be specified in the application's
-            configuration file (either <c>MyAppName.exe.config</c> for a
-            normal application on <c>Web.config</c> for an ASP.NET application).
-            </para>
-            <example>
-            The following example configures log4net using a configuration file, of which the 
-            location is stored in the application's configuration file :
-            </example>
-            <code lang="C#">
-            using log4net.Config;
-            using System.IO;
-            using System.Configuration;
-            
-            ...
-            
-            DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
-            </code>
-            <para>
-            In the <c>.config</c> file, the path to the log4net can be specified like this :
-            </para>
-            <code lang="XML" escaped="true">
-            <configuration>
-            	<appSettings>
-            		<add key="log4net-config-file" value="log.config"/>
-            	</appSettings>
-            </configuration>
-            </code>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.DOMConfigurator.Configure(System.IO.Stream)">
-            <summary>
-            Configures log4net using the specified configuration file.
-            </summary>
-            <param name="configStream">A stream to load the XML configuration from.</param>
-            <remarks>
-            <para>
-            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
-            </para>
-            <para>
-            The configuration data must be valid XML. It must contain
-            at least one element called <c>log4net</c> that holds
-            the log4net configuration data.
-            </para>
-            <para>
-            Note that this method will NOT close the stream parameter.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.DOMConfigurator.Configure(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
-            <summary>
-            Configures the <see cref="T:log4net.Repository.ILoggerRepository"/> using the specified configuration 
-            file.
-            </summary>
-            <param name="repository">The repository to configure.</param>
-            <param name="configFile">The XML file to load the configuration from.</param>
-            <remarks>
-            <para>
-            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
-            </para>
-            <para>
-            The configuration file must be valid XML. It must contain
-            at least one element called <c>log4net</c> that holds
-            the configuration data.
-            </para>
-            <para>
-            The log4net configuration file can possible be specified in the application's
-            configuration file (either <c>MyAppName.exe.config</c> for a
-            normal application on <c>Web.config</c> for an ASP.NET application).
-            </para>
-            <example>
-            The following example configures log4net using a configuration file, of which the 
-            location is stored in the application's configuration file :
-            </example>
-            <code lang="C#">
-            using log4net.Config;
-            using System.IO;
-            using System.Configuration;
-            
-            ...
-            
-            DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
-            </code>
-            <para>
-            In the <c>.config</c> file, the path to the log4net can be specified like this :
-            </para>
-            <code lang="XML" escaped="true">
-            <configuration>
-            	<appSettings>
-            		<add key="log4net-config-file" value="log.config"/>
-            	</appSettings>
-            </configuration>
-            </code>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.DOMConfigurator.Configure(log4net.Repository.ILoggerRepository,System.IO.Stream)">
-            <summary>
-            Configures the <see cref="T:log4net.Repository.ILoggerRepository"/> using the specified configuration 
-            file.
-            </summary>
-            <param name="repository">The repository to configure.</param>
-            <param name="configStream">The stream to load the XML configuration from.</param>
-            <remarks>
-            <para>
-            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
-            </para>
-            <para>
-            The configuration data must be valid XML. It must contain
-            at least one element called <c>log4net</c> that holds
-            the configuration data.
-            </para>
-            <para>
-            Note that this method will NOT close the stream parameter.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.DOMConfigurator.ConfigureAndWatch(System.IO.FileInfo)">
-            <summary>
-            Configures log4net using the file specified, monitors the file for changes 
-            and reloads the configuration if a change is detected.
-            </summary>
-            <param name="configFile">The XML file to load the configuration from.</param>
-            <remarks>
-            <para>
-            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
-            </para>
-            <para>
-            The configuration file must be valid XML. It must contain
-            at least one element called <c>log4net</c> that holds
-            the configuration data.
-            </para>
-            <para>
-            The configuration file will be monitored using a <see cref="T:System.IO.FileSystemWatcher"/>
-            and depends on the behavior of that class.
-            </para>
-            <para>
-            For more information on how to configure log4net using
-            a separate configuration file, see <see cref="M:log4net.Config.DOMConfigurator.Configure(System.IO.FileInfo)"/>.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.Config.DOMConfigurator.Configure(System.IO.FileInfo)"/>
-        </member>
-        <member name="M:log4net.Config.DOMConfigurator.ConfigureAndWatch(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
-            <summary>
-            Configures the <see cref="T:log4net.Repository.ILoggerRepository"/> using the file specified, 
-            monitors the file for changes and reloads the configuration if a change 
-            is detected.
-            </summary>
-            <param name="repository">The repository to configure.</param>
-            <param name="configFile">The XML file to load the configuration from.</param>
-            <remarks>
-            <para>
-            <b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.</b>
-            </para>
-            <para>
-            The configuration file must be valid XML. It must contain
-            at least one element called <c>log4net</c> that holds
-            the configuration data.
-            </para>
-            <para>
-            The configuration file will be monitored using a <see cref="T:System.IO.FileSystemWatcher"/>
-            and depends on the behavior of that class.
-            </para>
-            <para>
-            For more information on how to configure log4net using
-            a separate configuration file, see <see cref="M:log4net.Config.DOMConfigurator.Configure(System.IO.FileInfo)"/>.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.Config.DOMConfigurator.Configure(System.IO.FileInfo)"/>
-        </member>
-        <member name="T:log4net.Config.DOMConfiguratorAttribute">
-            <summary>
-            Assembly level attribute to configure the <see cref="T:log4net.Config.XmlConfigurator"/>.
-            </summary>
-            <remarks>
-            <para>
-            <b>AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute.</b>
-            </para>
-            <para>
-            This attribute may only be used at the assembly scope and can only
-            be used once per assembly.
-            </para>
-            <para>
-            Use this attribute to configure the <see cref="T:log4net.Config.XmlConfigurator"/>
-            without calling one of the <see cref="M:log4net.Config.XmlConfigurator.Configure"/>
-            methods.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Config.XmlConfiguratorAttribute">
-            <summary>
-            Assembly level attribute to configure the <see cref="T:log4net.Config.XmlConfigurator"/>.
-            </summary>
-            <remarks>
-            <para>
-            This attribute may only be used at the assembly scope and can only
-            be used once per assembly.
-            </para>
-            <para>
-            Use this attribute to configure the <see cref="T:log4net.Config.XmlConfigurator"/>
-            without calling one of the <see cref="M:log4net.Config.XmlConfigurator.Configure"/>
-            methods.
-            </para>
-            <para>
-            If neither of the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile"/> or <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/>
-            properties are set the configuration is loaded from the application's .config file.
-            If set the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile"/> property takes priority over the
-            <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/> property. The <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile"/> property
-            specifies a path to a file to load the config from. The path is relative to the
-            application's base directory; <see cref="P:System.AppDomain.BaseDirectory"/>.
-            The <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/> property is used as a postfix to the assembly file name.
-            The config file must be located in the  application's base directory; <see cref="P:System.AppDomain.BaseDirectory"/>.
-            For example in a console application setting the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/> to
-            <c>config</c> has the same effect as not specifying the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile"/> or 
-            <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/> properties.
-            </para>
-            <para>
-            The <see cref="P:log4net.Config.XmlConfiguratorAttribute.Watch"/> property can be set to cause the <see cref="T:log4net.Config.XmlConfigurator"/>
-            to watch the configuration file for changes.
-            </para>
-            <note>
-            <para>
-            Log4net will only look for assembly level configuration attributes once.
-            When using the log4net assembly level attributes to control the configuration 
-            of log4net you must ensure that the first call to any of the 
-            <see cref="T:log4net.Core.LoggerManager"/> methods is made from the assembly with the configuration
-            attributes. 
-            </para>
-            <para>
-            If you cannot guarantee the order in which log4net calls will be made from 
-            different assemblies you must use programmatic configuration instead, i.e.
-            call the <see cref="M:log4net.Config.XmlConfigurator.Configure"/> method directly.
-            </para>
-            </note>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Config.XmlConfiguratorAttribute.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Default constructor
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.XmlConfiguratorAttribute.Configure(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
-            <summary>
-            Configures the <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified assembly.
-            </summary>
-            <param name="sourceAssembly">The assembly that this attribute was defined on.</param>
-            <param name="targetRepository">The repository to configure.</param>
-            <remarks>
-            <para>
-            Configure the repository using the <see cref="T:log4net.Config.XmlConfigurator"/>.
-            The <paramref name="targetRepository"/> specified must extend the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>
-            class otherwise the <see cref="T:log4net.Config.XmlConfigurator"/> will not be able to
-            configure it.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="repository"/> does not extend <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>.</exception>
-        </member>
-        <member name="M:log4net.Config.XmlConfiguratorAttribute.ConfigureFromFile(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
-            <summary>
-            Attempt to load configuration from the local file system
-            </summary>
-            <param name="sourceAssembly">The assembly that this attribute was defined on.</param>
-            <param name="targetRepository">The repository to configure.</param>
-        </member>
-        <member name="M:log4net.Config.XmlConfiguratorAttribute.ConfigureFromFile(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
-            <summary>
-            Configure the specified repository using a <see cref="T:System.IO.FileInfo"/>
-            </summary>
-            <param name="targetRepository">The repository to configure.</param>
-            <param name="configFile">the FileInfo pointing to the config file</param>
-        </member>
-        <member name="M:log4net.Config.XmlConfiguratorAttribute.ConfigureFromUri(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
-            <summary>
-            Attempt to load configuration from a URI
-            </summary>
-            <param name="sourceAssembly">The assembly that this attribute was defined on.</param>
-            <param name="targetRepository">The repository to configure.</param>
-        </member>
-        <member name="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile">
-            <summary>
-            Gets or sets the filename of the configuration file.
-            </summary>
-            <value>
-            The filename of the configuration file.
-            </value>
-            <remarks>
-            <para>
-            If specified, this is the name of the configuration file to use with
-            the <see cref="T:log4net.Config.XmlConfigurator"/>. This file path is relative to the
-            <b>application base</b> directory (<see cref="P:System.AppDomain.BaseDirectory"/>).
-            </para>
-            <para>
-            The <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile"/> takes priority over the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension">
-            <summary>
-            Gets or sets the extension of the configuration file.
-            </summary>
-            <value>
-            The extension of the configuration file.
-            </value>
-            <remarks>
-            <para>
-            If specified this is the extension for the configuration file.
-            The path to the config file is built by using the <b>application 
-            base</b> directory (<see cref="P:System.AppDomain.BaseDirectory"/>),
-            the <b>assembly file name</b> and the config file extension.
-            </para>
-            <para>
-            If the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/> is set to <c>MyExt</c> then
-            possible config file names would be: <c>MyConsoleApp.exe.MyExt</c> or
-            <c>MyClassLibrary.dll.MyExt</c>.
-            </para>
-            <para>
-            The <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile"/> takes priority over the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtension"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Config.XmlConfiguratorAttribute.Watch">
-            <summary>
-            Gets or sets a value indicating whether to watch the configuration file.
-            </summary>
-            <value>
-            <c>true</c> if the configuration should be watched, <c>false</c> otherwise.
-            </value>
-            <remarks>
-            <para>
-            If this flag is specified and set to <c>true</c> then the framework
-            will watch the configuration file and will reload the config each time 
-            the file is modified.
-            </para>
-            <para>
-            The config file can only be watched if it is loaded from local disk.
-            In a No-Touch (Smart Client) deployment where the application is downloaded
-            from a web server the config file may not reside on the local disk
-            and therefore it may not be able to watch it.
-            </para>
-            <note>
-            Watching configuration is not supported on the SSCLI.
-            </note>
-            </remarks>
-        </member>
-        <member name="T:log4net.Config.Log4NetConfigurationSectionHandler">
-            <summary>
-            Class to register for the log4net section of the configuration file
-            </summary>
-            <remarks>
-            The log4net section of the configuration file needs to have a section
-            handler registered. This is the section handler used. It simply returns
-            the XML element that is the root of the section.
-            </remarks>
-            <example>
-            Example of registering the log4net section handler :
-            <code lang="XML" escaped="true">
-            <configuration>
-            	<configSections>
-            		<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
-            	</configSections>
-            	<log4net>
-            		log4net configuration XML goes here
-            	</log4net>
-            </configuration>
-            </code>
-            </example>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Config.Log4NetConfigurationSectionHandler.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/> class.
-            </summary>
-            <remarks>
-            <para>
-            Default constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.Log4NetConfigurationSectionHandler.Create(System.Object,System.Object,System.Xml.XmlNode)">
-            <summary>
-            Parses the configuration section.
-            </summary>
-            <param name="parent">The configuration settings in a corresponding parent configuration section.</param>
-            <param name="configContext">The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference.</param>
-            <param name="section">The <see cref="T:System.Xml.XmlNode"/> for the log4net section.</param>
-            <returns>The <see cref="T:System.Xml.XmlNode"/> for the log4net section.</returns>
-            <remarks>
-            <para>
-            Returns the <see cref="T:System.Xml.XmlNode"/> containing the configuration data,
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Config.PluginAttribute">
-            <summary>
-            Assembly level attribute that specifies a plugin to attach to 
-            the repository.
-            </summary>
-            <remarks>
-            <para>
-            Specifies the type of a plugin to create and attach to the
-            assembly's repository. The plugin type must implement the
-            <see cref="T:log4net.Plugin.IPlugin"/> interface.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Plugin.IPluginFactory">
-            <summary>
-            Interface used to create plugins.
-            </summary>
-            <remarks>
-            <para>
-            Interface used to create  a plugin.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Plugin.IPluginFactory.CreatePlugin">
-            <summary>
-            Creates the plugin object.
-            </summary>
-            <returns>the new plugin instance</returns>
-            <remarks>
-            <para>
-            Create and return a new plugin instance.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.PluginAttribute.#ctor(System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Config.PluginAttribute"/> class
-            with the specified type.
-            </summary>
-            <param name="typeName">The type name of plugin to create.</param>
-            <remarks>
-            <para>
-            Create the attribute with the plugin type specified.
-            </para>
-            <para>
-            Where possible use the constructor that takes a <see cref="T:System.Type"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.PluginAttribute.#ctor(System.Type)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Config.PluginAttribute"/> class
-            with the specified type.
-            </summary>
-            <param name="type">The type of plugin to create.</param>
-            <remarks>
-            <para>
-            Create the attribute with the plugin type specified.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.PluginAttribute.CreatePlugin">
-            <summary>
-            Creates the plugin object defined by this attribute.
-            </summary>
-            <remarks>
-            <para>
-            Creates the instance of the <see cref="T:log4net.Plugin.IPlugin"/> object as 
-            specified by this attribute.
-            </para>
-            </remarks>
-            <returns>The plugin object.</returns>
-        </member>
-        <member name="M:log4net.Config.PluginAttribute.ToString">
-            <summary>
-            Returns a representation of the properties of this object.
-            </summary>
-            <remarks>
-            <para>
-            Overrides base class <see cref="M:System.Object.ToString"/> method to 
-            return a representation of the properties of this object.
-            </para>
-            </remarks>
-            <returns>A representation of the properties of this object</returns>
-        </member>
-        <member name="P:log4net.Config.PluginAttribute.Type">
-            <summary>
-            Gets or sets the type for the plugin.
-            </summary>
-            <value>
-            The type for the plugin.
-            </value>
-            <remarks>
-            <para>
-            The type for the plugin.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Config.PluginAttribute.TypeName">
-            <summary>
-            Gets or sets the type name for the plugin.
-            </summary>
-            <value>
-            The type name for the plugin.
-            </value>
-            <remarks>
-            <para>
-            The type name for the plugin.
-            </para>
-            <para>
-            Where possible use the <see cref="P:log4net.Config.PluginAttribute.Type"/> property instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Config.SecurityContextProviderAttribute">
-            <summary>
-            Assembly level attribute to configure the <see cref="T:log4net.Core.SecurityContextProvider"/>.
-            </summary>
-            <remarks>
-            <para>
-            This attribute may only be used at the assembly scope and can only
-            be used once per assembly.
-            </para>
-            <para>
-            Use this attribute to configure the <see cref="T:log4net.Config.XmlConfigurator"/>
-            without calling one of the <see cref="M:log4net.Config.XmlConfigurator.Configure"/>
-            methods.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Config.SecurityContextProviderAttribute.#ctor(System.Type)">
-            <summary>
-            Construct provider attribute with type specified
-            </summary>
-            <param name="providerType">the type of the provider to use</param>
-            <remarks>
-            <para>
-            The provider specified must subclass the <see cref="T:log4net.Core.SecurityContextProvider"/>
-            class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.SecurityContextProviderAttribute.Configure(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
-            <summary>
-            Configures the SecurityContextProvider
-            </summary>
-            <param name="sourceAssembly">The assembly that this attribute was defined on.</param>
-            <param name="targetRepository">The repository to configure.</param>
-            <remarks>
-            <para>
-            Creates a provider instance from the <see cref="P:log4net.Config.SecurityContextProviderAttribute.ProviderType"/> specified.
-            Sets this as the default security context provider <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Config.SecurityContextProviderAttribute.ProviderType">
-            <summary>
-            Gets or sets the type of the provider to use.
-            </summary>
-            <value>
-            the type of the provider to use.
-            </value>
-            <remarks>
-            <para>
-            The provider specified must subclass the <see cref="T:log4net.Core.SecurityContextProvider"/>
-            class.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Config.XmlConfigurator">
-            <summary>
-            Use this class to initialize the log4net environment using an Xml tree.
-            </summary>
-            <remarks>
-            <para>
-            Configures a <see cref="T:log4net.Repository.ILoggerRepository"/> using an Xml tree.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.#ctor">
-            <summary>
-            Private constructor
-            </summary>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.Configure">
-            <summary>
-            Automatically configures the log4net system based on the 
-            application's configuration settings.
-            </summary>
-            <remarks>
-            <para>
-            Each application has a configuration file. This has the
-            same name as the application with '.config' appended.
-            This file is XML and calling this function prompts the
-            configurator to look in that file for a section called
-            <c>log4net</c> that contains the configuration data.
-            </para>
-            <para>
-            To use this method to configure log4net you must specify 
-            the <see cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/> section
-            handler for the <c>log4net</c> configuration section. See the
-            <see cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/> for an example.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Repository.ILoggerRepository)">
-            <summary>
-            Automatically configures the <see cref="T:log4net.Repository.ILoggerRepository"/> using settings
-            stored in the application's configuration file.
-            </summary>
-            <remarks>
-            <para>
-            Each application has a configuration file. This has the
-            same name as the application with '.config' appended.
-            This file is XML and calling this function prompts the
-            configurator to look in that file for a section called
-            <c>log4net</c> that contains the configuration data.
-            </para>
-            <para>
-            To use this method to configure log4net you must specify 
-            the <see cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/> section
-            handler for the <c>log4net</c> configuration section. See the
-            <see cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/> for an example.
-            </para>
-            </remarks>
-            <param name="repository">The repository to configure.</param>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.Configure(System.Xml.XmlElement)">
-            <summary>
-            Configures log4net using a <c>log4net</c> element
-            </summary>
-            <remarks>
-            <para>
-            Loads the log4net configuration from the XML element
-            supplied as <paramref name="element"/>.
-            </para>
-            </remarks>
-            <param name="element">The element to parse.</param>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Repository.ILoggerRepository,System.Xml.XmlElement)">
-            <summary>
-            Configures the <see cref="T:log4net.Repository.ILoggerRepository"/> using the specified XML 
-            element.
-            </summary>
-            <remarks>
-            Loads the log4net configuration from the XML element
-            supplied as <paramref name="element"/>.
-            </remarks>
-            <param name="repository">The repository to configure.</param>
-            <param name="element">The element to parse.</param>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.Configure(System.IO.FileInfo)">
-            <summary>
-            Configures log4net using the specified configuration file.
-            </summary>
-            <param name="configFile">The XML file to load the configuration from.</param>
-            <remarks>
-            <para>
-            The configuration file must be valid XML. It must contain
-            at least one element called <c>log4net</c> that holds
-            the log4net configuration data.
-            </para>
-            <para>
-            The log4net configuration file can possible be specified in the application's
-            configuration file (either <c>MyAppName.exe.config</c> for a
-            normal application on <c>Web.config</c> for an ASP.NET application).
-            </para>
-            <para>
-            The first element matching <c><configuration></c> will be read as the 
-            configuration. If this file is also a .NET .config file then you must specify 
-            a configuration section for the <c>log4net</c> element otherwise .NET will 
-            complain. Set the type for the section handler to <see cref="T:System.Configuration.IgnoreSectionHandler"/>, for example:
-            <code lang="XML" escaped="true">
-            <configSections>
-            	<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
-            </configSections>
-            </code>
-            </para>
-            <example>
-            The following example configures log4net using a configuration file, of which the 
-            location is stored in the application's configuration file :
-            </example>
-            <code lang="C#">
-            using log4net.Config;
-            using System.IO;
-            using System.Configuration;
-            
-            ...
-            
-            XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
-            </code>
-            <para>
-            In the <c>.config</c> file, the path to the log4net can be specified like this :
-            </para>
-            <code lang="XML" escaped="true">
-            <configuration>
-            	<appSettings>
-            		<add key="log4net-config-file" value="log.config"/>
-            	</appSettings>
-            </configuration>
-            </code>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.Configure(System.Uri)">
-            <summary>
-            Configures log4net using the specified configuration URI.
-            </summary>
-            <param name="configUri">A URI to load the XML configuration from.</param>
-            <remarks>
-            <para>
-            The configuration data must be valid XML. It must contain
-            at least one element called <c>log4net</c> that holds
-            the log4net configuration data.
-            </para>
-            <para>
-            The <see cref="T:System.Net.WebRequest"/> must support the URI scheme specified.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.Configure(System.IO.Stream)">
-            <summary>
-            Configures log4net using the specified configuration data stream.
-            </summary>
-            <param name="configStream">A stream to load the XML configuration from.</param>
-            <remarks>
-            <para>
-            The configuration data must be valid XML. It must contain
-            at least one element called <c>log4net</c> that holds
-            the log4net configuration data.
-            </para>
-            <para>
-            Note that this method will NOT close the stream parameter.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
-            <summary>
-            Configures the <see cref="T:log4net.Repository.ILoggerRepository"/> using the specified configuration 
-            file.
-            </summary>
-            <param name="repository">The repository to configure.</param>
-            <param name="configFile">The XML file to load the configuration from.</param>
-            <remarks>
-            <para>
-            The configuration file must be valid XML. It must contain
-            at least one element called <c>log4net</c> that holds
-            the configuration data.
-            </para>
-            <para>
-            The log4net configuration file can possible be specified in the application's
-            configuration file (either <c>MyAppName.exe.config</c> for a
-            normal application on <c>Web.config</c> for an ASP.NET application).
-            </para>
-            <para>
-            The first element matching <c><configuration></c> will be read as the 
-            configuration. If this file is also a .NET .config file then you must specify 
-            a configuration section for the <c>log4net</c> element otherwise .NET will 
-            complain. Set the type for the section handler to <see cref="T:System.Configuration.IgnoreSectionHandler"/>, for example:
-            <code lang="XML" escaped="true">
-            <configSections>
-            	<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
-            </configSections>
-            </code>
-            </para>
-            <example>
-            The following example configures log4net using a configuration file, of which the 
-            location is stored in the application's configuration file :
-            </example>
-            <code lang="C#">
-            using log4net.Config;
-            using System.IO;
-            using System.Configuration;
-            
-            ...
-            
-            XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
-            </code>
-            <para>
-            In the <c>.config</c> file, the path to the log4net can be specified like this :
-            </para>
-            <code lang="XML" escaped="true">
-            <configuration>
-            	<appSettings>
-            		<add key="log4net-config-file" value="log.config"/>
-            	</appSettings>
-            </configuration>
-            </code>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Repository.ILoggerRepository,System.Uri)">
-            <summary>
-            Configures the <see cref="T:log4net.Repository.ILoggerRepository"/> using the specified configuration 
-            URI.
-            </summary>
-            <param name="repository">The repository to configure.</param>
-            <param name="configUri">A URI to load the XML configuration from.</param>
-            <remarks>
-            <para>
-            The configuration data must be valid XML. It must contain
-            at least one element called <c>log4net</c> that holds
-            the configuration data.
-            </para>
-            <para>
-            The <see cref="T:System.Net.WebRequest"/> must support the URI scheme specified.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Repository.ILoggerRepository,System.IO.Stream)">
-            <summary>
-            Configures the <see cref="T:log4net.Repository.ILoggerRepository"/> using the specified configuration 
-            file.
-            </summary>
-            <param name="repository">The repository to configure.</param>
-            <param name="configStream">The stream to load the XML configuration from.</param>
-            <remarks>
-            <para>
-            The configuration data must be valid XML. It must contain
-            at least one element called <c>log4net</c> that holds
-            the configuration data.
-            </para>
-            <para>
-            Note that this method will NOT close the stream parameter.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatch(System.IO.FileInfo)">
-            <summary>
-            Configures log4net using the file specified, monitors the file for changes 
-            and reloads the configuration if a change is detected.
-            </summary>
-            <param name="configFile">The XML file to load the configuration from.</param>
-            <remarks>
-            <para>
-            The configuration file must be valid XML. It must contain
-            at least one element called <c>log4net</c> that holds
-            the configuration data.
-            </para>
-            <para>
-            The configuration file will be monitored using a <see cref="T:System.IO.FileSystemWatcher"/>
-            and depends on the behavior of that class.
-            </para>
-            <para>
-            For more information on how to configure log4net using
-            a separate configuration file, see <see cref="M:log4net.Config.XmlConfigurator.Configure(System.IO.FileInfo)"/>.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.Config.XmlConfigurator.Configure(System.IO.FileInfo)"/>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatch(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
-            <summary>
-            Configures the <see cref="T:log4net.Repository.ILoggerRepository"/> using the file specified, 
-            monitors the file for changes and reloads the configuration if a change 
-            is detected.
-            </summary>
-            <param name="repository">The repository to configure.</param>
-            <param name="configFile">The XML file to load the configuration from.</param>
-            <remarks>
-            <para>
-            The configuration file must be valid XML. It must contain
-            at least one element called <c>log4net</c> that holds
-            the configuration data.
-            </para>
-            <para>
-            The configuration file will be monitored using a <see cref="T:System.IO.FileSystemWatcher"/>
-            and depends on the behavior of that class.
-            </para>
-            <para>
-            For more information on how to configure log4net using
-            a separate configuration file, see <see cref="M:log4net.Config.XmlConfigurator.Configure(System.IO.FileInfo)"/>.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.Config.XmlConfigurator.Configure(System.IO.FileInfo)"/>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.ConfigureFromXml(log4net.Repository.ILoggerRepository,System.Xml.XmlElement)">
-            <summary>
-            Configures the specified repository using a <c>log4net</c> element.
-            </summary>
-            <param name="repository">The hierarchy to configure.</param>
-            <param name="element">The element to parse.</param>
-            <remarks>
-            <para>
-            Loads the log4net configuration from the XML element
-            supplied as <paramref name="element"/>.
-            </para>
-            <para>
-            This method is ultimately called by one of the Configure methods 
-            to load the configuration from an <see cref="T:System.Xml.XmlElement"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler">
-            <summary>
-            Class used to watch config files.
-            </summary>
-            <remarks>
-            <para>
-            Uses the <see cref="T:System.IO.FileSystemWatcher"/> to monitor
-            changes to a specified file. Because multiple change notifications
-            may be raised when the file is modified, a timer is used to
-            compress the notifications into a single event. The timer
-            waits for <see cref="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.TimeoutMillis"/> time before delivering
-            the event notification. If any further <see cref="T:System.IO.FileSystemWatcher"/>
-            change notifications arrive while the timer is waiting it
-            is reset and waits again for <see cref="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.TimeoutMillis"/> to
-            elapse.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.TimeoutMillis">
-            <summary>
-            The default amount of time to wait after receiving notification
-            before reloading the config file.
-            </summary>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.StartWatching(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
-            <summary>
-            Watch a specified config file used to configure a repository
-            </summary>
-            <param name="repository">The repository to configure.</param>
-            <param name="configFile">The configuration file to watch.</param>
-            <remarks>
-            <para>
-            Watch a specified config file used to configure a repository
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.m_configFile">
-            <summary>
-            Holds the FileInfo used to configure the XmlConfigurator
-            </summary>
-        </member>
-        <member name="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.m_repository">
-            <summary>
-            Holds the repository being configured.
-            </summary>
-        </member>
-        <member name="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.m_timer">
-            <summary>
-            The timer used to compress the notification events.
-            </summary>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.#ctor(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler"/> class.
-            </summary>
-            <param name="repository">The repository to configure.</param>
-            <param name="configFile">The configuration file to watch.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.ConfigureAndWatchHandler_OnChanged(System.Object,System.IO.FileSystemEventArgs)">
-            <summary>
-            Event handler used by <see cref="T:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler"/>.
-            </summary>
-            <param name="source">The <see cref="T:System.IO.FileSystemWatcher"/> firing the event.</param>
-            <param name="e">The argument indicates the file that caused the event to be fired.</param>
-            <remarks>
-            <para>
-            This handler reloads the configuration from the file when the event is fired.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.ConfigureAndWatchHandler_OnRenamed(System.Object,System.IO.RenamedEventArgs)">
-            <summary>
-            Event handler used by <see cref="T:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler"/>.
-            </summary>
-            <param name="source">The <see cref="T:System.IO.FileSystemWatcher"/> firing the event.</param>
-            <param name="e">The argument indicates the file that caused the event to be fired.</param>
-            <remarks>
-            <para>
-            This handler reloads the configuration from the file when the event is fired.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.OnWatchedFileChange(System.Object)">
-            <summary>
-            Called by the timer when the configuration has been updated.
-            </summary>
-            <param name="state">null</param>
-        </member>
-        <member name="T:log4net.Core.CompactRepositorySelector">
-            <summary>
-            The implementation of the <see cref="T:log4net.Core.IRepositorySelector"/> interface suitable
-            for use with the compact framework
-            </summary>
-            <remarks>
-            <para>
-            This <see cref="T:log4net.Core.IRepositorySelector"/> implementation is a simple
-            mapping between repository name and <see cref="T:log4net.Repository.ILoggerRepository"/>
-            object.
-            </para>
-            <para>
-            The .NET Compact Framework 1.0 does not support retrieving assembly
-            level attributes therefore unlike the <c>DefaultRepositorySelector</c>
-            this selector does not examine the calling assembly for attributes.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="T:log4net.Core.IRepositorySelector">
-            <summary>
-            Interface used by the <see cref="T:log4net.LogManager"/> to select the <see cref="T:log4net.Repository.ILoggerRepository"/>.
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.LogManager"/> uses a <see cref="T:log4net.Core.IRepositorySelector"/> 
-            to specify the policy for selecting the correct <see cref="T:log4net.Repository.ILoggerRepository"/> 
-            to return to the caller.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Core.IRepositorySelector.GetRepository(System.Reflection.Assembly)">
-            <summary>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified assembly.
-            </summary>
-            <param name="assembly">The assembly to use to lookup to the <see cref="T:log4net.Repository.ILoggerRepository"/></param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> for the assembly.</returns>
-            <remarks>
-            <para>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified assembly.
-            </para>
-            <para>
-            How the association between <see cref="T:System.Reflection.Assembly"/> and <see cref="T:log4net.Repository.ILoggerRepository"/>
-            is made is not defined. The implementation may choose any method for
-            this association. The results of this method must be repeatable, i.e.
-            when called again with the same arguments the result must be the
-            save value.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.IRepositorySelector.GetRepository(System.String)">
-            <summary>
-            Gets the named <see cref="T:log4net.Repository.ILoggerRepository"/>.
-            </summary>
-            <param name="repositoryName">The name to use to lookup to the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
-            <returns>The named <see cref="T:log4net.Repository.ILoggerRepository"/></returns>
-            <remarks>
-            Lookup a named <see cref="T:log4net.Repository.ILoggerRepository"/>. This is the repository created by
-            calling <see cref="M:log4net.Core.IRepositorySelector.CreateRepository(System.String,System.Type)"/>.
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.IRepositorySelector.CreateRepository(System.Reflection.Assembly,System.Type)">
-            <summary>
-            Creates a new repository for the assembly specified.
-            </summary>
-            <param name="assembly">The assembly to use to create the domain to associate with the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
-            <param name="repositoryType">The type of repository to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
-            <returns>The repository created.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the domain
-            specified such that a call to <see cref="M:log4net.Core.IRepositorySelector.GetRepository(System.Reflection.Assembly)"/> with the
-            same assembly specified will return the same repository instance.
-            </para>
-            <para>
-            How the association between <see cref="T:System.Reflection.Assembly"/> and <see cref="T:log4net.Repository.ILoggerRepository"/>
-            is made is not defined. The implementation may choose any method for
-            this association.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.IRepositorySelector.CreateRepository(System.String,System.Type)">
-            <summary>
-            Creates a new repository with the name specified.
-            </summary>
-            <param name="repositoryName">The name to associate with the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
-            <param name="repositoryType">The type of repository to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
-            <returns>The repository created.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the name
-            specified such that a call to <see cref="M:log4net.Core.IRepositorySelector.GetRepository(System.String)"/> with the
-            same name will return the same repository instance.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.IRepositorySelector.ExistsRepository(System.String)">
-            <summary>
-            Test if a named repository exists
-            </summary>
-            <param name="repositoryName">the named repository to check</param>
-            <returns><c>true</c> if the repository exists</returns>
-            <remarks>
-            <para>
-            Test if a named repository exists. Use <see cref="M:log4net.Core.IRepositorySelector.CreateRepository(System.Reflection.Assembly,System.Type)"/>
-            to create a new repository and <see cref="M:log4net.Core.IRepositorySelector.GetRepository(System.Reflection.Assembly)"/> to retrieve 
-            a repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.IRepositorySelector.GetAllRepositories">
-            <summary>
-            Gets an array of all currently defined repositories.
-            </summary>
-            <returns>
-            An array of the <see cref="T:log4net.Repository.ILoggerRepository"/> instances created by 
-            this <see cref="T:log4net.Core.IRepositorySelector"/>.</returns>
-            <remarks>
-            <para>
-            Gets an array of all of the repositories created by this selector.
-            </para>
-            </remarks>
-        </member>
-        <member name="E:log4net.Core.IRepositorySelector.LoggerRepositoryCreatedEvent">
-            <summary>
-            Event to notify that a logger repository has been created.
-            </summary>
-            <value>
-            Event to notify that a logger repository has been created.
-            </value>
-            <remarks>
-            <para>
-            Event raised when a new repository is created.
-            The event source will be this selector. The event args will
-            be a <see cref="T:log4net.Core.LoggerRepositoryCreationEventArgs"/> which
-            holds the newly created <see cref="T:log4net.Repository.ILoggerRepository"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.CompactRepositorySelector.#ctor(System.Type)">
-            <summary>
-            Create a new repository selector
-            </summary>
-            <param name="defaultRepositoryType">the type of the repositories to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/></param>
-            <remarks>
-            <para>
-            Create an new compact repository selector.
-            The default type for repositories must be specified,
-            an appropriate value would be <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">throw if <paramref name="defaultRepositoryType"/> is null</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">throw if <paramref name="defaultRepositoryType"/> does not implement <see cref="T:log4net.Repository.ILoggerRepository"/></exception>
-        </member>
-        <member name="M:log4net.Core.CompactRepositorySelector.GetRepository(System.Reflection.Assembly)">
-            <summary>
-            Get the <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified assembly
-            </summary>
-            <param name="assembly">not used</param>
-            <returns>The default <see cref="T:log4net.Repository.ILoggerRepository"/></returns>
-            <remarks>
-            <para>
-            The <paramref name="assembly"/> argument is not used. This selector does not create a
-            separate repository for each assembly. 
-            </para>
-            <para>
-            As a named repository is not specified the default repository is 
-            returned. The default repository is named <c>log4net-default-repository</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.CompactRepositorySelector.GetRepository(System.String)">
-            <summary>
-            Get the named <see cref="T:log4net.Repository.ILoggerRepository"/>
-            </summary>
-            <param name="repositoryName">the name of the repository to lookup</param>
-            <returns>The named <see cref="T:log4net.Repository.ILoggerRepository"/></returns>
-            <remarks>
-            <para>
-            Get the named <see cref="T:log4net.Repository.ILoggerRepository"/>. The default 
-            repository is <c>log4net-default-repository</c>. Other repositories 
-            must be created using the <see cref="M:log4net.Core.CompactRepositorySelector.CreateRepository(System.String,System.Type)"/>.
-            If the named repository does not exist an exception is thrown.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">throw if <paramref name="repositoryName"/> is null</exception>
-            <exception cref="T:log4net.Core.LogException">throw if the <paramref name="repositoryName"/> does not exist</exception>
-        </member>
-        <member name="M:log4net.Core.CompactRepositorySelector.CreateRepository(System.Reflection.Assembly,System.Type)">
-            <summary>
-            Create a new repository for the assembly specified 
-            </summary>
-            <param name="assembly">not used</param>
-            <param name="repositoryType">the type of repository to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/></param>
-            <returns>the repository created</returns>
-            <remarks>
-            <para>
-            The <paramref name="assembly"/> argument is not used. This selector does not create a
-            separate repository for each assembly. 
-            </para>
-            <para>
-            If the <paramref name="repositoryType"/> is <c>null</c> then the
-            default repository type specified to the constructor is used.
-            </para>
-            <para>
-            As a named repository is not specified the default repository is 
-            returned. The default repository is named <c>log4net-default-repository</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.CompactRepositorySelector.CreateRepository(System.String,System.Type)">
-            <summary>
-            Create a new repository for the repository specified
-            </summary>
-            <param name="repositoryName">the repository to associate with the <see cref="T:log4net.Repository.ILoggerRepository"/></param>
-            <param name="repositoryType">the type of repository to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/>.
-            If this param is null then the default repository type is used.</param>
-            <returns>the repository created</returns>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
-            specified such that a call to <see cref="M:log4net.Core.CompactRepositorySelector.GetRepository(System.String)"/> with the
-            same repository specified will return the same repository instance.
-            </para>
-            <para>
-            If the named repository already exists an exception will be thrown.
-            </para>
-            <para>
-            If <paramref name="repositoryType"/> is <c>null</c> then the default 
-            repository type specified to the constructor is used.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">throw if <paramref name="repositoryName"/> is null</exception>
-            <exception cref="T:log4net.Core.LogException">throw if the <paramref name="repositoryName"/> already exists</exception>
-        </member>
-        <member name="M:log4net.Core.CompactRepositorySelector.ExistsRepository(System.String)">
-            <summary>
-            Test if a named repository exists
-            </summary>
-            <param name="repositoryName">the named repository to check</param>
-            <returns><c>true</c> if the repository exists</returns>
-            <remarks>
-            <para>
-            Test if a named repository exists. Use <see cref="M:log4net.Core.CompactRepositorySelector.CreateRepository(System.String,System.Type)"/>
-            to create a new repository and <see cref="M:log4net.Core.CompactRepositorySelector.GetRepository(System.String)"/> to retrieve 
-            a repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.CompactRepositorySelector.GetAllRepositories">
-            <summary>
-            Gets a list of <see cref="T:log4net.Repository.ILoggerRepository"/> objects
-            </summary>
-            <returns>an array of all known <see cref="T:log4net.Repository.ILoggerRepository"/> objects</returns>
-            <remarks>
-            <para>
-            Gets an array of all of the repositories created by this selector.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.CompactRepositorySelector.OnLoggerRepositoryCreatedEvent(log4net.Repository.ILoggerRepository)">
-            <summary>
-            Notify the registered listeners that the repository has been created
-            </summary>
-            <param name="repository">The repository that has been created</param>
-            <remarks>
-            <para>
-            Raises the <event cref="E:log4net.Core.CompactRepositorySelector.LoggerRepositoryCreatedEvent">LoggerRepositoryCreatedEvent</event>
-            event.
-            </para>
-            </remarks>
-        </member>
-        <member name="E:log4net.Core.CompactRepositorySelector.LoggerRepositoryCreatedEvent">
-            <summary>
-            Event to notify that a logger repository has been created.
-            </summary>
-            <value>
-            Event to notify that a logger repository has been created.
-            </value>
-            <remarks>
-            <para>
-            Event raised when a new repository is created.
-            The event source will be this selector. The event args will
-            be a <see cref="T:log4net.Core.LoggerRepositoryCreationEventArgs"/> which
-            holds the newly created <see cref="T:log4net.Repository.ILoggerRepository"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.DefaultRepositorySelector">
-            <summary>
-            The default implementation of the <see cref="T:log4net.Core.IRepositorySelector"/> interface.
-            </summary>
-            <remarks>
-            <para>
-            Uses attributes defined on the calling assembly to determine how to
-            configure the hierarchy for the repository.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Core.DefaultRepositorySelector.#ctor(System.Type)">
-            <summary>
-            Creates a new repository selector.
-            </summary>
-            <param name="defaultRepositoryType">The type of the repositories to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/></param>
-            <remarks>
-            <para>
-            Create an new repository selector.
-            The default type for repositories must be specified,
-            an appropriate value would be <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException"><paramref name="defaultRepositoryType"/> is <see langword="null"/>.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="defaultRepositoryType"/> does not implement <see cref="T:log4net.Repository.ILoggerRepository"/>.</exception>
-        </member>
-        <member name="M:log4net.Core.DefaultRepositorySelector.GetRepository(System.Reflection.Assembly)">
-            <summary>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified assembly.
-            </summary>
-            <param name="repositoryAssembly">The assembly use to lookup the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
-            <remarks>
-            <para>
-            The type of the <see cref="T:log4net.Repository.ILoggerRepository"/> created and the repository 
-            to create can be overridden by specifying the <see cref="T:log4net.Config.RepositoryAttribute"/> 
-            attribute on the <paramref name="repositoryAssembly"/>.
-            </para>
-            <para>
-            The default values are to use the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> 
-            implementation of the <see cref="T:log4net.Repository.ILoggerRepository"/> interface and to use the
-            <see cref="P:System.Reflection.AssemblyName.Name"/> as the name of the repository.
-            </para>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be automatically configured using 
-            any <see cref="T:log4net.Config.ConfiguratorAttribute"/> attributes defined on
-            the <paramref name="repositoryAssembly"/>.
-            </para>
-            </remarks>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> for the assembly</returns>
-            <exception cref="T:System.ArgumentNullException"><paramref name="repositoryAssembly"/> is <see langword="null"/>.</exception>
-        </member>
-        <member name="M:log4net.Core.DefaultRepositorySelector.GetRepository(System.String)">
-            <summary>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified repository.
-            </summary>
-            <param name="repositoryName">The repository to use to lookup the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> for the specified repository.</returns>
-            <remarks>
-            <para>
-            Returns the named repository. If <paramref name="repositoryName"/> is <c>null</c>
-            a <see cref="T:System.ArgumentNullException"/> is thrown. If the repository 
-            does not exist a <see cref="T:log4net.Core.LogException"/> is thrown.
-            </para>
-            <para>
-            Use <see cref="M:log4net.Core.DefaultRepositorySelector.CreateRepository(System.String,System.Type)"/> to create a repository.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException"><paramref name="repositoryName"/> is <see langword="null"/>.</exception>
-            <exception cref="T:log4net.Core.LogException"><paramref name="repositoryName"/> does not exist.</exception>
-        </member>
-        <member name="M:log4net.Core.DefaultRepositorySelector.CreateRepository(System.Reflection.Assembly,System.Type)">
-            <summary>
-            Create a new repository for the assembly specified 
-            </summary>
-            <param name="repositoryAssembly">the assembly to use to create the repository to associate with the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
-            <param name="repositoryType">The type of repository to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
-            <returns>The repository created.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
-            specified such that a call to <see cref="M:log4net.Core.DefaultRepositorySelector.GetRepository(System.Reflection.Assembly)"/> with the
-            same assembly specified will return the same repository instance.
-            </para>
-            <para>
-            The type of the <see cref="T:log4net.Repository.ILoggerRepository"/> created and
-            the repository to create can be overridden by specifying the
-            <see cref="T:log4net.Config.RepositoryAttribute"/> attribute on the 
-            <paramref name="repositoryAssembly"/>.  The default values are to use the 
-            <paramref name="repositoryType"/> implementation of the 
-            <see cref="T:log4net.Repository.ILoggerRepository"/> interface and to use the
-            <see cref="P:System.Reflection.AssemblyName.Name"/> as the name of the repository.
-            </para>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be automatically
-            configured using any <see cref="T:log4net.Config.ConfiguratorAttribute"/> 
-            attributes defined on the <paramref name="repositoryAssembly"/>.
-            </para>
-            <para>
-            If a repository for the <paramref name="repositoryAssembly"/> already exists
-            that repository will be returned. An error will not be raised and that 
-            repository may be of a different type to that specified in <paramref name="repositoryType"/>.
-            Also the <see cref="T:log4net.Config.RepositoryAttribute"/> attribute on the
-            assembly may be used to override the repository type specified in 
-            <paramref name="repositoryType"/>.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException"><paramref name="repositoryAssembly"/> is <see langword="null"/>.</exception>
-        </member>
-        <member name="M:log4net.Core.DefaultRepositorySelector.CreateRepository(System.Reflection.Assembly,System.Type,System.String,System.Boolean)">
-            <summary>
-            Creates a new repository for the assembly specified.
-            </summary>
-            <param name="repositoryAssembly">the assembly to use to create the repository to associate with the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
-            <param name="repositoryType">The type of repository to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
-            <param name="repositoryName">The name to assign to the created repository</param>
-            <param name="readAssemblyAttributes">Set to <c>true</c> to read and apply the assembly attributes</param>
-            <returns>The repository created.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
-            specified such that a call to <see cref="M:log4net.Core.DefaultRepositorySelector.GetRepository(System.Reflection.Assembly)"/> with the
-            same assembly specified will return the same repository instance.
-            </para>
-            <para>
-            The type of the <see cref="T:log4net.Repository.ILoggerRepository"/> created and
-            the repository to create can be overridden by specifying the
-            <see cref="T:log4net.Config.RepositoryAttribute"/> attribute on the 
-            <paramref name="repositoryAssembly"/>.  The default values are to use the 
-            <paramref name="repositoryType"/> implementation of the 
-            <see cref="T:log4net.Repository.ILoggerRepository"/> interface and to use the
-            <see cref="P:System.Reflection.AssemblyName.Name"/> as the name of the repository.
-            </para>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be automatically
-            configured using any <see cref="T:log4net.Config.ConfiguratorAttribute"/> 
-            attributes defined on the <paramref name="repositoryAssembly"/>.
-            </para>
-            <para>
-            If a repository for the <paramref name="repositoryAssembly"/> already exists
-            that repository will be returned. An error will not be raised and that 
-            repository may be of a different type to that specified in <paramref name="repositoryType"/>.
-            Also the <see cref="T:log4net.Config.RepositoryAttribute"/> attribute on the
-            assembly may be used to override the repository type specified in 
-            <paramref name="repositoryType"/>.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException"><paramref name="repositoryAssembly"/> is <see langword="null"/>.</exception>
-        </member>
-        <member name="M:log4net.Core.DefaultRepositorySelector.CreateRepository(System.String,System.Type)">
-            <summary>
-            Creates a new repository for the specified repository.
-            </summary>
-            <param name="repositoryName">The repository to associate with the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
-            <param name="repositoryType">The type of repository to create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/>.
-            If this param is <see langword="null"/> then the default repository type is used.</param>
-            <returns>The new repository.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
-            specified such that a call to <see cref="M:log4net.Core.DefaultRepositorySelector.GetRepository(System.String)"/> with the
-            same repository specified will return the same repository instance.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException"><paramref name="repositoryName"/> is <see langword="null"/>.</exception>
-            <exception cref="T:log4net.Core.LogException"><paramref name="repositoryName"/> already exists.</exception>
-        </member>
-        <member name="M:log4net.Core.DefaultRepositorySelector.ExistsRepository(System.String)">
-            <summary>
-            Test if a named repository exists
-            </summary>
-            <param name="repositoryName">the named repository to check</param>
-            <returns><c>true</c> if the repository exists</returns>
-            <remarks>
-            <para>
-            Test if a named repository exists. Use <see cref="M:log4net.Core.DefaultRepositorySelector.CreateRepository(System.String,System.Type)"/>
-            to create a new repository and <see cref="M:log4net.Core.DefaultRepositorySelector.GetRepository(System.String)"/> to retrieve 
-            a repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.DefaultRepositorySelector.GetAllRepositories">
-            <summary>
-            Gets a list of <see cref="T:log4net.Repository.ILoggerRepository"/> objects
-            </summary>
-            <returns>an array of all known <see cref="T:log4net.Repository.ILoggerRepository"/> objects</returns>
-            <remarks>
-            <para>
-            Gets an array of all of the repositories created by this selector.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.DefaultRepositorySelector.AliasRepository(System.String,log4net.Repository.ILoggerRepository)">
-            <summary>
-            Aliases a repository to an existing repository.
-            </summary>
-            <param name="repositoryAlias">The repository to alias.</param>
-            <param name="repositoryTarget">The repository that the repository is aliased to.</param>
-            <remarks>
-            <para>
-            The repository specified will be aliased to the repository when created. 
-            The repository must not already exist.
-            </para>
-            <para>
-            When the repository is created it must utilize the same repository type as 
-            the repository it is aliased to, otherwise the aliasing will fail.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            <para><paramref name="repositoryAlias"/> is <see langword="null"/>.</para>
-            <para>-or-</para>
-            <para><paramref name="repositoryTarget"/> is <see langword="null"/>.</para>
-            </exception>
-        </member>
-        <member name="M:log4net.Core.DefaultRepositorySelector.OnLoggerRepositoryCreatedEvent(log4net.Repository.ILoggerRepository)">
-            <summary>
-            Notifies the registered listeners that the repository has been created.
-            </summary>
-            <param name="repository">The repository that has been created.</param>
-            <remarks>
-            <para>
-            Raises the <see cref="E:log4net.Core.DefaultRepositorySelector.LoggerRepositoryCreatedEvent"/> event.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.DefaultRepositorySelector.GetInfoForAssembly(System.Reflection.Assembly,System.String@,System.Type@)">
-            <summary>
-            Gets the repository name and repository type for the specified assembly.
-            </summary>
-            <param name="assembly">The assembly that has a <see cref="T:log4net.Config.RepositoryAttribute"/>.</param>
-            <param name="repositoryName">in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling.</param>
-            <param name="repositoryType">in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="assembly"/> is <see langword="null"/>.</exception>
-        </member>
-        <member name="M:log4net.Core.DefaultRepositorySelector.ConfigureRepository(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
-            <summary>
-            Configures the repository using information from the assembly.
-            </summary>
-            <param name="assembly">The assembly containing <see cref="T:log4net.Config.ConfiguratorAttribute"/>
-            attributes which define the configuration for the repository.</param>
-            <param name="repository">The repository to configure.</param>
-            <exception cref="T:System.ArgumentNullException">
-            <para><paramref name="assembly"/> is <see langword="null"/>.</para>
-            <para>-or-</para>
-            <para><paramref name="repository"/> is <see langword="null"/>.</para>
-            </exception>
-        </member>
-        <member name="M:log4net.Core.DefaultRepositorySelector.LoadPlugins(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
-            <summary>
-            Loads the attribute defined plugins on the assembly.
-            </summary>
-            <param name="assembly">The assembly that contains the attributes.</param>
-            <param name="repository">The repository to add the plugins to.</param>
-            <exception cref="T:System.ArgumentNullException">
-            <para><paramref name="assembly"/> is <see langword="null"/>.</para>
-            <para>-or-</para>
-            <para><paramref name="repository"/> is <see langword="null"/>.</para>
-            </exception>
-        </member>
-        <member name="M:log4net.Core.DefaultRepositorySelector.LoadAliases(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
-            <summary>
-            Loads the attribute defined aliases on the assembly.
-            </summary>
-            <param name="assembly">The assembly that contains the attributes.</param>
-            <param name="repository">The repository to alias to.</param>
-            <exception cref="T:System.ArgumentNullException">
-            <para><paramref name="assembly"/> is <see langword="null"/>.</para>
-            <para>-or-</para>
-            <para><paramref name="repository"/> is <see langword="null"/>.</para>
-            </exception>
-        </member>
-        <member name="E:log4net.Core.DefaultRepositorySelector.LoggerRepositoryCreatedEvent">
-            <summary>
-            Event to notify that a logger repository has been created.
-            </summary>
-            <value>
-            Event to notify that a logger repository has been created.
-            </value>
-            <remarks>
-            <para>
-            Event raised when a new repository is created.
-            The event source will be this selector. The event args will
-            be a <see cref="T:log4net.Core.LoggerRepositoryCreationEventArgs"/> which
-            holds the newly created <see cref="T:log4net.Repository.ILoggerRepository"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.ErrorCode">
-            <summary>
-            Defined error codes that can be passed to the <see cref="M:log4net.Core.IErrorHandler.Error(System.String,System.Exception,log4net.Core.ErrorCode)"/> method.
-            </summary>
-            <remarks>
-            <para>
-            Values passed to the <see cref="M:log4net.Core.IErrorHandler.Error(System.String,System.Exception,log4net.Core.ErrorCode)"/> method.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Core.ErrorCode.GenericFailure">
-            <summary>
-            A general error
-            </summary>
-        </member>
-        <member name="F:log4net.Core.ErrorCode.WriteFailure">
-            <summary>
-            Error while writing output
-            </summary>
-        </member>
-        <member name="F:log4net.Core.ErrorCode.FlushFailure">
-            <summary>
-            Failed to flush file
-            </summary>
-        </member>
-        <member name="F:log4net.Core.ErrorCode.CloseFailure">
-            <summary>
-            Failed to close file
-            </summary>
-        </member>
-        <member name="F:log4net.Core.ErrorCode.FileOpenFailure">
-            <summary>
-            Unable to open output file
-            </summary>
-        </member>
-        <member name="F:log4net.Core.ErrorCode.MissingLayout">
-            <summary>
-            No layout specified
-            </summary>
-        </member>
-        <member name="F:log4net.Core.ErrorCode.AddressParseFailure">
-            <summary>
-            Failed to parse address
-            </summary>
-        </member>
-        <member name="T:log4net.Core.IErrorHandler">
-            <summary>
-            Appenders may delegate their error handling to an <see cref="T:log4net.Core.IErrorHandler"/>.
-            </summary>
-            <remarks>
-            <para>
-            Error handling is a particularly tedious to get right because by
-            definition errors are hard to predict and to reproduce. 
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Core.IErrorHandler.Error(System.String,System.Exception,log4net.Core.ErrorCode)">
-            <summary>
-            Handles the error and information about the error condition is passed as 
-            a parameter.
-            </summary>
-            <param name="message">The message associated with the error.</param>
-            <param name="e">The <see cref="T:System.Exception"/> that was thrown when the error occurred.</param>
-            <param name="errorCode">The error code associated with the error.</param>
-            <remarks>
-            <para>
-            Handles the error and information about the error condition is passed as 
-            a parameter.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.IErrorHandler.Error(System.String,System.Exception)">
-            <summary>
-            Prints the error message passed as a parameter.
-            </summary>
-            <param name="message">The message associated with the error.</param>
-            <param name="e">The <see cref="T:System.Exception"/> that was thrown when the error occurred.</param>
-            <remarks>
-            <para>
-            See <see cref="M:log4net.Core.IErrorHandler.Error(System.String,System.Exception,log4net.Core.ErrorCode)"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.IErrorHandler.Error(System.String)">
-            <summary>
-            Prints the error message passed as a parameter.
-            </summary>
-            <param name="message">The message associated with the error.</param>
-            <remarks>
-            <para>
-            See <see cref="M:log4net.Core.IErrorHandler.Error(System.String,System.Exception,log4net.Core.ErrorCode)"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.IFixingRequired">
-            <summary>
-            Interface for objects that require fixing.
-            </summary>
-            <remarks>
-            <para>
-            Interface that indicates that the object requires fixing before it
-            can be taken outside the context of the appender's 
-            <see cref="M:log4net.Appender.IAppender.DoAppend(log4net.Core.LoggingEvent)"/> method.
-            </para>
-            <para>
-            When objects that implement this interface are stored 
-            in the context properties maps <see cref="T:log4net.GlobalContext"/>
-            <see cref="P:log4net.GlobalContext.Properties"/> and <see cref="T:log4net.ThreadContext"/>
-            <see cref="P:log4net.ThreadContext.Properties"/> are fixed 
-            (see <see cref="P:log4net.Core.LoggingEvent.Fix"/>) the <see cref="M:log4net.Core.IFixingRequired.GetFixedObject"/>
-            method will be called.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Core.IFixingRequired.GetFixedObject">
-            <summary>
-            Get a portable version of this object
-            </summary>
-            <returns>the portable instance of this object</returns>
-            <remarks>
-            <para>
-            Get a portable instance object that represents the current
-            state of this object. The portable object can be stored
-            and logged from any thread with identical results.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.ILogger">
-            <summary>
-            Interface that all loggers implement
-            </summary>
-            <remarks>
-            <para>
-            This interface supports logging events and testing if a level
-            is enabled for logging.
-            </para>
-            <para>
-            These methods will not throw exceptions. Note to implementor, ensure
-            that the implementation of these methods cannot allow an exception
-            to be thrown to the caller.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Core.ILogger.Log(System.Type,log4net.Core.Level,System.Object,System.Exception)">
-            <summary>
-            This generic form is intended to be used by wrappers.
-            </summary>
-            <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
-            the stack boundary into the logging system for this call.</param>
-            <param name="level">The level of the message to be logged.</param>
-            <param name="message">The message object to log.</param>
-            <param name="exception">the exception to log, including its stack trace. Pass <c>null</c> to not log an exception.</param>
-            <remarks>
-            <para>
-            Generates a logging event for the specified <paramref name="level"/> using
-            the <paramref name="message"/> and <paramref name="exception"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.ILogger.Log(log4net.Core.LoggingEvent)">
-            <summary>
-            This is the most generic printing method that is intended to be used 
-            by wrappers.
-            </summary>
-            <param name="logEvent">The event being logged.</param>
-            <remarks>
-            <para>
-            Logs the specified logging event through this logger.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.ILogger.IsEnabledFor(log4net.Core.Level)">
-            <summary>
-            Checks if this logger is enabled for a given <see cref="T:log4net.Core.Level"/> passed as parameter.
-            </summary>
-            <param name="level">The level to check.</param>
-            <returns>
-            <c>true</c> if this logger is enabled for <c>level</c>, otherwise <c>false</c>.
-            </returns>
-            <remarks>
-            <para>
-            Test if this logger is going to log events of the specified <paramref name="level"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.ILogger.Name">
-            <summary>
-            Gets the name of the logger.
-            </summary>
-            <value>
-            The name of the logger.
-            </value>
-            <remarks>
-            <para>
-            The name of this logger
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.ILogger.Repository">
-            <summary>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> where this 
-            <c>Logger</c> instance is attached to.
-            </summary>
-            <value>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> that this logger belongs to.
-            </value>
-            <remarks>
-            <para>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> where this 
-            <c>Logger</c> instance is attached to.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.ILoggerWrapper">
-            <summary>
-            Base interface for all wrappers
-            </summary>
-            <remarks>
-            <para>
-            Base interface for all wrappers.
-            </para>
-            <para>
-            All wrappers must implement this interface.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="P:log4net.Core.ILoggerWrapper.Logger">
-            <summary>
-            Get the implementation behind this wrapper object.
-            </summary>
-            <value>
-            The <see cref="T:log4net.Core.ILogger"/> object that in implementing this object.
-            </value>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Core.ILogger"/> object that in implementing this
-            object. The <c>Logger</c> object may not 
-            be the same object as this object because of logger decorators.
-            This gets the actual underlying objects that is used to process
-            the log events.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.LoggerRepositoryCreationEventHandler">
-            <summary>
-            Delegate used to handle logger repository creation event notifications
-            </summary>
-            <param name="sender">The <see cref="T:log4net.Core.IRepositorySelector"/> which created the repository.</param>
-            <param name="e">The <see cref="T:log4net.Core.LoggerRepositoryCreationEventArgs"/> event args
-            that holds the <see cref="T:log4net.Repository.ILoggerRepository"/> instance that has been created.</param>
-            <remarks>
-            <para>
-            Delegate used to handle logger repository creation event notifications.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.LoggerRepositoryCreationEventArgs">
-            <summary>
-            Provides data for the <see cref="E:log4net.Core.IRepositorySelector.LoggerRepositoryCreatedEvent"/> event.
-            </summary>
-            <remarks>
-            <para>
-            A <see cref="E:log4net.Core.IRepositorySelector.LoggerRepositoryCreatedEvent"/> 
-            event is raised every time a <see cref="T:log4net.Repository.ILoggerRepository"/> is created.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggerRepositoryCreationEventArgs.m_repository">
-            <summary>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created
-            </summary>
-        </member>
-        <member name="M:log4net.Core.LoggerRepositoryCreationEventArgs.#ctor(log4net.Repository.ILoggerRepository)">
-            <summary>
-            Construct instance using <see cref="T:log4net.Repository.ILoggerRepository"/> specified
-            </summary>
-            <param name="repository">the <see cref="T:log4net.Repository.ILoggerRepository"/> that has been created</param>
-            <remarks>
-            <para>
-            Construct instance using <see cref="T:log4net.Repository.ILoggerRepository"/> specified
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggerRepositoryCreationEventArgs.LoggerRepository">
-            <summary>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> that has been created
-            </summary>
-            <value>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> that has been created
-            </value>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> that has been created
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.ITriggeringEventEvaluator">
-            <summary>
-            Test if an <see cref="T:log4net.Core.LoggingEvent"/> triggers an action
-            </summary>
-            <remarks>
-            <para>
-            Implementations of this interface allow certain appenders to decide
-            when to perform an appender specific action.
-            </para>
-            <para>
-            The action or behavior triggered is defined by the implementation.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Core.ITriggeringEventEvaluator.IsTriggeringEvent(log4net.Core.LoggingEvent)">
-            <summary>
-            Test if this event triggers the action
-            </summary>
-            <param name="loggingEvent">The event to check</param>
-            <returns><c>true</c> if this event triggers the action, otherwise <c>false</c></returns>
-            <remarks>
-            <para>
-            Return <c>true</c> if this event triggers the action
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.Level">
-            <summary>
-            Defines the default set of levels recognized by the system.
-            </summary>
-            <remarks>
-            <para>
-            Each <see cref="T:log4net.Core.LoggingEvent"/> has an associated <see cref="T:log4net.Core.Level"/>.
-            </para>
-            <para>
-            Levels have a numeric <see cref="P:log4net.Core.Level.Value"/> that defines the relative 
-            ordering between levels. Two Levels with the same <see cref="P:log4net.Core.Level.Value"/> 
-            are deemed to be equivalent.
-            </para>
-            <para>
-            The levels that are recognized by log4net are set for each <see cref="T:log4net.Repository.ILoggerRepository"/>
-            and each repository can have different levels defined. The levels are stored
-            in the <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/> on the repository. Levels are
-            looked up by name from the <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/>.
-            </para>
-            <para>
-            When logging at level INFO the actual level used is not <see cref="F:log4net.Core.Level.Info"/> but
-            the value of <c>LoggerRepository.LevelMap["INFO"]</c>. The default value for this is
-            <see cref="F:log4net.Core.Level.Info"/>, but this can be changed by reconfiguring the level map.
-            </para>
-            <para>
-            Each level has a <see cref="P:log4net.Core.Level.DisplayName"/> in addition to its <see cref="P:log4net.Core.Level.Name"/>. The 
-            <see cref="P:log4net.Core.Level.DisplayName"/> is the string that is written into the output log. By default
-            the display name is the same as the level name, but this can be used to alias levels
-            or to localize the log output.
-            </para>
-            <para>
-            Some of the predefined levels recognized by the system are:
-            </para>
-            <list type="bullet">
-            	<item>
-            		<description><see cref="F:log4net.Core.Level.Off"/>.</description>
-            	</item>
-            	<item>
-            		<description><see cref="F:log4net.Core.Level.Fatal"/>.</description>
-            	</item>
-            	<item>
-            		<description><see cref="F:log4net.Core.Level.Error"/>.</description>
-            	</item>
-            	<item>
-            		<description><see cref="F:log4net.Core.Level.Warn"/>.</description>
-            	</item>
-            	<item>
-            		<description><see cref="F:log4net.Core.Level.Info"/>.</description>
-            	</item>
-            	<item>
-            		<description><see cref="F:log4net.Core.Level.Debug"/>.</description>
-            	</item>
-            	<item>
-            		<description><see cref="F:log4net.Core.Level.All"/>.</description>
-            	</item>
-            </list>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Core.Level.#ctor(System.Int32,System.String,System.String)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="level">Integer value for this level, higher values represent more severe levels.</param>
-            <param name="levelName">The string name of this level.</param>
-            <param name="displayName">The display name for this level. This may be localized or otherwise different from the name</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Core.Level"/> class with
-            the specified level name and value.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.Level.#ctor(System.Int32,System.String)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="level">Integer value for this level, higher values represent more severe levels.</param>
-            <param name="levelName">The string name of this level.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Core.Level"/> class with
-            the specified level name and value.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.Level.ToString">
-            <summary>
-            Returns the <see cref="T:System.String"/> representation of the current 
-            <see cref="T:log4net.Core.Level"/>.
-            </summary>
-            <returns>
-            A <see cref="T:System.String"/> representation of the current <see cref="T:log4net.Core.Level"/>.
-            </returns>
-            <remarks>
-            <para>
-            Returns the level <see cref="P:log4net.Core.Level.Name"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.Level.Equals(System.Object)">
-            <summary>
-            Compares levels.
-            </summary>
-            <param name="o">The object to compare against.</param>
-            <returns><c>true</c> if the objects are equal.</returns>
-            <remarks>
-            <para>
-            Compares the levels of <see cref="T:log4net.Core.Level"/> instances, and 
-            defers to base class if the target object is not a <see cref="T:log4net.Core.Level"/>
-            instance.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.Level.GetHashCode">
-            <summary>
-            Returns a hash code
-            </summary>
-            <returns>A hash code for the current <see cref="T:log4net.Core.Level"/>.</returns>
-            <remarks>
-            <para>
-            Returns a hash code suitable for use in hashing algorithms and data 
-            structures like a hash table.
-            </para>
-            <para>
-            Returns the hash code of the level <see cref="P:log4net.Core.Level.Value"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.Level.CompareTo(System.Object)">
-            <summary>
-            Compares this instance to a specified object and returns an 
-            indication of their relative values.
-            </summary>
-            <param name="r">A <see cref="T:log4net.Core.Level"/> instance or <see langword="null"/> to compare with this instance.</param>
-            <returns>
-            A 32-bit signed integer that indicates the relative order of the 
-            values compared. The return value has these meanings:
-            <list type="table">
-            	<listheader>
-            		<term>Value</term>
-            		<description>Meaning</description>
-            	</listheader>
-            	<item>
-            		<term>Less than zero</term>
-            		<description>This instance is less than <paramref name="r"/>.</description>
-            	</item>
-            	<item>
-            		<term>Zero</term>
-            		<description>This instance is equal to <paramref name="r"/>.</description>
-            	</item>
-            	<item>
-            		<term>Greater than zero</term>
-            		<description>
-            			<para>This instance is greater than <paramref name="r"/>.</para>
-            			<para>-or-</para>
-            			<para><paramref name="r"/> is <see langword="null"/>.</para>
-            			</description>
-            	</item>
-            </list>
-            </returns>
-            <remarks>
-            <para>
-            <paramref name="r"/> must be an instance of <see cref="T:log4net.Core.Level"/> 
-            or <see langword="null"/>; otherwise, an exception is thrown.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentException"><paramref name="r"/> is not a <see cref="T:log4net.Core.Level"/>.</exception>
-        </member>
-        <member name="M:log4net.Core.Level.op_GreaterThan(log4net.Core.Level,log4net.Core.Level)">
-            <summary>
-            Returns a value indicating whether a specified <see cref="T:log4net.Core.Level"/> 
-            is greater than another specified <see cref="T:log4net.Core.Level"/>.
-            </summary>
-            <param name="l">A <see cref="T:log4net.Core.Level"/></param>
-            <param name="r">A <see cref="T:log4net.Core.Level"/></param>
-            <returns>
-            <c>true</c> if <paramref name="l"/> is greater than 
-            <paramref name="r"/>; otherwise, <c>false</c>.
-            </returns>
-            <remarks>
-            <para>
-            Compares two levels.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.Level.op_LessThan(log4net.Core.Level,log4net.Core.Level)">
-            <summary>
-            Returns a value indicating whether a specified <see cref="T:log4net.Core.Level"/> 
-            is less than another specified <see cref="T:log4net.Core.Level"/>.
-            </summary>
-            <param name="l">A <see cref="T:log4net.Core.Level"/></param>
-            <param name="r">A <see cref="T:log4net.Core.Level"/></param>
-            <returns>
-            <c>true</c> if <paramref name="l"/> is less than 
-            <paramref name="r"/>; otherwise, <c>false</c>.
-            </returns>
-            <remarks>
-            <para>
-            Compares two levels.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.Level.op_GreaterThanOrEqual(log4net.Core.Level,log4net.Core.Level)">
-            <summary>
-            Returns a value indicating whether a specified <see cref="T:log4net.Core.Level"/> 
-            is greater than or equal to another specified <see cref="T:log4net.Core.Level"/>.
-            </summary>
-            <param name="l">A <see cref="T:log4net.Core.Level"/></param>
-            <param name="r">A <see cref="T:log4net.Core.Level"/></param>
-            <returns>
-            <c>true</c> if <paramref name="l"/> is greater than or equal to 
-            <paramref name="r"/>; otherwise, <c>false</c>.
-            </returns>
-            <remarks>
-            <para>
-            Compares two levels.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.Level.op_LessThanOrEqual(log4net.Core.Level,log4net.Core.Level)">
-            <summary>
-            Returns a value indicating whether a specified <see cref="T:log4net.Core.Level"/> 
-            is less than or equal to another specified <see cref="T:log4net.Core.Level"/>.
-            </summary>
-            <param name="l">A <see cref="T:log4net.Core.Level"/></param>
-            <param name="r">A <see cref="T:log4net.Core.Level"/></param>
-            <returns>
-            <c>true</c> if <paramref name="l"/> is less than or equal to 
-            <paramref name="r"/>; otherwise, <c>false</c>.
-            </returns>
-            <remarks>
-            <para>
-            Compares two levels.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.Level.op_Equality(log4net.Core.Level,log4net.Core.Level)">
-            <summary>
-            Returns a value indicating whether two specified <see cref="T:log4net.Core.Level"/> 
-            objects have the same value.
-            </summary>
-            <param name="l">A <see cref="T:log4net.Core.Level"/> or <see langword="null"/>.</param>
-            <param name="r">A <see cref="T:log4net.Core.Level"/> or <see langword="null"/>.</param>
-            <returns>
-            <c>true</c> if the value of <paramref name="l"/> is the same as the 
-            value of <paramref name="r"/>; otherwise, <c>false</c>.
-            </returns>
-            <remarks>
-            <para>
-            Compares two levels.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.Level.op_Inequality(log4net.Core.Level,log4net.Core.Level)">
-            <summary>
-            Returns a value indicating whether two specified <see cref="T:log4net.Core.Level"/> 
-            objects have different values.
-            </summary>
-            <param name="l">A <see cref="T:log4net.Core.Level"/> or <see langword="null"/>.</param>
-            <param name="r">A <see cref="T:log4net.Core.Level"/> or <see langword="null"/>.</param>
-            <returns>
-            <c>true</c> if the value of <paramref name="l"/> is different from
-            the value of <paramref name="r"/>; otherwise, <c>false</c>.
-            </returns>
-            <remarks>
-            <para>
-            Compares two levels.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.Level.Compare(log4net.Core.Level,log4net.Core.Level)">
-            <summary>
-            Compares two specified <see cref="T:log4net.Core.Level"/> instances.
-            </summary>
-            <param name="l">The first <see cref="T:log4net.Core.Level"/> to compare.</param>
-            <param name="r">The second <see cref="T:log4net.Core.Level"/> to compare.</param>
-            <returns>
-            A 32-bit signed integer that indicates the relative order of the 
-            two values compared. The return value has these meanings:
-            <list type="table">
-            	<listheader>
-            		<term>Value</term>
-            		<description>Meaning</description>
-            	</listheader>
-            	<item>
-            		<term>Less than zero</term>
-            		<description><paramref name="l"/> is less than <paramref name="r"/>.</description>
-            	</item>
-            	<item>
-            		<term>Zero</term>
-            		<description><paramref name="l"/> is equal to <paramref name="r"/>.</description>
-            	</item>
-            	<item>
-            		<term>Greater than zero</term>
-            		<description><paramref name="l"/> is greater than <paramref name="r"/>.</description>
-            	</item>
-            </list>
-            </returns>
-            <remarks>
-            <para>
-            Compares two levels.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.Level.Off">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Off"/> level designates a higher level than all the rest.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Emergency">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Emergency"/> level designates very severe error events. 
-            System unusable, emergencies.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Fatal">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Fatal"/> level designates very severe error events 
-            that will presumably lead the application to abort.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Alert">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Alert"/> level designates very severe error events. 
-            Take immediate action, alerts.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Critical">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Critical"/> level designates very severe error events. 
-            Critical condition, critical.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Severe">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Severe"/> level designates very severe error events.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Error">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Error"/> level designates error events that might 
-            still allow the application to continue running.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Warn">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Warn"/> level designates potentially harmful 
-            situations.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Notice">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Notice"/> level designates informational messages 
-            that highlight the progress of the application at the highest level.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Info">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Info"/> level designates informational messages that 
-            highlight the progress of the application at coarse-grained level.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Debug">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Debug"/> level designates fine-grained informational 
-            events that are most useful to debug an application.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Fine">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Fine"/> level designates fine-grained informational 
-            events that are most useful to debug an application.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Trace">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Trace"/> level designates fine-grained informational 
-            events that are most useful to debug an application.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Finer">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Finer"/> level designates fine-grained informational 
-            events that are most useful to debug an application.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Verbose">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Verbose"/> level designates fine-grained informational 
-            events that are most useful to debug an application.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.Finest">
-            <summary>
-            The <see cref="F:log4net.Core.Level.Finest"/> level designates fine-grained informational 
-            events that are most useful to debug an application.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.Level.All">
-            <summary>
-            The <see cref="F:log4net.Core.Level.All"/> level designates the lowest level possible.
-            </summary>
-        </member>
-        <member name="P:log4net.Core.Level.Name">
-            <summary>
-            Gets the name of this level.
-            </summary>
-            <value>
-            The name of this level.
-            </value>
-            <remarks>
-            <para>
-            Gets the name of this level.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.Level.Value">
-            <summary>
-            Gets the value of this level.
-            </summary>
-            <value>
-            The value of this level.
-            </value>
-            <remarks>
-            <para>
-            Gets the value of this level.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.Level.DisplayName">
-            <summary>
-            Gets the display name of this level.
-            </summary>
-            <value>
-            The display name of this level.
-            </value>
-            <remarks>
-            <para>
-            Gets the display name of this level.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.LevelCollection">
-            <summary>
-            A strongly-typed collection of <see cref="T:log4net.Core.Level"/> objects.
-            </summary>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.ReadOnly(log4net.Core.LevelCollection)">
-            <summary>
-            Creates a read-only wrapper for a <c>LevelCollection</c> instance.
-            </summary>
-            <param name="list">list to create a readonly wrapper arround</param>
-            <returns>
-            A <c>LevelCollection</c> wrapper that is read-only.
-            </returns>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.#ctor">
-            <summary>
-            Initializes a new instance of the <c>LevelCollection</c> class
-            that is empty and has the default initial capacity.
-            </summary>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.#ctor(System.Int32)">
-            <summary>
-            Initializes a new instance of the <c>LevelCollection</c> class
-            that has the specified initial capacity.
-            </summary>
-            <param name="capacity">
-            The number of elements that the new <c>LevelCollection</c> is initially capable of storing.
-            </param>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.#ctor(log4net.Core.LevelCollection)">
-            <summary>
-            Initializes a new instance of the <c>LevelCollection</c> class
-            that contains elements copied from the specified <c>LevelCollection</c>.
-            </summary>
-            <param name="c">The <c>LevelCollection</c> whose elements are copied to the new collection.</param>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.#ctor(log4net.Core.Level[])">
-            <summary>
-            Initializes a new instance of the <c>LevelCollection</c> class
-            that contains elements copied from the specified <see cref="T:log4net.Core.Level"/> array.
-            </summary>
-            <param name="a">The <see cref="T:log4net.Core.Level"/> array whose elements are copied to the new list.</param>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.#ctor(System.Collections.ICollection)">
-            <summary>
-            Initializes a new instance of the <c>LevelCollection</c> class
-            that contains elements copied from the specified <see cref="T:log4net.Core.Level"/> collection.
-            </summary>
-            <param name="col">The <see cref="T:log4net.Core.Level"/> collection whose elements are copied to the new list.</param>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.#ctor(log4net.Core.LevelCollection.Tag)">
-            <summary>
-            Allow subclasses to avoid our default constructors
-            </summary>
-            <param name="tag"></param>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.CopyTo(log4net.Core.Level[])">
-            <summary>
-            Copies the entire <c>LevelCollection</c> to a one-dimensional
-            <see cref="T:log4net.Core.Level"/> array.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:log4net.Core.Level"/> array to copy to.</param>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.CopyTo(log4net.Core.Level[],System.Int32)">
-            <summary>
-            Copies the entire <c>LevelCollection</c> to a one-dimensional
-            <see cref="T:log4net.Core.Level"/> array, starting at the specified index of the target array.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:log4net.Core.Level"/> array to copy to.</param>
-            <param name="start">The zero-based index in <paramref name="array"/> at which copying begins.</param>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.Add(log4net.Core.Level)">
-            <summary>
-            Adds a <see cref="T:log4net.Core.Level"/> to the end of the <c>LevelCollection</c>.
-            </summary>
-            <param name="item">The <see cref="T:log4net.Core.Level"/> to be added to the end of the <c>LevelCollection</c>.</param>
-            <returns>The index at which the value has been added.</returns>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.Clear">
-            <summary>
-            Removes all elements from the <c>LevelCollection</c>.
-            </summary>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.Clone">
-            <summary>
-            Creates a shallow copy of the <see cref="T:log4net.Core.LevelCollection"/>.
-            </summary>
-            <returns>A new <see cref="T:log4net.Core.LevelCollection"/> with a shallow copy of the collection data.</returns>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.Contains(log4net.Core.Level)">
-            <summary>
-            Determines whether a given <see cref="T:log4net.Core.Level"/> is in the <c>LevelCollection</c>.
-            </summary>
-            <param name="item">The <see cref="T:log4net.Core.Level"/> to check for.</param>
-            <returns><c>true</c> if <paramref name="item"/> is found in the <c>LevelCollection</c>; otherwise, <c>false</c>.</returns>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.IndexOf(log4net.Core.Level)">
-            <summary>
-            Returns the zero-based index of the first occurrence of a <see cref="T:log4net.Core.Level"/>
-            in the <c>LevelCollection</c>.
-            </summary>
-            <param name="item">The <see cref="T:log4net.Core.Level"/> to locate in the <c>LevelCollection</c>.</param>
-            <returns>
-            The zero-based index of the first occurrence of <paramref name="item"/> 
-            in the entire <c>LevelCollection</c>, if found; otherwise, -1.
-            </returns>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.Insert(System.Int32,log4net.Core.Level)">
-            <summary>
-            Inserts an element into the <c>LevelCollection</c> at the specified index.
-            </summary>
-            <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
-            <param name="item">The <see cref="T:log4net.Core.Level"/> to insert.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <para><paramref name="index"/> is less than zero</para>
-            <para>-or-</para>
-            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Core.LevelCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.Remove(log4net.Core.Level)">
-            <summary>
-            Removes the first occurrence of a specific <see cref="T:log4net.Core.Level"/> from the <c>LevelCollection</c>.
-            </summary>
-            <param name="item">The <see cref="T:log4net.Core.Level"/> to remove from the <c>LevelCollection</c>.</param>
-            <exception cref="T:System.ArgumentException">
-            The specified <see cref="T:log4net.Core.Level"/> was not found in the <c>LevelCollection</c>.
-            </exception>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.RemoveAt(System.Int32)">
-            <summary>
-            Removes the element at the specified index of the <c>LevelCollection</c>.
-            </summary>
-            <param name="index">The zero-based index of the element to remove.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <para><paramref name="index"/> is less than zero</para>
-            <para>-or-</para>
-            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Core.LevelCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.GetEnumerator">
-            <summary>
-            Returns an enumerator that can iterate through the <c>LevelCollection</c>.
-            </summary>
-            <returns>An <see cref="T:log4net.Core.LevelCollection.Enumerator"/> for the entire <c>LevelCollection</c>.</returns>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.AddRange(log4net.Core.LevelCollection)">
-            <summary>
-            Adds the elements of another <c>LevelCollection</c> to the current <c>LevelCollection</c>.
-            </summary>
-            <param name="x">The <c>LevelCollection</c> whose elements should be added to the end of the current <c>LevelCollection</c>.</param>
-            <returns>The new <see cref="P:log4net.Core.LevelCollection.Count"/> of the <c>LevelCollection</c>.</returns>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.AddRange(log4net.Core.Level[])">
-            <summary>
-            Adds the elements of a <see cref="T:log4net.Core.Level"/> array to the current <c>LevelCollection</c>.
-            </summary>
-            <param name="x">The <see cref="T:log4net.Core.Level"/> array whose elements should be added to the end of the <c>LevelCollection</c>.</param>
-            <returns>The new <see cref="P:log4net.Core.LevelCollection.Count"/> of the <c>LevelCollection</c>.</returns>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.AddRange(System.Collections.ICollection)">
-            <summary>
-            Adds the elements of a <see cref="T:log4net.Core.Level"/> collection to the current <c>LevelCollection</c>.
-            </summary>
-            <param name="col">The <see cref="T:log4net.Core.Level"/> collection whose elements should be added to the end of the <c>LevelCollection</c>.</param>
-            <returns>The new <see cref="P:log4net.Core.LevelCollection.Count"/> of the <c>LevelCollection</c>.</returns>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.TrimToSize">
-            <summary>
-            Sets the capacity to the actual number of elements.
-            </summary>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.ValidateIndex(System.Int32)">
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <para><paramref name="index"/> is less than zero</para>
-            <para>-or-</para>
-            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Core.LevelCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.ValidateIndex(System.Int32,System.Boolean)">
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <para><paramref name="index"/> is less than zero</para>
-            <para>-or-</para>
-            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Core.LevelCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="P:log4net.Core.LevelCollection.Count">
-            <summary>
-            Gets the number of elements actually contained in the <c>LevelCollection</c>.
-            </summary>
-        </member>
-        <member name="P:log4net.Core.LevelCollection.IsSynchronized">
-            <summary>
-            Gets a value indicating whether access to the collection is synchronized (thread-safe).
-            </summary>
-            <value>true if access to the ICollection is synchronized (thread-safe); otherwise, false.</value>
-        </member>
-        <member name="P:log4net.Core.LevelCollection.SyncRoot">
-            <summary>
-            Gets an object that can be used to synchronize access to the collection.
-            </summary>
-        </member>
-        <member name="P:log4net.Core.LevelCollection.Item(System.Int32)">
-            <summary>
-            Gets or sets the <see cref="T:log4net.Core.Level"/> at the specified index.
-            </summary>
-            <param name="index">The zero-based index of the element to get or set.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <para><paramref name="index"/> is less than zero</para>
-            <para>-or-</para>
-            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Core.LevelCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="P:log4net.Core.LevelCollection.IsFixedSize">
-            <summary>
-            Gets a value indicating whether the collection has a fixed size.
-            </summary>
-            <value>true if the collection has a fixed size; otherwise, false. The default is false</value>
-        </member>
-        <member name="P:log4net.Core.LevelCollection.IsReadOnly">
-            <summary>
-            Gets a value indicating whether the IList is read-only.
-            </summary>
-            <value>true if the collection is read-only; otherwise, false. The default is false</value>
-        </member>
-        <member name="P:log4net.Core.LevelCollection.Capacity">
-            <summary>
-            Gets or sets the number of elements the <c>LevelCollection</c> can contain.
-            </summary>
-        </member>
-        <member name="T:log4net.Core.LevelCollection.ILevelCollectionEnumerator">
-            <summary>
-            Supports type-safe iteration over a <see cref="T:log4net.Core.LevelCollection"/>.
-            </summary>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.ILevelCollectionEnumerator.MoveNext">
-            <summary>
-            Advances the enumerator to the next element in the collection.
-            </summary>
-            <returns>
-            <c>true</c> if the enumerator was successfully advanced to the next element; 
-            <c>false</c> if the enumerator has passed the end of the collection.
-            </returns>
-            <exception cref="T:System.InvalidOperationException">
-            The collection was modified after the enumerator was created.
-            </exception>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.ILevelCollectionEnumerator.Reset">
-            <summary>
-            Sets the enumerator to its initial position, before the first element in the collection.
-            </summary>
-        </member>
-        <member name="P:log4net.Core.LevelCollection.ILevelCollectionEnumerator.Current">
-            <summary>
-            Gets the current element in the collection.
-            </summary>
-        </member>
-        <member name="T:log4net.Core.LevelCollection.Tag">
-            <summary>
-            Type visible only to our subclasses
-            Used to access protected constructor
-            </summary>
-        </member>
-        <member name="F:log4net.Core.LevelCollection.Tag.Default">
-            <summary>
-            A value
-            </summary>
-        </member>
-        <member name="T:log4net.Core.LevelCollection.Enumerator">
-            <summary>
-            Supports simple iteration over a <see cref="T:log4net.Core.LevelCollection"/>.
-            </summary>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.Enumerator.#ctor(log4net.Core.LevelCollection)">
-            <summary>
-            Initializes a new instance of the <c>Enumerator</c> class.
-            </summary>
-            <param name="tc"></param>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.Enumerator.MoveNext">
-            <summary>
-            Advances the enumerator to the next element in the collection.
-            </summary>
-            <returns>
-            <c>true</c> if the enumerator was successfully advanced to the next element; 
-            <c>false</c> if the enumerator has passed the end of the collection.
-            </returns>
-            <exception cref="T:System.InvalidOperationException">
-            The collection was modified after the enumerator was created.
-            </exception>
-        </member>
-        <member name="M:log4net.Core.LevelCollection.Enumerator.Reset">
-            <summary>
-            Sets the enumerator to its initial position, before the first element in the collection.
-            </summary>
-        </member>
-        <member name="P:log4net.Core.LevelCollection.Enumerator.Current">
-            <summary>
-            Gets the current element in the collection.
-            </summary>
-        </member>
-        <member name="T:log4net.Core.LevelEvaluator">
-            <summary>
-            An evaluator that triggers at a threshold level
-            </summary>
-            <remarks>
-            <para>
-            This evaluator will trigger if the level of the event
-            passed to <see cref="M:log4net.Core.LevelEvaluator.IsTriggeringEvent(log4net.Core.LoggingEvent)"/>
-            is equal to or greater than the <see cref="P:log4net.Core.LevelEvaluator.Threshold"/>
-            level.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Core.LevelEvaluator.m_threshold">
-            <summary>
-            The threshold for triggering
-            </summary>
-        </member>
-        <member name="M:log4net.Core.LevelEvaluator.#ctor">
-            <summary>
-            Create a new evaluator using the <see cref="F:log4net.Core.Level.Off"/> threshold.
-            </summary>
-            <remarks>
-            <para>
-            Create a new evaluator using the <see cref="F:log4net.Core.Level.Off"/> threshold.
-            </para>
-            <para>
-            This evaluator will trigger if the level of the event
-            passed to <see cref="M:log4net.Core.LevelEvaluator.IsTriggeringEvent(log4net.Core.LoggingEvent)"/>
-            is equal to or greater than the <see cref="P:log4net.Core.LevelEvaluator.Threshold"/>
-            level.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LevelEvaluator.#ctor(log4net.Core.Level)">
-            <summary>
-            Create a new evaluator using the specified <see cref="T:log4net.Core.Level"/> threshold.
-            </summary>
-            <param name="threshold">the threshold to trigger at</param>
-            <remarks>
-            <para>
-            Create a new evaluator using the specified <see cref="T:log4net.Core.Level"/> threshold.
-            </para>
-            <para>
-            This evaluator will trigger if the level of the event
-            passed to <see cref="M:log4net.Core.LevelEvaluator.IsTriggeringEvent(log4net.Core.LoggingEvent)"/>
-            is equal to or greater than the <see cref="P:log4net.Core.LevelEvaluator.Threshold"/>
-            level.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LevelEvaluator.IsTriggeringEvent(log4net.Core.LoggingEvent)">
-            <summary>
-            Is this <paramref name="loggingEvent"/> the triggering event?
-            </summary>
-            <param name="loggingEvent">The event to check</param>
-            <returns>This method returns <c>true</c>, if the event level
-            is equal or higher than the <see cref="P:log4net.Core.LevelEvaluator.Threshold"/>. 
-            Otherwise it returns <c>false</c></returns>
-            <remarks>
-            <para>
-            This evaluator will trigger if the level of the event
-            passed to <see cref="M:log4net.Core.LevelEvaluator.IsTriggeringEvent(log4net.Core.LoggingEvent)"/>
-            is equal to or greater than the <see cref="P:log4net.Core.LevelEvaluator.Threshold"/>
-            level.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LevelEvaluator.Threshold">
-            <summary>
-            the threshold to trigger at
-            </summary>
-            <value>
-            The <see cref="T:log4net.Core.Level"/> that will cause this evaluator to trigger
-            </value>
-            <remarks>
-            <para>
-            This evaluator will trigger if the level of the event
-            passed to <see cref="M:log4net.Core.LevelEvaluator.IsTriggeringEvent(log4net.Core.LoggingEvent)"/>
-            is equal to or greater than the <see cref="P:log4net.Core.LevelEvaluator.Threshold"/>
-            level.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.LevelMap">
-            <summary>
-            Mapping between string name and Level object
-            </summary>
-            <remarks>
-            <para>
-            Mapping between string name and <see cref="T:log4net.Core.Level"/> object.
-            This mapping is held separately for each <see cref="T:log4net.Repository.ILoggerRepository"/>.
-            The level name is case insensitive.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Core.LevelMap.m_mapName2Level">
-            <summary>
-            Mapping from level name to Level object. The
-            level name is case insensitive
-            </summary>
-        </member>
-        <member name="M:log4net.Core.LevelMap.#ctor">
-            <summary>
-            Construct the level map
-            </summary>
-            <remarks>
-            <para>
-            Construct the level map.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LevelMap.Clear">
-            <summary>
-            Clear the internal maps of all levels
-            </summary>
-            <remarks>
-            <para>
-            Clear the internal maps of all levels
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LevelMap.Add(System.String,System.Int32)">
-            <summary>
-            Create a new Level and add it to the map
-            </summary>
-            <param name="name">the string to display for the Level</param>
-            <param name="value">the level value to give to the Level</param>
-            <remarks>
-            <para>
-            Create a new Level and add it to the map
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.Core.LevelMap.Add(System.String,System.Int32,System.String)"/>
-        </member>
-        <member name="M:log4net.Core.LevelMap.Add(System.String,System.Int32,System.String)">
-            <summary>
-            Create a new Level and add it to the map
-            </summary>
-            <param name="name">the string to display for the Level</param>
-            <param name="value">the level value to give to the Level</param>
-            <param name="displayName">the display name to give to the Level</param>
-            <remarks>
-            <para>
-            Create a new Level and add it to the map
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LevelMap.Add(log4net.Core.Level)">
-            <summary>
-            Add a Level to the map
-            </summary>
-            <param name="level">the Level to add</param>
-            <remarks>
-            <para>
-            Add a Level to the map
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LevelMap.LookupWithDefault(log4net.Core.Level)">
-            <summary>
-            Lookup a named level from the map
-            </summary>
-            <param name="defaultLevel">the name of the level to lookup is taken from this level. 
-            If the level is not set on the map then this level is added</param>
-            <returns>the level in the map with the name specified</returns>
-            <remarks>
-            <para>
-            Lookup a named level from the map. The name of the level to lookup is taken
-            from the <see cref="P:log4net.Core.Level.Name"/> property of the <paramref name="defaultLevel"/>
-            argument.
-            </para>
-            <para>
-            If no level with the specified name is found then the 
-            <paramref name="defaultLevel"/> argument is added to the level map
-            and returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LevelMap.Item(System.String)">
-            <summary>
-            Lookup a <see cref="T:log4net.Core.Level"/> by name
-            </summary>
-            <param name="name">The name of the Level to lookup</param>
-            <returns>a Level from the map with the name specified</returns>
-            <remarks>
-            <para>
-            Returns the <see cref="T:log4net.Core.Level"/> from the
-            map with the name specified. If the no level is
-            found then <c>null</c> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LevelMap.AllLevels">
-            <summary>
-            Return all possible levels as a list of Level objects.
-            </summary>
-            <returns>all possible levels as a list of Level objects</returns>
-            <remarks>
-            <para>
-            Return all possible levels as a list of Level objects.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.LocationInfo">
-            <summary>
-            The internal representation of caller location information.
-            </summary>
-            <remarks>
-            <para>
-            This class uses the <c>System.Diagnostics.StackTrace</c> class to generate
-            a call stack. The caller's information is then extracted from this stack.
-            </para>
-            <para>
-            The <c>System.Diagnostics.StackTrace</c> class is not supported on the 
-            .NET Compact Framework 1.0 therefore caller location information is not
-            available on that framework.
-            </para>
-            <para>
-            The <c>System.Diagnostics.StackTrace</c> class has this to say about Release builds:
-            </para>
-            <para>
-            "StackTrace information will be most informative with Debug build configurations. 
-            By default, Debug builds include debug symbols, while Release builds do not. The 
-            debug symbols contain most of the file, method name, line number, and column 
-            information used in constructing StackFrame and StackTrace objects. StackTrace 
-            might not report as many method calls as expected, due to code transformations 
-            that occur during optimization."
-            </para>
-            <para>
-            This means that in a Release build the caller information may be incomplete or may 
-            not exist at all! Therefore caller location information cannot be relied upon in a Release build.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="F:log4net.Core.LocationInfo.NA">
-            <summary>
-            When location information is not available the constant
-            <c>NA</c> is returned. Current value of this string
-            constant is <b>?</b>.
-            </summary>
-        </member>
-        <member name="M:log4net.Core.LocationInfo.#ctor(System.Type)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
-            the stack boundary into the logging system for this call.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Core.LocationInfo"/>
-            class based on the current thread.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LocationInfo.#ctor(System.String,System.String,System.String,System.String)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="className">The fully qualified class name.</param>
-            <param name="methodName">The method name.</param>
-            <param name="fileName">The file name.</param>
-            <param name="lineNumber">The line number of the method within the file.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Core.LocationInfo"/>
-            class with the specified data.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LocationInfo.ClassName">
-            <summary>
-            Gets the fully qualified class name of the caller making the logging 
-            request.
-            </summary>
-            <value>
-            The fully qualified class name of the caller making the logging 
-            request.
-            </value>
-            <remarks>
-            <para>
-            Gets the fully qualified class name of the caller making the logging 
-            request.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LocationInfo.FileName">
-            <summary>
-            Gets the file name of the caller.
-            </summary>
-            <value>
-            The file name of the caller.
-            </value>
-            <remarks>
-            <para>
-            Gets the file name of the caller.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LocationInfo.LineNumber">
-            <summary>
-            Gets the line number of the caller.
-            </summary>
-            <value>
-            The line number of the caller.
-            </value>
-            <remarks>
-            <para>
-            Gets the line number of the caller.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LocationInfo.MethodName">
-            <summary>
-            Gets the method name of the caller.
-            </summary>
-            <value>
-            The method name of the caller.
-            </value>
-            <remarks>
-            <para>
-            Gets the method name of the caller.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LocationInfo.FullInfo">
-            <summary>
-            Gets all available caller information
-            </summary>
-            <value>
-            All available caller information, in the format
-            <c>fully.qualified.classname.of.caller.methodName(Filename:line)</c>
-            </value>
-            <remarks>
-            <para>
-            Gets all available caller information, in the format
-            <c>fully.qualified.classname.of.caller.methodName(Filename:line)</c>
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.LoggerManager">
-            <summary>
-            Static manager that controls the creation of repositories
-            </summary>
-            <remarks>
-            <para>
-            Static manager that controls the creation of repositories
-            </para>
-            <para>
-            This class is used by the wrapper managers (e.g. <see cref="T:log4net.LogManager"/>)
-            to provide access to the <see cref="T:log4net.Core.ILogger"/> objects.
-            </para>
-            <para>
-            This manager also holds the <see cref="T:log4net.Core.IRepositorySelector"/> that is used to
-            lookup and create repositories. The selector can be set either programmatically using
-            the <see cref="P:log4net.Core.LoggerManager.RepositorySelector"/> property, or by setting the <c>log4net.RepositorySelector</c>
-            AppSetting in the applications config file to the fully qualified type name of the
-            selector to use. 
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.#ctor">
-            <summary>
-            Private constructor to prevent instances. Only static methods should be used.
-            </summary>
-            <remarks>
-            <para>
-            Private constructor to prevent instances. Only static methods should be used.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.#cctor">
-            <summary>
-            Hook the shutdown event
-            </summary>
-            <remarks>
-            <para>
-            On the full .NET runtime, the static constructor hooks up the 
-            <c>AppDomain.ProcessExit</c> and <c>AppDomain.DomainUnload</c>> events. 
-            These are used to shutdown the log4net system as the application exits.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.RegisterAppDomainEvents">
-            <summary>
-            Register for ProcessExit and DomainUnload events on the AppDomain
-            </summary>
-            <remarks>
-            <para>
-            This needs to be in a separate method because the events make
-            a LinkDemand for the ControlAppDomain SecurityPermission. Because
-            this is a LinkDemand it is demanded at JIT time. Therefore we cannot
-            catch the exception in the method itself, we have to catch it in the
-            caller.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.GetLoggerRepository(System.String)">
-            <summary>
-            Return the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
-            </summary>
-            <param name="repository">the repository to lookup in</param>
-            <returns>Return the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance</returns>
-            <remarks>
-            <para>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
-            by the <paramref name="repository"/> argument.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.GetLoggerRepository(System.Reflection.Assembly)">
-            <summary>
-            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
-            </summary>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
-            <returns>The default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.</returns>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.GetRepository(System.String)">
-            <summary>
-            Return the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
-            </summary>
-            <param name="repository">the repository to lookup in</param>
-            <returns>Return the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance</returns>
-            <remarks>
-            <para>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
-            by the <paramref name="repository"/> argument.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.GetRepository(System.Reflection.Assembly)">
-            <summary>
-            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
-            </summary>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
-            <returns>The default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.</returns>
-            <remarks>
-            <para>
-            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.Exists(System.String,System.String)">
-            <summary>
-            Returns the named logger if it exists.
-            </summary>
-            <param name="repository">The repository to lookup in.</param>
-            <param name="name">The fully qualified logger name to look for.</param>
-            <returns>
-            The logger found, or <c>null</c> if the named logger does not exist in the
-            specified repository.
-            </returns>
-            <remarks>
-            <para>
-            If the named logger exists (in the specified repository) then it
-            returns a reference to the logger, otherwise it returns
-            <c>null</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.Exists(System.Reflection.Assembly,System.String)">
-            <summary>
-            Returns the named logger if it exists.
-            </summary>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
-            <param name="name">The fully qualified logger name to look for.</param>
-            <returns>
-            The logger found, or <c>null</c> if the named logger does not exist in the
-            specified assembly's repository.
-            </returns>
-            <remarks>
-            <para>
-            If the named logger exists (in the specified assembly's repository) then it
-            returns a reference to the logger, otherwise it returns
-            <c>null</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.GetCurrentLoggers(System.String)">
-            <summary>
-            Returns all the currently defined loggers in the specified repository.
-            </summary>
-            <param name="repository">The repository to lookup in.</param>
-            <returns>All the defined loggers.</returns>
-            <remarks>
-            <para>
-            The root logger is <b>not</b> included in the returned array.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.GetCurrentLoggers(System.Reflection.Assembly)">
-            <summary>
-            Returns all the currently defined loggers in the specified assembly's repository.
-            </summary>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
-            <returns>All the defined loggers.</returns>
-            <remarks>
-            <para>
-            The root logger is <b>not</b> included in the returned array.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.GetLogger(System.String,System.String)">
-            <summary>
-            Retrieves or creates a named logger.
-            </summary>
-            <param name="repository">The repository to lookup in.</param>
-            <param name="name">The name of the logger to retrieve.</param>
-            <returns>The logger with the name specified.</returns>
-            <remarks>
-            <para>
-            Retrieves a logger named as the <paramref name="name"/>
-            parameter. If the named logger already exists, then the
-            existing instance will be returned. Otherwise, a new instance is
-            created.
-            </para>
-            <para>
-            By default, loggers do not have a set level but inherit
-            it from the hierarchy. This is one of the central features of
-            log4net.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.GetLogger(System.Reflection.Assembly,System.String)">
-            <summary>
-            Retrieves or creates a named logger.
-            </summary>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
-            <param name="name">The name of the logger to retrieve.</param>
-            <returns>The logger with the name specified.</returns>
-            <remarks>
-            <para>
-            Retrieves a logger named as the <paramref name="name"/>
-            parameter. If the named logger already exists, then the
-            existing instance will be returned. Otherwise, a new instance is
-            created.
-            </para>
-            <para>
-            By default, loggers do not have a set level but inherit
-            it from the hierarchy. This is one of the central features of
-            log4net.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.GetLogger(System.String,System.Type)">
-            <summary>
-            Shorthand for <see cref="M:log4net.LogManager.GetLogger(System.String)"/>.
-            </summary>
-            <param name="repository">The repository to lookup in.</param>
-            <param name="type">The <paramref name="type"/> of which the fullname will be used as the name of the logger to retrieve.</param>
-            <returns>The logger with the name specified.</returns>
-            <remarks>
-            <para>
-            Gets the logger for the fully qualified name of the type specified.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.GetLogger(System.Reflection.Assembly,System.Type)">
-            <summary>
-            Shorthand for <see cref="M:log4net.LogManager.GetLogger(System.String)"/>.
-            </summary>
-            <param name="repositoryAssembly">the assembly to use to lookup the repository</param>
-            <param name="type">The <paramref name="type"/> of which the fullname will be used as the name of the logger to retrieve.</param>
-            <returns>The logger with the name specified.</returns>
-            <remarks>
-            <para>
-            Gets the logger for the fully qualified name of the type specified.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.Shutdown">
-            <summary>
-            Shuts down the log4net system.
-            </summary>
-            <remarks>
-            <para>
-            Calling this method will <b>safely</b> close and remove all
-            appenders in all the loggers including root contained in all the
-            default repositories.
-            </para>
-            <para>
-            Some appenders need to be closed before the application exists. 
-            Otherwise, pending logging events might be lost.
-            </para>
-            <para>
-            The <c>shutdown</c> method is careful to close nested
-            appenders before closing regular appenders. This is allows
-            configurations where a regular appender is attached to a logger
-            and again to a nested appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.ShutdownRepository(System.String)">
-            <summary>
-            Shuts down the repository for the repository specified.
-            </summary>
-            <param name="repository">The repository to shutdown.</param>
-            <remarks>
-            <para>
-            Calling this method will <b>safely</b> close and remove all
-            appenders in all the loggers including root contained in the
-            repository for the <paramref name="repository"/> specified.
-            </para>
-            <para>
-            Some appenders need to be closed before the application exists. 
-            Otherwise, pending logging events might be lost.
-            </para>
-            <para>
-            The <c>shutdown</c> method is careful to close nested
-            appenders before closing regular appenders. This is allows
-            configurations where a regular appender is attached to a logger
-            and again to a nested appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.ShutdownRepository(System.Reflection.Assembly)">
-            <summary>
-            Shuts down the repository for the repository specified.
-            </summary>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
-            <remarks>
-            <para>
-            Calling this method will <b>safely</b> close and remove all
-            appenders in all the loggers including root contained in the
-            repository for the repository. The repository is looked up using
-            the <paramref name="repositoryAssembly"/> specified.
-            </para>
-            <para>
-            Some appenders need to be closed before the application exists. 
-            Otherwise, pending logging events might be lost.
-            </para>
-            <para>
-            The <c>shutdown</c> method is careful to close nested
-            appenders before closing regular appenders. This is allows
-            configurations where a regular appender is attached to a logger
-            and again to a nested appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.ResetConfiguration(System.String)">
-            <summary>
-            Resets all values contained in this repository instance to their defaults.
-            </summary>
-            <param name="repository">The repository to reset.</param>
-            <remarks>
-            <para>
-            Resets all values contained in the repository instance to their
-            defaults.  This removes all appenders from all loggers, sets
-            the level of all non-root loggers to <c>null</c>,
-            sets their additivity flag to <c>true</c> and sets the level
-            of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. Moreover,
-            message disabling is set its default "off" value.
-            </para>		
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.ResetConfiguration(System.Reflection.Assembly)">
-            <summary>
-            Resets all values contained in this repository instance to their defaults.
-            </summary>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository to reset.</param>
-            <remarks>
-            <para>
-            Resets all values contained in the repository instance to their
-            defaults.  This removes all appenders from all loggers, sets
-            the level of all non-root loggers to <c>null</c>,
-            sets their additivity flag to <c>true</c> and sets the level
-            of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. Moreover,
-            message disabling is set its default "off" value.
-            </para>		
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.CreateDomain(System.String)">
-            <summary>
-            Creates a repository with the specified name.
-            </summary>
-            <param name="repository">The name of the repository, this must be unique amongst repositories.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
-            <remarks>
-            <para>
-            <b>CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.</b>
-            </para>
-            <para>
-            Creates the default type of <see cref="T:log4net.Repository.ILoggerRepository"/> which is a
-            <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> object.
-            </para>
-            <para>
-            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
-            An <see cref="T:System.Exception"/> will be thrown if the repository already exists.
-            </para>
-            </remarks>
-            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.CreateRepository(System.String)">
-            <summary>
-            Creates a repository with the specified name.
-            </summary>
-            <param name="repository">The name of the repository, this must be unique amongst repositories.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
-            <remarks>
-            <para>
-            Creates the default type of <see cref="T:log4net.Repository.ILoggerRepository"/> which is a
-            <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> object.
-            </para>
-            <para>
-            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
-            An <see cref="T:System.Exception"/> will be thrown if the repository already exists.
-            </para>
-            </remarks>
-            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.CreateDomain(System.String,System.Type)">
-            <summary>
-            Creates a repository with the specified name and repository type.
-            </summary>
-            <param name="repository">The name of the repository, this must be unique to the repository.</param>
-            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
-            and has a no arg constructor. An instance of this type will be created to act
-            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
-            <remarks>
-            <para>
-            <b>CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.</b>
-            </para>
-            <para>
-            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
-            An Exception will be thrown if the repository already exists.
-            </para>
-            </remarks>
-            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.CreateRepository(System.String,System.Type)">
-            <summary>
-            Creates a repository with the specified name and repository type.
-            </summary>
-            <param name="repository">The name of the repository, this must be unique to the repository.</param>
-            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
-            and has a no arg constructor. An instance of this type will be created to act
-            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
-            <remarks>
-            <para>
-            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
-            An Exception will be thrown if the repository already exists.
-            </para>
-            </remarks>
-            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.CreateDomain(System.Reflection.Assembly,System.Type)">
-            <summary>
-            Creates a repository for the specified assembly and repository type.
-            </summary>
-            <param name="repositoryAssembly">The assembly to use to get the name of the repository.</param>
-            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
-            and has a no arg constructor. An instance of this type will be created to act
-            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
-            <remarks>
-            <para>
-            <b>CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.</b>
-            </para>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
-            specified such that a call to <see cref="M:log4net.Core.LoggerManager.GetRepository(System.Reflection.Assembly)"/> with the
-            same assembly specified will return the same repository instance.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.CreateRepository(System.Reflection.Assembly,System.Type)">
-            <summary>
-            Creates a repository for the specified assembly and repository type.
-            </summary>
-            <param name="repositoryAssembly">The assembly to use to get the name of the repository.</param>
-            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
-            and has a no arg constructor. An instance of this type will be created to act
-            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
-            specified such that a call to <see cref="M:log4net.Core.LoggerManager.GetRepository(System.Reflection.Assembly)"/> with the
-            same assembly specified will return the same repository instance.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.GetAllRepositories">
-            <summary>
-            Gets an array of all currently defined repositories.
-            </summary>
-            <returns>An array of all the known <see cref="T:log4net.Repository.ILoggerRepository"/> objects.</returns>
-            <remarks>
-            <para>
-            Gets an array of all currently defined repositories.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.GetVersionInfo">
-            <summary>
-            Internal method to get pertinent version info.
-            </summary>
-            <returns>A string of version info.</returns>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.OnDomainUnload(System.Object,System.EventArgs)">
-            <summary>
-            Called when the <see cref="E:System.AppDomain.DomainUnload"/> event fires
-            </summary>
-            <param name="sender">the <see cref="T:System.AppDomain"/> that is exiting</param>
-            <param name="e">null</param>
-            <remarks>
-            <para>
-            Called when the <see cref="E:System.AppDomain.DomainUnload"/> event fires.
-            </para>
-            <para>
-            When the event is triggered the log4net system is <see cref="M:log4net.Core.LoggerManager.Shutdown"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggerManager.OnProcessExit(System.Object,System.EventArgs)">
-            <summary>
-            Called when the <see cref="E:System.AppDomain.ProcessExit"/> event fires
-            </summary>
-            <param name="sender">the <see cref="T:System.AppDomain"/> that is exiting</param>
-            <param name="e">null</param>
-            <remarks>
-            <para>
-            Called when the <see cref="E:System.AppDomain.ProcessExit"/> event fires.
-            </para>
-            <para>
-            When the event is triggered the log4net system is <see cref="M:log4net.Core.LoggerManager.Shutdown"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggerManager.s_repositorySelector">
-            <summary>
-            Initialize the default repository selector
-            </summary>
-        </member>
-        <member name="P:log4net.Core.LoggerManager.RepositorySelector">
-            <summary>
-            Gets or sets the repository selector used by the <see cref="T:log4net.LogManager"/>.
-            </summary>
-            <value>
-            The repository selector used by the <see cref="T:log4net.LogManager"/>.
-            </value>
-            <remarks>
-            <para>
-            The repository selector (<see cref="T:log4net.Core.IRepositorySelector"/>) is used by 
-            the <see cref="T:log4net.LogManager"/> to create and select repositories 
-            (<see cref="T:log4net.Repository.ILoggerRepository"/>).
-            </para>
-            <para>
-            The caller to <see cref="T:log4net.LogManager"/> supplies either a string name 
-            or an assembly (if not supplied the assembly is inferred using 
-            <see cref="M:System.Reflection.Assembly.GetCallingAssembly"/>).
-            </para>
-            <para>
-            This context is used by the selector to lookup a specific repository.
-            </para>
-            <para>
-            For the full .NET Framework, the default repository is <c>DefaultRepositorySelector</c>;
-            for the .NET Compact Framework <c>CompactRepositorySelector</c> is the default
-            repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.LoggerWrapperImpl">
-            <summary>
-            Implementation of the <see cref="T:log4net.Core.ILoggerWrapper"/> interface.
-            </summary>
-            <remarks>
-            <para>
-            This class should be used as the base for all wrapper implementations.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Core.LoggerWrapperImpl.#ctor(log4net.Core.ILogger)">
-            <summary>
-            Constructs a new wrapper for the specified logger.
-            </summary>
-            <param name="logger">The logger to wrap.</param>
-            <remarks>
-            <para>
-            Constructs a new wrapper for the specified logger.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggerWrapperImpl.m_logger">
-            <summary>
-            The logger that this object is wrapping
-            </summary>
-        </member>
-        <member name="P:log4net.Core.LoggerWrapperImpl.Logger">
-            <summary>
-            Gets the implementation behind this wrapper object.
-            </summary>
-            <value>
-            The <see cref="T:log4net.Core.ILogger"/> object that this object is implementing.
-            </value>
-            <remarks>
-            <para>
-            The <c>Logger</c> object may not be the same object as this object 
-            because of logger decorators.
-            </para>
-            <para>
-            This gets the actual underlying objects that is used to process
-            the log events.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.LoggingEventData">
-            <summary>
-            Portable data structure used by <see cref="T:log4net.Core.LoggingEvent"/>
-            </summary>
-            <remarks>
-            <para>
-            Portable data structure used by <see cref="T:log4net.Core.LoggingEvent"/>
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Core.LoggingEventData.LoggerName">
-            <summary>
-            The logger name.
-            </summary>
-            <remarks>
-            <para>
-            The logger name.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggingEventData.Level">
-            <summary>
-            Level of logging event.
-            </summary>
-            <remarks>
-            <para>
-            Level of logging event. Level cannot be Serializable
-            because it is a flyweight.  Due to its special serialization it
-            cannot be declared final either.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggingEventData.Message">
-            <summary>
-            The application supplied message.
-            </summary>
-            <remarks>
-            <para>
-            The application supplied message of logging event.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggingEventData.ThreadName">
-            <summary>
-            The name of thread
-            </summary>
-            <remarks>
-            <para>
-            The name of thread in which this logging event was generated
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggingEventData.TimeStamp">
-            <summary>
-            The time the event was logged
-            </summary>
-            <remarks>
-            <para>
-            The TimeStamp is stored in the local time zone for this computer.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggingEventData.LocationInfo">
-            <summary>
-            Location information for the caller.
-            </summary>
-            <remarks>
-            <para>
-            Location information for the caller.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggingEventData.UserName">
-            <summary>
-            String representation of the user
-            </summary>
-            <remarks>
-            <para>
-            String representation of the user's windows name,
-            like DOMAIN\username
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggingEventData.Identity">
-            <summary>
-            String representation of the identity.
-            </summary>
-            <remarks>
-            <para>
-            String representation of the current thread's principal identity.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggingEventData.ExceptionString">
-            <summary>
-            The string representation of the exception
-            </summary>
-            <remarks>
-            <para>
-            The string representation of the exception
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggingEventData.Domain">
-            <summary>
-            String representation of the AppDomain.
-            </summary>
-            <remarks>
-            <para>
-            String representation of the AppDomain.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggingEventData.Properties">
-            <summary>
-            Additional event specific properties
-            </summary>
-            <remarks>
-            <para>
-            A logger or an appender may attach additional
-            properties to specific events. These properties
-            have a string key and an object value.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.FixFlags">
-            <summary>
-            Flags passed to the <see cref="P:log4net.Core.LoggingEvent.Fix"/> property
-            </summary>
-            <remarks>
-            <para>
-            Flags passed to the <see cref="P:log4net.Core.LoggingEvent.Fix"/> property
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Core.FixFlags.Mdc">
-            <summary>
-            Fix the MDC
-            </summary>
-        </member>
-        <member name="F:log4net.Core.FixFlags.Ndc">
-            <summary>
-            Fix the NDC
-            </summary>
-        </member>
-        <member name="F:log4net.Core.FixFlags.Message">
-            <summary>
-            Fix the rendered message
-            </summary>
-        </member>
-        <member name="F:log4net.Core.FixFlags.ThreadName">
-            <summary>
-            Fix the thread name
-            </summary>
-        </member>
-        <member name="F:log4net.Core.FixFlags.LocationInfo">
-            <summary>
-            Fix the callers location information
-            </summary>
-            <remarks>
-            CAUTION: Very slow to generate
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.FixFlags.UserName">
-            <summary>
-            Fix the callers windows user name
-            </summary>
-            <remarks>
-            CAUTION: Slow to generate
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.FixFlags.Domain">
-            <summary>
-            Fix the domain friendly name
-            </summary>
-        </member>
-        <member name="F:log4net.Core.FixFlags.Identity">
-            <summary>
-            Fix the callers principal name
-            </summary>
-            <remarks>
-            CAUTION: May be slow to generate
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.FixFlags.Exception">
-            <summary>
-            Fix the exception text
-            </summary>
-        </member>
-        <member name="F:log4net.Core.FixFlags.Properties">
-            <summary>
-            Fix the event properties
-            </summary>
-        </member>
-        <member name="F:log4net.Core.FixFlags.None">
-            <summary>
-            No fields fixed
-            </summary>
-        </member>
-        <member name="F:log4net.Core.FixFlags.All">
-            <summary>
-            All fields fixed
-            </summary>
-        </member>
-        <member name="F:log4net.Core.FixFlags.Partial">
-            <summary>
-            Partial fields fixed
-            </summary>
-            <remarks>
-            <para>
-            This set of partial fields gives good performance. The following fields are fixed:
-            </para>
-            <list type="bullet">
-            <item><description><see cref="F:log4net.Core.FixFlags.Message"/></description></item>
-            <item><description><see cref="F:log4net.Core.FixFlags.ThreadName"/></description></item>
-            <item><description><see cref="F:log4net.Core.FixFlags.Exception"/></description></item>
-            <item><description><see cref="F:log4net.Core.FixFlags.Domain"/></description></item>
-            <item><description><see cref="F:log4net.Core.FixFlags.Properties"/></description></item>
-            </list>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.LoggingEvent">
-            <summary>
-            The internal representation of logging events. 
-            </summary>
-            <remarks>
-            <para>
-            When an affirmative decision is made to log then a 
-            <see cref="T:log4net.Core.LoggingEvent"/> instance is created. This instance 
-            is passed around to the different log4net components.
-            </para>
-            <para>
-            This class is of concern to those wishing to extend log4net.
-            </para>
-            <para>
-            Some of the values in instances of <see cref="T:log4net.Core.LoggingEvent"/>
-            are considered volatile, that is the values are correct at the
-            time the event is delivered to appenders, but will not be consistent
-            at any time afterwards. If an event is to be stored and then processed
-            at a later time these volatile values must be fixed by calling
-            <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/>. There is a performance penalty
-            for incurred by calling <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/> but it
-            is essential to maintaining data consistency.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-            <author>Douglas de la Torre</author>
-            <author>Daniel Cazzulino</author>
-        </member>
-        <member name="F:log4net.Core.LoggingEvent.HostNameProperty">
-            <summary>
-            The key into the Properties map for the host name value.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.LoggingEvent.IdentityProperty">
-            <summary>
-            The key into the Properties map for the thread identity value.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.LoggingEvent.UserNameProperty">
-            <summary>
-            The key into the Properties map for the user name value.
-            </summary>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.#ctor(System.Type,log4net.Repository.ILoggerRepository,System.String,log4net.Core.Level,System.Object,System.Exception)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Core.LoggingEvent"/> class
-            from the supplied parameters.
-            </summary>
-            <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
-            the stack boundary into the logging system for this call.</param>
-            <param name="repository">The repository this event is logged in.</param>
-            <param name="loggerName">The name of the logger of this event.</param>
-            <param name="level">The level of this event.</param>
-            <param name="message">The message of this event.</param>
-            <param name="exception">The exception for this event.</param>
-            <remarks>
-            <para>
-            Except <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/>, <see cref="P:log4net.Core.LoggingEvent.Level"/> and <see cref="P:log4net.Core.LoggingEvent.LoggerName"/>, 
-            all fields of <c>LoggingEvent</c> are filled when actually needed. Call
-            <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/> to cache all data locally
-            to prevent inconsistencies.
-            </para>
-            <para>This method is called by the log4net framework
-            to create a logging event.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.#ctor(System.Type,log4net.Repository.ILoggerRepository,log4net.Core.LoggingEventData,log4net.Core.FixFlags)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Core.LoggingEvent"/> class 
-            using specific data.
-            </summary>
-            <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
-            the stack boundary into the logging system for this call.</param>
-            <param name="repository">The repository this event is logged in.</param>
-            <param name="data">Data used to initialize the logging event.</param>
-            <param name="fixedData">The fields in the <paranref name="data"/> struct that have already been fixed.</param>
-            <remarks>
-            <para>
-            This constructor is provided to allow a <see cref="T:log4net.Core.LoggingEvent"/>
-            to be created independently of the log4net framework. This can
-            be useful if you require a custom serialization scheme.
-            </para>
-            <para>
-            Use the <see cref="M:log4net.Core.LoggingEvent.GetLoggingEventData(log4net.Core.FixFlags)"/> method to obtain an 
-            instance of the <see cref="T:log4net.Core.LoggingEventData"/> class.
-            </para>
-            <para>
-            The <paramref name="fixedData"/> parameter should be used to specify which fields in the
-            <paramref name="data"/> struct have been preset. Fields not specified in the <paramref name="fixedData"/>
-            will be captured from the environment if requested or fixed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.#ctor(System.Type,log4net.Repository.ILoggerRepository,log4net.Core.LoggingEventData)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Core.LoggingEvent"/> class 
-            using specific data.
-            </summary>
-            <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
-            the stack boundary into the logging system for this call.</param>
-            <param name="repository">The repository this event is logged in.</param>
-            <param name="data">Data used to initialize the logging event.</param>
-            <remarks>
-            <para>
-            This constructor is provided to allow a <see cref="T:log4net.Core.LoggingEvent"/>
-            to be created independently of the log4net framework. This can
-            be useful if you require a custom serialization scheme.
-            </para>
-            <para>
-            Use the <see cref="M:log4net.Core.LoggingEvent.GetLoggingEventData(log4net.Core.FixFlags)"/> method to obtain an 
-            instance of the <see cref="T:log4net.Core.LoggingEventData"/> class.
-            </para>
-            <para>
-            This constructor sets this objects <see cref="P:log4net.Core.LoggingEvent.Fix"/> flags to <see cref="F:log4net.Core.FixFlags.All"/>,
-            this assumes that all the data relating to this event is passed in via the <paramref name="data"/>
-            parameter and no other data should be captured from the environment.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.#ctor(log4net.Core.LoggingEventData)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Core.LoggingEvent"/> class 
-            using specific data.
-            </summary>
-            <param name="data">Data used to initialize the logging event.</param>
-            <remarks>
-            <para>
-            This constructor is provided to allow a <see cref="T:log4net.Core.LoggingEvent"/>
-            to be created independently of the log4net framework. This can
-            be useful if you require a custom serialization scheme.
-            </para>
-            <para>
-            Use the <see cref="M:log4net.Core.LoggingEvent.GetLoggingEventData(log4net.Core.FixFlags)"/> method to obtain an 
-            instance of the <see cref="T:log4net.Core.LoggingEventData"/> class.
-            </para>
-            <para>
-            This constructor sets this objects <see cref="P:log4net.Core.LoggingEvent.Fix"/> flags to <see cref="F:log4net.Core.FixFlags.All"/>,
-            this assumes that all the data relating to this event is passed in via the <paramref name="data"/>
-            parameter and no other data should be captured from the environment.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Serialization constructor
-            </summary>
-            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data.</param>
-            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Core.LoggingEvent"/> class 
-            with serialized data.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.EnsureRepository(log4net.Repository.ILoggerRepository)">
-            <summary>
-            Ensure that the repository is set.
-            </summary>
-            <param name="repository">the value for the repository</param>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.WriteRenderedMessage(System.IO.TextWriter)">
-            <summary>
-            Write the rendered message to a TextWriter
-            </summary>
-            <param name="writer">the writer to write the message to</param>
-            <remarks>
-            <para>
-            Unlike the <see cref="P:log4net.Core.LoggingEvent.RenderedMessage"/> property this method
-            does store the message data in the internal cache. Therefore 
-            if called only once this method should be faster than the
-            <see cref="P:log4net.Core.LoggingEvent.RenderedMessage"/> property, however if the message is
-            to be accessed multiple times then the property will be more efficient.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Serializes this object into the <see cref="T:System.Runtime.Serialization.SerializationInfo"/> provided.
-            </summary>
-            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> to populate with data.</param>
-            <param name="context">The destination for this serialization.</param>
-            <remarks>
-            <para>
-            The data in this event must be fixed before it can be serialized.
-            </para>
-            <para>
-            The <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/> method must be called during the
-            <see cref="M:log4net.Appender.IAppender.DoAppend(log4net.Core.LoggingEvent)"/> method call if this event 
-            is to be used outside that method.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.GetLoggingEventData">
-            <summary>
-            Gets the portable data for this <see cref="T:log4net.Core.LoggingEvent"/>.
-            </summary>
-            <returns>The <see cref="T:log4net.Core.LoggingEventData"/> for this event.</returns>
-            <remarks>
-            <para>
-            A new <see cref="T:log4net.Core.LoggingEvent"/> can be constructed using a
-            <see cref="T:log4net.Core.LoggingEventData"/> instance.
-            </para>
-            <para>
-            Does a <see cref="F:log4net.Core.FixFlags.Partial"/> fix of the data
-            in the logging event before returning the event data.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.GetLoggingEventData(log4net.Core.FixFlags)">
-            <summary>
-            Gets the portable data for this <see cref="T:log4net.Core.LoggingEvent"/>.
-            </summary>
-            <param name="fixFlags">The set of data to ensure is fixed in the LoggingEventData</param>
-            <returns>The <see cref="T:log4net.Core.LoggingEventData"/> for this event.</returns>
-            <remarks>
-            <para>
-            A new <see cref="T:log4net.Core.LoggingEvent"/> can be constructed using a
-            <see cref="T:log4net.Core.LoggingEventData"/> instance.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.GetExceptionStrRep">
-            <summary>
-            Returns this event's exception's rendered using the 
-            <see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
-            </summary>
-            <returns>
-            This event's exception's rendered using the <see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
-            </returns>
-            <remarks>
-            <para>
-            <b>Obsolete. Use <see cref="M:log4net.Core.LoggingEvent.GetExceptionString"/> instead.</b>
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.GetExceptionString">
-            <summary>
-            Returns this event's exception's rendered using the 
-            <see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
-            </summary>
-            <returns>
-            This event's exception's rendered using the <see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
-            </returns>
-            <remarks>
-            <para>
-            Returns this event's exception's rendered using the 
-            <see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.FixVolatileData">
-            <summary>
-            Fix instance fields that hold volatile data.
-            </summary>
-            <remarks>
-            <para>
-            Some of the values in instances of <see cref="T:log4net.Core.LoggingEvent"/>
-            are considered volatile, that is the values are correct at the
-            time the event is delivered to appenders, but will not be consistent
-            at any time afterwards. If an event is to be stored and then processed
-            at a later time these volatile values must be fixed by calling
-            <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/>. There is a performance penalty
-            incurred by calling <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/> but it
-            is essential to maintaining data consistency.
-            </para>
-            <para>
-            Calling <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/> is equivalent to
-            calling <see cref="M:log4net.Core.LoggingEvent.FixVolatileData(System.Boolean)"/> passing the parameter
-            <c>false</c>.
-            </para>
-            <para>
-            See <see cref="M:log4net.Core.LoggingEvent.FixVolatileData(System.Boolean)"/> for more
-            information.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.FixVolatileData(System.Boolean)">
-            <summary>
-            Fixes instance fields that hold volatile data.
-            </summary>
-            <param name="fastButLoose">Set to <c>true</c> to not fix data that takes a long time to fix.</param>
-            <remarks>
-            <para>
-            Some of the values in instances of <see cref="T:log4net.Core.LoggingEvent"/>
-            are considered volatile, that is the values are correct at the
-            time the event is delivered to appenders, but will not be consistent
-            at any time afterwards. If an event is to be stored and then processed
-            at a later time these volatile values must be fixed by calling
-            <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/>. There is a performance penalty
-            for incurred by calling <see cref="M:log4net.Core.LoggingEvent.FixVolatileData"/> but it
-            is essential to maintaining data consistency.
-            </para>
-            <para>
-            The <paramref name="fastButLoose"/> param controls the data that
-            is fixed. Some of the data that can be fixed takes a long time to 
-            generate, therefore if you do not require those settings to be fixed
-            they can be ignored by setting the <paramref name="fastButLoose"/> param
-            to <c>true</c>. This setting will ignore the <see cref="P:log4net.Core.LoggingEvent.LocationInformation"/>
-            and <see cref="P:log4net.Core.LoggingEvent.UserName"/> settings.
-            </para>
-            <para>
-            Set <paramref name="fastButLoose"/> to <c>false</c> to ensure that all 
-            settings are fixed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.FixVolatileData(log4net.Core.FixFlags)">
-            <summary>
-            Fix the fields specified by the <see cref="T:log4net.Core.FixFlags"/> parameter
-            </summary>
-            <param name="flags">the fields to fix</param>
-            <remarks>
-            <para>
-            Only fields specified in the <paramref name="flags"/> will be fixed.
-            Fields will not be fixed if they have previously been fixed.
-            It is not possible to 'unfix' a field.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.LookupProperty(System.String)">
-            <summary>
-            Lookup a composite property in this event
-            </summary>
-            <param name="key">the key for the property to lookup</param>
-            <returns>the value for the property</returns>
-            <remarks>
-            <para>
-            This event has composite properties that combine together properties from
-            several different contexts in the following order:
-            <list type="definition">
-            	<item>
-            		<term>this events properties</term>
-            		<description>
-            		This event has <see cref="P:log4net.Core.LoggingEvent.Properties"/> that can be set. These 
-            		properties are specific to this event only.
-            		</description>
-            	</item>
-            	<item>
-            		<term>the thread properties</term>
-            		<description>
-            		The <see cref="P:log4net.ThreadContext.Properties"/> that are set on the current
-            		thread. These properties are shared by all events logged on this thread.
-            		</description>
-            	</item>
-            	<item>
-            		<term>the global properties</term>
-            		<description>
-            		The <see cref="P:log4net.GlobalContext.Properties"/> that are set globally. These 
-            		properties are shared by all the threads in the AppDomain.
-            		</description>
-            	</item>
-            </list>
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LoggingEvent.GetProperties">
-            <summary>
-            Get all the composite properties in this event
-            </summary>
-            <returns>the <see cref="T:log4net.Util.PropertiesDictionary"/> containing all the properties</returns>
-            <remarks>
-            <para>
-            See <see cref="M:log4net.Core.LoggingEvent.LookupProperty(System.String)"/> for details of the composite properties 
-            stored by the event.
-            </para>
-            <para>
-            This method returns a single <see cref="T:log4net.Util.PropertiesDictionary"/> containing all the
-            properties defined for this event.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggingEvent.m_data">
-            <summary>
-            The internal logging event data.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.LoggingEvent.m_compositeProperties">
-            <summary>
-            The internal logging event data.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.LoggingEvent.m_eventProperties">
-            <summary>
-            The internal logging event data.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.LoggingEvent.m_callerStackBoundaryDeclaringType">
-            <summary>
-            The fully qualified Type of the calling 
-            logger class in the stack frame (i.e. the declaring type of the method).
-            </summary>
-        </member>
-        <member name="F:log4net.Core.LoggingEvent.m_message">
-            <summary>
-            The application supplied message of logging event.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.LoggingEvent.m_thrownException">
-            <summary>
-            The exception that was thrown.
-            </summary>
-            <remarks>
-            This is not serialized. The string representation
-            is serialized instead.
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggingEvent.m_repository">
-            <summary>
-            The repository that generated the logging event
-            </summary>
-            <remarks>
-            This is not serialized.
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggingEvent.m_fixFlags">
-            <summary>
-            The fix state for this event
-            </summary>
-            <remarks>
-            These flags indicate which fields have been fixed.
-            Not serialized.
-            </remarks>
-        </member>
-        <member name="F:log4net.Core.LoggingEvent.m_cacheUpdatable">
-            <summary>
-            Indicated that the internal cache is updateable (ie not fixed)
-            </summary>
-            <remarks>
-            This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler
-            changes in the caching strategy.
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.StartTime">
-            <summary>
-            Gets the time when the current process started.
-            </summary>
-            <value>
-            This is the time when this process started.
-            </value>
-            <remarks>
-            <para>
-            The TimeStamp is stored in the local time zone for this computer.
-            </para>
-            <para>
-            Tries to get the start time for the current process.
-            Failing that it returns the time of the first call to
-            this property.
-            </para>
-            <para>
-            Note that AppDomains may be loaded and unloaded within the
-            same process without the process terminating and therefore
-            without the process start time being reset.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.Level">
-            <summary>
-            Gets the <see cref="P:log4net.Core.LoggingEvent.Level"/> of the logging event.
-            </summary>
-            <value>
-            The <see cref="P:log4net.Core.LoggingEvent.Level"/> of the logging event.
-            </value>
-            <remarks>
-            <para>
-            Gets the <see cref="P:log4net.Core.LoggingEvent.Level"/> of the logging event.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.TimeStamp">
-            <summary>
-            Gets the time of the logging event.
-            </summary>
-            <value>
-            The time of the logging event.
-            </value>
-            <remarks>
-            <para>
-            The TimeStamp is stored in the local time zone for this computer.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.LoggerName">
-            <summary>
-            Gets the name of the logger that logged the event.
-            </summary>
-            <value>
-            The name of the logger that logged the event.
-            </value>
-            <remarks>
-            <para>
-            Gets the name of the logger that logged the event.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.LocationInformation">
-            <summary>
-            Gets the location information for this logging event.
-            </summary>
-            <value>
-            The location information for this logging event.
-            </value>
-            <remarks>
-            <para>
-            The collected information is cached for future use.
-            </para>
-            <para>
-            See the <see cref="T:log4net.Core.LocationInfo"/> class for more information on
-            supported frameworks and the different behavior in Debug and
-            Release builds.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.MessageObject">
-            <summary>
-            Gets the message object used to initialize this event.
-            </summary>
-            <value>
-            The message object used to initialize this event.
-            </value>
-            <remarks>
-            <para>
-            Gets the message object used to initialize this event.
-            Note that this event may not have a valid message object.
-            If the event is serialized the message object will not 
-            be transferred. To get the text of the message the
-            <see cref="P:log4net.Core.LoggingEvent.RenderedMessage"/> property must be used 
-            not this property.
-            </para>
-            <para>
-            If there is no defined message object for this event then
-            null will be returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.ExceptionObject">
-            <summary>
-            Gets the exception object used to initialize this event.
-            </summary>
-            <value>
-            The exception object used to initialize this event.
-            </value>
-            <remarks>
-            <para>
-            Gets the exception object used to initialize this event.
-            Note that this event may not have a valid exception object.
-            If the event is serialized the exception object will not 
-            be transferred. To get the text of the exception the
-            <see cref="M:log4net.Core.LoggingEvent.GetExceptionString"/> method must be used 
-            not this property.
-            </para>
-            <para>
-            If there is no defined exception object for this event then
-            null will be returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.Repository">
-            <summary>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> that this event was created in.
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> that this event was created in.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.RenderedMessage">
-            <summary>
-            Gets the message, rendered through the <see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
-            </summary>
-            <value>
-            The message rendered through the <see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
-            </value>
-            <remarks>
-            <para>
-            The collected information is cached for future use.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.ThreadName">
-            <summary>
-            Gets the name of the current thread.  
-            </summary>
-            <value>
-            The name of the current thread, or the thread ID when 
-            the name is not available.
-            </value>
-            <remarks>
-            <para>
-            The collected information is cached for future use.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.UserName">
-            <summary>
-            Gets the name of the current user.
-            </summary>
-            <value>
-            The name of the current user, or <c>NOT AVAILABLE</c> when the 
-            underlying runtime has no support for retrieving the name of the 
-            current user.
-            </value>
-            <remarks>
-            <para>
-            Calls <c>WindowsIdentity.GetCurrent().Name</c> to get the name of
-            the current windows user.
-            </para>
-            <para>
-            To improve performance, we could cache the string representation of 
-            the name, and reuse that as long as the identity stayed constant.  
-            Once the identity changed, we would need to re-assign and re-render 
-            the string.
-            </para>
-            <para>
-            However, the <c>WindowsIdentity.GetCurrent()</c> call seems to 
-            return different objects every time, so the current implementation 
-            doesn't do this type of caching.
-            </para>
-            <para>
-            Timing for these operations:
-            </para>
-            <list type="table">
-              <listheader>
-                <term>Method</term>
-                <description>Results</description>
-              </listheader>
-              <item>
-                <term><c>WindowsIdentity.GetCurrent()</c></term>
-                <description>10000 loops, 00:00:00.2031250 seconds</description>
-              </item>
-              <item>
-                <term><c>WindowsIdentity.GetCurrent().Name</c></term>
-                <description>10000 loops, 00:00:08.0468750 seconds</description>
-              </item>
-            </list>
-            <para>
-            This means we could speed things up almost 40 times by caching the 
-            value of the <c>WindowsIdentity.GetCurrent().Name</c> property, since 
-            this takes (8.04-0.20) = 7.84375 seconds.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.Identity">
-            <summary>
-            Gets the identity of the current thread principal.
-            </summary>
-            <value>
-            The string name of the identity of the current thread principal.
-            </value>
-            <remarks>
-            <para>
-            Calls <c>System.Threading.Thread.CurrentPrincipal.Identity.Name</c> to get
-            the name of the current thread principal.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.Domain">
-            <summary>
-            Gets the AppDomain friendly name.
-            </summary>
-            <value>
-            The AppDomain friendly name.
-            </value>
-            <remarks>
-            <para>
-            Gets the AppDomain friendly name.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.Properties">
-            <summary>
-            Additional event specific properties.
-            </summary>
-            <value>
-            Additional event specific properties.
-            </value>
-            <remarks>
-            <para>
-            A logger or an appender may attach additional
-            properties to specific events. These properties
-            have a string key and an object value.
-            </para>
-            <para>
-            This property is for events that have been added directly to
-            this event. The aggregate properties (which include these
-            event properties) can be retrieved using <see cref="M:log4net.Core.LoggingEvent.LookupProperty(System.String)"/>
-            and <see cref="M:log4net.Core.LoggingEvent.GetProperties"/>.
-            </para>
-            <para>
-            Once the properties have been fixed <see cref="P:log4net.Core.LoggingEvent.Fix"/> this property
-            returns the combined cached properties. This ensures that updates to
-            this property are always reflected in the underlying storage. When
-            returning the combined properties there may be more keys in the
-            Dictionary than expected.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LoggingEvent.Fix">
-            <summary>
-            The fixed fields in this event
-            </summary>
-            <value>
-            The set of fields that are fixed in this event
-            </value>
-            <remarks>
-            <para>
-            Fields will not be fixed if they have previously been fixed.
-            It is not possible to 'unfix' a field.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.LogImpl">
-            <summary>
-            Implementation of <see cref="T:log4net.ILog"/> wrapper interface.
-            </summary>
-            <remarks>
-            <para>
-            This implementation of the <see cref="T:log4net.ILog"/> interface
-            forwards to the <see cref="T:log4net.Core.ILogger"/> held by the base class.
-            </para>
-            <para>
-            This logger has methods to allow the caller to log at the following
-            levels:
-            </para>
-            <list type="definition">
-              <item>
-                <term>DEBUG</term>
-                <description>
-                The <see cref="M:log4net.Core.LogImpl.Debug(System.Object)"/> and <see cref="M:log4net.Core.LogImpl.DebugFormat(System.String,System.Object[])"/> methods log messages
-                at the <c>DEBUG</c> level. That is the level with that name defined in the
-                repositories <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/>. The default value
-                for this level is <see cref="F:log4net.Core.Level.Debug"/>. The <see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/>
-                property tests if this level is enabled for logging.
-                </description>
-              </item>
-              <item>
-                <term>INFO</term>
-                <description>
-                The <see cref="M:log4net.Core.LogImpl.Info(System.Object)"/> and <see cref="M:log4net.Core.LogImpl.InfoFormat(System.String,System.Object[])"/> methods log messages
-                at the <c>INFO</c> level. That is the level with that name defined in the
-                repositories <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/>. The default value
-                for this level is <see cref="F:log4net.Core.Level.Info"/>. The <see cref="P:log4net.Core.LogImpl.IsInfoEnabled"/>
-                property tests if this level is enabled for logging.
-                </description>
-              </item>
-              <item>
-                <term>WARN</term>
-                <description>
-                The <see cref="M:log4net.Core.LogImpl.Warn(System.Object)"/> and <see cref="M:log4net.Core.LogImpl.WarnFormat(System.String,System.Object[])"/> methods log messages
-                at the <c>WARN</c> level. That is the level with that name defined in the
-                repositories <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/>. The default value
-                for this level is <see cref="F:log4net.Core.Level.Warn"/>. The <see cref="P:log4net.Core.LogImpl.IsWarnEnabled"/>
-                property tests if this level is enabled for logging.
-                </description>
-              </item>
-              <item>
-                <term>ERROR</term>
-                <description>
-                The <see cref="M:log4net.Core.LogImpl.Error(System.Object)"/> and <see cref="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Object[])"/> methods log messages
-                at the <c>ERROR</c> level. That is the level with that name defined in the
-                repositories <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/>. The default value
-                for this level is <see cref="F:log4net.Core.Level.Error"/>. The <see cref="P:log4net.Core.LogImpl.IsErrorEnabled"/>
-                property tests if this level is enabled for logging.
-                </description>
-              </item>
-              <item>
-                <term>FATAL</term>
-                <description>
-                The <see cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/> and <see cref="M:log4net.Core.LogImpl.FatalFormat(System.String,System.Object[])"/> methods log messages
-                at the <c>FATAL</c> level. That is the level with that name defined in the
-                repositories <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/>. The default value
-                for this level is <see cref="F:log4net.Core.Level.Fatal"/>. The <see cref="P:log4net.Core.LogImpl.IsFatalEnabled"/>
-                property tests if this level is enabled for logging.
-                </description>
-              </item>
-            </list>
-            <para>
-            The values for these levels and their semantic meanings can be changed by 
-            configuring the <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/> for the repository.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.ILog">
-            <summary>
-            The ILog interface is use by application to log messages into
-            the log4net framework.
-            </summary>
-            <remarks>
-            <para>
-            Use the <see cref="T:log4net.LogManager"/> to obtain logger instances
-            that implement this interface. The <see cref="M:log4net.LogManager.GetLogger(System.Reflection.Assembly,System.Type)"/>
-            static method is used to get logger instances.
-            </para>
-            <para>
-            This class contains methods for logging at different levels and also
-            has properties for determining if those logging levels are
-            enabled in the current configuration.
-            </para>
-            <para>
-            This interface can be implemented in different ways. This documentation
-            specifies reasonable behavior that a caller can expect from the actual
-            implementation, however different implementations reserve the right to
-            do things differently.
-            </para>
-            </remarks>
-            <example>Simple example of logging messages
-            <code lang="C#">
-            ILog log = LogManager.GetLogger("application-log");
-            
-            log.Info("Application Start");
-            log.Debug("This is a debug message");
-            
-            if (log.IsDebugEnabled)
-            {
-            	log.Debug("This is another debug message");
-            }
-            </code>
-            </example>
-            <seealso cref="T:log4net.LogManager"/>
-            <seealso cref="M:log4net.LogManager.GetLogger(System.Reflection.Assembly,System.Type)"/>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.ILog.Debug(System.Object)">
-            <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Debug"/> level.</overloads>
-            <summary>
-            Log a message object with the <see cref="F:log4net.Core.Level.Debug"/> level.
-            </summary>
-            <param name="message">The message object to log.</param>
-            <remarks>
-            <para>
-            This method first checks if this logger is <c>DEBUG</c>
-            enabled by comparing the level of this logger with the 
-            <see cref="F:log4net.Core.Level.Debug"/> level. If this logger is
-            <c>DEBUG</c> enabled, then it converts the message object
-            (passed as parameter) to a string by invoking the appropriate
-            <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-            proceeds to call all the registered appenders in this logger 
-            and also higher in the hierarchy depending on the value of 
-            the additivity flag.
-            </para>
-            <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/> 
-            to this method will print the name of the <see cref="T:System.Exception"/> 
-            but no stack trace. To print a stack trace use the 
-            <see cref="M:log4net.ILog.Debug(System.Object,System.Exception)"/> form instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Debug(System.Object,System.Exception)"/>
-            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.Debug(System.Object,System.Exception)">
-            <summary>
-            Log a message object with the <see cref="F:log4net.Core.Level.Debug"/> level including
-            the stack trace of the <see cref="T:System.Exception"/> passed
-            as a parameter.
-            </summary>
-            <param name="message">The message object to log.</param>
-            <param name="exception">The exception to log, including its stack trace.</param>
-            <remarks>
-            <para>
-            See the <see cref="M:log4net.ILog.Debug(System.Object)"/> form for more detailed information.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Debug(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.DebugFormat(System.String,System.Object[])">
-            <overloads>Log a formatted string with the <see cref="F:log4net.Core.Level.Debug"/> level.</overloads>
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Debug(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Debug(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.DebugFormat(System.String,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Debug(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Debug(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.DebugFormat(System.String,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Debug(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Debug(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.DebugFormat(System.String,System.Object,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <param name="arg2">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Debug(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Debug(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.DebugFormat(System.IFormatProvider,System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Debug"/> level.
-            </summary>
-            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Debug(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Debug(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.Info(System.Object)">
-            <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Info"/> level.</overloads>
-            <summary>
-            Logs a message object with the <see cref="F:log4net.Core.Level.Info"/> level.
-            </summary>
-            <remarks>
-            <para>
-            This method first checks if this logger is <c>INFO</c>
-            enabled by comparing the level of this logger with the 
-            <see cref="F:log4net.Core.Level.Info"/> level. If this logger is
-            <c>INFO</c> enabled, then it converts the message object
-            (passed as parameter) to a string by invoking the appropriate
-            <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-            proceeds to call all the registered appenders in this logger 
-            and also higher in the hierarchy depending on the value of the 
-            additivity flag.
-            </para>
-            <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/> 
-            to this method will print the name of the <see cref="T:System.Exception"/> 
-            but no stack trace. To print a stack trace use the 
-            <see cref="M:log4net.ILog.Info(System.Object,System.Exception)"/> form instead.
-            </para>
-            </remarks>
-            <param name="message">The message object to log.</param>
-            <seealso cref="M:log4net.ILog.Info(System.Object,System.Exception)"/>
-            <seealso cref="P:log4net.ILog.IsInfoEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.Info(System.Object,System.Exception)">
-            <summary>
-            Logs a message object with the <c>INFO</c> level including
-            the stack trace of the <see cref="T:System.Exception"/> passed
-            as a parameter.
-            </summary>
-            <param name="message">The message object to log.</param>
-            <param name="exception">The exception to log, including its stack trace.</param>
-            <remarks>
-            <para>
-            See the <see cref="M:log4net.ILog.Info(System.Object)"/> form for more detailed information.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Info(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsInfoEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.InfoFormat(System.String,System.Object[])">
-            <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.</overloads>
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Info(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Info(System.Object,System.Exception)"/>
-            <seealso cref="P:log4net.ILog.IsInfoEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.InfoFormat(System.String,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Info(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Info(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsInfoEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.InfoFormat(System.String,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Info(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Info(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsInfoEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.InfoFormat(System.String,System.Object,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <param name="arg2">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Info(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Info(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsInfoEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.InfoFormat(System.IFormatProvider,System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Info"/> level.
-            </summary>
-            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Info(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Info(System.Object,System.Exception)"/>
-            <seealso cref="P:log4net.ILog.IsInfoEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.Warn(System.Object)">
-            <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Warn"/> level.</overloads>
-            <summary>
-            Log a message object with the <see cref="F:log4net.Core.Level.Warn"/> level.
-            </summary>
-            <remarks>
-            <para>
-            This method first checks if this logger is <c>WARN</c>
-            enabled by comparing the level of this logger with the 
-            <see cref="F:log4net.Core.Level.Warn"/> level. If this logger is
-            <c>WARN</c> enabled, then it converts the message object
-            (passed as parameter) to a string by invoking the appropriate
-            <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-            proceeds to call all the registered appenders in this logger 
-            and also higher in the hierarchy depending on the value of the 
-            additivity flag.
-            </para>
-            <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/> 
-            to this method will print the name of the <see cref="T:System.Exception"/> 
-            but no stack trace. To print a stack trace use the 
-            <see cref="M:log4net.ILog.Warn(System.Object,System.Exception)"/> form instead.
-            </para>
-            </remarks>
-            <param name="message">The message object to log.</param>
-            <seealso cref="M:log4net.ILog.Warn(System.Object,System.Exception)"/>
-            <seealso cref="P:log4net.ILog.IsWarnEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.Warn(System.Object,System.Exception)">
-            <summary>
-            Log a message object with the <see cref="F:log4net.Core.Level.Warn"/> level including
-            the stack trace of the <see cref="T:System.Exception"/> passed
-            as a parameter.
-            </summary>
-            <param name="message">The message object to log.</param>
-            <param name="exception">The exception to log, including its stack trace.</param>
-            <remarks>
-            <para>
-            See the <see cref="M:log4net.ILog.Warn(System.Object)"/> form for more detailed information.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Warn(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsWarnEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.WarnFormat(System.String,System.Object[])">
-            <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.</overloads>
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Warn(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Warn(System.Object,System.Exception)"/>
-            <seealso cref="P:log4net.ILog.IsWarnEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.WarnFormat(System.String,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Warn(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Warn(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsWarnEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.WarnFormat(System.String,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Warn(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Warn(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsWarnEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.WarnFormat(System.String,System.Object,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <param name="arg2">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Warn(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Warn(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsWarnEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.WarnFormat(System.IFormatProvider,System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Warn"/> level.
-            </summary>
-            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Warn(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Warn(System.Object,System.Exception)"/>
-            <seealso cref="P:log4net.ILog.IsWarnEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.Error(System.Object)">
-            <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Error"/> level.</overloads>
-            <summary>
-            Logs a message object with the <see cref="F:log4net.Core.Level.Error"/> level.
-            </summary>
-            <param name="message">The message object to log.</param>
-            <remarks>
-            <para>
-            This method first checks if this logger is <c>ERROR</c>
-            enabled by comparing the level of this logger with the 
-            <see cref="F:log4net.Core.Level.Error"/> level. If this logger is
-            <c>ERROR</c> enabled, then it converts the message object
-            (passed as parameter) to a string by invoking the appropriate
-            <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-            proceeds to call all the registered appenders in this logger 
-            and also higher in the hierarchy depending on the value of the 
-            additivity flag.
-            </para>
-            <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/> 
-            to this method will print the name of the <see cref="T:System.Exception"/> 
-            but no stack trace. To print a stack trace use the 
-            <see cref="M:log4net.ILog.Error(System.Object,System.Exception)"/> form instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Error(System.Object,System.Exception)"/>
-            <seealso cref="P:log4net.ILog.IsErrorEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.Error(System.Object,System.Exception)">
-            <summary>
-            Log a message object with the <see cref="F:log4net.Core.Level.Error"/> level including
-            the stack trace of the <see cref="T:System.Exception"/> passed
-            as a parameter.
-            </summary>
-            <param name="message">The message object to log.</param>
-            <param name="exception">The exception to log, including its stack trace.</param>
-            <remarks>
-            <para>
-            See the <see cref="M:log4net.ILog.Error(System.Object)"/> form for more detailed information.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Error(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsErrorEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.ErrorFormat(System.String,System.Object[])">
-            <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.</overloads>
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Error(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Error(System.Object,System.Exception)"/>
-            <seealso cref="P:log4net.ILog.IsErrorEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.ErrorFormat(System.String,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Error(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Error(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsErrorEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.ErrorFormat(System.String,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Error(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Error(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsErrorEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.ErrorFormat(System.String,System.Object,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <param name="arg2">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Error(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Error(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsErrorEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.ErrorFormat(System.IFormatProvider,System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Error"/> level.
-            </summary>
-            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Error(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Error(System.Object,System.Exception)"/>
-            <seealso cref="P:log4net.ILog.IsErrorEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.Fatal(System.Object)">
-            <overloads>Log a message object with the <see cref="F:log4net.Core.Level.Fatal"/> level.</overloads>
-            <summary>
-            Log a message object with the <see cref="F:log4net.Core.Level.Fatal"/> level.
-            </summary>
-            <remarks>
-            <para>
-            This method first checks if this logger is <c>FATAL</c>
-            enabled by comparing the level of this logger with the 
-            <see cref="F:log4net.Core.Level.Fatal"/> level. If this logger is
-            <c>FATAL</c> enabled, then it converts the message object
-            (passed as parameter) to a string by invoking the appropriate
-            <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-            proceeds to call all the registered appenders in this logger 
-            and also higher in the hierarchy depending on the value of the 
-            additivity flag.
-            </para>
-            <para><b>WARNING</b> Note that passing an <see cref="T:System.Exception"/> 
-            to this method will print the name of the <see cref="T:System.Exception"/> 
-            but no stack trace. To print a stack trace use the 
-            <see cref="M:log4net.ILog.Fatal(System.Object,System.Exception)"/> form instead.
-            </para>
-            </remarks>
-            <param name="message">The message object to log.</param>
-            <seealso cref="M:log4net.ILog.Fatal(System.Object,System.Exception)"/>
-            <seealso cref="P:log4net.ILog.IsFatalEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.Fatal(System.Object,System.Exception)">
-            <summary>
-            Log a message object with the <see cref="F:log4net.Core.Level.Fatal"/> level including
-            the stack trace of the <see cref="T:System.Exception"/> passed
-            as a parameter.
-            </summary>
-            <param name="message">The message object to log.</param>
-            <param name="exception">The exception to log, including its stack trace.</param>
-            <remarks>
-            <para>
-            See the <see cref="M:log4net.ILog.Fatal(System.Object)"/> form for more detailed information.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsFatalEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.FatalFormat(System.String,System.Object[])">
-            <overloads>Log a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.</overloads>
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Fatal(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Fatal(System.Object,System.Exception)"/>
-            <seealso cref="P:log4net.ILog.IsFatalEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.FatalFormat(System.String,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Fatal(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsFatalEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.FatalFormat(System.String,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Fatal(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsFatalEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.FatalFormat(System.String,System.Object,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <param name="arg2">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Fatal(System.Object,System.Exception)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
-            <seealso cref="P:log4net.ILog.IsFatalEnabled"/>
-        </member>
-        <member name="M:log4net.ILog.FatalFormat(System.IFormatProvider,System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <see cref="F:log4net.Core.Level.Fatal"/> level.
-            </summary>
-            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <c>String.Format</c> method. See
-            <see cref="M:System.String.Format(System.String,System.Object[])"/> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.ILog.Fatal(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Fatal(System.Object,System.Exception)"/>
-            <seealso cref="P:log4net.ILog.IsFatalEnabled"/>
-        </member>
-        <member name="P:log4net.ILog.IsDebugEnabled">
-            <summary>
-            Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Debug"/> level.
-            </summary>
-            <value>
-            <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Debug"/> events, <c>false</c> otherwise.
-            </value>
-            <remarks>
-            <para>
-            This function is intended to lessen the computational cost of
-            disabled log debug statements.
-            </para>
-            <para> For some ILog interface <c>log</c>, when you write:</para>
-            <code lang="C#">
-            log.Debug("This is entry number: " + i );
-            </code>
-            <para>
-            You incur the cost constructing the message, string construction and concatenation in
-            this case, regardless of whether the message is logged or not.
-            </para>
-            <para>
-            If you are worried about speed (who isn't), then you should write:
-            </para>
-            <code lang="C#">
-            if (log.IsDebugEnabled)
-            { 
-                log.Debug("This is entry number: " + i );
-            }
-            </code>
-            <para>
-            This way you will not incur the cost of parameter
-            construction if debugging is disabled for <c>log</c>. On
-            the other hand, if the <c>log</c> is debug enabled, you
-            will incur the cost of evaluating whether the logger is debug
-            enabled twice. Once in <see cref="P:log4net.ILog.IsDebugEnabled"/> and once in
-            the <see cref="M:log4net.ILog.Debug(System.Object)"/>.  This is an insignificant overhead
-            since evaluating a logger takes about 1% of the time it
-            takes to actually log. This is the preferred style of logging.
-            </para>
-            <para>Alternatively if your logger is available statically then the is debug
-            enabled state can be stored in a static variable like this:
-            </para>
-            <code lang="C#">
-            private static readonly bool isDebugEnabled = log.IsDebugEnabled;
-            </code>
-            <para>
-            Then when you come to log you can write:
-            </para>
-            <code lang="C#">
-            if (isDebugEnabled)
-            { 
-                log.Debug("This is entry number: " + i );
-            }
-            </code>
-            <para>
-            This way the debug enabled state is only queried once
-            when the class is loaded. Using a <c>private static readonly</c>
-            variable is the most efficient because it is a run time constant
-            and can be heavily optimized by the JIT compiler.
-            </para>
-            <para>
-            Of course if you use a static readonly variable to
-            hold the enabled state of the logger then you cannot
-            change the enabled state at runtime to vary the logging
-            that is produced. You have to decide if you need absolute
-            speed or runtime flexibility.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.ILog.Debug(System.Object)"/>
-            <seealso cref="M:log4net.ILog.DebugFormat(System.IFormatProvider,System.String,System.Object[])"/>
-        </member>
-        <member name="P:log4net.ILog.IsInfoEnabled">
-            <summary>
-            Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Info"/> level.
-            </summary>
-            <value>
-            <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Info"/> events, <c>false</c> otherwise.
-            </value>
-            <remarks>
-            For more information see <see cref="P:log4net.ILog.IsDebugEnabled"/>.
-            </remarks>
-            <seealso cref="M:log4net.ILog.Info(System.Object)"/>
-            <seealso cref="M:log4net.ILog.InfoFormat(System.IFormatProvider,System.String,System.Object[])"/>
-            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
-        </member>
-        <member name="P:log4net.ILog.IsWarnEnabled">
-            <summary>
-            Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Warn"/> level.
-            </summary>
-            <value>
-            <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Warn"/> events, <c>false</c> otherwise.
-            </value>
-            <remarks>
-            For more information see <see cref="P:log4net.ILog.IsDebugEnabled"/>.
-            </remarks>
-            <seealso cref="M:log4net.ILog.Warn(System.Object)"/>
-            <seealso cref="M:log4net.ILog.WarnFormat(System.IFormatProvider,System.String,System.Object[])"/>
-            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
-        </member>
-        <member name="P:log4net.ILog.IsErrorEnabled">
-            <summary>
-            Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Error"/> level.
-            </summary>
-            <value>
-            <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Error"/> events, <c>false</c> otherwise.
-            </value>
-            <remarks>
-            For more information see <see cref="P:log4net.ILog.IsDebugEnabled"/>.
-            </remarks>
-            <seealso cref="M:log4net.ILog.Error(System.Object)"/>
-            <seealso cref="M:log4net.ILog.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"/>
-            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
-        </member>
-        <member name="P:log4net.ILog.IsFatalEnabled">
-            <summary>
-            Checks if this logger is enabled for the <see cref="F:log4net.Core.Level.Fatal"/> level.
-            </summary>
-            <value>
-            <c>true</c> if this logger is enabled for <see cref="F:log4net.Core.Level.Fatal"/> events, <c>false</c> otherwise.
-            </value>
-            <remarks>
-            For more information see <see cref="P:log4net.ILog.IsDebugEnabled"/>.
-            </remarks>
-            <seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
-            <seealso cref="M:log4net.ILog.FatalFormat(System.IFormatProvider,System.String,System.Object[])"/>
-            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
-        </member>
-        <member name="M:log4net.Core.LogImpl.#ctor(log4net.Core.ILogger)">
-            <summary>
-            Construct a new wrapper for the specified logger.
-            </summary>
-            <param name="logger">The logger to wrap.</param>
-            <remarks>
-            <para>
-            Construct a new wrapper for the specified logger.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.ReloadLevels(log4net.Repository.ILoggerRepository)">
-            <summary>
-            Virtual method called when the configuration of the repository changes
-            </summary>
-            <param name="repository">the repository holding the levels</param>
-            <remarks>
-            <para>
-            Virtual method called when the configuration of the repository changes
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.Debug(System.Object)">
-            <summary>
-            Logs a message object with the <c>DEBUG</c> level.
-            </summary>
-            <param name="message">The message object to log.</param>
-            <remarks>
-            <para>
-            This method first checks if this logger is <c>DEBUG</c>
-            enabled by comparing the level of this logger with the 
-            <c>DEBUG</c> level. If this logger is
-            <c>DEBUG</c> enabled, then it converts the message object
-            (passed as parameter) to a string by invoking the appropriate
-            <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-            proceeds to call all the registered appenders in this logger 
-            and also higher in the hierarchy depending on the value of the 
-            additivity flag.
-            </para>
-            <para>
-            <b>WARNING</b> Note that passing an <see cref="T:System.Exception"/> 
-            to this method will print the name of the <see cref="T:System.Exception"/> 
-            but no stack trace. To print a stack trace use the 
-            <see cref="M:log4net.Core.LogImpl.Debug(System.Object,System.Exception)"/> form instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.Debug(System.Object,System.Exception)">
-            <summary>
-            Logs a message object with the <c>DEBUG</c> level
-            </summary>
-            <param name="message">The message object to log.</param>
-            <param name="exception">The exception to log, including its stack trace.</param>
-            <remarks>
-            <para>
-            Logs a message object with the <c>DEBUG</c> level including
-            the stack trace of the <see cref="T:System.Exception"/> <paramref name="exception"/> passed
-            as a parameter.
-            </para>
-            <para>
-            See the <see cref="M:log4net.Core.LogImpl.Debug(System.Object)"/> form for more detailed information.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.Core.LogImpl.Debug(System.Object)"/>
-        </member>
-        <member name="M:log4net.Core.LogImpl.DebugFormat(System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <c>DEBUG</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.DebugFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Debug(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.DebugFormat(System.String,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>DEBUG</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.DebugFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Debug(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.DebugFormat(System.String,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>DEBUG</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.DebugFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Debug(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.DebugFormat(System.String,System.Object,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>DEBUG</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <param name="arg2">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.DebugFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Debug(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.DebugFormat(System.IFormatProvider,System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <c>DEBUG</c> level.
-            </summary>
-            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Debug(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.Info(System.Object)">
-            <summary>
-            Logs a message object with the <c>INFO</c> level.
-            </summary>
-            <param name="message">The message object to log.</param>
-            <remarks>
-            <para>
-            This method first checks if this logger is <c>INFO</c>
-            enabled by comparing the level of this logger with the 
-            <c>INFO</c> level. If this logger is
-            <c>INFO</c> enabled, then it converts the message object
-            (passed as parameter) to a string by invoking the appropriate
-            <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-            proceeds to call all the registered appenders in this logger 
-            and also higher in the hierarchy depending on the value of 
-            the additivity flag.
-            </para>
-            <para>
-            <b>WARNING</b> Note that passing an <see cref="T:System.Exception"/> 
-            to this method will print the name of the <see cref="T:System.Exception"/> 
-            but no stack trace. To print a stack trace use the 
-            <see cref="M:log4net.Core.LogImpl.Info(System.Object,System.Exception)"/> form instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.Info(System.Object,System.Exception)">
-            <summary>
-            Logs a message object with the <c>INFO</c> level.
-            </summary>
-            <param name="message">The message object to log.</param>
-            <param name="exception">The exception to log, including its stack trace.</param>
-            <remarks>
-            <para>
-            Logs a message object with the <c>INFO</c> level including
-            the stack trace of the <see cref="T:System.Exception"/> <paramref name="exception"/> 
-            passed as a parameter.
-            </para>
-            <para>
-            See the <see cref="M:log4net.Core.LogImpl.Info(System.Object)"/> form for more detailed information.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.Core.LogImpl.Info(System.Object)"/>
-        </member>
-        <member name="M:log4net.Core.LogImpl.InfoFormat(System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <c>INFO</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.InfoFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Info(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.InfoFormat(System.String,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>INFO</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.InfoFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Info(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.InfoFormat(System.String,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>INFO</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.InfoFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Info(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.InfoFormat(System.String,System.Object,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>INFO</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <param name="arg2">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.InfoFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Info(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.InfoFormat(System.IFormatProvider,System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <c>INFO</c> level.
-            </summary>
-            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Info(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.Warn(System.Object)">
-            <summary>
-            Logs a message object with the <c>WARN</c> level.
-            </summary>
-            <param name="message">the message object to log</param>
-            <remarks>
-            <para>
-            This method first checks if this logger is <c>WARN</c>
-            enabled by comparing the level of this logger with the 
-            <c>WARN</c> level. If this logger is
-            <c>WARN</c> enabled, then it converts the message object
-            (passed as parameter) to a string by invoking the appropriate
-            <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-            proceeds to call all the registered appenders in this logger and 
-            also higher in the hierarchy depending on the value of the 
-            additivity flag.
-            </para>
-            <para>
-            <b>WARNING</b> Note that passing an <see cref="T:System.Exception"/> to this
-            method will print the name of the <see cref="T:System.Exception"/> but no
-            stack trace. To print a stack trace use the 
-            <see cref="M:log4net.Core.LogImpl.Warn(System.Object,System.Exception)"/> form instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.Warn(System.Object,System.Exception)">
-            <summary>
-            Logs a message object with the <c>WARN</c> level
-            </summary>
-            <param name="message">The message object to log.</param>
-            <param name="exception">The exception to log, including its stack trace.</param>
-            <remarks>
-            <para>
-            Logs a message object with the <c>WARN</c> level including
-            the stack trace of the <see cref="T:System.Exception"/> <paramref name="exception"/> 
-            passed as a parameter.
-            </para>
-            <para>
-            See the <see cref="M:log4net.Core.LogImpl.Warn(System.Object)"/> form for more detailed information.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.Core.LogImpl.Warn(System.Object)"/>
-        </member>
-        <member name="M:log4net.Core.LogImpl.WarnFormat(System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <c>WARN</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.WarnFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Warn(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.WarnFormat(System.String,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>WARN</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.WarnFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Warn(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.WarnFormat(System.String,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>WARN</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.WarnFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Warn(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.WarnFormat(System.String,System.Object,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>WARN</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <param name="arg2">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.WarnFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Warn(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.WarnFormat(System.IFormatProvider,System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <c>WARN</c> level.
-            </summary>
-            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Warn(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.Error(System.Object)">
-            <summary>
-            Logs a message object with the <c>ERROR</c> level.
-            </summary>
-            <param name="message">The message object to log.</param>
-            <remarks>
-            <para>
-            This method first checks if this logger is <c>ERROR</c>
-            enabled by comparing the level of this logger with the 
-            <c>ERROR</c> level. If this logger is
-            <c>ERROR</c> enabled, then it converts the message object
-            (passed as parameter) to a string by invoking the appropriate
-            <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-            proceeds to call all the registered appenders in this logger and 
-            also higher in the hierarchy depending on the value of the 
-            additivity flag.
-            </para>
-            <para>
-            <b>WARNING</b> Note that passing an <see cref="T:System.Exception"/> to this
-            method will print the name of the <see cref="T:System.Exception"/> but no
-            stack trace. To print a stack trace use the 
-            <see cref="M:log4net.Core.LogImpl.Error(System.Object,System.Exception)"/> form instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.Error(System.Object,System.Exception)">
-            <summary>
-            Logs a message object with the <c>ERROR</c> level
-            </summary>
-            <param name="message">The message object to log.</param>
-            <param name="exception">The exception to log, including its stack trace.</param>
-            <remarks>
-            <para>
-            Logs a message object with the <c>ERROR</c> level including
-            the stack trace of the <see cref="T:System.Exception"/> <paramref name="exception"/> 
-            passed as a parameter.
-            </para>
-            <para>
-            See the <see cref="M:log4net.Core.LogImpl.Error(System.Object)"/> form for more detailed information.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.Core.LogImpl.Error(System.Object)"/>
-        </member>
-        <member name="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <c>ERROR</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Error(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>ERROR</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Error(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>ERROR</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Error(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Object,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>ERROR</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <param name="arg2">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Error(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.ErrorFormat(System.IFormatProvider,System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <c>ERROR</c> level.
-            </summary>
-            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Error(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.Fatal(System.Object)">
-            <summary>
-            Logs a message object with the <c>FATAL</c> level.
-            </summary>
-            <param name="message">The message object to log.</param>
-            <remarks>
-            <para>
-            This method first checks if this logger is <c>FATAL</c>
-            enabled by comparing the level of this logger with the 
-            <c>FATAL</c> level. If this logger is
-            <c>FATAL</c> enabled, then it converts the message object
-            (passed as parameter) to a string by invoking the appropriate
-            <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then 
-            proceeds to call all the registered appenders in this logger and 
-            also higher in the hierarchy depending on the value of the 
-            additivity flag.
-            </para>
-            <para>
-            <b>WARNING</b> Note that passing an <see cref="T:System.Exception"/> to this
-            method will print the name of the <see cref="T:System.Exception"/> but no
-            stack trace. To print a stack trace use the 
-            <see cref="M:log4net.Core.LogImpl.Fatal(System.Object,System.Exception)"/> form instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.Fatal(System.Object,System.Exception)">
-            <summary>
-            Logs a message object with the <c>FATAL</c> level
-            </summary>
-            <param name="message">The message object to log.</param>
-            <param name="exception">The exception to log, including its stack trace.</param>
-            <remarks>
-            <para>
-            Logs a message object with the <c>FATAL</c> level including
-            the stack trace of the <see cref="T:System.Exception"/> <paramref name="exception"/> 
-            passed as a parameter.
-            </para>
-            <para>
-            See the <see cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/> form for more detailed information.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/>
-        </member>
-        <member name="M:log4net.Core.LogImpl.FatalFormat(System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <c>FATAL</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.FatalFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.FatalFormat(System.String,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>FATAL</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.FatalFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.FatalFormat(System.String,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>FATAL</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.FatalFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.FatalFormat(System.String,System.Object,System.Object,System.Object)">
-            <summary>
-            Logs a formatted message string with the <c>FATAL</c> level.
-            </summary>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="arg0">An Object to format</param>
-            <param name="arg1">An Object to format</param>
-            <param name="arg2">An Object to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            The string is formatted using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>
-            format provider. To specify a localized provider use the
-            <see cref="M:log4net.Core.LogImpl.FatalFormat(System.IFormatProvider,System.String,System.Object[])"/> method.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.FatalFormat(System.IFormatProvider,System.String,System.Object[])">
-            <summary>
-            Logs a formatted message string with the <c>FATAL</c> level.
-            </summary>
-            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information</param>
-            <param name="format">A String containing zero or more format items</param>
-            <param name="args">An Object array containing zero or more objects to format</param>
-            <remarks>
-            <para>
-            The message is formatted using the <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method. See
-            <c>String.Format</c> for details of the syntax of the format string and the behavior
-            of the formatting.
-            </para>
-            <para>
-            This method does not take an <see cref="T:System.Exception"/> object to include in the
-            log event. To pass an <see cref="T:System.Exception"/> use one of the <see cref="M:log4net.Core.LogImpl.Fatal(System.Object)"/>
-            methods instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.LogImpl.LoggerRepositoryConfigurationChanged(System.Object,System.EventArgs)">
-            <summary>
-            Event handler for the <see cref="E:log4net.Repository.ILoggerRepository.ConfigurationChanged"/> event
-            </summary>
-            <param name="sender">the repository</param>
-            <param name="e">Empty</param>
-        </member>
-        <member name="F:log4net.Core.LogImpl.ThisDeclaringType">
-            <summary>
-            The fully qualified name of this declaring type not the type of any subclass.
-            </summary>
-        </member>
-        <member name="P:log4net.Core.LogImpl.IsDebugEnabled">
-            <summary>
-            Checks if this logger is enabled for the <c>DEBUG</c>
-            level.
-            </summary>
-            <value>
-            <c>true</c> if this logger is enabled for <c>DEBUG</c> events,
-            <c>false</c> otherwise.
-            </value>
-            <remarks>
-            <para>
-            This function is intended to lessen the computational cost of
-            disabled log debug statements.
-            </para>
-            <para>
-            For some <c>log</c> Logger object, when you write:
-            </para>
-            <code lang="C#">
-            log.Debug("This is entry number: " + i );
-            </code>
-            <para>
-            You incur the cost constructing the message, concatenation in
-            this case, regardless of whether the message is logged or not.
-            </para>
-            <para>
-            If you are worried about speed, then you should write:
-            </para>
-            <code lang="C#">
-            if (log.IsDebugEnabled())
-            { 
-             log.Debug("This is entry number: " + i );
-            }
-            </code>
-            <para>
-            This way you will not incur the cost of parameter
-            construction if debugging is disabled for <c>log</c>. On
-            the other hand, if the <c>log</c> is debug enabled, you
-            will incur the cost of evaluating whether the logger is debug
-            enabled twice. Once in <c>IsDebugEnabled</c> and once in
-            the <c>Debug</c>.  This is an insignificant overhead
-            since evaluating a logger takes about 1% of the time it
-            takes to actually log.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.LogImpl.IsInfoEnabled">
-            <summary>
-            Checks if this logger is enabled for the <c>INFO</c> level.
-            </summary>
-            <value>
-            <c>true</c> if this logger is enabled for <c>INFO</c> events,
-            <c>false</c> otherwise.
-            </value>
-            <remarks>
-            <para>
-            See <see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/> for more information and examples 
-            of using this method.
-            </para>
-            </remarks>
-            <seealso cref="P:log4net.Core.LogImpl.IsDebugEnabled"/>
-        </member>
-        <member name="P:log4net.Core.LogImpl.IsWarnEnabled">
-            <summary>
-            Checks if this logger is enabled for the <c>WARN</c> level.
-            </summary>
-            <value>
-            <c>true</c> if this logger is enabled for <c>WARN</c> events,
-            <c>false</c> otherwise.
-            </value>
-            <remarks>
-            <para>
-            See <see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/> for more information and examples 
-            of using this method.
-            </para>
-            </remarks>
-            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
-        </member>
-        <member name="P:log4net.Core.LogImpl.IsErrorEnabled">
-            <summary>
-            Checks if this logger is enabled for the <c>ERROR</c> level.
-            </summary>
-            <value>
-            <c>true</c> if this logger is enabled for <c>ERROR</c> events,
-            <c>false</c> otherwise.
-            </value>
-            <remarks>
-            <para>
-            See <see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/> for more information and examples of using this method.
-            </para>
-            </remarks>
-            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
-        </member>
-        <member name="P:log4net.Core.LogImpl.IsFatalEnabled">
-            <summary>
-            Checks if this logger is enabled for the <c>FATAL</c> level.
-            </summary>
-            <value>
-            <c>true</c> if this logger is enabled for <c>FATAL</c> events,
-            <c>false</c> otherwise.
-            </value>
-            <remarks>
-            <para>
-            See <see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/> for more information and examples of using this method.
-            </para>
-            </remarks>
-            <seealso cref="P:log4net.ILog.IsDebugEnabled"/>
-        </member>
-        <member name="T:log4net.Core.SecurityContext">
-            <summary>
-            A SecurityContext used by log4net when interacting with protected resources
-            </summary>
-            <remarks>
-            <para>
-            A SecurityContext used by log4net when interacting with protected resources
-            for example with operating system services. This can be used to impersonate
-            a principal that has been granted privileges on the system resources.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Core.SecurityContext.Impersonate(System.Object)">
-            <summary>
-            Impersonate this SecurityContext
-            </summary>
-            <param name="state">State supplied by the caller</param>
-            <returns>An <see cref="T:System.IDisposable"/> instance that will
-            revoke the impersonation of this SecurityContext, or <c>null</c></returns>
-            <remarks>
-            <para>
-            Impersonate this security context. Further calls on the current
-            thread should now be made in the security context provided
-            by this object. When the <see cref="T:System.IDisposable"/> result 
-            <see cref="M:System.IDisposable.Dispose"/> method is called the security
-            context of the thread should be reverted to the state it was in
-            before <see cref="M:log4net.Core.SecurityContext.Impersonate(System.Object)"/> was called.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.SecurityContextProvider">
-            <summary>
-            The <see cref="T:log4net.Core.SecurityContextProvider"/> providers default <see cref="T:log4net.Core.SecurityContext"/> instances.
-            </summary>
-            <remarks>
-            <para>
-            A configured component that interacts with potentially protected system
-            resources uses a <see cref="T:log4net.Core.SecurityContext"/> to provide the elevated
-            privileges required. If the <see cref="T:log4net.Core.SecurityContext"/> object has
-            been not been explicitly provided to the component then the component
-            will request one from this <see cref="T:log4net.Core.SecurityContextProvider"/>.
-            </para>
-            <para>
-            By default the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is
-            an instance of <see cref="T:log4net.Core.SecurityContextProvider"/> which returns only
-            <see cref="T:log4net.Util.NullSecurityContext"/> objects. This is a reasonable default
-            where the privileges required are not know by the system.
-            </para>
-            <para>
-            This default behavior can be overridden by subclassing the <see cref="T:log4net.Core.SecurityContextProvider"/>
-            and overriding the <see cref="M:log4net.Core.SecurityContextProvider.CreateSecurityContext(System.Object)"/> method to return
-            the desired <see cref="T:log4net.Core.SecurityContext"/> objects. The default provider
-            can be replaced by programmatically setting the value of the 
-            <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> property.
-            </para>
-            <para>
-            An alternative is to use the <c>log4net.Config.SecurityContextProviderAttribute</c>
-            This attribute can be applied to an assembly in the same way as the
-            <c>log4net.Config.XmlConfiguratorAttribute"</c>. The attribute takes
-            the type to use as the <see cref="T:log4net.Core.SecurityContextProvider"/> as an argument.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Core.SecurityContextProvider.s_defaultProvider">
-            <summary>
-            The default provider
-            </summary>
-        </member>
-        <member name="M:log4net.Core.SecurityContextProvider.#ctor">
-            <summary>
-            Protected default constructor to allow subclassing
-            </summary>
-            <remarks>
-            <para>
-            Protected default constructor to allow subclassing
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.SecurityContextProvider.CreateSecurityContext(System.Object)">
-            <summary>
-            Create a SecurityContext for a consumer
-            </summary>
-            <param name="consumer">The consumer requesting the SecurityContext</param>
-            <returns>An impersonation context</returns>
-            <remarks>
-            <para>
-            The default implementation is to return a <see cref="T:log4net.Util.NullSecurityContext"/>.
-            </para>
-            <para>
-            Subclasses should override this method to provide their own
-            behavior.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Core.SecurityContextProvider.DefaultProvider">
-            <summary>
-            Gets or sets the default SecurityContextProvider
-            </summary>
-            <value>
-            The default SecurityContextProvider
-            </value>
-            <remarks>
-            <para>
-            The default provider is used by configured components that
-            require a <see cref="T:log4net.Core.SecurityContext"/> and have not had one
-            given to them.
-            </para>
-            <para>
-            By default this is an instance of <see cref="T:log4net.Core.SecurityContextProvider"/>
-            that returns <see cref="T:log4net.Util.NullSecurityContext"/> objects.
-            </para>
-            <para>
-            The default provider can be set programmatically by setting
-            the value of this property to a sub class of <see cref="T:log4net.Core.SecurityContextProvider"/>
-            that has the desired behavior.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.WrapperCreationHandler">
-            <summary>
-            Delegate used to handle creation of new wrappers.
-            </summary>
-            <param name="logger">The logger to wrap in a wrapper.</param>
-            <remarks>
-            <para>
-            Delegate used to handle creation of new wrappers. This delegate
-            is called from the <see cref="M:log4net.Core.WrapperMap.CreateNewWrapperObject(log4net.Core.ILogger)"/>
-            method to construct the wrapper for the specified logger.
-            </para>
-            <para>
-            The delegate to use is supplied to the <see cref="T:log4net.Core.WrapperMap"/>
-            constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Core.WrapperMap">
-            <summary>
-            Maps between logger objects and wrapper objects.
-            </summary>
-            <remarks>
-            <para>
-            This class maintains a mapping between <see cref="T:log4net.Core.ILogger"/> objects and
-            <see cref="T:log4net.Core.ILoggerWrapper"/> objects. Use the <see cref="M:log4net.Core.WrapperMap.GetWrapper(log4net.Core.ILogger)"/> method to 
-            lookup the <see cref="T:log4net.Core.ILoggerWrapper"/> for the specified <see cref="T:log4net.Core.ILogger"/>.
-            </para>
-            <para>
-            New wrapper instances are created by the <see cref="M:log4net.Core.WrapperMap.CreateNewWrapperObject(log4net.Core.ILogger)"/>
-            method. The default behavior is for this method to delegate construction
-            of the wrapper to the <see cref="T:log4net.Core.WrapperCreationHandler"/> delegate supplied
-            to the constructor. This allows specialization of the behavior without
-            requiring subclassing of this type.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Core.WrapperMap.#ctor(log4net.Core.WrapperCreationHandler)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Core.WrapperMap"/>
-            </summary>
-            <param name="createWrapperHandler">The handler to use to create the wrapper objects.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Core.WrapperMap"/> class with 
-            the specified handler to create the wrapper objects.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.WrapperMap.GetWrapper(log4net.Core.ILogger)">
-            <summary>
-            Gets the wrapper object for the specified logger.
-            </summary>
-            <returns>The wrapper object for the specified logger</returns>
-            <remarks>
-            <para>
-            If the logger is null then the corresponding wrapper is null.
-            </para>
-            <para>
-            Looks up the wrapper it it has previously been requested and
-            returns it. If the wrapper has never been requested before then
-            the <see cref="M:log4net.Core.WrapperMap.CreateNewWrapperObject(log4net.Core.ILogger)"/> virtual method is
-            called.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.WrapperMap.CreateNewWrapperObject(log4net.Core.ILogger)">
-            <summary>
-            Creates the wrapper object for the specified logger.
-            </summary>
-            <param name="logger">The logger to wrap in a wrapper.</param>
-            <returns>The wrapper object for the logger.</returns>
-            <remarks>
-            <para>
-            This implementation uses the <see cref="T:log4net.Core.WrapperCreationHandler"/>
-            passed to the constructor to create the wrapper. This method
-            can be overridden in a subclass.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.WrapperMap.RepositoryShutdown(log4net.Repository.ILoggerRepository)">
-            <summary>
-            Called when a monitored repository shutdown event is received.
-            </summary>
-            <param name="repository">The <see cref="T:log4net.Repository.ILoggerRepository"/> that is shutting down</param>
-            <remarks>
-            <para>
-            This method is called when a <see cref="T:log4net.Repository.ILoggerRepository"/> that this
-            <see cref="T:log4net.Core.WrapperMap"/> is holding loggers for has signaled its shutdown
-            event <see cref="E:log4net.Repository.ILoggerRepository.ShutdownEvent"/>. The default
-            behavior of this method is to release the references to the loggers
-            and their wrappers generated for this repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Core.WrapperMap.ILoggerRepository_Shutdown(System.Object,System.EventArgs)">
-            <summary>
-            Event handler for repository shutdown event.
-            </summary>
-            <param name="sender">The sender of the event.</param>
-            <param name="e">The event args.</param>
-        </member>
-        <member name="F:log4net.Core.WrapperMap.m_repositories">
-            <summary>
-            Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings
-            </summary>
-        </member>
-        <member name="F:log4net.Core.WrapperMap.m_createWrapperHandler">
-            <summary>
-            The handler to use to create the extension wrapper objects.
-            </summary>
-        </member>
-        <member name="F:log4net.Core.WrapperMap.m_shutdownHandler">
-            <summary>
-            Internal reference to the delegate used to register for repository shutdown events.
-            </summary>
-        </member>
-        <member name="P:log4net.Core.WrapperMap.Repositories">
-            <summary>
-            Gets the map of logger repositories.
-            </summary>
-            <value>
-            Map of logger repositories.
-            </value>
-            <remarks>
-            <para>
-            Gets the hashtable that is keyed on <see cref="T:log4net.Repository.ILoggerRepository"/>. The
-            values are hashtables keyed on <see cref="T:log4net.Core.ILogger"/> with the
-            value being the corresponding <see cref="T:log4net.Core.ILoggerWrapper"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.DateFormatter.AbsoluteTimeDateFormatter">
-            <summary>
-            Formats a <see cref="T:System.DateTime"/> as <c>"HH:mm:ss,fff"</c>.
-            </summary>
-            <remarks>
-            <para>
-            Formats a <see cref="T:System.DateTime"/> in the format <c>"HH:mm:ss,fff"</c> for example, <c>"15:49:37,459"</c>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.DateFormatter.IDateFormatter">
-            <summary>
-            Render a <see cref="T:System.DateTime"/> as a string.
-            </summary>
-            <remarks>
-            <para>
-            Interface to abstract the rendering of a <see cref="T:System.DateTime"/>
-            instance into a string.
-            </para>
-            <para>
-            The <see cref="M:log4net.DateFormatter.IDateFormatter.FormatDate(System.DateTime,System.IO.TextWriter)"/> method is used to render the
-            date to a text writer.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.DateFormatter.IDateFormatter.FormatDate(System.DateTime,System.IO.TextWriter)">
-            <summary>
-            Formats the specified date as a string.
-            </summary>
-            <param name="dateToFormat">The date to format.</param>
-            <param name="writer">The writer to write to.</param>
-            <remarks>
-            <para>
-            Format the <see cref="T:System.DateTime"/> as a string and write it
-            to the <see cref="T:System.IO.TextWriter"/> provided.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.AbsoluteTimeDateFormat">
-            <summary>
-            String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is <b>ABSOLUTE</b>.
-            </summary>
-        </member>
-        <member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.DateAndTimeDateFormat">
-            <summary>
-            String constant used to specify DateTimeDateFormat in layouts.  Current value is <b>DATE</b>.
-            </summary>
-        </member>
-        <member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.Iso8601TimeDateFormat">
-            <summary>
-            String constant used to specify ISO8601DateFormat in layouts. Current value is <b>ISO8601</b>.
-            </summary>
-        </member>
-        <member name="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)">
-            <summary>
-            Renders the date into a string. Format is <c>"HH:mm:ss"</c>.
-            </summary>
-            <param name="dateToFormat">The date to render into a string.</param>
-            <param name="buffer">The string builder to write to.</param>
-            <remarks>
-            <para>
-            Subclasses should override this method to render the date
-            into a string using a precision up to the second. This method
-            will be called at most once per second and the result will be
-            reused if it is needed again during the same second.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDate(System.DateTime,System.IO.TextWriter)">
-            <summary>
-            Renders the date into a string. Format is "HH:mm:ss,fff".
-            </summary>
-            <param name="dateToFormat">The date to render into a string.</param>
-            <param name="writer">The writer to write to.</param>
-            <remarks>
-            <para>
-            Uses the <see cref="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)"/> method to generate the
-            time string up to the seconds and then appends the current
-            milliseconds. The results from <see cref="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)"/> are
-            cached and <see cref="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)"/> is called at most once
-            per second.
-            </para>
-            <para>
-            Sub classes should override <see cref="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)"/>
-            rather than <see cref="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDate(System.DateTime,System.IO.TextWriter)"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.s_lastTimeToTheSecond">
-            <summary>
-            Last stored time with precision up to the second.
-            </summary>
-        </member>
-        <member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.s_lastTimeBuf">
-            <summary>
-            Last stored time with precision up to the second, formatted
-            as a string.
-            </summary>
-        </member>
-        <member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.s_lastTimeString">
-            <summary>
-            Last stored time with precision up to the second, formatted
-            as a string.
-            </summary>
-        </member>
-        <member name="T:log4net.DateFormatter.DateTimeDateFormatter">
-            <summary>
-            Formats a <see cref="T:System.DateTime"/> as <c>"dd MMM yyyy HH:mm:ss,fff"</c>
-            </summary>
-            <remarks>
-            <para>
-            Formats a <see cref="T:System.DateTime"/> in the format 
-            <c>"dd MMM yyyy HH:mm:ss,fff"</c> for example, 
-            <c>"06 Nov 1994 15:49:37,459"</c>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-            <author>Angelika Schnagl</author>
-        </member>
-        <member name="M:log4net.DateFormatter.DateTimeDateFormatter.#ctor">
-            <summary>
-            Default constructor.
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.DateFormatter.DateTimeDateFormatter"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.DateFormatter.DateTimeDateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)">
-            <summary>
-            Formats the date without the milliseconds part
-            </summary>
-            <param name="dateToFormat">The date to format.</param>
-            <param name="buffer">The string builder to write to.</param>
-            <remarks>
-            <para>
-            Formats a DateTime in the format <c>"dd MMM yyyy HH:mm:ss"</c>
-            for example, <c>"06 Nov 1994 15:49:37"</c>.
-            </para>
-            <para>
-            The base class will append the <c>",fff"</c> milliseconds section.
-            This method will only be called at most once per second.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.DateFormatter.DateTimeDateFormatter.m_dateTimeFormatInfo">
-            <summary>
-            The format info for the invariant culture.
-            </summary>
-        </member>
-        <member name="T:log4net.DateFormatter.Iso8601DateFormatter">
-            <summary>
-            Formats the <see cref="T:System.DateTime"/> as <c>"yyyy-MM-dd HH:mm:ss,fff"</c>.
-            </summary>
-            <remarks>
-            <para>
-            Formats the <see cref="T:System.DateTime"/> specified as a string: <c>"yyyy-MM-dd HH:mm:ss,fff"</c>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.DateFormatter.Iso8601DateFormatter.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.DateFormatter.Iso8601DateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)">
-            <summary>
-            Formats the date without the milliseconds part
-            </summary>
-            <param name="dateToFormat">The date to format.</param>
-            <param name="buffer">The string builder to write to.</param>
-            <remarks>
-            <para>
-            Formats the date specified as a string: <c>"yyyy-MM-dd HH:mm:ss"</c>.
-            </para>
-            <para>
-            The base class will append the <c>",fff"</c> milliseconds section.
-            This method will only be called at most once per second.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.DateFormatter.SimpleDateFormatter">
-            <summary>
-            Formats the <see cref="T:System.DateTime"/> using the <see cref="M:System.DateTime.ToString(System.String,System.IFormatProvider)"/> method.
-            </summary>
-            <remarks>
-            <para>
-            Formats the <see cref="T:System.DateTime"/> using the <see cref="T:System.DateTime"/> <see cref="M:System.DateTime.ToString(System.String,System.IFormatProvider)"/> method.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.DateFormatter.SimpleDateFormatter.#ctor(System.String)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="format">The format string.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.DateFormatter.SimpleDateFormatter"/> class 
-            with the specified format string.
-            </para>
-            <para>
-            The format string must be compatible with the options
-            that can be supplied to <see cref="M:System.DateTime.ToString(System.String,System.IFormatProvider)"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.DateFormatter.SimpleDateFormatter.FormatDate(System.DateTime,System.IO.TextWriter)">
-            <summary>
-            Formats the date using <see cref="M:System.DateTime.ToString(System.String,System.IFormatProvider)"/>.
-            </summary>
-            <param name="dateToFormat">The date to convert to a string.</param>
-            <param name="writer">The writer to write to.</param>
-            <remarks>
-            <para>
-            Uses the date format string supplied to the constructor to call
-            the <see cref="M:System.DateTime.ToString(System.String,System.IFormatProvider)"/> method to format the date.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.DateFormatter.SimpleDateFormatter.m_formatString">
-            <summary>
-            The format string used to format the <see cref="T:System.DateTime"/>.
-            </summary>
-            <remarks>
-            <para>
-            The format string must be compatible with the options
-            that can be supplied to <see cref="M:System.DateTime.ToString(System.String,System.IFormatProvider)"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Filter.DenyAllFilter">
-            <summary>
-            This filter drops all <see cref="T:log4net.Core.LoggingEvent"/>. 
-            </summary>
-            <remarks>
-            <para>
-            You can add this filter to the end of a filter chain to
-            switch from the default "accept all unless instructed otherwise"
-            filtering behavior to a "deny all unless instructed otherwise"
-            behavior.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Filter.FilterSkeleton">
-            <summary>
-            Subclass this type to implement customized logging event filtering
-            </summary>
-            <remarks>
-            <para>
-            Users should extend this class to implement customized logging
-            event filtering. Note that <see cref="T:log4net.Repository.Hierarchy.Logger"/> and 
-            <see cref="T:log4net.Appender.AppenderSkeleton"/>, the parent class of all standard
-            appenders, have built-in filtering rules. It is suggested that you
-            first use and understand the built-in rules before rushing to write
-            your own custom filters.
-            </para>
-            <para>
-            This abstract class assumes and also imposes that filters be
-            organized in a linear chain. The <see cref="M:log4net.Filter.FilterSkeleton.Decide(log4net.Core.LoggingEvent)"/>
-            method of each filter is called sequentially, in the order of their 
-            addition to the chain.
-            </para>
-            <para>
-            The <see cref="M:log4net.Filter.FilterSkeleton.Decide(log4net.Core.LoggingEvent)"/> method must return one
-            of the integer constants <see cref="F:log4net.Filter.FilterDecision.Deny"/>, 
-            <see cref="F:log4net.Filter.FilterDecision.Neutral"/> or <see cref="F:log4net.Filter.FilterDecision.Accept"/>.
-            </para>
-            <para>
-            If the value <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned, then the log event is dropped 
-            immediately without consulting with the remaining filters.
-            </para>
-            <para>
-            If the value <see cref="F:log4net.Filter.FilterDecision.Neutral"/> is returned, then the next filter
-            in the chain is consulted. If there are no more filters in the
-            chain, then the log event is logged. Thus, in the presence of no
-            filters, the default behavior is to log all logging events.
-            </para>
-            <para>
-            If the value <see cref="F:log4net.Filter.FilterDecision.Accept"/> is returned, then the log
-            event is logged without consulting the remaining filters.
-            </para>
-            <para>
-            The philosophy of log4net filters is largely inspired from the
-            Linux ipchains.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Filter.IFilter">
-            <summary>
-            Implement this interface to provide customized logging event filtering
-            </summary>
-            <remarks>
-            <para>
-            Users should implement this interface to implement customized logging
-            event filtering. Note that <see cref="T:log4net.Repository.Hierarchy.Logger"/> and 
-            <see cref="T:log4net.Appender.AppenderSkeleton"/>, the parent class of all standard
-            appenders, have built-in filtering rules. It is suggested that you
-            first use and understand the built-in rules before rushing to write
-            your own custom filters.
-            </para>
-            <para>
-            This abstract class assumes and also imposes that filters be
-            organized in a linear chain. The <see cref="M:log4net.Filter.IFilter.Decide(log4net.Core.LoggingEvent)"/>
-            method of each filter is called sequentially, in the order of their 
-            addition to the chain.
-            </para>
-            <para>
-            The <see cref="M:log4net.Filter.IFilter.Decide(log4net.Core.LoggingEvent)"/> method must return one
-            of the integer constants <see cref="F:log4net.Filter.FilterDecision.Deny"/>, 
-            <see cref="F:log4net.Filter.FilterDecision.Neutral"/> or <see cref="F:log4net.Filter.FilterDecision.Accept"/>.
-            </para>
-            <para>
-            If the value <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned, then the log event is dropped 
-            immediately without consulting with the remaining filters.
-            </para>
-            <para>
-            If the value <see cref="F:log4net.Filter.FilterDecision.Neutral"/> is returned, then the next filter
-            in the chain is consulted. If there are no more filters in the
-            chain, then the log event is logged. Thus, in the presence of no
-            filters, the default behavior is to log all logging events.
-            </para>
-            <para>
-            If the value <see cref="F:log4net.Filter.FilterDecision.Accept"/> is returned, then the log
-            event is logged without consulting the remaining filters.
-            </para>
-            <para>
-            The philosophy of log4net filters is largely inspired from the
-            Linux ipchains.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Filter.IFilter.Decide(log4net.Core.LoggingEvent)">
-            <summary>
-            Decide if the logging event should be logged through an appender.
-            </summary>
-            <param name="loggingEvent">The LoggingEvent to decide upon</param>
-            <returns>The decision of the filter</returns>
-            <remarks>
-            <para>
-            If the decision is <see cref="F:log4net.Filter.FilterDecision.Deny"/>, then the event will be
-            dropped. If the decision is <see cref="F:log4net.Filter.FilterDecision.Neutral"/>, then the next
-            filter, if any, will be invoked. If the decision is <see cref="F:log4net.Filter.FilterDecision.Accept"/> then
-            the event will be logged without consulting with other filters in
-            the chain.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Filter.IFilter.Next">
-            <summary>
-            Property to get and set the next filter
-            </summary>
-            <value>
-            The next filter in the chain
-            </value>
-            <remarks>
-            <para>
-            Filters are typically composed into chains. This property allows the next filter in 
-            the chain to be accessed.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Filter.FilterSkeleton.m_next">
-            <summary>
-            Points to the next filter in the filter chain.
-            </summary>
-            <remarks>
-            <para>
-            See <see cref="P:log4net.Filter.FilterSkeleton.Next"/> for more information.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Filter.FilterSkeleton.ActivateOptions">
-            <summary>
-            Initialize the filter with the options set
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Filter.FilterSkeleton.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Filter.FilterSkeleton.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Filter.FilterSkeleton.ActivateOptions"/> must be called again.
-            </para>
-            <para>
-            Typically filter's options become active immediately on set, 
-            however this method must still be called. 
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Filter.FilterSkeleton.Decide(log4net.Core.LoggingEvent)">
-            <summary>
-            Decide if the <see cref="T:log4net.Core.LoggingEvent"/> should be logged through an appender.
-            </summary>
-            <param name="loggingEvent">The <see cref="T:log4net.Core.LoggingEvent"/> to decide upon</param>
-            <returns>The decision of the filter</returns>
-            <remarks>
-            <para>
-            If the decision is <see cref="F:log4net.Filter.FilterDecision.Deny"/>, then the event will be
-            dropped. If the decision is <see cref="F:log4net.Filter.FilterDecision.Neutral"/>, then the next
-            filter, if any, will be invoked. If the decision is <see cref="F:log4net.Filter.FilterDecision.Accept"/> then
-            the event will be logged without consulting with other filters in
-            the chain.
-            </para>
-            <para>
-            This method is marked <c>abstract</c> and must be implemented
-            in a subclass.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Filter.FilterSkeleton.Next">
-            <summary>
-            Property to get and set the next filter
-            </summary>
-            <value>
-            The next filter in the chain
-            </value>
-            <remarks>
-            <para>
-            Filters are typically composed into chains. This property allows the next filter in 
-            the chain to be accessed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Filter.DenyAllFilter.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-        </member>
-        <member name="M:log4net.Filter.DenyAllFilter.Decide(log4net.Core.LoggingEvent)">
-            <summary>
-            Always returns the integer constant <see cref="F:log4net.Filter.FilterDecision.Deny"/>
-            </summary>
-            <param name="loggingEvent">the LoggingEvent to filter</param>
-            <returns>Always returns <see cref="F:log4net.Filter.FilterDecision.Deny"/></returns>
-            <remarks>
-            <para>
-            Ignores the event being logged and just returns
-            <see cref="F:log4net.Filter.FilterDecision.Deny"/>. This can be used to change the default filter
-            chain behavior from <see cref="F:log4net.Filter.FilterDecision.Accept"/> to <see cref="F:log4net.Filter.FilterDecision.Deny"/>. This filter
-            should only be used as the last filter in the chain
-            as any further filters will be ignored!
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Filter.FilterDecision">
-            <summary>
-            The return result from <see cref="M:log4net.Filter.IFilter.Decide(log4net.Core.LoggingEvent)"/>
-            </summary>
-            <remarks>
-            <para>
-            The return result from <see cref="M:log4net.Filter.IFilter.Decide(log4net.Core.LoggingEvent)"/>
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Filter.FilterDecision.Deny">
-            <summary>
-            The log event must be dropped immediately without 
-            consulting with the remaining filters, if any, in the chain.
-            </summary>
-        </member>
-        <member name="F:log4net.Filter.FilterDecision.Neutral">
-            <summary>
-            This filter is neutral with respect to the log event. 
-            The remaining filters, if any, should be consulted for a final decision.
-            </summary>
-        </member>
-        <member name="F:log4net.Filter.FilterDecision.Accept">
-            <summary>
-            The log event must be logged immediately without 
-            consulting with the remaining filters, if any, in the chain.
-            </summary>
-        </member>
-        <member name="T:log4net.Filter.LevelMatchFilter">
-            <summary>
-            This is a very simple filter based on <see cref="T:log4net.Core.Level"/> matching.
-            </summary>
-            <remarks>
-            <para>
-            The filter admits two options <see cref="P:log4net.Filter.LevelMatchFilter.LevelToMatch"/> and
-            <see cref="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch"/>. If there is an exact match between the value
-            of the <see cref="P:log4net.Filter.LevelMatchFilter.LevelToMatch"/> option and the <see cref="T:log4net.Core.Level"/> of the 
-            <see cref="T:log4net.Core.LoggingEvent"/>, then the <see cref="M:log4net.Filter.LevelMatchFilter.Decide(log4net.Core.LoggingEvent)"/> method returns <see cref="F:log4net.Filter.FilterDecision.Accept"/> in 
-            case the <see cref="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch"/> option value is set
-            to <c>true</c>, if it is <c>false</c> then 
-            <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned. If the <see cref="T:log4net.Core.Level"/> does not match then
-            the result will be <see cref="F:log4net.Filter.FilterDecision.Neutral"/>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="F:log4net.Filter.LevelMatchFilter.m_acceptOnMatch">
-            <summary>
-            flag to indicate if the filter should <see cref="F:log4net.Filter.FilterDecision.Accept"/> on a match
-            </summary>
-        </member>
-        <member name="F:log4net.Filter.LevelMatchFilter.m_levelToMatch">
-            <summary>
-            the <see cref="T:log4net.Core.Level"/> to match against
-            </summary>
-        </member>
-        <member name="M:log4net.Filter.LevelMatchFilter.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-        </member>
-        <member name="M:log4net.Filter.LevelMatchFilter.Decide(log4net.Core.LoggingEvent)">
-            <summary>
-            Tests if the <see cref="T:log4net.Core.Level"/> of the logging event matches that of the filter
-            </summary>
-            <param name="loggingEvent">the event to filter</param>
-            <returns>see remarks</returns>
-            <remarks>
-            <para>
-            If the <see cref="T:log4net.Core.Level"/> of the event matches the level of the
-            filter then the result of the function depends on the
-            value of <see cref="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch"/>. If it is true then
-            the function will return <see cref="F:log4net.Filter.FilterDecision.Accept"/>, it it is false then it
-            will return <see cref="F:log4net.Filter.FilterDecision.Deny"/>. If the <see cref="T:log4net.Core.Level"/> does not match then
-            the result will be <see cref="F:log4net.Filter.FilterDecision.Neutral"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch">
-            <summary>
-            <see cref="F:log4net.Filter.FilterDecision.Accept"/> when matching <see cref="P:log4net.Filter.LevelMatchFilter.LevelToMatch"/>
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch"/> property is a flag that determines
-            the behavior when a matching <see cref="T:log4net.Core.Level"/> is found. If the
-            flag is set to true then the filter will <see cref="F:log4net.Filter.FilterDecision.Accept"/> the 
-            logging event, otherwise it will <see cref="F:log4net.Filter.FilterDecision.Deny"/> the event.
-            </para>
-            <para>
-            The default is <c>true</c> i.e. to <see cref="F:log4net.Filter.FilterDecision.Accept"/> the event.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Filter.LevelMatchFilter.LevelToMatch">
-            <summary>
-            The <see cref="T:log4net.Core.Level"/> that the filter will match
-            </summary>
-            <remarks>
-            <para>
-            The level that this filter will attempt to match against the 
-            <see cref="T:log4net.Core.LoggingEvent"/> level. If a match is found then
-            the result depends on the value of <see cref="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Filter.LevelRangeFilter">
-            <summary>
-            This is a simple filter based on <see cref="T:log4net.Core.Level"/> matching.
-            </summary>
-            <remarks>
-            <para>
-            The filter admits three options <see cref="P:log4net.Filter.LevelRangeFilter.LevelMin"/> and <see cref="P:log4net.Filter.LevelRangeFilter.LevelMax"/>
-            that determine the range of priorities that are matched, and
-            <see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/>. If there is a match between the range
-            of priorities and the <see cref="T:log4net.Core.Level"/> of the <see cref="T:log4net.Core.LoggingEvent"/>, then the 
-            <see cref="M:log4net.Filter.LevelRangeFilter.Decide(log4net.Core.LoggingEvent)"/> method returns <see cref="F:log4net.Filter.FilterDecision.Accept"/> in case the <see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/> 
-            option value is set to <c>true</c>, if it is <c>false</c>
-            then <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned. If there is no match, <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="F:log4net.Filter.LevelRangeFilter.m_acceptOnMatch">
-            <summary>
-            Flag to indicate the behavior when matching a <see cref="T:log4net.Core.Level"/>
-            </summary>
-        </member>
-        <member name="F:log4net.Filter.LevelRangeFilter.m_levelMin">
-            <summary>
-            the minimum <see cref="T:log4net.Core.Level"/> value to match
-            </summary>
-        </member>
-        <member name="F:log4net.Filter.LevelRangeFilter.m_levelMax">
-            <summary>
-            the maximum <see cref="T:log4net.Core.Level"/> value to match
-            </summary>
-        </member>
-        <member name="M:log4net.Filter.LevelRangeFilter.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-        </member>
-        <member name="M:log4net.Filter.LevelRangeFilter.Decide(log4net.Core.LoggingEvent)">
-            <summary>
-            Check if the event should be logged.
-            </summary>
-            <param name="loggingEvent">the logging event to check</param>
-            <returns>see remarks</returns>
-            <remarks>
-            <para>
-            If the <see cref="T:log4net.Core.Level"/> of the logging event is outside the range
-            matched by this filter then <see cref="F:log4net.Filter.FilterDecision.Deny"/>
-            is returned. If the <see cref="T:log4net.Core.Level"/> is matched then the value of
-            <see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/> is checked. If it is true then
-            <see cref="F:log4net.Filter.FilterDecision.Accept"/> is returned, otherwise
-            <see cref="F:log4net.Filter.FilterDecision.Neutral"/> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch">
-            <summary>
-            <see cref="F:log4net.Filter.FilterDecision.Accept"/> when matching <see cref="P:log4net.Filter.LevelRangeFilter.LevelMin"/> and <see cref="P:log4net.Filter.LevelRangeFilter.LevelMax"/>
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/> property is a flag that determines
-            the behavior when a matching <see cref="T:log4net.Core.Level"/> is found. If the
-            flag is set to true then the filter will <see cref="F:log4net.Filter.FilterDecision.Accept"/> the 
-            logging event, otherwise it will <see cref="F:log4net.Filter.FilterDecision.Neutral"/> the event.
-            </para>
-            <para>
-            The default is <c>true</c> i.e. to <see cref="F:log4net.Filter.FilterDecision.Accept"/> the event.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Filter.LevelRangeFilter.LevelMin">
-            <summary>
-            Set the minimum matched <see cref="T:log4net.Core.Level"/>
-            </summary>
-            <remarks>
-            <para>
-            The minimum level that this filter will attempt to match against the 
-            <see cref="T:log4net.Core.LoggingEvent"/> level. If a match is found then
-            the result depends on the value of <see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Filter.LevelRangeFilter.LevelMax">
-            <summary>
-            Sets the maximum matched <see cref="T:log4net.Core.Level"/>
-            </summary>
-            <remarks>
-            <para>
-            The maximum level that this filter will attempt to match against the 
-            <see cref="T:log4net.Core.LoggingEvent"/> level. If a match is found then
-            the result depends on the value of <see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Filter.LoggerMatchFilter">
-            <summary>
-            Simple filter to match a string in the event's logger name.
-            </summary>
-            <remarks>
-            <para>
-            The works very similar to the <see cref="T:log4net.Filter.LevelMatchFilter"/>. It admits two 
-            options <see cref="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch"/> and <see cref="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch"/>. If the 
-            <see cref="P:log4net.Core.LoggingEvent.LoggerName"/> of the <see cref="T:log4net.Core.LoggingEvent"/> starts 
-            with the value of the <see cref="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch"/> option, then the 
-            <see cref="M:log4net.Filter.LoggerMatchFilter.Decide(log4net.Core.LoggingEvent)"/> method returns <see cref="F:log4net.Filter.FilterDecision.Accept"/> in 
-            case the <see cref="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch"/> option value is set to <c>true</c>, 
-            if it is <c>false</c> then <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned.
-            </para>
-            </remarks>
-            <author>Daniel Cazzulino</author>
-        </member>
-        <member name="F:log4net.Filter.LoggerMatchFilter.m_acceptOnMatch">
-            <summary>
-            Flag to indicate the behavior when we have a match
-            </summary>
-        </member>
-        <member name="F:log4net.Filter.LoggerMatchFilter.m_loggerToMatch">
-            <summary>
-            The logger name string to substring match against the event
-            </summary>
-        </member>
-        <member name="M:log4net.Filter.LoggerMatchFilter.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-        </member>
-        <member name="M:log4net.Filter.LoggerMatchFilter.Decide(log4net.Core.LoggingEvent)">
-            <summary>
-            Check if this filter should allow the event to be logged
-            </summary>
-            <param name="loggingEvent">the event being logged</param>
-            <returns>see remarks</returns>
-            <remarks>
-            <para>
-            The rendered message is matched against the <see cref="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch"/>.
-            If the <see cref="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch"/> equals the beginning of 
-            the incoming <see cref="P:log4net.Core.LoggingEvent.LoggerName"/> (<see cref="M:System.String.StartsWith(System.String)"/>)
-            then a match will have occurred. If no match occurs
-            this function will return <see cref="F:log4net.Filter.FilterDecision.Neutral"/>
-            allowing other filters to check the event. If a match occurs then
-            the value of <see cref="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch"/> is checked. If it is
-            true then <see cref="F:log4net.Filter.FilterDecision.Accept"/> is returned otherwise
-            <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch">
-            <summary>
-            <see cref="F:log4net.Filter.FilterDecision.Accept"/> when matching <see cref="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch"/>
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch"/> property is a flag that determines
-            the behavior when a matching <see cref="T:log4net.Core.Level"/> is found. If the
-            flag is set to true then the filter will <see cref="F:log4net.Filter.FilterDecision.Accept"/> the 
-            logging event, otherwise it will <see cref="F:log4net.Filter.FilterDecision.Deny"/> the event.
-            </para>
-            <para>
-            The default is <c>true</c> i.e. to <see cref="F:log4net.Filter.FilterDecision.Accept"/> the event.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch">
-            <summary>
-            The <see cref="P:log4net.Core.LoggingEvent.LoggerName"/> that the filter will match
-            </summary>
-            <remarks>
-            <para>
-            This filter will attempt to match this value against logger name in
-            the following way. The match will be done against the beginning of the
-            logger name (using <see cref="M:System.String.StartsWith(System.String)"/>). The match is
-            case sensitive. If a match is found then
-            the result depends on the value of <see cref="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Filter.MdcFilter">
-            <summary>
-            Simple filter to match a keyed string in the <see cref="T:log4net.MDC"/>
-            </summary>
-            <remarks>
-            <para>
-            Simple filter to match a keyed string in the <see cref="T:log4net.MDC"/>
-            </para>
-            <para>
-            As the MDC has been replaced with layered properties the
-            <see cref="T:log4net.Filter.PropertyFilter"/> should be used instead.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Filter.PropertyFilter">
-            <summary>
-            Simple filter to match a string an event property
-            </summary>
-            <remarks>
-            <para>
-            Simple filter to match a string in the value for a
-            specific event property
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="T:log4net.Filter.StringMatchFilter">
-            <summary>
-            Simple filter to match a string in the rendered message
-            </summary>
-            <remarks>
-            <para>
-            Simple filter to match a string in the rendered message
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="F:log4net.Filter.StringMatchFilter.m_acceptOnMatch">
-            <summary>
-            Flag to indicate the behavior when we have a match
-            </summary>
-        </member>
-        <member name="F:log4net.Filter.StringMatchFilter.m_stringToMatch">
-            <summary>
-            The string to substring match against the message
-            </summary>
-        </member>
-        <member name="F:log4net.Filter.StringMatchFilter.m_stringRegexToMatch">
-            <summary>
-            A string regex to match
-            </summary>
-        </member>
-        <member name="F:log4net.Filter.StringMatchFilter.m_regexToMatch">
-            <summary>
-            A regex object to match (generated from m_stringRegexToMatch)
-            </summary>
-        </member>
-        <member name="M:log4net.Filter.StringMatchFilter.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-        </member>
-        <member name="M:log4net.Filter.StringMatchFilter.ActivateOptions">
-            <summary>
-            Initialize and precompile the Regex if required
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Filter.StringMatchFilter.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Filter.StringMatchFilter.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Filter.StringMatchFilter.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Filter.StringMatchFilter.Decide(log4net.Core.LoggingEvent)">
-            <summary>
-            Check if this filter should allow the event to be logged
-            </summary>
-            <param name="loggingEvent">the event being logged</param>
-            <returns>see remarks</returns>
-            <remarks>
-            <para>
-            The rendered message is matched against the <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/>.
-            If the <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/> occurs as a substring within
-            the message then a match will have occurred. If no match occurs
-            this function will return <see cref="F:log4net.Filter.FilterDecision.Neutral"/>
-            allowing other filters to check the event. If a match occurs then
-            the value of <see cref="P:log4net.Filter.StringMatchFilter.AcceptOnMatch"/> is checked. If it is
-            true then <see cref="F:log4net.Filter.FilterDecision.Accept"/> is returned otherwise
-            <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Filter.StringMatchFilter.AcceptOnMatch">
-            <summary>
-            <see cref="F:log4net.Filter.FilterDecision.Accept"/> when matching <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/> or <see cref="P:log4net.Filter.StringMatchFilter.RegexToMatch"/>
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="P:log4net.Filter.StringMatchFilter.AcceptOnMatch"/> property is a flag that determines
-            the behavior when a matching <see cref="T:log4net.Core.Level"/> is found. If the
-            flag is set to true then the filter will <see cref="F:log4net.Filter.FilterDecision.Accept"/> the 
-            logging event, otherwise it will <see cref="F:log4net.Filter.FilterDecision.Neutral"/> the event.
-            </para>
-            <para>
-            The default is <c>true</c> i.e. to <see cref="F:log4net.Filter.FilterDecision.Accept"/> the event.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Filter.StringMatchFilter.StringToMatch">
-            <summary>
-            Sets the static string to match
-            </summary>
-            <remarks>
-            <para>
-            The string that will be substring matched against
-            the rendered message. If the message contains this
-            string then the filter will match. If a match is found then
-            the result depends on the value of <see cref="P:log4net.Filter.StringMatchFilter.AcceptOnMatch"/>.
-            </para>
-            <para>
-            One of <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/> or <see cref="P:log4net.Filter.StringMatchFilter.RegexToMatch"/>
-            must be specified.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Filter.StringMatchFilter.RegexToMatch">
-            <summary>
-            Sets the regular expression to match
-            </summary>
-            <remarks>
-            <para>
-            The regular expression pattern that will be matched against
-            the rendered message. If the message matches this
-            pattern then the filter will match. If a match is found then
-            the result depends on the value of <see cref="P:log4net.Filter.StringMatchFilter.AcceptOnMatch"/>.
-            </para>
-            <para>
-            One of <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/> or <see cref="P:log4net.Filter.StringMatchFilter.RegexToMatch"/>
-            must be specified.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Filter.PropertyFilter.m_key">
-            <summary>
-            The key to use to lookup the string from the event properties
-            </summary>
-        </member>
-        <member name="M:log4net.Filter.PropertyFilter.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-        </member>
-        <member name="M:log4net.Filter.PropertyFilter.Decide(log4net.Core.LoggingEvent)">
-            <summary>
-            Check if this filter should allow the event to be logged
-            </summary>
-            <param name="loggingEvent">the event being logged</param>
-            <returns>see remarks</returns>
-            <remarks>
-            <para>
-            The event property for the <see cref="P:log4net.Filter.PropertyFilter.Key"/> is matched against 
-            the <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/>.
-            If the <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/> occurs as a substring within
-            the property value then a match will have occurred. If no match occurs
-            this function will return <see cref="F:log4net.Filter.FilterDecision.Neutral"/>
-            allowing other filters to check the event. If a match occurs then
-            the value of <see cref="P:log4net.Filter.StringMatchFilter.AcceptOnMatch"/> is checked. If it is
-            true then <see cref="F:log4net.Filter.FilterDecision.Accept"/> is returned otherwise
-            <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Filter.PropertyFilter.Key">
-            <summary>
-            The key to lookup in the event properties and then match against.
-            </summary>
-            <remarks>
-            <para>
-            The key name to use to lookup in the properties map of the
-            <see cref="T:log4net.Core.LoggingEvent"/>. The match will be performed against 
-            the value of this property if it exists.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Filter.NdcFilter">
-            <summary>
-            Simple filter to match a string in the <see cref="T:log4net.NDC"/>
-            </summary>
-            <remarks>
-            <para>
-            Simple filter to match a string in the <see cref="T:log4net.NDC"/>
-            </para>
-            <para>
-            As the MDC has been replaced with named stacks stored in the
-            properties collections the <see cref="T:log4net.Filter.PropertyFilter"/> should 
-            be used instead.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Filter.NdcFilter.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Sets the <see cref="P:log4net.Filter.PropertyFilter.Key"/> to <c>"NDC"</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.AppDomainPatternConverter">
-            <summary>
-            Write the event appdomain name to the output
-            </summary>
-            <remarks>
-            <para>
-            Writes the <see cref="P:log4net.Core.LoggingEvent.Domain"/> to the output writer.
-            </para>
-            </remarks>
-            <author>Daniel Cazzulino</author>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="T:log4net.Layout.Pattern.PatternLayoutConverter">
-            <summary>
-            Abstract class that provides the formatting functionality that 
-            derived classes need.
-            </summary>
-            <remarks>
-            Conversion specifiers in a conversion patterns are parsed to
-            individual PatternConverters. Each of which is responsible for
-            converting a logging event in a converter specific manner.
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="T:log4net.Util.PatternConverter">
-            <summary>
-            Abstract class that provides the formatting functionality that 
-            derived classes need.
-            </summary>
-            <remarks>
-            <para>
-            Conversion specifiers in a conversion patterns are parsed to
-            individual PatternConverters. Each of which is responsible for
-            converting a logging event in a converter specific manner.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="F:log4net.Util.PatternConverter.c_renderBufferSize">
-            <summary>
-            Initial buffer size
-            </summary>
-        </member>
-        <member name="F:log4net.Util.PatternConverter.c_renderBufferMaxCapacity">
-            <summary>
-            Maximum buffer size before it is recycled
-            </summary>
-        </member>
-        <member name="M:log4net.Util.PatternConverter.#ctor">
-            <summary>
-            Protected constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.PatternConverter"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternConverter.Convert(System.IO.TextWriter,System.Object)">
-            <summary>
-            Evaluate this pattern converter and write the output to a writer.
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="state">The state object on which the pattern converter should be executed.</param>
-            <remarks>
-            <para>
-            Derived pattern converters must override this method in order to
-            convert conversion specifiers in the appropriate way.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternConverter.SetNext(log4net.Util.PatternConverter)">
-            <summary>
-            Set the next pattern converter in the chains
-            </summary>
-            <param name="patternConverter">the pattern converter that should follow this converter in the chain</param>
-            <returns>the next converter</returns>
-            <remarks>
-            <para>
-            The PatternConverter can merge with its neighbor during this method (or a sub class).
-            Therefore the return value may or may not be the value of the argument passed in.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternConverter.Format(System.IO.TextWriter,System.Object)">
-            <summary>
-            Write the pattern converter to the writer with appropriate formatting
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="state">The state object on which the pattern converter should be executed.</param>
-            <remarks>
-            <para>
-            This method calls <see cref="M:log4net.Util.PatternConverter.Convert(System.IO.TextWriter,System.Object)"/> to allow the subclass to perform
-            appropriate conversion of the pattern converter. If formatting options have
-            been specified via the <see cref="P:log4net.Util.PatternConverter.FormattingInfo"/> then this method will
-            apply those formattings before writing the output.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternConverter.SpacePad(System.IO.TextWriter,System.Int32)">
-            <summary>
-            Fast space padding method.
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> to which the spaces will be appended.</param>
-            <param name="length">The number of spaces to be padded.</param>
-            <remarks>
-            <para>
-            Fast space padding method.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.PatternConverter.m_option">
-            <summary>
-            The option string to the converter
-            </summary>
-        </member>
-        <member name="M:log4net.Util.PatternConverter.WriteDictionary(System.IO.TextWriter,log4net.Repository.ILoggerRepository,System.Collections.IDictionary)">
-            <summary>
-            Write an dictionary to a <see cref="T:System.IO.TextWriter"/>
-            </summary>
-            <param name="writer">the writer to write to</param>
-            <param name="repository">a <see cref="T:log4net.Repository.ILoggerRepository"/> to use for object conversion</param>
-            <param name="value">the value to write to the writer</param>
-            <remarks>
-            <para>
-            Writes the <see cref="T:System.Collections.IDictionary"/> to a writer in the form:
-            </para>
-            <code>
-            {key1=value1, key2=value2, key3=value3}
-            </code>
-            <para>
-            If the <see cref="T:log4net.Repository.ILoggerRepository"/> specified
-            is not null then it is used to render the key and value to text, otherwise
-            the object's ToString method is called.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternConverter.WriteObject(System.IO.TextWriter,log4net.Repository.ILoggerRepository,System.Object)">
-            <summary>
-            Write an object to a <see cref="T:System.IO.TextWriter"/>
-            </summary>
-            <param name="writer">the writer to write to</param>
-            <param name="repository">a <see cref="T:log4net.Repository.ILoggerRepository"/> to use for object conversion</param>
-            <param name="value">the value to write to the writer</param>
-            <remarks>
-            <para>
-            Writes the Object to a writer. If the <see cref="T:log4net.Repository.ILoggerRepository"/> specified
-            is not null then it is used to render the object to text, otherwise
-            the object's ToString method is called.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.PatternConverter.Next">
-            <summary>
-            Get the next pattern converter in the chain
-            </summary>
-            <value>
-            the next pattern converter in the chain
-            </value>
-            <remarks>
-            <para>
-            Get the next pattern converter in the chain
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.PatternConverter.FormattingInfo">
-            <summary>
-            Gets or sets the formatting info for this converter
-            </summary>
-            <value>
-            The formatting info for this converter
-            </value>
-            <remarks>
-            <para>
-            Gets or sets the formatting info for this converter
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.PatternConverter.Option">
-            <summary>
-            Gets or sets the option value for this converter
-            </summary>
-            <summary>
-            The option for this converter
-            </summary>
-            <remarks>
-            <para>
-            Gets or sets the option value for this converter
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.Pattern.PatternLayoutConverter.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Layout.Pattern.PatternLayoutConverter"/> class.
-            </summary>
-        </member>
-        <member name="M:log4net.Layout.Pattern.PatternLayoutConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Derived pattern converters must override this method in order to
-            convert conversion specifiers in the correct way.
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">The <see cref="T:log4net.Core.LoggingEvent"/> on which the pattern converter should be executed.</param>
-        </member>
-        <member name="M:log4net.Layout.Pattern.PatternLayoutConverter.Convert(System.IO.TextWriter,System.Object)">
-            <summary>
-            Derived pattern converters must override this method in order to
-            convert conversion specifiers in the correct way.
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="state">The state object on which the pattern converter should be executed.</param>
-        </member>
-        <member name="F:log4net.Layout.Pattern.PatternLayoutConverter.m_ignoresException">
-            <summary>
-            Flag indicating if this converter handles exceptions
-            </summary>
-            <remarks>
-            <c>false</c> if this converter handles exceptions
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.Pattern.PatternLayoutConverter.IgnoresException">
-            <summary>
-            Flag indicating if this converter handles the logging event exception
-            </summary>
-            <value><c>false</c> if this converter handles the logging event exception</value>
-            <remarks>
-            <para>
-            If this converter handles the exception object contained within
-            <see cref="T:log4net.Core.LoggingEvent"/>, then this property should be set to
-            <c>false</c>. Otherwise, if the layout ignores the exception
-            object, then the property should be set to <c>true</c>.
-            </para>
-            <para>
-            Set this value to override a this default setting. The default
-            value is <c>true</c>, this converter does not handle the exception.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.Pattern.AppDomainPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Write the event appdomain name to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            Writes the <see cref="P:log4net.Core.LoggingEvent.Domain"/> to the output <paramref name="writer"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.DatePatternConverter">
-            <summary>
-            Date pattern converter, uses a <see cref="T:log4net.DateFormatter.IDateFormatter"/> to format 
-            the date of a <see cref="T:log4net.Core.LoggingEvent"/>.
-            </summary>
-            <remarks>
-            <para>
-            Render the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> to the writer as a string.
-            </para>
-            <para>
-            The value of the <see cref="P:log4net.Util.PatternConverter.Option"/> determines 
-            the formatting of the date. The following values are allowed:
-            <list type="definition">
-            	<listheader>
-            		<term>Option value</term>
-            		<description>Output</description>
-            	</listheader>
-            	<item>
-            		<term>ISO8601</term>
-            		<description>
-            		Uses the <see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/> formatter. 
-            		Formats using the <c>"yyyy-MM-dd HH:mm:ss,fff"</c> pattern.
-            		</description>
-            	</item>
-            	<item>
-            		<term>DATE</term>
-            		<description>
-            		Uses the <see cref="T:log4net.DateFormatter.DateTimeDateFormatter"/> formatter. 
-            		Formats using the <c>"dd MMM yyyy HH:mm:ss,fff"</c> for example, <c>"06 Nov 1994 15:49:37,459"</c>.
-            		</description>
-            	</item>
-            	<item>
-            		<term>ABSOLUTE</term>
-            		<description>
-            		Uses the <see cref="T:log4net.DateFormatter.AbsoluteTimeDateFormatter"/> formatter. 
-            		Formats using the <c>"HH:mm:ss,yyyy"</c> for example, <c>"15:49:37,459"</c>.
-            		</description>
-            	</item>
-            	<item>
-            		<term>other</term>
-            		<description>
-            		Any other pattern string uses the <see cref="T:log4net.DateFormatter.SimpleDateFormatter"/> formatter. 
-            		This formatter passes the pattern string to the <see cref="T:System.DateTime"/> 
-            		<see cref="M:System.DateTime.ToString(System.String)"/> method.
-            		For details on valid patterns see 
-            		<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemglobalizationdatetimeformatinfoclasstopic.asp">DateTimeFormatInfo Class</a>.
-            		</description>
-            	</item>
-            </list>
-            </para>
-            <para>
-            The <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> is in the local time zone and is rendered in that zone.
-            To output the time in Universal time see <see cref="T:log4net.Layout.Pattern.UtcDatePatternConverter"/>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Layout.Pattern.DatePatternConverter.m_dateFormatter">
-            <summary>
-            The <see cref="T:log4net.DateFormatter.IDateFormatter"/> used to render the date to a string
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.DateFormatter.IDateFormatter"/> used to render the date to a string
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.Pattern.DatePatternConverter.ActivateOptions">
-            <summary>
-            Initialize the converter pattern based on the <see cref="P:log4net.Util.PatternConverter.Option"/> property.
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Layout.Pattern.DatePatternConverter.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Layout.Pattern.DatePatternConverter.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Layout.Pattern.DatePatternConverter.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.Pattern.DatePatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Convert the pattern into the rendered message
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            Pass the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> to the <see cref="T:log4net.DateFormatter.IDateFormatter"/>
-            for it to render it to the writer.
-            </para>
-            <para>
-            The <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> passed is in the local time zone.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.ExceptionPatternConverter">
-            <summary>
-            Write the exception text to the output
-            </summary>
-            <remarks>
-            <para>
-            If an exception object is stored in the logging event
-            it will be rendered into the pattern output with a
-            trailing newline.
-            </para>
-            <para>
-            If there is no exception then nothing will be output
-            and no trailing newline will be appended.
-            It is typical to put a newline before the exception
-            and to have the exception as the last data in the pattern.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.ExceptionPatternConverter.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-        </member>
-        <member name="M:log4net.Layout.Pattern.ExceptionPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Write the exception text to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            If an exception object is stored in the logging event
-            it will be rendered into the pattern output with a
-            trailing newline.
-            </para>
-            <para>
-            If there is no exception then nothing will be output
-            and no trailing newline will be appended.
-            It is typical to put a newline before the exception
-            and to have the exception as the last data in the pattern.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.FileLocationPatternConverter">
-            <summary>
-            Writes the caller location file name to the output
-            </summary>
-            <remarks>
-            <para>
-            Writes the value of the <see cref="P:log4net.Core.LocationInfo.FileName"/> for
-            the event to the output writer.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.FileLocationPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Write the caller location file name to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            Writes the value of the <see cref="P:log4net.Core.LocationInfo.FileName"/> for
-            the <paramref name="loggingEvent"/> to the output <paramref name="writer"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.FullLocationPatternConverter">
-            <summary>
-            Write the caller location info to the output
-            </summary>
-            <remarks>
-            <para>
-            Writes the <see cref="P:log4net.Core.LocationInfo.FullInfo"/> to the output writer.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.FullLocationPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Write the caller location info to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            Writes the <see cref="P:log4net.Core.LocationInfo.FullInfo"/> to the output writer.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.IdentityPatternConverter">
-            <summary>
-            Writes the event identity to the output
-            </summary>
-            <remarks>
-            <para>
-            Writes the value of the <see cref="P:log4net.Core.LoggingEvent.Identity"/> to
-            the output writer.
-            </para>
-            </remarks>
-            <author>Daniel Cazzulino</author>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.IdentityPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Writes the event identity to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            Writes the value of the <paramref name="loggingEvent"/> 
-            <see cref="P:log4net.Core.LoggingEvent.Identity"/> to
-            the output <paramref name="writer"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.LevelPatternConverter">
-            <summary>
-            Write the event level to the output
-            </summary>
-            <remarks>
-            <para>
-            Writes the display name of the event <see cref="P:log4net.Core.LoggingEvent.Level"/>
-            to the writer.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.LevelPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Write the event level to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            Writes the <see cref="P:log4net.Core.Level.DisplayName"/> of the <paramref name="loggingEvent"/> <see cref="P:log4net.Core.LoggingEvent.Level"/>
-            to the <paramref name="writer"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.LineLocationPatternConverter">
-            <summary>
-            Write the caller location line number to the output
-            </summary>
-            <remarks>
-            <para>
-            Writes the value of the <see cref="P:log4net.Core.LocationInfo.LineNumber"/> for
-            the event to the output writer.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.LineLocationPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Write the caller location line number to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            Writes the value of the <see cref="P:log4net.Core.LocationInfo.LineNumber"/> for
-            the <paramref name="loggingEvent"/> to the output <paramref name="writer"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.LoggerPatternConverter">
-            <summary>
-            Converter for logger name
-            </summary>
-            <remarks>
-            <para>
-            Outputs the <see cref="P:log4net.Core.LoggingEvent.LoggerName"/> of the event.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="T:log4net.Layout.Pattern.NamedPatternConverter">
-            <summary>
-            Converter to output and truncate <c>'.'</c> separated strings
-            </summary>
-            <remarks>
-            <para>
-            This abstract class supports truncating a <c>'.'</c> separated string
-            to show a specified number of elements from the right hand side.
-            This is used to truncate class names that are fully qualified.
-            </para>
-            <para>
-            Subclasses should override the <see cref="M:log4net.Layout.Pattern.NamedPatternConverter.GetFullyQualifiedName(log4net.Core.LoggingEvent)"/> method to
-            return the fully qualified string.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.NamedPatternConverter.ActivateOptions">
-            <summary>
-            Initialize the converter 
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Layout.Pattern.NamedPatternConverter.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Layout.Pattern.NamedPatternConverter.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Layout.Pattern.NamedPatternConverter.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.Pattern.NamedPatternConverter.GetFullyQualifiedName(log4net.Core.LoggingEvent)">
-            <summary>
-            Get the fully qualified string data
-            </summary>
-            <param name="loggingEvent">the event being logged</param>
-            <returns>the fully qualified name</returns>
-            <remarks>
-            <para>
-            Overridden by subclasses to get the fully qualified name before the
-            precision is applied to it.
-            </para>
-            <para>
-            Return the fully qualified <c>'.'</c> (dot/period) separated string.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.Pattern.NamedPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Convert the pattern to the rendered message
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            Render the <see cref="M:log4net.Layout.Pattern.NamedPatternConverter.GetFullyQualifiedName(log4net.Core.LoggingEvent)"/> to the precision
-            specified by the <see cref="P:log4net.Util.PatternConverter.Option"/> property.
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.Pattern.LoggerPatternConverter.GetFullyQualifiedName(log4net.Core.LoggingEvent)">
-            <summary>
-            Gets the fully qualified name of the logger
-            </summary>
-            <param name="loggingEvent">the event being logged</param>
-            <returns>The fully qualified logger name</returns>
-            <remarks>
-            <para>
-            Returns the <see cref="P:log4net.Core.LoggingEvent.LoggerName"/> of the <paramref name="loggingEvent"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.MessagePatternConverter">
-            <summary>
-            Writes the event message to the output
-            </summary>
-            <remarks>
-            <para>
-            Uses the <see cref="M:log4net.Core.LoggingEvent.WriteRenderedMessage(System.IO.TextWriter)"/> method
-            to write out the event message.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.MessagePatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Writes the event message to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            Uses the <see cref="M:log4net.Core.LoggingEvent.WriteRenderedMessage(System.IO.TextWriter)"/> method
-            to write out the event message.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.MethodLocationPatternConverter">
-            <summary>
-            Write the method name to the output
-            </summary>
-            <remarks>
-            <para>
-            Writes the caller location <see cref="P:log4net.Core.LocationInfo.MethodName"/> to
-            the output.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.MethodLocationPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Write the method name to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            Writes the caller location <see cref="P:log4net.Core.LocationInfo.MethodName"/> to
-            the output.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.NdcPatternConverter">
-            <summary>
-            Converter to include event NDC
-            </summary>
-            <remarks>
-            <para>
-            Outputs the value of the event property named <c>NDC</c>.
-            </para>
-            <para>
-            The <see cref="T:log4net.Layout.Pattern.PropertyPatternConverter"/> should be used instead.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.NdcPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Write the event NDC to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            As the thread context stacks are now stored in named event properties
-            this converter simply looks up the value of the <c>NDC</c> property.
-            </para>
-            <para>
-            The <see cref="T:log4net.Layout.Pattern.PropertyPatternConverter"/> should be used instead.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.PropertyPatternConverter">
-            <summary>
-            Property pattern converter
-            </summary>
-            <remarks>
-            <para>
-            Writes out the value of a named property. The property name
-            should be set in the <see cref="P:log4net.Util.PatternConverter.Option"/>
-            property.
-            </para>
-            <para>
-            If the <see cref="P:log4net.Util.PatternConverter.Option"/> is set to <c>null</c>
-            then all the properties are written as key value pairs.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.PropertyPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Write the property value to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            Writes out the value of a named property. The property name
-            should be set in the <see cref="P:log4net.Util.PatternConverter.Option"/>
-            property.
-            </para>
-            <para>
-            If the <see cref="P:log4net.Util.PatternConverter.Option"/> is set to <c>null</c>
-            then all the properties are written as key value pairs.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.RelativeTimePatternConverter">
-            <summary>
-            Converter to output the relative time of the event
-            </summary>
-            <remarks>
-            <para>
-            Converter to output the time of the event relative to the start of the program.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.RelativeTimePatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Write the relative time to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            Writes out the relative time of the event in milliseconds.
-            That is the number of milliseconds between the event <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/>
-            and the <see cref="P:log4net.Core.LoggingEvent.StartTime"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.Pattern.RelativeTimePatternConverter.TimeDifferenceInMillis(System.DateTime,System.DateTime)">
-            <summary>
-            Helper method to get the time difference between two DateTime objects
-            </summary>
-            <param name="start">start time (in the current local time zone)</param>
-            <param name="end">end time (in the current local time zone)</param>
-            <returns>the time difference in milliseconds</returns>
-        </member>
-        <member name="T:log4net.Layout.Pattern.ThreadPatternConverter">
-            <summary>
-            Converter to include event thread name
-            </summary>
-            <remarks>
-            <para>
-            Writes the <see cref="P:log4net.Core.LoggingEvent.ThreadName"/> to the output.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.ThreadPatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Write the ThreadName to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            Writes the <see cref="P:log4net.Core.LoggingEvent.ThreadName"/> to the <paramref name="writer"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.TypeNamePatternConverter">
-            <summary>
-            Pattern converter for the class name
-            </summary>
-            <remarks>
-            <para>
-            Outputs the <see cref="P:log4net.Core.LocationInfo.ClassName"/> of the event.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.TypeNamePatternConverter.GetFullyQualifiedName(log4net.Core.LoggingEvent)">
-            <summary>
-            Gets the fully qualified name of the class
-            </summary>
-            <param name="loggingEvent">the event being logged</param>
-            <returns>The fully qualified type name for the caller location</returns>
-            <remarks>
-            <para>
-            Returns the <see cref="P:log4net.Core.LocationInfo.ClassName"/> of the <paramref name="loggingEvent"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Pattern.UserNamePatternConverter">
-            <summary>
-            Converter to include event user name
-            </summary>
-            <author>Douglas de la Torre</author>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.UserNamePatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Convert the pattern to the rendered message
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-        </member>
-        <member name="T:log4net.Layout.Pattern.UtcDatePatternConverter">
-            <summary>
-            Write the TimeStamp to the output
-            </summary>
-            <remarks>
-            <para>
-            Date pattern converter, uses a <see cref="T:log4net.DateFormatter.IDateFormatter"/> to format 
-            the date of a <see cref="T:log4net.Core.LoggingEvent"/>.
-            </para>
-            <para>
-            Uses a <see cref="T:log4net.DateFormatter.IDateFormatter"/> to format the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> 
-            in Universal time.
-            </para>
-            <para>
-            See the <see cref="T:log4net.Layout.Pattern.DatePatternConverter"/> for details on the date pattern syntax.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Layout.Pattern.DatePatternConverter"/>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.Pattern.UtcDatePatternConverter.Convert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Write the TimeStamp to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            Pass the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> to the <see cref="T:log4net.DateFormatter.IDateFormatter"/>
-            for it to render it to the writer.
-            </para>
-            <para>
-            The <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> passed is in the local time zone, this is converted
-            to Universal time before it is rendered.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Layout.Pattern.DatePatternConverter"/>
-        </member>
-        <member name="T:log4net.Layout.ExceptionLayout">
-            <summary>
-            A Layout that renders only the Exception text from the logging event
-            </summary>
-            <remarks>
-            <para>
-            A Layout that renders only the Exception text from the logging event.
-            </para>
-            <para>
-            This Layout should only be used with appenders that utilize multiple
-            layouts (e.g. <see cref="T:log4net.Appender.AdoNetAppender"/>).
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Layout.LayoutSkeleton">
-            <summary>
-            Extend this abstract class to create your own log layout format.
-            </summary>
-            <remarks>
-            <para>
-            This is the base implementation of the <see cref="T:log4net.Layout.ILayout"/>
-            interface. Most layout objects should extend this class.
-            </para>
-            </remarks>
-            <remarks>
-            <note type="inheritinfo">
-            <para>
-            Subclasses must implement the <see cref="M:log4net.Layout.LayoutSkeleton.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)"/>
-            method.
-            </para>
-            <para>
-            Subclasses should set the <see cref="P:log4net.Layout.LayoutSkeleton.IgnoresException"/> in their default
-            constructor.
-            </para>
-            </note>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Layout.ILayout">
-            <summary>
-            Interface implemented by layout objects
-            </summary>
-            <remarks>
-            <para>
-            An <see cref="T:log4net.Layout.ILayout"/> object is used to format a <see cref="T:log4net.Core.LoggingEvent"/>
-            as text. The <see cref="M:log4net.Layout.ILayout.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)"/> method is called by an
-            appender to transform the <see cref="T:log4net.Core.LoggingEvent"/> into a string.
-            </para>
-            <para>
-            The layout can also supply <see cref="P:log4net.Layout.ILayout.Header"/> and <see cref="P:log4net.Layout.ILayout.Footer"/>
-            text that is appender before any events and after all the events respectively.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Layout.ILayout.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Implement this method to create your own layout format.
-            </summary>
-            <param name="writer">The TextWriter to write the formatted event to</param>
-            <param name="loggingEvent">The event to format</param>
-            <remarks>
-            <para>
-            This method is called by an appender to format
-            the <paramref name="loggingEvent"/> as text and output to a writer.
-            </para>
-            <para>
-            If the caller does not have a <see cref="T:System.IO.TextWriter"/> and prefers the
-            event to be formatted as a <see cref="T:System.String"/> then the following
-            code can be used to format the event into a <see cref="T:System.IO.StringWriter"/>.
-            </para>
-            <code lang="C#">
-            StringWriter writer = new StringWriter();
-            Layout.Format(writer, loggingEvent);
-            string formattedEvent = writer.ToString();
-            </code>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.ILayout.ContentType">
-            <summary>
-            The content type output by this layout. 
-            </summary>
-            <value>The content type</value>
-            <remarks>
-            <para>
-            The content type output by this layout.
-            </para>
-            <para>
-            This is a MIME type e.g. <c>"text/plain"</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.ILayout.Header">
-            <summary>
-            The header for the layout format.
-            </summary>
-            <value>the layout header</value>
-            <remarks>
-            <para>
-            The Header text will be appended before any logging events
-            are formatted and appended.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.ILayout.Footer">
-            <summary>
-            The footer for the layout format.
-            </summary>
-            <value>the layout footer</value>
-            <remarks>
-            <para>
-            The Footer text will be appended after all the logging events
-            have been formatted and appended.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.ILayout.IgnoresException">
-            <summary>
-            Flag indicating if this layout handle exceptions
-            </summary>
-            <value><c>false</c> if this layout handles exceptions</value>
-            <remarks>
-            <para>
-            If this layout handles the exception object contained within
-            <see cref="T:log4net.Core.LoggingEvent"/>, then the layout should return
-            <c>false</c>. Otherwise, if the layout ignores the exception
-            object, then the layout should return <c>true</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Layout.LayoutSkeleton.m_header">
-            <summary>
-            The header text
-            </summary>
-            <remarks>
-            <para>
-            See <see cref="P:log4net.Layout.LayoutSkeleton.Header"/> for more information.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Layout.LayoutSkeleton.m_footer">
-            <summary>
-            The footer text
-            </summary>
-            <remarks>
-            <para>
-            See <see cref="P:log4net.Layout.LayoutSkeleton.Footer"/> for more information.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Layout.LayoutSkeleton.m_ignoresException">
-            <summary>
-            Flag indicating if this layout handles exceptions
-            </summary>
-            <remarks>
-            <para>
-            <c>false</c> if this layout handles exceptions
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.LayoutSkeleton.#ctor">
-            <summary>
-            Empty default constructor
-            </summary>
-            <remarks>
-            <para>
-            Empty default constructor
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.LayoutSkeleton.ActivateOptions">
-            <summary>
-            Activate component options
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Layout.LayoutSkeleton.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Layout.LayoutSkeleton.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Layout.LayoutSkeleton.ActivateOptions"/> must be called again.
-            </para>
-            <para>
-            This method must be implemented by the subclass.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.LayoutSkeleton.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Implement this method to create your own layout format.
-            </summary>
-            <param name="writer">The TextWriter to write the formatted event to</param>
-            <param name="loggingEvent">The event to format</param>
-            <remarks>
-            <para>
-            This method is called by an appender to format
-            the <paramref name="loggingEvent"/> as text.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.LayoutSkeleton.ContentType">
-            <summary>
-            The content type output by this layout. 
-            </summary>
-            <value>The content type is <c>"text/plain"</c></value>
-            <remarks>
-            <para>
-            The content type output by this layout.
-            </para>
-            <para>
-            This base class uses the value <c>"text/plain"</c>.
-            To change this value a subclass must override this
-            property.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.LayoutSkeleton.Header">
-            <summary>
-            The header for the layout format.
-            </summary>
-            <value>the layout header</value>
-            <remarks>
-            <para>
-            The Header text will be appended before any logging events
-            are formatted and appended.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.LayoutSkeleton.Footer">
-            <summary>
-            The footer for the layout format.
-            </summary>
-            <value>the layout footer</value>
-            <remarks>
-            <para>
-            The Footer text will be appended after all the logging events
-            have been formatted and appended.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.LayoutSkeleton.IgnoresException">
-            <summary>
-            Flag indicating if this layout handles exceptions
-            </summary>
-            <value><c>false</c> if this layout handles exceptions</value>
-            <remarks>
-            <para>
-            If this layout handles the exception object contained within
-            <see cref="T:log4net.Core.LoggingEvent"/>, then the layout should return
-            <c>false</c>. Otherwise, if the layout ignores the exception
-            object, then the layout should return <c>true</c>.
-            </para>
-            <para>
-            Set this value to override a this default setting. The default
-            value is <c>true</c>, this layout does not handle the exception.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.ExceptionLayout.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Constructs a ExceptionLayout
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.ExceptionLayout.ActivateOptions">
-            <summary>
-            Activate component options
-            </summary>
-            <remarks>
-            <para>
-            Part of the <see cref="T:log4net.Core.IOptionHandler"/> component activation
-            framework.
-            </para>
-            <para>
-            This method does nothing as options become effective immediately.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.ExceptionLayout.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Gets the exception text from the logging event
-            </summary>
-            <param name="writer">The TextWriter to write the formatted event to</param>
-            <param name="loggingEvent">the event being logged</param>
-            <remarks>
-            <para>
-            Write the exception string to the <see cref="T:System.IO.TextWriter"/>.
-            The exception string is retrieved from <see cref="M:log4net.Core.LoggingEvent.GetExceptionString"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.IRawLayout">
-            <summary>
-            Interface for raw layout objects
-            </summary>
-            <remarks>
-            <para>
-            Interface used to format a <see cref="T:log4net.Core.LoggingEvent"/>
-            to an object.
-            </para>
-            <para>
-            This interface should not be confused with the
-            <see cref="T:log4net.Layout.ILayout"/> interface. This interface is used in
-            only certain specialized situations where a raw object is
-            required rather than a formatted string. The <see cref="T:log4net.Layout.ILayout"/>
-            is not generally useful than this interface.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Layout.IRawLayout.Format(log4net.Core.LoggingEvent)">
-            <summary>
-            Implement this method to create your own layout format.
-            </summary>
-            <param name="loggingEvent">The event to format</param>
-            <returns>returns the formatted event</returns>
-            <remarks>
-            <para>
-            Implement this method to create your own layout format.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.Layout2RawLayoutAdapter">
-            <summary>
-            Adapts any <see cref="T:log4net.Layout.ILayout"/> to a <see cref="T:log4net.Layout.IRawLayout"/>
-            </summary>
-            <remarks>
-            <para>
-            Where an <see cref="T:log4net.Layout.IRawLayout"/> is required this adapter
-            allows a <see cref="T:log4net.Layout.ILayout"/> to be specified.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="F:log4net.Layout.Layout2RawLayoutAdapter.m_layout">
-            <summary>
-            The layout to adapt
-            </summary>
-        </member>
-        <member name="M:log4net.Layout.Layout2RawLayoutAdapter.#ctor(log4net.Layout.ILayout)">
-            <summary>
-            Construct a new adapter
-            </summary>
-            <param name="layout">the layout to adapt</param>
-            <remarks>
-            <para>
-            Create the adapter for the specified <paramref name="layout"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.Layout2RawLayoutAdapter.Format(log4net.Core.LoggingEvent)">
-            <summary>
-            Format the logging event as an object.
-            </summary>
-            <param name="loggingEvent">The event to format</param>
-            <returns>returns the formatted event</returns>
-            <remarks>
-            <para>
-            Format the logging event as an object.
-            </para>
-            <para>
-            Uses the <see cref="T:log4net.Layout.ILayout"/> object supplied to 
-            the constructor to perform the formatting.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.PatternLayout">
-            <summary>
-            A flexible layout configurable with pattern string.
-            </summary>
-            <remarks>
-            <para>
-            The goal of this class is to <see cref="M:log4net.Layout.PatternLayout.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)"/> a 
-            <see cref="T:log4net.Core.LoggingEvent"/> as a string. The results
-            depend on the <i>conversion pattern</i>.
-            </para>
-            <para>
-            The conversion pattern is closely related to the conversion
-            pattern of the printf function in C. A conversion pattern is
-            composed of literal text and format control expressions called
-            <i>conversion specifiers</i>.
-            </para>
-            <para>
-            <i>You are free to insert any literal text within the conversion
-            pattern.</i>
-            </para>
-            <para>
-            Each conversion specifier starts with a percent sign (%) and is
-            followed by optional <i>format modifiers</i> and a <i>conversion
-            pattern name</i>. The conversion pattern name specifies the type of
-            data, e.g. logger, level, date, thread name. The format
-            modifiers control such things as field width, padding, left and
-            right justification. The following is a simple example.
-            </para>
-            <para>
-            Let the conversion pattern be <b>"%-5level [%thread]: %message%newline"</b> and assume
-            that the log4net environment was set to use a PatternLayout. Then the
-            statements
-            </para>
-            <code lang="C#">
-            ILog log = LogManager.GetLogger(typeof(TestApp));
-            log.Debug("Message 1");
-            log.Warn("Message 2");   
-            </code>
-            <para>would yield the output</para>
-            <code>
-            DEBUG [main]: Message 1
-            WARN  [main]: Message 2  
-            </code>
-            <para>
-            Note that there is no explicit separator between text and
-            conversion specifiers. The pattern parser knows when it has reached
-            the end of a conversion specifier when it reads a conversion
-            character. In the example above the conversion specifier
-            <b>%-5level</b> means the level of the logging event should be left
-            justified to a width of five characters.
-            </para>
-            <para>
-            The recognized conversion pattern names are:
-            </para>
-            <list type="table">
-                <listheader>
-                    <term>Conversion Pattern Name</term>
-                    <description>Effect</description>
-                </listheader>
-                <item>
-                    <term>a</term>
-                    <description>Equivalent to <b>appdomain</b></description>
-                </item>
-                <item>
-                    <term>appdomain</term>
-                    <description>
-            			Used to output the friendly name of the AppDomain where the 
-            			logging event was generated. 
-                    </description>
-                </item>
-                <item>
-                    <term>c</term>
-                    <description>Equivalent to <b>logger</b></description>
-                </item>
-                <item>
-                    <term>C</term>
-                    <description>Equivalent to <b>type</b></description>
-                </item>
-                <item>
-                    <term>class</term>
-                    <description>Equivalent to <b>type</b></description>
-                </item>
-                <item>
-                    <term>d</term>
-                    <description>Equivalent to <b>date</b></description>
-                </item>
-                <item>
-            		<term>date</term> 
-            		<description>
-            			<para>
-            			Used to output the date of the logging event in the local time zone. 
-            			To output the date in universal time use the <c>%utcdate</c> pattern.
-            			The date conversion 
-            			specifier may be followed by a <i>date format specifier</i> enclosed 
-            			between braces. For example, <b>%date{HH:mm:ss,fff}</b> or
-            			<b>%date{dd MMM yyyy HH:mm:ss,fff}</b>.  If no date format specifier is 
-            			given then ISO8601 format is
-            			assumed (<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>).
-            			</para>
-            			<para>
-            			The date format specifier admits the same syntax as the
-            			time pattern string of the <see cref="M:System.DateTime.ToString(System.String)"/>.
-            			</para>
-            			<para>
-            			For better results it is recommended to use the log4net date
-            			formatters. These can be specified using one of the strings
-            			"ABSOLUTE", "DATE" and "ISO8601" for specifying 
-            			<see cref="T:log4net.DateFormatter.AbsoluteTimeDateFormatter"/>, 
-            			<see cref="T:log4net.DateFormatter.DateTimeDateFormatter"/> and respectively 
-            			<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>. For example, 
-            			<b>%date{ISO8601}</b> or <b>%date{ABSOLUTE}</b>.
-            			</para>
-            			<para>
-            			These dedicated date formatters perform significantly
-            			better than <see cref="M:System.DateTime.ToString(System.String)"/>.
-            			</para>
-            		</description>
-            	</item>
-            	<item>
-            		<term>exception</term>
-            		<description>
-            			<para>
-            			Used to output the exception passed in with the log message.
-            			</para>
-            			<para>
-            			If an exception object is stored in the logging event
-            			it will be rendered into the pattern output with a
-            			trailing newline.
-            			If there is no exception then nothing will be output
-            			and no trailing newline will be appended.
-            			It is typical to put a newline before the exception
-            			and to have the exception as the last data in the pattern.
-            			</para>
-            		</description>
-            	</item>
-                <item>
-                    <term>F</term>
-                    <description>Equivalent to <b>file</b></description>
-                </item>
-            	<item>
-            		<term>file</term>
-            		<description>
-            			<para>
-            			Used to output the file name where the logging request was
-            			issued.
-            			</para>
-            			<para>
-            			<b>WARNING</b> Generating caller location information is
-            			extremely slow. Its use should be avoided unless execution speed
-            			is not an issue.
-            			</para>
-            			<para>
-            			See the note below on the availability of caller location information.
-            			</para>
-            		</description>
-            	</item>
-            	<item>
-            		<term>identity</term>
-            		<description>
-            			<para>
-            			Used to output the user name for the currently active user
-            			(Principal.Identity.Name).
-            			</para>
-            			<para>
-            			<b>WARNING</b> Generating caller information is
-            			extremely slow. Its use should be avoided unless execution speed
-            			is not an issue.
-            			</para>
-            		</description>
-            	</item>
-                <item>
-                    <term>l</term>
-                    <description>Equivalent to <b>location</b></description>
-                </item>
-                <item>
-                    <term>L</term>
-                    <description>Equivalent to <b>line</b></description>
-                </item>
-            	<item>
-            		<term>location</term>
-            		<description>
-            			<para>
-            			Used to output location information of the caller which generated
-            			the logging event.
-            			</para>
-            			<para>
-            			The location information depends on the CLI implementation but
-            			usually consists of the fully qualified name of the calling
-            			method followed by the callers source the file name and line
-            			number between parentheses.
-            			</para>
-            			<para>
-            			The location information can be very useful. However, its
-            			generation is <b>extremely</b> slow. Its use should be avoided
-            			unless execution speed is not an issue.
-            			</para>
-            			<para>
-            			See the note below on the availability of caller location information.
-            			</para>
-            		</description>
-            	</item>
-            	<item>
-            		<term>level</term>
-            		<description>
-            			<para>
-            			Used to output the level of the logging event.
-            			</para>
-            		</description>
-            	</item>
-            	<item>
-            		<term>line</term>
-            		<description>
-            			<para>
-            			Used to output the line number from where the logging request
-            			was issued.
-            			</para>
-            			<para>
-            			<b>WARNING</b> Generating caller location information is
-            			extremely slow. Its use should be avoided unless execution speed
-            			is not an issue.
-            			</para>
-            			<para>
-            			See the note below on the availability of caller location information.
-            			</para>
-            		</description>
-            	</item>
-                <item>
-                    <term>logger</term>
-                    <description>
-                        <para>
-            			Used to output the logger of the logging event. The
-            			logger conversion specifier can be optionally followed by
-            			<i>precision specifier</i>, that is a decimal constant in
-            			brackets.
-                        </para>
-            			<para>
-            			If a precision specifier is given, then only the corresponding
-            			number of right most components of the logger name will be
-            			printed. By default the logger name is printed in full.
-            			</para>
-            			<para>
-            			For example, for the logger name "a.b.c" the pattern
-            			<b>%logger{2}</b> will output "b.c".
-            			</para>
-                    </description>
-                </item>
-                <item>
-                    <term>m</term>
-                    <description>Equivalent to <b>message</b></description>
-                </item>
-                <item>
-                    <term>M</term>
-                    <description>Equivalent to <b>method</b></description>
-                </item>
-            	<item>
-            		<term>message</term>
-            		<description>
-            			<para>
-            			Used to output the application supplied message associated with 
-            			the logging event.
-            			</para>
-            		</description>
-            	</item>
-            	<item>
-            		<term>mdc</term>
-            		<description>
-            			<para>
-            			The MDC (old name for the ThreadContext.Properties) is now part of the
-            			combined event properties. This pattern is supported for compatibility
-            			but is equivalent to <b>property</b>.
-            			</para>
-            		</description>
-            	</item>
-            	<item>
-            		<term>method</term>
-            		<description>
-            			<para>
-            			Used to output the method name where the logging request was
-            			issued.
-            			</para>
-            			<para>
-            			<b>WARNING</b> Generating caller location information is
-            			extremely slow. Its use should be avoided unless execution speed
-            			is not an issue.
-            			</para>
-            			<para>
-            			See the note below on the availability of caller location information.
-            			</para>
-            		</description>
-            	</item>
-                <item>
-                    <term>n</term>
-                    <description>Equivalent to <b>newline</b></description>
-                </item>
-            	<item>
-            		<term>newline</term>
-            		<description>
-            			<para>
-            			Outputs the platform dependent line separator character or
-            			characters.
-            			</para>
-            			<para>
-            			This conversion pattern offers the same performance as using 
-            			non-portable line separator strings such as	"\n", or "\r\n". 
-            			Thus, it is the preferred way of specifying a line separator.
-            			</para> 
-            		</description>
-            	</item>
-            	<item>
-            		<term>ndc</term>
-            		<description>
-            			<para>
-            			Used to output the NDC (nested diagnostic context) associated
-            			with the thread that generated the logging event.
-            			</para>
-            		</description>
-            	</item>
-                <item>
-                    <term>p</term>
-                    <description>Equivalent to <b>level</b></description>
-                </item>
-                <item>
-                    <term>P</term>
-                    <description>Equivalent to <b>property</b></description>
-                </item>
-                <item>
-                    <term>properties</term>
-                    <description>Equivalent to <b>property</b></description>
-                </item>
-            	<item>
-            		<term>property</term>
-            		<description>
-            			<para>
-            			Used to output the an event specific property. The key to 
-            			lookup must be specified within braces and directly following the
-            			pattern specifier, e.g. <b>%property{user}</b> would include the value
-            			from the property that is keyed by the string 'user'. Each property value
-            			that is to be included in the log must be specified separately.
-            			Properties are added to events by loggers or appenders. By default 
-            			the <c>log4net:HostName</c> property is set to the name of machine on 
-            			which the event was originally logged.
-            			</para>
-            			<para>
-            			If no key is specified, e.g. <b>%property</b> then all the keys and their
-            			values are printed in a comma separated list.
-            			</para>
-            			<para>
-            			The properties of an event are combined from a number of different
-            			contexts. These are listed below in the order in which they are searched.
-            			</para>
-            			<list type="definition">
-            				<item>
-            					<term>the event properties</term>
-            					<description>
-            					The event has <see cref="P:log4net.Core.LoggingEvent.Properties"/> that can be set. These 
-            					properties are specific to this event only.
-            					</description>
-            				</item>
-            				<item>
-            					<term>the thread properties</term>
-            					<description>
-            					The <see cref="P:log4net.ThreadContext.Properties"/> that are set on the current
-            					thread. These properties are shared by all events logged on this thread.
-            					</description>
-            				</item>
-            				<item>
-            					<term>the global properties</term>
-            					<description>
-            					The <see cref="P:log4net.GlobalContext.Properties"/> that are set globally. These 
-            					properties are shared by all the threads in the AppDomain.
-            					</description>
-            				</item>
-            			</list>
-            			
-            		</description>
-            	</item>
-                <item>
-                    <term>r</term>
-                    <description>Equivalent to <b>timestamp</b></description>
-                </item>
-                <item>
-                    <term>t</term>
-                    <description>Equivalent to <b>thread</b></description>
-                </item>
-            	<item>
-            		<term>timestamp</term>
-            		<description>
-            			<para>
-            			Used to output the number of milliseconds elapsed since the start
-            			of the application until the creation of the logging event.
-            			</para>
-            		</description>
-            	</item>
-            	<item>
-            		<term>thread</term>
-            		<description>
-            			<para>
-            			Used to output the name of the thread that generated the
-            			logging event. Uses the thread number if no name is available.
-            			</para>
-            		</description>
-            	</item>
-                <item>
-            		<term>type</term> 
-            		<description>
-            			<para>
-            			Used to output the fully qualified type name of the caller
-            			issuing the logging request. This conversion specifier
-            			can be optionally followed by <i>precision specifier</i>, that
-            			is a decimal constant in brackets.
-            			</para>
-            			<para>
-            			If a precision specifier is given, then only the corresponding
-            			number of right most components of the class name will be
-            			printed. By default the class name is output in fully qualified form.
-            			</para>
-            			<para>
-            			For example, for the class name "log4net.Layout.PatternLayout", the
-            			pattern <b>%type{1}</b> will output "PatternLayout".
-            			</para>
-            			<para>
-            			<b>WARNING</b> Generating the caller class information is
-            			slow. Thus, its use should be avoided unless execution speed is
-            			not an issue.
-            			</para>
-            			<para>
-            			See the note below on the availability of caller location information.
-            			</para>
-            		</description>
-                </item>
-                <item>
-                    <term>u</term>
-                    <description>Equivalent to <b>identity</b></description>
-                </item>
-            	<item>
-            		<term>username</term>
-            		<description>
-            			<para>
-            			Used to output the WindowsIdentity for the currently
-            			active user.
-            			</para>
-            			<para>
-            			<b>WARNING</b> Generating caller WindowsIdentity information is
-            			extremely slow. Its use should be avoided unless execution speed
-            			is not an issue.
-            			</para>
-            		</description>
-            	</item>
-                <item>
-            		<term>utcdate</term> 
-            		<description>
-            			<para>
-            			Used to output the date of the logging event in universal time. 
-            			The date conversion 
-            			specifier may be followed by a <i>date format specifier</i> enclosed 
-            			between braces. For example, <b>%utcdate{HH:mm:ss,fff}</b> or
-            			<b>%utcdate{dd MMM yyyy HH:mm:ss,fff}</b>.  If no date format specifier is 
-            			given then ISO8601 format is
-            			assumed (<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>).
-            			</para>
-            			<para>
-            			The date format specifier admits the same syntax as the
-            			time pattern string of the <see cref="M:System.DateTime.ToString(System.String)"/>.
-            			</para>
-            			<para>
-            			For better results it is recommended to use the log4net date
-            			formatters. These can be specified using one of the strings
-            			"ABSOLUTE", "DATE" and "ISO8601" for specifying 
-            			<see cref="T:log4net.DateFormatter.AbsoluteTimeDateFormatter"/>, 
-            			<see cref="T:log4net.DateFormatter.DateTimeDateFormatter"/> and respectively 
-            			<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>. For example, 
-            			<b>%utcdate{ISO8601}</b> or <b>%utcdate{ABSOLUTE}</b>.
-            			</para>
-            			<para>
-            			These dedicated date formatters perform significantly
-            			better than <see cref="M:System.DateTime.ToString(System.String)"/>.
-            			</para>
-            		</description>
-            	</item>
-                <item>
-                    <term>w</term>
-                    <description>Equivalent to <b>username</b></description>
-                </item>
-                <item>
-                    <term>x</term>
-                    <description>Equivalent to <b>ndc</b></description>
-                </item>
-                <item>
-                    <term>X</term>
-                    <description>Equivalent to <b>mdc</b></description>
-                </item>
-            	<item>
-            		<term>%</term>
-            		<description>
-            			<para>
-            			The sequence %% outputs a single percent sign.
-            			</para>
-            		</description>
-            	</item>
-            </list>
-            <para>
-            The single letter patterns are deprecated in favor of the 
-            longer more descriptive pattern names.
-            </para>
-            <para>
-            By default the relevant information is output as is. However,
-            with the aid of format modifiers it is possible to change the
-            minimum field width, the maximum field width and justification.
-            </para>
-            <para>
-            The optional format modifier is placed between the percent sign
-            and the conversion pattern name.
-            </para>
-            <para>
-            The first optional format modifier is the <i>left justification
-            flag</i> which is just the minus (-) character. Then comes the
-            optional <i>minimum field width</i> modifier. This is a decimal
-            constant that represents the minimum number of characters to
-            output. If the data item requires fewer characters, it is padded on
-            either the left or the right until the minimum width is
-            reached. The default is to pad on the left (right justify) but you
-            can specify right padding with the left justification flag. The
-            padding character is space. If the data item is larger than the
-            minimum field width, the field is expanded to accommodate the
-            data. The value is never truncated.
-            </para>
-            <para>
-            This behavior can be changed using the <i>maximum field
-            width</i> modifier which is designated by a period followed by a
-            decimal constant. If the data item is longer than the maximum
-            field, then the extra characters are removed from the
-            <i>beginning</i> of the data item and not from the end. For
-            example, it the maximum field width is eight and the data item is
-            ten characters long, then the first two characters of the data item
-            are dropped. This behavior deviates from the printf function in C
-            where truncation is done from the end.
-            </para>
-            <para>
-            Below are various format modifier examples for the logger
-            conversion specifier.
-            </para>
-            <div class="tablediv">
-            	<table class="dtTABLE" cellspacing="0">
-            		<tr>
-            			<th>Format modifier</th>
-            			<th>left justify</th>
-            			<th>minimum width</th>
-            			<th>maximum width</th>
-            			<th>comment</th>
-            		</tr>
-            		<tr>
-            			<td align="center">%20logger</td>
-            			<td align="center">false</td>
-            			<td align="center">20</td>
-            			<td align="center">none</td>
-            			<td>
-            				<para>
-            				Left pad with spaces if the logger name is less than 20
-            				characters long.
-            				</para>
-            			</td>
-            		</tr>
-            		<tr>
-            			<td align="center">%-20logger</td>
-            			<td align="center">true</td>
-            			<td align="center">20</td>
-            			<td align="center">none</td>
-            			<td>
-            				<para>
-            				Right pad with spaces if the logger 
-            				name is less than 20 characters long.
-            				</para>
-            			</td>
-            		</tr>
-            		<tr>
-            			<td align="center">%.30logger</td>
-            			<td align="center">NA</td>
-            			<td align="center">none</td>
-            			<td align="center">30</td>
-            			<td>
-            				<para>
-            				Truncate from the beginning if the logger 
-            				name is longer than 30 characters.
-            				</para>
-            			</td>
-            		</tr>
-            		<tr>
-            			<td align="center"><nobr>%20.30logger</nobr></td>
-            			<td align="center">false</td>
-            			<td align="center">20</td>
-            			<td align="center">30</td>
-            			<td>
-            				<para>
-            				Left pad with spaces if the logger name is shorter than 20
-            				characters. However, if logger name is longer than 30 characters,
-            				then truncate from the beginning.
-            				</para>
-            			</td>
-            		</tr>
-            		<tr>
-            			<td align="center">%-20.30logger</td>
-            			<td align="center">true</td>
-            			<td align="center">20</td>
-            			<td align="center">30</td>
-            			<td>
-            				<para>
-            				Right pad with spaces if the logger name is shorter than 20
-            				characters. However, if logger name is longer than 30 characters,
-            				then truncate from the beginning.
-            				</para>
-            			</td>
-            		</tr>
-            	</table>
-            </div>
-            <para>
-            <b>Note about caller location information.</b><br/>
-            The following patterns <c>%type %file %line %method %location %class %C %F %L %l %M</c> 
-            all generate caller location information.
-            Location information uses the <c>System.Diagnostics.StackTrace</c> class to generate
-            a call stack. The caller's information is then extracted from this stack.
-            </para>
-            <note type="caution">
-            <para>
-            The <c>System.Diagnostics.StackTrace</c> class is not supported on the 
-            .NET Compact Framework 1.0 therefore caller location information is not
-            available on that framework.
-            </para>
-            </note>
-            <note type="caution">
-            <para>
-            The <c>System.Diagnostics.StackTrace</c> class has this to say about Release builds:
-            </para>
-            <para>
-            "StackTrace information will be most informative with Debug build configurations. 
-            By default, Debug builds include debug symbols, while Release builds do not. The 
-            debug symbols contain most of the file, method name, line number, and column 
-            information used in constructing StackFrame and StackTrace objects. StackTrace 
-            might not report as many method calls as expected, due to code transformations 
-            that occur during optimization."
-            </para>
-            <para>
-            This means that in a Release build the caller information may be incomplete or may 
-            not exist at all! Therefore caller location information cannot be relied upon in a Release build.
-            </para>
-            </note>
-            <para>
-            Additional pattern converters may be registered with a specific <see cref="T:log4net.Layout.PatternLayout"/>
-            instance using the <see cref="M:log4net.Layout.PatternLayout.AddConverter(System.String,System.Type)"/> method.
-            </para>
-            </remarks>
-            <example>
-            This is a more detailed pattern.
-            <code><b>%timestamp [%thread] %level %logger %ndc - %message%newline</b></code>
-            </example>
-            <example>
-            A similar pattern except that the relative time is
-            right padded if less than 6 digits, thread name is right padded if
-            less than 15 characters and truncated if longer and the logger
-            name is left padded if shorter than 30 characters and truncated if
-            longer.
-            <code><b>%-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline</b></code>
-            </example>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-            <author>Douglas de la Torre</author>
-            <author>Daniel Cazzulino</author>
-        </member>
-        <member name="F:log4net.Layout.PatternLayout.DefaultConversionPattern">
-            <summary>
-            Default pattern string for log output. 
-            </summary>
-            <remarks>
-            <para>
-            Default pattern string for log output. 
-            Currently set to the string <b>"%message%newline"</b> 
-            which just prints the application supplied message. 
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Layout.PatternLayout.DetailConversionPattern">
-            <summary>
-            A detailed conversion pattern
-            </summary>
-            <remarks>
-            <para>
-            A conversion pattern which includes Time, Thread, Logger, and Nested Context.
-            Current value is <b>%timestamp [%thread] %level %logger %ndc - %message%newline</b>.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Layout.PatternLayout.s_globalRulesRegistry">
-            <summary>
-            Internal map of converter identifiers to converter types.
-            </summary>
-            <remarks>
-            <para>
-            This static map is overridden by the m_converterRegistry instance map
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Layout.PatternLayout.m_pattern">
-            <summary>
-            the pattern
-            </summary>
-        </member>
-        <member name="F:log4net.Layout.PatternLayout.m_head">
-            <summary>
-            the head of the pattern converter chain
-            </summary>
-        </member>
-        <member name="F:log4net.Layout.PatternLayout.m_instanceRulesRegistry">
-            <summary>
-            patterns defined on this PatternLayout only
-            </summary>
-        </member>
-        <member name="M:log4net.Layout.PatternLayout.#cctor">
-            <summary>
-            Initialize the global registry
-            </summary>
-            <remarks>
-            <para>
-            Defines the builtin global rules.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.PatternLayout.#ctor">
-            <summary>
-            Constructs a PatternLayout using the DefaultConversionPattern
-            </summary>
-            <remarks>
-            <para>
-            The default pattern just produces the application supplied message.
-            </para>
-            <para>
-            Note to Inheritors: This constructor calls the virtual method
-            <see cref="M:log4net.Layout.PatternLayout.CreatePatternParser(System.String)"/>. If you override this method be
-            aware that it will be called before your is called constructor.
-            </para>
-            <para>
-            As per the <see cref="T:log4net.Core.IOptionHandler"/> contract the <see cref="M:log4net.Layout.PatternLayout.ActivateOptions"/>
-            method must be called after the properties on this object have been
-            configured.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.PatternLayout.#ctor(System.String)">
-            <summary>
-            Constructs a PatternLayout using the supplied conversion pattern
-            </summary>
-            <param name="pattern">the pattern to use</param>
-            <remarks>
-            <para>
-            Note to Inheritors: This constructor calls the virtual method
-            <see cref="M:log4net.Layout.PatternLayout.CreatePatternParser(System.String)"/>. If you override this method be
-            aware that it will be called before your is called constructor.
-            </para>
-            <para>
-            When using this constructor the <see cref="M:log4net.Layout.PatternLayout.ActivateOptions"/> method 
-            need not be called. This may not be the case when using a subclass.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.PatternLayout.CreatePatternParser(System.String)">
-            <summary>
-            Create the pattern parser instance
-            </summary>
-            <param name="pattern">the pattern to parse</param>
-            <returns>The <see cref="T:log4net.Util.PatternParser"/> that will format the event</returns>
-            <remarks>
-            <para>
-            Creates the <see cref="T:log4net.Util.PatternParser"/> used to parse the conversion string. Sets the
-            global and instance rules on the <see cref="T:log4net.Util.PatternParser"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.PatternLayout.ActivateOptions">
-            <summary>
-            Initialize layout options
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Layout.PatternLayout.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Layout.PatternLayout.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Layout.PatternLayout.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.PatternLayout.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Produces a formatted string as specified by the conversion pattern.
-            </summary>
-            <param name="loggingEvent">the event being logged</param>
-            <param name="writer">The TextWriter to write the formatted event to</param>
-            <remarks>
-            <para>
-            Parse the <see cref="T:log4net.Core.LoggingEvent"/> using the patter format
-            specified in the <see cref="P:log4net.Layout.PatternLayout.ConversionPattern"/> property.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.PatternLayout.AddConverter(log4net.Layout.PatternLayout.ConverterInfo)">
-            <summary>
-            Add a converter to this PatternLayout
-            </summary>
-            <param name="converterInfo">the converter info</param>
-            <remarks>
-            <para>
-            This version of the method is used by the configurator.
-            Programmatic users should use the alternative <see cref="M:log4net.Layout.PatternLayout.AddConverter(System.String,System.Type)"/> method.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.PatternLayout.AddConverter(System.String,System.Type)">
-            <summary>
-            Add a converter to this PatternLayout
-            </summary>
-            <param name="name">the name of the conversion pattern for this converter</param>
-            <param name="type">the type of the converter</param>
-            <remarks>
-            <para>
-            Add a named pattern converter to this instance. This
-            converter will be used in the formatting of the event.
-            This method must be called before <see cref="M:log4net.Layout.PatternLayout.ActivateOptions"/>.
-            </para>
-            <para>
-            The <paramref name="type"/> specified must extend the 
-            <see cref="T:log4net.Util.PatternConverter"/> type.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.PatternLayout.ConversionPattern">
-            <summary>
-            The pattern formatting string
-            </summary>
-            <remarks>
-            <para>
-            The <b>ConversionPattern</b> option. This is the string which
-            controls formatting and consists of a mix of literal content and
-            conversion specifiers.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.PatternLayout.ConverterInfo">
-            <summary>
-            Wrapper class used to map converter names to converter types
-            </summary>
-            <remarks>
-            <para>
-            Pattern converter info class used during configuration to
-            pass to the <see cref="M:log4net.Layout.PatternLayout.AddConverter(log4net.Layout.PatternLayout.ConverterInfo)"/>
-            method.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.PatternLayout.ConverterInfo.#ctor">
-            <summary>
-            default constructor
-            </summary>
-        </member>
-        <member name="P:log4net.Layout.PatternLayout.ConverterInfo.Name">
-            <summary>
-            Gets or sets the name of the conversion pattern
-            </summary>
-            <remarks>
-            <para>
-            The name of the pattern in the format string
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.PatternLayout.ConverterInfo.Type">
-            <summary>
-            Gets or sets the type of the converter
-            </summary>
-            <remarks>
-            <para>
-            The value specified must extend the 
-            <see cref="T:log4net.Util.PatternConverter"/> type.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.RawLayoutConverter">
-            <summary>
-            Type converter for the <see cref="T:log4net.Layout.IRawLayout"/> interface
-            </summary>
-            <remarks>
-            <para>
-            Used to convert objects to the <see cref="T:log4net.Layout.IRawLayout"/> interface.
-            Supports converting from the <see cref="T:log4net.Layout.ILayout"/> interface to
-            the <see cref="T:log4net.Layout.IRawLayout"/> interface using the <see cref="T:log4net.Layout.Layout2RawLayoutAdapter"/>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Util.TypeConverters.IConvertFrom">
-            <summary>
-            Interface supported by type converters
-            </summary>
-            <remarks>
-            <para>
-            This interface supports conversion from arbitrary types
-            to a single target type. See <see cref="T:log4net.Util.TypeConverters.TypeConverterAttribute"/>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.IConvertFrom.CanConvertFrom(System.Type)">
-            <summary>
-            Can the source type be converted to the type supported by this object
-            </summary>
-            <param name="sourceType">the type to convert</param>
-            <returns>true if the conversion is possible</returns>
-            <remarks>
-            <para>
-            Test if the <paramref name="sourceType"/> can be converted to the
-            type supported by this converter.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.IConvertFrom.ConvertFrom(System.Object)">
-            <summary>
-            Convert the source object to the type supported by this object
-            </summary>
-            <param name="source">the object to convert</param>
-            <returns>the converted object</returns>
-            <remarks>
-            <para>
-            Converts the <paramref name="source"/> to the type supported
-            by this converter.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.RawLayoutConverter.CanConvertFrom(System.Type)">
-            <summary>
-            Can the sourceType be converted to an <see cref="T:log4net.Layout.IRawLayout"/>
-            </summary>
-            <param name="sourceType">the source to be to be converted</param>
-            <returns><c>true</c> if the source type can be converted to <see cref="T:log4net.Layout.IRawLayout"/></returns>
-            <remarks>
-            <para>
-            Test if the <paramref name="sourceType"/> can be converted to a
-            <see cref="T:log4net.Layout.IRawLayout"/>. Only <see cref="T:log4net.Layout.ILayout"/> is supported
-            as the <paramref name="sourceType"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.RawLayoutConverter.ConvertFrom(System.Object)">
-            <summary>
-            Convert the value to a <see cref="T:log4net.Layout.IRawLayout"/> object
-            </summary>
-            <param name="source">the value to convert</param>
-            <returns>the <see cref="T:log4net.Layout.IRawLayout"/> object</returns>
-            <remarks>
-            <para>
-            Convert the <paramref name="source"/> object to a 
-            <see cref="T:log4net.Layout.IRawLayout"/> object. If the <paramref name="source"/> object
-            is a <see cref="T:log4net.Layout.ILayout"/> then the <see cref="T:log4net.Layout.Layout2RawLayoutAdapter"/>
-            is used to adapt between the two interfaces, otherwise an
-            exception is thrown.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.RawPropertyLayout">
-            <summary>
-            Extract the value of a property from the <see cref="T:log4net.Core.LoggingEvent"/>
-            </summary>
-            <remarks>
-            <para>
-            Extract the value of a property from the <see cref="T:log4net.Core.LoggingEvent"/>
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Layout.RawPropertyLayout.#ctor">
-            <summary>
-            Constructs a RawPropertyLayout
-            </summary>
-        </member>
-        <member name="M:log4net.Layout.RawPropertyLayout.Format(log4net.Core.LoggingEvent)">
-            <summary>
-            Lookup the property for <see cref="P:log4net.Layout.RawPropertyLayout.Key"/>
-            </summary>
-            <param name="loggingEvent">The event to format</param>
-            <returns>returns property value</returns>
-            <remarks>
-            <para>
-            Looks up and returns the object value of the property
-            named <see cref="P:log4net.Layout.RawPropertyLayout.Key"/>. If there is no property defined
-            with than name then <c>null</c> will be returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.RawPropertyLayout.Key">
-            <summary>
-            The name of the value to lookup in the LoggingEvent Properties collection.
-            </summary>
-            <value>
-            Value to lookup in the LoggingEvent Properties collection
-            </value>
-            <remarks>
-            <para>
-            String name of the property to lookup in the <see cref="T:log4net.Core.LoggingEvent"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.RawTimeStampLayout">
-            <summary>
-            Extract the date from the <see cref="T:log4net.Core.LoggingEvent"/>
-            </summary>
-            <remarks>
-            <para>
-            Extract the date from the <see cref="T:log4net.Core.LoggingEvent"/>
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Layout.RawTimeStampLayout.#ctor">
-            <summary>
-            Constructs a RawTimeStampLayout
-            </summary>
-        </member>
-        <member name="M:log4net.Layout.RawTimeStampLayout.Format(log4net.Core.LoggingEvent)">
-            <summary>
-            Gets the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> as a <see cref="T:System.DateTime"/>.
-            </summary>
-            <param name="loggingEvent">The event to format</param>
-            <returns>returns the time stamp</returns>
-            <remarks>
-            <para>
-            Gets the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> as a <see cref="T:System.DateTime"/>.
-            </para>
-            <para>
-            The time stamp is in local time. To format the time stamp
-            in universal time use <see cref="T:log4net.Layout.RawUtcTimeStampLayout"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.RawUtcTimeStampLayout">
-            <summary>
-            Extract the date from the <see cref="T:log4net.Core.LoggingEvent"/>
-            </summary>
-            <remarks>
-            <para>
-            Extract the date from the <see cref="T:log4net.Core.LoggingEvent"/>
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Layout.RawUtcTimeStampLayout.#ctor">
-            <summary>
-            Constructs a RawUtcTimeStampLayout
-            </summary>
-        </member>
-        <member name="M:log4net.Layout.RawUtcTimeStampLayout.Format(log4net.Core.LoggingEvent)">
-            <summary>
-            Gets the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> as a <see cref="T:System.DateTime"/>.
-            </summary>
-            <param name="loggingEvent">The event to format</param>
-            <returns>returns the time stamp</returns>
-            <remarks>
-            <para>
-            Gets the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> as a <see cref="T:System.DateTime"/>.
-            </para>
-            <para>
-            The time stamp is in universal time. To format the time stamp
-            in local time use <see cref="T:log4net.Layout.RawTimeStampLayout"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.SimpleLayout">
-            <summary>
-            A very simple layout
-            </summary>
-            <remarks>
-            <para>
-            SimpleLayout consists of the level of the log statement,
-            followed by " - " and then the log message itself. For example,
-            <code>
-            DEBUG - Hello world
-            </code>
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Layout.SimpleLayout.#ctor">
-            <summary>
-            Constructs a SimpleLayout
-            </summary>
-        </member>
-        <member name="M:log4net.Layout.SimpleLayout.ActivateOptions">
-            <summary>
-            Initialize layout options
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Layout.SimpleLayout.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Layout.SimpleLayout.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Layout.SimpleLayout.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.SimpleLayout.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Produces a simple formatted output.
-            </summary>
-            <param name="loggingEvent">the event being logged</param>
-            <param name="writer">The TextWriter to write the formatted event to</param>
-            <remarks>
-            <para>
-            Formats the event as the level of the even,
-            followed by " - " and then the log message itself. The
-            output is terminated by a newline.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.XmlLayout">
-             <summary>
-             Layout that formats the log events as XML elements.
-             </summary>
-             <remarks>
-             <para>
-             The output of the <see cref="T:log4net.Layout.XmlLayout"/> consists of a series of 
-             log4net:event elements. It does not output a complete well-formed XML 
-             file. The output is designed to be included as an <em>external entity</em>
-             in a separate file to form a correct XML file.
-             </para>
-             <para>
-             For example, if <c>abc</c> is the name of the file where
-             the <see cref="T:log4net.Layout.XmlLayout"/> output goes, then a well-formed XML file would 
-             be:
-             </para>
-             <code lang="XML">
-             <?xml version="1.0" ?>
-             
-             <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]>
-            
-             <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2>
-                 &data;
-             </log4net:events>
-             </code>
-             <para>
-             This approach enforces the independence of the <see cref="T:log4net.Layout.XmlLayout"/> 
-             and the appender where it is embedded.
-             </para>
-             <para>
-             The <c>version</c> attribute helps components to correctly
-             interpret output generated by <see cref="T:log4net.Layout.XmlLayout"/>. The value of 
-             this attribute should be "1.2" for release 1.2 and later.
-             </para>
-             <para>
-             Alternatively the <c>Header</c> and <c>Footer</c> properties can be
-             configured to output the correct XML header, open tag and close tag.
-             When setting the <c>Header</c> and <c>Footer</c> properties it is essential
-             that the underlying data store not be appendable otherwise the data
-             will become invalid XML.
-             </para>
-             </remarks>
-             <author>Nicko Cadell</author>
-             <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Layout.XmlLayoutBase">
-            <summary>
-            Layout that formats the log events as XML elements.
-            </summary>
-            <remarks>
-            <para>
-            This is an abstract class that must be subclassed by an implementation 
-            to conform to a specific schema.
-            </para>
-            <para>
-            Deriving classes must implement the <see cref="M:log4net.Layout.XmlLayoutBase.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)"/> method.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Layout.XmlLayoutBase.#ctor">
-            <summary>
-            Protected constructor to support subclasses
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Layout.XmlLayoutBase"/> class
-            with no location info.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.XmlLayoutBase.#ctor(System.Boolean)">
-            <summary>
-            Protected constructor to support subclasses
-            </summary>
-            <remarks>
-            <para>
-            The <paramref name="locationInfo" /> parameter determines whether 
-            location information will be output by the layout. If 
-            <paramref name="locationInfo" /> is set to <c>true</c>, then the 
-            file name and line number of the statement at the origin of the log 
-            statement will be output. 
-            </para>
-            <para>
-            If you are embedding this layout within an SMTPAppender
-            then make sure to set the <b>LocationInfo</b> option of that 
-            appender as well.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.XmlLayoutBase.ActivateOptions">
-            <summary>
-            Initialize layout options
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Layout.XmlLayoutBase.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Layout.XmlLayoutBase.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Layout.XmlLayoutBase.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.XmlLayoutBase.Format(System.IO.TextWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Produces a formatted string.
-            </summary>
-            <param name="loggingEvent">The event being logged.</param>
-            <param name="writer">The TextWriter to write the formatted event to</param>
-            <remarks>
-            <para>
-            Format the <see cref="T:log4net.Core.LoggingEvent"/> and write it to the <see cref="T:System.IO.TextWriter"/>.
-            </para>
-            <para>
-            This method creates an <see cref="T:System.Xml.XmlTextWriter"/> that writes to the
-            <paramref name="writer"/>. The <see cref="T:System.Xml.XmlTextWriter"/> is passed 
-            to the <see cref="M:log4net.Layout.XmlLayoutBase.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)"/> method. Subclasses should override the
-            <see cref="M:log4net.Layout.XmlLayoutBase.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)"/> method rather than this method.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.XmlLayoutBase.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Does the actual writing of the XML.
-            </summary>
-            <param name="writer">The writer to use to output the event to.</param>
-            <param name="loggingEvent">The event to write.</param>
-            <remarks>
-            <para>
-            Subclasses should override this method to format
-            the <see cref="T:log4net.Core.LoggingEvent"/> as XML.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Layout.XmlLayoutBase.m_locationInfo">
-            <summary>
-            Flag to indicate if location information should be included in
-            the XML events.
-            </summary>
-        </member>
-        <member name="F:log4net.Layout.XmlLayoutBase.m_protectCloseTextWriter">
-            <summary>
-            Writer adapter that ignores Close
-            </summary>
-        </member>
-        <member name="F:log4net.Layout.XmlLayoutBase.m_invalidCharReplacement">
-            <summary>
-            The string to replace invalid chars with
-            </summary>
-        </member>
-        <member name="P:log4net.Layout.XmlLayoutBase.LocationInfo">
-            <summary>
-            Gets a value indicating whether to include location information in 
-            the XML events.
-            </summary>
-            <value>
-            <c>true</c> if location information should be included in the XML 
-            events; otherwise, <c>false</c>.
-            </value>
-            <remarks>
-            <para>
-            If <see cref="P:log4net.Layout.XmlLayoutBase.LocationInfo"/> is set to <c>true</c>, then the file 
-            name and line number of the statement at the origin of the log 
-            statement will be output. 
-            </para>
-            <para>
-            If you are embedding this layout within an <c>SMTPAppender</c>
-            then make sure to set the <b>LocationInfo</b> option of that 
-            appender as well.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.XmlLayoutBase.InvalidCharReplacement">
-            <summary>
-            The string to replace characters that can not be expressed in XML with.
-            <remarks>
-            <para>
-            Not all characters may be expressed in XML. This property contains the
-            string to replace those that can not with. This defaults to a ?. Set it
-            to the empty string to simply remove offending characters. For more
-            details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets
-            Character replacement will occur in  the log message, the property names 
-            and the property values.
-            </para>
-            </remarks>
-            </summary>
-        </member>
-        <member name="P:log4net.Layout.XmlLayoutBase.ContentType">
-            <summary>
-            Gets the content type output by this layout. 
-            </summary>
-            <value>
-            As this is the XML layout, the value is always <c>"text/xml"</c>.
-            </value>
-            <remarks>
-            <para>
-            As this is the XML layout, the value is always <c>"text/xml"</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.XmlLayout.#ctor">
-            <summary>
-            Constructs an XmlLayout
-            </summary>
-        </member>
-        <member name="M:log4net.Layout.XmlLayout.#ctor(System.Boolean)">
-            <summary>
-            Constructs an XmlLayout.
-            </summary>
-            <remarks>
-            <para>
-            The <b>LocationInfo</b> option takes a boolean value. By
-            default, it is set to false which means there will be no location
-            information output by this layout. If the the option is set to
-            true, then the file name and line number of the statement
-            at the origin of the log statement will be output. 
-            </para>
-            <para>
-            If you are embedding this layout within an SmtpAppender
-            then make sure to set the <b>LocationInfo</b> option of that 
-            appender as well.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.XmlLayout.ActivateOptions">
-            <summary>
-            Initialize layout options
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Layout.XmlLayout.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Layout.XmlLayout.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Layout.XmlLayout.ActivateOptions"/> must be called again.
-            </para>
-            <para>
-            Builds a cache of the element names
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.XmlLayout.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Does the actual writing of the XML.
-            </summary>
-            <param name="writer">The writer to use to output the event to.</param>
-            <param name="loggingEvent">The event to write.</param>
-            <remarks>
-            <para>
-            Override the base class <see cref="M:log4net.Layout.XmlLayoutBase.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)"/> method
-            to write the <see cref="T:log4net.Core.LoggingEvent"/> to the <see cref="T:System.Xml.XmlWriter"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Layout.XmlLayout.m_prefix">
-            <summary>
-            The prefix to use for all generated element names
-            </summary>
-        </member>
-        <member name="P:log4net.Layout.XmlLayout.Prefix">
-            <summary>
-            The prefix to use for all element names
-            </summary>
-            <remarks>
-            <para>
-            The default prefix is <b>log4net</b>. Set this property
-            to change the prefix. If the prefix is set to an empty string
-            then no prefix will be written.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.XmlLayout.Base64EncodeMessage">
-            <summary>
-            Set whether or not to base64 encode the message.
-            </summary>
-            <remarks>
-            <para>
-            By default the log message will be written as text to the xml
-            output. This can cause problems when the message contains binary
-            data. By setting this to true the contents of the message will be
-            base64 encoded. If this is set then invalid character replacement
-            (see <see cref="P:log4net.Layout.XmlLayoutBase.InvalidCharReplacement"/>) will not be performed
-            on the log message.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.XmlLayout.Base64EncodeProperties">
-            <summary>
-            Set whether or not to base64 encode the property values.
-            </summary>
-            <remarks>
-            <para>
-            By default the properties will be written as text to the xml
-            output. This can cause problems when one or more properties contain
-            binary data. By setting this to true the values of the properties
-            will be base64 encoded. If this is set then invalid character replacement
-            (see <see cref="P:log4net.Layout.XmlLayoutBase.InvalidCharReplacement"/>) will not be performed
-            on the property values.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Layout.XmlLayoutSchemaLog4j">
-            <summary>
-            Layout that formats the log events as XML elements compatible with the log4j schema
-            </summary>
-            <remarks>
-            <para>
-            Formats the log events according to the http://logging.apache.org/log4j schema.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Layout.XmlLayoutSchemaLog4j.s_date1970">
-            <summary>
-            The 1st of January 1970 in UTC
-            </summary>
-        </member>
-        <member name="M:log4net.Layout.XmlLayoutSchemaLog4j.#ctor">
-            <summary>
-            Constructs an XMLLayoutSchemaLog4j
-            </summary>
-        </member>
-        <member name="M:log4net.Layout.XmlLayoutSchemaLog4j.#ctor(System.Boolean)">
-            <summary>
-            Constructs an XMLLayoutSchemaLog4j.
-            </summary>
-            <remarks>
-            <para>
-            The <b>LocationInfo</b> option takes a boolean value. By
-            default, it is set to false which means there will be no location
-            information output by this layout. If the the option is set to
-            true, then the file name and line number of the statement
-            at the origin of the log statement will be output. 
-            </para>
-            <para>
-            If you are embedding this layout within an SMTPAppender
-            then make sure to set the <b>LocationInfo</b> option of that 
-            appender as well.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Layout.XmlLayoutSchemaLog4j.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)">
-            <summary>
-            Actually do the writing of the xml
-            </summary>
-            <param name="writer">the writer to use</param>
-            <param name="loggingEvent">the event to write</param>
-            <remarks>
-            <para>
-            Generate XML that is compatible with the log4j schema.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Layout.XmlLayoutSchemaLog4j.Version">
-            <summary>
-            The version of the log4j schema to use.
-            </summary>
-            <remarks>
-            <para>
-            Only version 1.2 of the log4j schema is supported.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.ObjectRenderer.DefaultRenderer">
-            <summary>
-            The default object Renderer.
-            </summary>
-            <remarks>
-            <para>
-            The default renderer supports rendering objects and collections to strings.
-            </para>
-            <para>
-            See the <see cref="M:log4net.ObjectRenderer.DefaultRenderer.RenderObject(log4net.ObjectRenderer.RendererMap,System.Object,System.IO.TextWriter)"/> method for details of the output.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.ObjectRenderer.IObjectRenderer">
-            <summary>
-            Implement this interface in order to render objects as strings
-            </summary>
-            <remarks>
-            <para>
-            Certain types require special case conversion to
-            string form. This conversion is done by an object renderer.
-            Object renderers implement the <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>
-            interface.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.ObjectRenderer.IObjectRenderer.RenderObject(log4net.ObjectRenderer.RendererMap,System.Object,System.IO.TextWriter)">
-            <summary>
-            Render the object <paramref name="obj"/> to a string
-            </summary>
-            <param name="rendererMap">The map used to lookup renderers</param>
-            <param name="obj">The object to render</param>
-            <param name="writer">The writer to render to</param>
-            <remarks>
-            <para>
-            Render the object <paramref name="obj"/> to a 
-            string.
-            </para>
-            <para>
-            The <paramref name="rendererMap"/> parameter is
-            provided to lookup and render other objects. This is
-            very useful where <paramref name="obj"/> contains
-            nested objects of unknown type. The <see cref="M:log4net.ObjectRenderer.RendererMap.FindAndRender(System.Object,System.IO.TextWriter)"/>
-            method can be used to render these objects.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.ObjectRenderer.DefaultRenderer.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Default constructor
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.ObjectRenderer.DefaultRenderer.RenderObject(log4net.ObjectRenderer.RendererMap,System.Object,System.IO.TextWriter)">
-            <summary>
-            Render the object <paramref name="obj"/> to a string
-            </summary>
-            <param name="rendererMap">The map used to lookup renderers</param>
-            <param name="obj">The object to render</param>
-            <param name="writer">The writer to render to</param>
-            <remarks>
-            <para>
-            Render the object <paramref name="obj"/> to a string.
-            </para>
-            <para>
-            The <paramref name="rendererMap"/> parameter is
-            provided to lookup and render other objects. This is
-            very useful where <paramref name="obj"/> contains
-            nested objects of unknown type. The <see cref="M:log4net.ObjectRenderer.RendererMap.FindAndRender(System.Object)"/>
-            method can be used to render these objects.
-            </para>
-            <para>
-            The default renderer supports rendering objects to strings as follows:
-            </para>
-            <list type="table">
-            	<listheader>
-            		<term>Value</term>
-            		<description>Rendered String</description>
-            	</listheader>
-            	<item>
-            		<term><c>null</c></term>
-            		<description>
-            		<para>"(null)"</para>
-            		</description>
-            	</item>
-            	<item>
-            		<term><see cref="T:System.Array"/></term>
-            		<description>
-            		<para>
-            		For a one dimensional array this is the
-            		array type name, an open brace, followed by a comma
-            		separated list of the elements (using the appropriate
-            		renderer), followed by a close brace. 
-            		</para>
-            		<para>
-            		For example: <c>int[] {1, 2, 3}</c>.
-            		</para>
-            		<para>
-            		If the array is not one dimensional the 
-            		<c>Array.ToString()</c> is returned.
-            		</para>
-            		</description>
-            	</item>
-            	<item>
-            		<term><see cref="T:System.Collections.IEnumerable"/>, <see cref="T:System.Collections.ICollection"/> & <see cref="T:System.Collections.IEnumerator"/></term>
-            		<description>
-            		<para>
-            		Rendered as an open brace, followed by a comma
-            		separated list of the elements (using the appropriate
-            		renderer), followed by a close brace.
-            		</para>
-            		<para>
-            		For example: <c>{a, b, c}</c>.
-            		</para>
-            		<para>
-            		All collection classes that implement <see cref="T:System.Collections.ICollection"/> its subclasses, 
-            		or generic equivalents all implement the <see cref="T:System.Collections.IEnumerable"/> interface.
-            		</para>
-            		</description>
-            	</item>		
-            	<item>
-            		<term><see cref="T:System.Collections.DictionaryEntry"/></term>
-            		<description>
-            		<para>
-            		Rendered as the key, an equals sign ('='), and the value (using the appropriate
-            		renderer). 
-            		</para>
-            		<para>
-            		For example: <c>key=value</c>.
-            		</para>
-            		</description>
-            	</item>		
-            	<item>
-            		<term>other</term>
-            		<description>
-            		<para><c>Object.ToString()</c></para>
-            		</description>
-            	</item>
-            </list>
-            </remarks>
-        </member>
-        <member name="M:log4net.ObjectRenderer.DefaultRenderer.RenderArray(log4net.ObjectRenderer.RendererMap,System.Array,System.IO.TextWriter)">
-            <summary>
-            Render the array argument into a string
-            </summary>
-            <param name="rendererMap">The map used to lookup renderers</param>
-            <param name="array">the array to render</param>
-            <param name="writer">The writer to render to</param>
-            <remarks>
-            <para>
-            For a one dimensional array this is the
-            array type name, an open brace, followed by a comma
-            separated list of the elements (using the appropriate
-            renderer), followed by a close brace. For example:
-            <c>int[] {1, 2, 3}</c>.
-            </para>
-            <para>
-            If the array is not one dimensional the 
-            <c>Array.ToString()</c> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.ObjectRenderer.DefaultRenderer.RenderEnumerator(log4net.ObjectRenderer.RendererMap,System.Collections.IEnumerator,System.IO.TextWriter)">
-            <summary>
-            Render the enumerator argument into a string
-            </summary>
-            <param name="rendererMap">The map used to lookup renderers</param>
-            <param name="enumerator">the enumerator to render</param>
-            <param name="writer">The writer to render to</param>
-            <remarks>
-            <para>
-            Rendered as an open brace, followed by a comma
-            separated list of the elements (using the appropriate
-            renderer), followed by a close brace. For example:
-            <c>{a, b, c}</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.ObjectRenderer.DefaultRenderer.RenderDictionaryEntry(log4net.ObjectRenderer.RendererMap,System.Collections.DictionaryEntry,System.IO.TextWriter)">
-            <summary>
-            Render the DictionaryEntry argument into a string
-            </summary>
-            <param name="rendererMap">The map used to lookup renderers</param>
-            <param name="entry">the DictionaryEntry to render</param>
-            <param name="writer">The writer to render to</param>
-            <remarks>
-            <para>
-            Render the key, an equals sign ('='), and the value (using the appropriate
-            renderer). For example: <c>key=value</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.ObjectRenderer.RendererMap">
-            <summary>
-            Map class objects to an <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>.
-            </summary>
-            <remarks>
-            <para>
-            Maintains a mapping between types that require special
-            rendering and the <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/> that
-            is used to render them.
-            </para>
-            <para>
-            The <see cref="M:log4net.ObjectRenderer.RendererMap.FindAndRender(System.Object)"/> method is used to render an
-            <c>object</c> using the appropriate renderers defined in this map.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.ObjectRenderer.RendererMap.#ctor">
-            <summary>
-            Default Constructor
-            </summary>
-            <remarks>
-            <para>
-            Default constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.ObjectRenderer.RendererMap.FindAndRender(System.Object)">
-            <summary>
-            Render <paramref name="obj"/> using the appropriate renderer.
-            </summary>
-            <param name="obj">the object to render to a string</param>
-            <returns>the object rendered as a string</returns>
-            <remarks>
-            <para>
-            This is a convenience method used to render an object to a string.
-            The alternative method <see cref="M:log4net.ObjectRenderer.RendererMap.FindAndRender(System.Object,System.IO.TextWriter)"/>
-            should be used when streaming output to a <see cref="T:System.IO.TextWriter"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.ObjectRenderer.RendererMap.FindAndRender(System.Object,System.IO.TextWriter)">
-            <summary>
-            Render <paramref name="obj"/> using the appropriate renderer.
-            </summary>
-            <param name="obj">the object to render to a string</param>
-            <param name="writer">The writer to render to</param>
-            <remarks>
-            <para>
-            Find the appropriate renderer for the type of the
-            <paramref name="obj"/> parameter. This is accomplished by calling the
-            <see cref="M:log4net.ObjectRenderer.RendererMap.Get(System.Type)"/> method. Once a renderer is found, it is
-            applied on the object <paramref name="obj"/> and the result is returned
-            as a <see cref="T:System.String"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.ObjectRenderer.RendererMap.Get(System.Object)">
-            <summary>
-            Gets the renderer for the specified object type
-            </summary>
-            <param name="obj">the object to lookup the renderer for</param>
-            <returns>the renderer for <paramref name="obj"/></returns>
-            <remarks>
-            <param>
-            Gets the renderer for the specified object type.
-            </param>
-            <param>
-            Syntactic sugar method that calls <see cref="M:log4net.ObjectRenderer.RendererMap.Get(System.Type)"/> 
-            with the type of the object parameter.
-            </param>
-            </remarks>
-        </member>
-        <member name="M:log4net.ObjectRenderer.RendererMap.Get(System.Type)">
-            <summary>
-            Gets the renderer for the specified type
-            </summary>
-            <param name="type">the type to lookup the renderer for</param>
-            <returns>the renderer for the specified type</returns>
-            <remarks>
-            <para>
-            Returns the renderer for the specified type.
-            If no specific renderer has been defined the
-            <see cref="P:log4net.ObjectRenderer.RendererMap.DefaultRenderer"/> will be returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.ObjectRenderer.RendererMap.SearchTypeAndInterfaces(System.Type)">
-            <summary>
-            Internal function to recursively search interfaces
-            </summary>
-            <param name="type">the type to lookup the renderer for</param>
-            <returns>the renderer for the specified type</returns>
-        </member>
-        <member name="M:log4net.ObjectRenderer.RendererMap.Clear">
-            <summary>
-            Clear the map of renderers
-            </summary>
-            <remarks>
-            <para>
-            Clear the custom renderers defined by using
-            <see cref="M:log4net.ObjectRenderer.RendererMap.Put(System.Type,log4net.ObjectRenderer.IObjectRenderer)"/>. The <see cref="P:log4net.ObjectRenderer.RendererMap.DefaultRenderer"/>
-            cannot be removed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.ObjectRenderer.RendererMap.Put(System.Type,log4net.ObjectRenderer.IObjectRenderer)">
-            <summary>
-            Register an <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/> for <paramref name="typeToRender"/>. 
-            </summary>
-            <param name="typeToRender">the type that will be rendered by <paramref name="renderer"/></param>
-            <param name="renderer">the renderer for <paramref name="typeToRender"/></param>
-            <remarks>
-            <para>
-            Register an object renderer for a specific source type.
-            This renderer will be returned from a call to <see cref="M:log4net.ObjectRenderer.RendererMap.Get(System.Type)"/>
-            specifying the same <paramref name="typeToRender"/> as an argument.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.ObjectRenderer.RendererMap.DefaultRenderer">
-            <summary>
-            Get the default renderer instance
-            </summary>
-            <value>the default renderer</value>
-            <remarks>
-            <para>
-            Get the default renderer
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Plugin.IPlugin">
-            <summary>
-            Interface implemented by logger repository plugins.
-            </summary>
-            <remarks>
-            <para>
-            Plugins define additional behavior that can be associated
-            with a <see cref="T:log4net.Repository.ILoggerRepository"/>.
-            The <see cref="T:log4net.Plugin.PluginMap"/> held by the <see cref="P:log4net.Repository.ILoggerRepository.PluginMap"/>
-            property is used to store the plugins for a repository.
-            </para>
-            <para>
-            The <c>log4net.Config.PluginAttribute</c> can be used to
-            attach plugins to repositories created using configuration
-            attributes.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Plugin.IPlugin.Attach(log4net.Repository.ILoggerRepository)">
-            <summary>
-            Attaches the plugin to the specified <see cref="T:log4net.Repository.ILoggerRepository"/>.
-            </summary>
-            <param name="repository">The <see cref="T:log4net.Repository.ILoggerRepository"/> that this plugin should be attached to.</param>
-            <remarks>
-            <para>
-            A plugin may only be attached to a single repository.
-            </para>
-            <para>
-            This method is called when the plugin is attached to the repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Plugin.IPlugin.Shutdown">
-            <summary>
-            Is called when the plugin is to shutdown.
-            </summary>
-            <remarks>
-            <para>
-            This method is called to notify the plugin that 
-            it should stop operating and should detach from
-            the repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Plugin.IPlugin.Name">
-            <summary>
-            Gets the name of the plugin.
-            </summary>
-            <value>
-            The name of the plugin.
-            </value>
-            <remarks>
-            <para>
-            Plugins are stored in the <see cref="T:log4net.Plugin.PluginMap"/>
-            keyed by name. Each plugin instance attached to a
-            repository must be a unique name.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Plugin.PluginCollection">
-            <summary>
-            A strongly-typed collection of <see cref="T:log4net.Plugin.IPlugin"/> objects.
-            </summary>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.ReadOnly(log4net.Plugin.PluginCollection)">
-            <summary>
-            Creates a read-only wrapper for a <c>PluginCollection</c> instance.
-            </summary>
-            <param name="list">list to create a readonly wrapper arround</param>
-            <returns>
-            A <c>PluginCollection</c> wrapper that is read-only.
-            </returns>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.#ctor">
-            <summary>
-            Initializes a new instance of the <c>PluginCollection</c> class
-            that is empty and has the default initial capacity.
-            </summary>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.#ctor(System.Int32)">
-            <summary>
-            Initializes a new instance of the <c>PluginCollection</c> class
-            that has the specified initial capacity.
-            </summary>
-            <param name="capacity">
-            The number of elements that the new <c>PluginCollection</c> is initially capable of storing.
-            </param>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.#ctor(log4net.Plugin.PluginCollection)">
-            <summary>
-            Initializes a new instance of the <c>PluginCollection</c> class
-            that contains elements copied from the specified <c>PluginCollection</c>.
-            </summary>
-            <param name="c">The <c>PluginCollection</c> whose elements are copied to the new collection.</param>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.#ctor(log4net.Plugin.IPlugin[])">
-            <summary>
-            Initializes a new instance of the <c>PluginCollection</c> class
-            that contains elements copied from the specified <see cref="T:log4net.Plugin.IPlugin"/> array.
-            </summary>
-            <param name="a">The <see cref="T:log4net.Plugin.IPlugin"/> array whose elements are copied to the new list.</param>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.#ctor(System.Collections.ICollection)">
-            <summary>
-            Initializes a new instance of the <c>PluginCollection</c> class
-            that contains elements copied from the specified <see cref="T:log4net.Plugin.IPlugin"/> collection.
-            </summary>
-            <param name="col">The <see cref="T:log4net.Plugin.IPlugin"/> collection whose elements are copied to the new list.</param>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.#ctor(log4net.Plugin.PluginCollection.Tag)">
-            <summary>
-            Allow subclasses to avoid our default constructors
-            </summary>
-            <param name="tag"></param>
-            <exclude/>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.CopyTo(log4net.Plugin.IPlugin[])">
-            <summary>
-            Copies the entire <c>PluginCollection</c> to a one-dimensional
-            <see cref="T:log4net.Plugin.IPlugin"/> array.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:log4net.Plugin.IPlugin"/> array to copy to.</param>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.CopyTo(log4net.Plugin.IPlugin[],System.Int32)">
-            <summary>
-            Copies the entire <c>PluginCollection</c> to a one-dimensional
-            <see cref="T:log4net.Plugin.IPlugin"/> array, starting at the specified index of the target array.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:log4net.Plugin.IPlugin"/> array to copy to.</param>
-            <param name="start">The zero-based index in <paramref name="array"/> at which copying begins.</param>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.Add(log4net.Plugin.IPlugin)">
-            <summary>
-            Adds a <see cref="T:log4net.Plugin.IPlugin"/> to the end of the <c>PluginCollection</c>.
-            </summary>
-            <param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to be added to the end of the <c>PluginCollection</c>.</param>
-            <returns>The index at which the value has been added.</returns>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.Clear">
-            <summary>
-            Removes all elements from the <c>PluginCollection</c>.
-            </summary>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.Clone">
-            <summary>
-            Creates a shallow copy of the <see cref="T:log4net.Plugin.PluginCollection"/>.
-            </summary>
-            <returns>A new <see cref="T:log4net.Plugin.PluginCollection"/> with a shallow copy of the collection data.</returns>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.Contains(log4net.Plugin.IPlugin)">
-            <summary>
-            Determines whether a given <see cref="T:log4net.Plugin.IPlugin"/> is in the <c>PluginCollection</c>.
-            </summary>
-            <param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to check for.</param>
-            <returns><c>true</c> if <paramref name="item"/> is found in the <c>PluginCollection</c>; otherwise, <c>false</c>.</returns>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.IndexOf(log4net.Plugin.IPlugin)">
-            <summary>
-            Returns the zero-based index of the first occurrence of a <see cref="T:log4net.Plugin.IPlugin"/>
-            in the <c>PluginCollection</c>.
-            </summary>
-            <param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to locate in the <c>PluginCollection</c>.</param>
-            <returns>
-            The zero-based index of the first occurrence of <paramref name="item"/> 
-            in the entire <c>PluginCollection</c>, if found; otherwise, -1.
-            </returns>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.Insert(System.Int32,log4net.Plugin.IPlugin)">
-            <summary>
-            Inserts an element into the <c>PluginCollection</c> at the specified index.
-            </summary>
-            <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
-            <param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to insert.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <para><paramref name="index"/> is less than zero</para>
-            <para>-or-</para>
-            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Plugin.PluginCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.Remove(log4net.Plugin.IPlugin)">
-            <summary>
-            Removes the first occurrence of a specific <see cref="T:log4net.Plugin.IPlugin"/> from the <c>PluginCollection</c>.
-            </summary>
-            <param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to remove from the <c>PluginCollection</c>.</param>
-            <exception cref="T:System.ArgumentException">
-            The specified <see cref="T:log4net.Plugin.IPlugin"/> was not found in the <c>PluginCollection</c>.
-            </exception>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.RemoveAt(System.Int32)">
-            <summary>
-            Removes the element at the specified index of the <c>PluginCollection</c>.
-            </summary>
-            <param name="index">The zero-based index of the element to remove.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <para><paramref name="index"/> is less than zero.</para>
-            <para>-or-</para>
-            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Plugin.PluginCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.GetEnumerator">
-            <summary>
-            Returns an enumerator that can iterate through the <c>PluginCollection</c>.
-            </summary>
-            <returns>An <see cref="T:log4net.Plugin.PluginCollection.Enumerator"/> for the entire <c>PluginCollection</c>.</returns>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.AddRange(log4net.Plugin.PluginCollection)">
-            <summary>
-            Adds the elements of another <c>PluginCollection</c> to the current <c>PluginCollection</c>.
-            </summary>
-            <param name="x">The <c>PluginCollection</c> whose elements should be added to the end of the current <c>PluginCollection</c>.</param>
-            <returns>The new <see cref="P:log4net.Plugin.PluginCollection.Count"/> of the <c>PluginCollection</c>.</returns>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.AddRange(log4net.Plugin.IPlugin[])">
-            <summary>
-            Adds the elements of a <see cref="T:log4net.Plugin.IPlugin"/> array to the current <c>PluginCollection</c>.
-            </summary>
-            <param name="x">The <see cref="T:log4net.Plugin.IPlugin"/> array whose elements should be added to the end of the <c>PluginCollection</c>.</param>
-            <returns>The new <see cref="P:log4net.Plugin.PluginCollection.Count"/> of the <c>PluginCollection</c>.</returns>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.AddRange(System.Collections.ICollection)">
-            <summary>
-            Adds the elements of a <see cref="T:log4net.Plugin.IPlugin"/> collection to the current <c>PluginCollection</c>.
-            </summary>
-            <param name="col">The <see cref="T:log4net.Plugin.IPlugin"/> collection whose elements should be added to the end of the <c>PluginCollection</c>.</param>
-            <returns>The new <see cref="P:log4net.Plugin.PluginCollection.Count"/> of the <c>PluginCollection</c>.</returns>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.TrimToSize">
-            <summary>
-            Sets the capacity to the actual number of elements.
-            </summary>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.ValidateIndex(System.Int32)">
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <para><paramref name="index"/> is less than zero.</para>
-            <para>-or-</para>
-            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Plugin.PluginCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.ValidateIndex(System.Int32,System.Boolean)">
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <para><paramref name="index"/> is less than zero.</para>
-            <para>-or-</para>
-            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Plugin.PluginCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="P:log4net.Plugin.PluginCollection.Count">
-            <summary>
-            Gets the number of elements actually contained in the <c>PluginCollection</c>.
-            </summary>
-        </member>
-        <member name="P:log4net.Plugin.PluginCollection.IsSynchronized">
-            <summary>
-            Gets a value indicating whether access to the collection is synchronized (thread-safe).
-            </summary>
-            <returns>true if access to the ICollection is synchronized (thread-safe); otherwise, false.</returns>
-        </member>
-        <member name="P:log4net.Plugin.PluginCollection.SyncRoot">
-            <summary>
-            Gets an object that can be used to synchronize access to the collection.
-            </summary>
-            <value>
-            An object that can be used to synchronize access to the collection.
-            </value>
-        </member>
-        <member name="P:log4net.Plugin.PluginCollection.Item(System.Int32)">
-            <summary>
-            Gets or sets the <see cref="T:log4net.Plugin.IPlugin"/> at the specified index.
-            </summary>
-            <value>
-            The <see cref="T:log4net.Plugin.IPlugin"/> at the specified index.
-            </value>
-            <param name="index">The zero-based index of the element to get or set.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <para><paramref name="index"/> is less than zero.</para>
-            <para>-or-</para>
-            <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Plugin.PluginCollection.Count"/>.</para>
-            </exception>
-        </member>
-        <member name="P:log4net.Plugin.PluginCollection.IsFixedSize">
-            <summary>
-            Gets a value indicating whether the collection has a fixed size.
-            </summary>
-            <value><c>true</c> if the collection has a fixed size; otherwise, <c>false</c>. The default is <c>false</c>.</value>
-        </member>
-        <member name="P:log4net.Plugin.PluginCollection.IsReadOnly">
-            <summary>
-            Gets a value indicating whether the IList is read-only.
-            </summary>
-            <value><c>true</c> if the collection is read-only; otherwise, <c>false</c>. The default is <c>false</c>.</value>
-        </member>
-        <member name="P:log4net.Plugin.PluginCollection.Capacity">
-            <summary>
-            Gets or sets the number of elements the <c>PluginCollection</c> can contain.
-            </summary>
-            <value>
-            The number of elements the <c>PluginCollection</c> can contain.
-            </value>
-        </member>
-        <member name="T:log4net.Plugin.PluginCollection.IPluginCollectionEnumerator">
-            <summary>
-            Supports type-safe iteration over a <see cref="T:log4net.Plugin.PluginCollection"/>.
-            </summary>
-            <exclude/>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.IPluginCollectionEnumerator.MoveNext">
-            <summary>
-            Advances the enumerator to the next element in the collection.
-            </summary>
-            <returns>
-            <c>true</c> if the enumerator was successfully advanced to the next element; 
-            <c>false</c> if the enumerator has passed the end of the collection.
-            </returns>
-            <exception cref="T:System.InvalidOperationException">
-            The collection was modified after the enumerator was created.
-            </exception>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.IPluginCollectionEnumerator.Reset">
-            <summary>
-            Sets the enumerator to its initial position, before the first element in the collection.
-            </summary>
-        </member>
-        <member name="P:log4net.Plugin.PluginCollection.IPluginCollectionEnumerator.Current">
-            <summary>
-            Gets the current element in the collection.
-            </summary>
-        </member>
-        <member name="T:log4net.Plugin.PluginCollection.Tag">
-            <summary>
-            Type visible only to our subclasses
-            Used to access protected constructor
-            </summary>
-            <exclude/>
-        </member>
-        <member name="F:log4net.Plugin.PluginCollection.Tag.Default">
-            <summary>
-            A value
-            </summary>
-        </member>
-        <member name="T:log4net.Plugin.PluginCollection.Enumerator">
-            <summary>
-            Supports simple iteration over a <see cref="T:log4net.Plugin.PluginCollection"/>.
-            </summary>
-            <exclude/>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.Enumerator.#ctor(log4net.Plugin.PluginCollection)">
-            <summary>
-            Initializes a new instance of the <c>Enumerator</c> class.
-            </summary>
-            <param name="tc"></param>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.Enumerator.MoveNext">
-            <summary>
-            Advances the enumerator to the next element in the collection.
-            </summary>
-            <returns>
-            <c>true</c> if the enumerator was successfully advanced to the next element; 
-            <c>false</c> if the enumerator has passed the end of the collection.
-            </returns>
-            <exception cref="T:System.InvalidOperationException">
-            The collection was modified after the enumerator was created.
-            </exception>
-        </member>
-        <member name="M:log4net.Plugin.PluginCollection.Enumerator.Reset">
-            <summary>
-            Sets the enumerator to its initial position, before the first element in the collection.
-            </summary>
-        </member>
-        <member name="P:log4net.Plugin.PluginCollection.Enumerator.Current">
-            <summary>
-            Gets the current element in the collection.
-            </summary>
-            <value>
-            The current element in the collection.
-            </value>
-        </member>
-        <member name="T:log4net.Plugin.PluginCollection.ReadOnlyPluginCollection">
-            <exclude/>
-        </member>
-        <member name="T:log4net.Plugin.PluginMap">
-            <summary>
-            Map of repository plugins.
-            </summary>
-            <remarks>
-            <para>
-            This class is a name keyed map of the plugins that are
-            attached to a repository.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Plugin.PluginMap.#ctor(log4net.Repository.ILoggerRepository)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="repository">The repository that the plugins should be attached to.</param>
-            <remarks>
-            <para>
-            Initialize a new instance of the <see cref="T:log4net.Plugin.PluginMap"/> class with a 
-            repository that the plugins should be attached to.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Plugin.PluginMap.Add(log4net.Plugin.IPlugin)">
-            <summary>
-            Adds a <see cref="T:log4net.Plugin.IPlugin"/> to the map.
-            </summary>
-            <param name="plugin">The <see cref="T:log4net.Plugin.IPlugin"/> to add to the map.</param>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Plugin.IPlugin"/> will be attached to the repository when added.
-            </para>
-            <para>
-            If there already exists a plugin with the same name 
-            attached to the repository then the old plugin will
-            be <see cref="M:log4net.Plugin.IPlugin.Shutdown"/> and replaced with
-            the new plugin.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Plugin.PluginMap.Remove(log4net.Plugin.IPlugin)">
-            <summary>
-            Removes a <see cref="T:log4net.Plugin.IPlugin"/> from the map.
-            </summary>
-            <param name="plugin">The <see cref="T:log4net.Plugin.IPlugin"/> to remove from the map.</param>
-            <remarks>
-            <para>
-            Remove a specific plugin from this map.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Plugin.PluginMap.Item(System.String)">
-            <summary>
-            Gets a <see cref="T:log4net.Plugin.IPlugin"/> by name.
-            </summary>
-            <param name="name">The name of the <see cref="T:log4net.Plugin.IPlugin"/> to lookup.</param>
-            <returns>
-            The <see cref="T:log4net.Plugin.IPlugin"/> from the map with the name specified, or 
-            <c>null</c> if no plugin is found.
-            </returns>
-            <remarks>
-            <para>
-            Lookup a plugin by name. If the plugin is not found <c>null</c>
-            will be returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Plugin.PluginMap.AllPlugins">
-            <summary>
-            Gets all possible plugins as a list of <see cref="T:log4net.Plugin.IPlugin"/> objects.
-            </summary>
-            <value>All possible plugins as a list of <see cref="T:log4net.Plugin.IPlugin"/> objects.</value>
-            <remarks>
-            <para>
-            Get a collection of all the plugins defined in this map.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Plugin.PluginSkeleton">
-            <summary>
-            Base implementation of <see cref="T:log4net.Plugin.IPlugin"/>
-            </summary>
-            <remarks>
-            <para>
-            Default abstract implementation of the <see cref="T:log4net.Plugin.IPlugin"/>
-            interface. This base class can be used by implementors
-            of the <see cref="T:log4net.Plugin.IPlugin"/> interface.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Plugin.PluginSkeleton.#ctor(System.String)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="name">the name of the plugin</param>
-            <remarks>
-            Initializes a new Plugin with the specified name.
-            </remarks>
-        </member>
-        <member name="M:log4net.Plugin.PluginSkeleton.Attach(log4net.Repository.ILoggerRepository)">
-            <summary>
-            Attaches this plugin to a <see cref="T:log4net.Repository.ILoggerRepository"/>.
-            </summary>
-            <param name="repository">The <see cref="T:log4net.Repository.ILoggerRepository"/> that this plugin should be attached to.</param>
-            <remarks>
-            <para>
-            A plugin may only be attached to a single repository.
-            </para>
-            <para>
-            This method is called when the plugin is attached to the repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Plugin.PluginSkeleton.Shutdown">
-            <summary>
-            Is called when the plugin is to shutdown.
-            </summary>
-            <remarks>
-            <para>
-            This method is called to notify the plugin that 
-            it should stop operating and should detach from
-            the repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Plugin.PluginSkeleton.m_name">
-            <summary>
-            The name of this plugin.
-            </summary>
-        </member>
-        <member name="F:log4net.Plugin.PluginSkeleton.m_repository">
-            <summary>
-            The repository this plugin is attached to.
-            </summary>
-        </member>
-        <member name="P:log4net.Plugin.PluginSkeleton.Name">
-            <summary>
-            Gets or sets the name of the plugin.
-            </summary>
-            <value>
-            The name of the plugin.
-            </value>
-            <remarks>
-            <para>
-            Plugins are stored in the <see cref="T:log4net.Plugin.PluginMap"/>
-            keyed by name. Each plugin instance attached to a
-            repository must be a unique name.
-            </para>
-            <para>
-            The name of the plugin must not change one the 
-            plugin has been attached to a repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Plugin.PluginSkeleton.LoggerRepository">
-            <summary>
-            The repository for this plugin
-            </summary>
-            <value>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> that this plugin is attached to.
-            </value>
-            <remarks>
-            <para>
-            Gets or sets the <see cref="T:log4net.Repository.ILoggerRepository"/> that this plugin is 
-            attached to.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Plugin.RemoteLoggingServerPlugin">
-            <summary>
-            Plugin that listens for events from the <see cref="T:log4net.Appender.RemotingAppender"/>
-            </summary>
-            <remarks>
-            <para>
-            This plugin publishes an instance of <see cref="T:log4net.Appender.RemotingAppender.IRemoteLoggingSink"/> 
-            on a specified <see cref="P:log4net.Plugin.RemoteLoggingServerPlugin.SinkUri"/>. This listens for logging events delivered from
-            a remote <see cref="T:log4net.Appender.RemotingAppender"/>.
-            </para>
-            <para>
-            When an event is received it is relogged within the attached repository
-            as if it had been raised locally.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Plugin.RemoteLoggingServerPlugin.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Plugin.RemoteLoggingServerPlugin"/> class.
-            </para>
-            <para>
-            The <see cref="P:log4net.Plugin.RemoteLoggingServerPlugin.SinkUri"/> property must be set.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Plugin.RemoteLoggingServerPlugin.#ctor(System.String)">
-            <summary>
-            Construct with sink Uri.
-            </summary>
-            <param name="sinkUri">The name to publish the sink under in the remoting infrastructure. 
-            See <see cref="P:log4net.Plugin.RemoteLoggingServerPlugin.SinkUri"/> for more details.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Plugin.RemoteLoggingServerPlugin"/> class
-            with specified name.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Plugin.RemoteLoggingServerPlugin.Attach(log4net.Repository.ILoggerRepository)">
-            <summary>
-            Attaches this plugin to a <see cref="T:log4net.Repository.ILoggerRepository"/>.
-            </summary>
-            <param name="repository">The <see cref="T:log4net.Repository.ILoggerRepository"/> that this plugin should be attached to.</param>
-            <remarks>
-            <para>
-            A plugin may only be attached to a single repository.
-            </para>
-            <para>
-            This method is called when the plugin is attached to the repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Plugin.RemoteLoggingServerPlugin.Shutdown">
-            <summary>
-            Is called when the plugin is to shutdown.
-            </summary>
-            <remarks>
-            <para>
-            When the plugin is shutdown the remote logging
-            sink is disconnected.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Plugin.RemoteLoggingServerPlugin.SinkUri">
-            <summary>
-            Gets or sets the URI of this sink.
-            </summary>
-            <value>
-            The URI of this sink.
-            </value>
-            <remarks>
-            <para>
-            This is the name under which the object is marshaled.
-            <see cref="M:System.Runtime.Remoting.RemotingServices.Marshal(System.MarshalByRefObject,System.String,System.Type)"/>
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSinkImpl">
-            <summary>
-            Delivers <see cref="T:log4net.Core.LoggingEvent"/> objects to a remote sink.
-            </summary>
-            <remarks>
-            <para>
-            Internal class used to listen for logging events
-            and deliver them to the local repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSinkImpl.#ctor(log4net.Repository.ILoggerRepository)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="repository">The repository to log to.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSinkImpl"/> for the
-            specified <see cref="T:log4net.Repository.ILoggerRepository"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSinkImpl.LogEvents(log4net.Core.LoggingEvent[])">
-            <summary>
-            Logs the events to the repository.
-            </summary>
-            <param name="events">The events to log.</param>
-            <remarks>
-            <para>
-            The events passed are logged to the <see cref="T:log4net.Repository.ILoggerRepository"/>
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSinkImpl.InitializeLifetimeService">
-            <summary>
-            Obtains a lifetime service object to control the lifetime 
-            policy for this instance.
-            </summary>
-            <returns><c>null</c> to indicate that this instance should live forever.</returns>
-            <remarks>
-            <para>
-            Obtains a lifetime service object to control the lifetime 
-            policy for this instance. This object should live forever
-            therefore this implementation returns <c>null</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSinkImpl.m_repository">
-            <summary>
-            The underlying <see cref="T:log4net.Repository.ILoggerRepository"/> that events should
-            be logged to.
-            </summary>
-        </member>
-        <member name="T:log4net.Repository.Hierarchy.DefaultLoggerFactory">
-            <summary>
-            Default implementation of <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/>
-            </summary>
-            <remarks>
-            <para>
-            This default implementation of the <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/>
-            interface is used to create the default subclass
-            of the <see cref="T:log4net.Repository.Hierarchy.Logger"/> object.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Repository.Hierarchy.ILoggerFactory">
-            <summary>
-            Interface abstracts creation of <see cref="T:log4net.Repository.Hierarchy.Logger"/> instances
-            </summary>
-            <remarks>
-            <para>
-            This interface is used by the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> to 
-            create new <see cref="T:log4net.Repository.Hierarchy.Logger"/> objects.
-            </para>
-            <para>
-            The <see cref="M:log4net.Repository.Hierarchy.ILoggerFactory.CreateLogger(System.String)"/> method is called
-            to create a named <see cref="T:log4net.Repository.Hierarchy.Logger"/>.
-            </para>
-            <para>
-            Implement this interface to create new subclasses of <see cref="T:log4net.Repository.Hierarchy.Logger"/>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.ILoggerFactory.CreateLogger(System.String)">
-            <summary>
-            Create a new <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance
-            </summary>
-            <param name="name">The name of the <see cref="T:log4net.Repository.Hierarchy.Logger"/>.</param>
-            <returns>The <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance for the specified name.</returns>
-            <remarks>
-            <para>
-            Create a new <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance with the 
-            specified name.
-            </para>
-            <para>
-            Called by the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> to create
-            new named <see cref="T:log4net.Repository.Hierarchy.Logger"/> instances.
-            </para>
-            <para>
-            If the <paramref name="name"/> is <c>null</c> then the root logger
-            must be returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.DefaultLoggerFactory.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.DefaultLoggerFactory"/> class. 
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.DefaultLoggerFactory.CreateLogger(System.String)">
-            <summary>
-            Create a new <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance
-            </summary>
-            <param name="name">The name of the <see cref="T:log4net.Repository.Hierarchy.Logger"/>.</param>
-            <returns>The <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance for the specified name.</returns>
-            <remarks>
-            <para>
-            Create a new <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance with the 
-            specified name.
-            </para>
-            <para>
-            Called by the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> to create
-            new named <see cref="T:log4net.Repository.Hierarchy.Logger"/> instances.
-            </para>
-            <para>
-            If the <paramref name="name"/> is <c>null</c> then the root logger
-            must be returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.Hierarchy.DefaultLoggerFactory.LoggerImpl">
-            <summary>
-            Default internal subclass of <see cref="T:log4net.Repository.Hierarchy.Logger"/>
-            </summary>
-            <remarks>
-            <para>
-            This subclass has no additional behavior over the
-            <see cref="T:log4net.Repository.Hierarchy.Logger"/> class but does allow instances
-            to be created.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.Hierarchy.Logger">
-            <summary>
-            Implementation of <see cref="T:log4net.Core.ILogger"/> used by <see cref="P:log4net.Repository.Hierarchy.Logger.Hierarchy"/>
-            </summary>
-            <remarks>
-            <para>
-            Internal class used to provide implementation of <see cref="T:log4net.Core.ILogger"/>
-            interface. Applications should use <see cref="T:log4net.LogManager"/> to get
-            logger instances.
-            </para>
-            <para>
-            This is one of the central classes in the log4net implementation. One of the
-            distinctive features of log4net are hierarchical loggers and their
-            evaluation. The <see cref="P:log4net.Repository.Hierarchy.Logger.Hierarchy"/> organizes the <see cref="T:log4net.Repository.Hierarchy.Logger"/>
-            instances into a rooted tree hierarchy.
-            </para>
-            <para>
-            The <see cref="T:log4net.Repository.Hierarchy.Logger"/> class is abstract. Only concrete subclasses of
-            <see cref="T:log4net.Repository.Hierarchy.Logger"/> can be created. The <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/>
-            is used to create instances of this type for the <see cref="P:log4net.Repository.Hierarchy.Logger.Hierarchy"/>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-            <author>Aspi Havewala</author>
-            <author>Douglas de la Torre</author>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Logger.#ctor(System.String)">
-            <summary>
-            This constructor created a new <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance and
-            sets its name.
-            </summary>
-            <param name="name">The name of the <see cref="T:log4net.Repository.Hierarchy.Logger"/>.</param>
-            <remarks>
-            <para>
-            This constructor is protected and designed to be used by
-            a subclass that is not abstract.
-            </para>
-            <para>
-            Loggers are constructed by <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/> 
-            objects. See <see cref="T:log4net.Repository.Hierarchy.DefaultLoggerFactory"/> for the default
-            logger creator.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Logger.AddAppender(log4net.Appender.IAppender)">
-            <summary>
-            Add <paramref name="newAppender"/> to the list of appenders of this
-            Logger instance.
-            </summary>
-            <param name="newAppender">An appender to add to this logger</param>
-            <remarks>
-            <para>
-            Add <paramref name="newAppender"/> to the list of appenders of this
-            Logger instance.
-            </para>
-            <para>
-            If <paramref name="newAppender"/> is already in the list of
-            appenders, then it won't be added again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Logger.GetAppender(System.String)">
-            <summary>
-            Look for the appender named as <c>name</c>
-            </summary>
-            <param name="name">The name of the appender to lookup</param>
-            <returns>The appender with the name specified, or <c>null</c>.</returns>
-            <remarks>
-            <para>
-            Returns the named appender, or null if the appender is not found.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Logger.RemoveAllAppenders">
-            <summary>
-            Remove all previously added appenders from this Logger instance.
-            </summary>
-            <remarks>
-            <para>
-            Remove all previously added appenders from this Logger instance.
-            </para>
-            <para>
-            This is useful when re-reading configuration information.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Logger.RemoveAppender(log4net.Appender.IAppender)">
-            <summary>
-            Remove the appender passed as parameter form the list of appenders.
-            </summary>
-            <param name="appender">The appender to remove</param>
-            <returns>The appender removed from the list</returns>
-            <remarks>
-            <para>
-            Remove the appender passed as parameter form the list of appenders.
-            The appender removed is not closed.
-            If you are discarding the appender you must call
-            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Logger.RemoveAppender(System.String)">
-            <summary>
-            Remove the appender passed as parameter form the list of appenders.
-            </summary>
-            <param name="name">The name of the appender to remove</param>
-            <returns>The appender removed from the list</returns>
-            <remarks>
-            <para>
-            Remove the named appender passed as parameter form the list of appenders.
-            The appender removed is not closed.
-            If you are discarding the appender you must call
-            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Logger.Log(System.Type,log4net.Core.Level,System.Object,System.Exception)">
-            <summary>
-            This generic form is intended to be used by wrappers.
-            </summary>
-            <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
-            the stack boundary into the logging system for this call.</param>
-            <param name="level">The level of the message to be logged.</param>
-            <param name="message">The message object to log.</param>
-            <param name="exception">The exception to log, including its stack trace.</param>
-            <remarks>
-            <para>
-            Generate a logging event for the specified <paramref name="level"/> using
-            the <paramref name="message"/> and <paramref name="exception"/>.
-            </para>
-            <para>
-            This method must not throw any exception to the caller.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Logger.Log(log4net.Core.LoggingEvent)">
-            <summary>
-            This is the most generic printing method that is intended to be used 
-            by wrappers.
-            </summary>
-            <param name="logEvent">The event being logged.</param>
-            <remarks>
-            <para>
-            Logs the specified logging event through this logger.
-            </para>
-            <para>
-            This method must not throw any exception to the caller.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Logger.IsEnabledFor(log4net.Core.Level)">
-            <summary>
-            Checks if this logger is enabled for a given <see cref="P:log4net.Repository.Hierarchy.Logger.Level"/> passed as parameter.
-            </summary>
-            <param name="level">The level to check.</param>
-            <returns>
-            <c>true</c> if this logger is enabled for <c>level</c>, otherwise <c>false</c>.
-            </returns>
-            <remarks>
-            <para>
-            Test if this logger is going to log events of the specified <paramref name="level"/>.
-            </para>
-            <para>
-            This method must not throw any exception to the caller.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Logger.CallAppenders(log4net.Core.LoggingEvent)">
-            <summary>
-            Deliver the <see cref="T:log4net.Core.LoggingEvent"/> to the attached appenders.
-            </summary>
-            <param name="loggingEvent">The event to log.</param>
-            <remarks>
-            <para>
-            Call the appenders in the hierarchy starting at
-            <c>this</c>. If no appenders could be found, emit a
-            warning.
-            </para>
-            <para>
-            This method calls all the appenders inherited from the
-            hierarchy circumventing any evaluation of whether to log or not
-            to log the particular log request.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Logger.CloseNestedAppenders">
-            <summary>
-            Closes all attached appenders implementing the <see cref="T:log4net.Core.IAppenderAttachable"/> interface.
-            </summary>
-            <remarks>
-            <para>
-            Used to ensure that the appenders are correctly shutdown.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Logger.Log(log4net.Core.Level,System.Object,System.Exception)">
-            <summary>
-            This is the most generic printing method. This generic form is intended to be used by wrappers
-            </summary>
-            <param name="level">The level of the message to be logged.</param>
-            <param name="message">The message object to log.</param>
-            <param name="exception">The exception to log, including its stack trace.</param>
-            <remarks>
-            <para>
-            Generate a logging event for the specified <paramref name="level"/> using
-            the <paramref name="message"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Logger.ForcedLog(System.Type,log4net.Core.Level,System.Object,System.Exception)">
-            <summary>
-            Creates a new logging event and logs the event without further checks.
-            </summary>
-            <param name="callerStackBoundaryDeclaringType">The declaring type of the method that is
-            the stack boundary into the logging system for this call.</param>
-            <param name="level">The level of the message to be logged.</param>
-            <param name="message">The message object to log.</param>
-            <param name="exception">The exception to log, including its stack trace.</param>
-            <remarks>
-            <para>
-            Generates a logging event and delivers it to the attached
-            appenders.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Logger.ForcedLog(log4net.Core.LoggingEvent)">
-            <summary>
-            Creates a new logging event and logs the event without further checks.
-            </summary>
-            <param name="logEvent">The event being logged.</param>
-            <remarks>
-            <para>
-            Delivers the logging event to the attached appenders.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Repository.Hierarchy.Logger.ThisDeclaringType">
-            <summary>
-            The fully qualified type of the Logger class.
-            </summary>
-        </member>
-        <member name="F:log4net.Repository.Hierarchy.Logger.m_name">
-            <summary>
-            The name of this logger.
-            </summary>
-        </member>
-        <member name="F:log4net.Repository.Hierarchy.Logger.m_level">
-            <summary>
-            The assigned level of this logger. 
-            </summary>
-            <remarks>
-            <para>
-            The <c>level</c> variable need not be 
-            assigned a value in which case it is inherited 
-            form the hierarchy.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Repository.Hierarchy.Logger.m_parent">
-            <summary>
-            The parent of this logger.
-            </summary>
-            <remarks>
-            <para>
-            The parent of this logger. 
-            All loggers have at least one ancestor which is the root logger.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Repository.Hierarchy.Logger.m_hierarchy">
-            <summary>
-            Loggers need to know what Hierarchy they are in.
-            </summary>
-            <remarks>
-            <para>
-            Loggers need to know what Hierarchy they are in.
-            The hierarchy that this logger is a member of is stored
-            here.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Repository.Hierarchy.Logger.m_appenderAttachedImpl">
-            <summary>
-            Helper implementation of the <see cref="T:log4net.Core.IAppenderAttachable"/> interface
-            </summary>
-        </member>
-        <member name="F:log4net.Repository.Hierarchy.Logger.m_additive">
-            <summary>
-            Flag indicating if child loggers inherit their parents appenders
-            </summary>
-            <remarks>
-            <para>
-            Additivity is set to true by default, that is children inherit
-            the appenders of their ancestors by default. If this variable is
-            set to <c>false</c> then the appenders found in the
-            ancestors of this logger are not used. However, the children
-            of this logger will inherit its appenders, unless the children
-            have their additivity flag set to <c>false</c> too. See
-            the user manual for more details.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Repository.Hierarchy.Logger.m_appenderLock">
-            <summary>
-            Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl
-            </summary>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Logger.Parent">
-            <summary>
-            Gets or sets the parent logger in the hierarchy.
-            </summary>
-            <value>
-            The parent logger in the hierarchy.
-            </value>
-            <remarks>
-            <para>
-            Part of the Composite pattern that makes the hierarchy.
-            The hierarchy is parent linked rather than child linked.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Logger.Additivity">
-            <summary>
-            Gets or sets a value indicating if child loggers inherit their parent's appenders.
-            </summary>
-            <value>
-            <c>true</c> if child loggers inherit their parent's appenders.
-            </value>
-            <remarks>
-            <para>
-            Additivity is set to <c>true</c> by default, that is children inherit
-            the appenders of their ancestors by default. If this variable is
-            set to <c>false</c> then the appenders found in the
-            ancestors of this logger are not used. However, the children
-            of this logger will inherit its appenders, unless the children
-            have their additivity flag set to <c>false</c> too. See
-            the user manual for more details.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Logger.EffectiveLevel">
-            <summary>
-            Gets the effective level for this logger.
-            </summary>
-            <returns>The nearest level in the logger hierarchy.</returns>
-            <remarks>
-            <para>
-            Starting from this logger, searches the logger hierarchy for a
-            non-null level and returns it. Otherwise, returns the level of the
-            root logger.
-            </para>
-            <para>The Logger class is designed so that this method executes as
-            quickly as possible.</para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Logger.Hierarchy">
-            <summary>
-            Gets or sets the <see cref="P:log4net.Repository.Hierarchy.Logger.Hierarchy"/> where this 
-            <c>Logger</c> instance is attached to.
-            </summary>
-            <value>The hierarchy that this logger belongs to.</value>
-            <remarks>
-            <para>
-            This logger must be attached to a single <see cref="P:log4net.Repository.Hierarchy.Logger.Hierarchy"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Logger.Level">
-            <summary>
-            Gets or sets the assigned <see cref="P:log4net.Repository.Hierarchy.Logger.Level"/>, if any, for this Logger.  
-            </summary>
-            <value>
-            The <see cref="P:log4net.Repository.Hierarchy.Logger.Level"/> of this logger.
-            </value>
-            <remarks>
-            <para>
-            The assigned <see cref="P:log4net.Repository.Hierarchy.Logger.Level"/> can be <c>null</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Logger.Appenders">
-            <summary>
-            Get the appenders contained in this logger as an 
-            <see cref="T:System.Collections.ICollection"/>.
-            </summary>
-            <returns>A collection of the appenders in this logger</returns>
-            <remarks>
-            <para>
-            Get the appenders contained in this logger as an 
-            <see cref="T:System.Collections.ICollection"/>. If no appenders 
-            can be found, then a <see cref="T:log4net.Util.EmptyCollection"/> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Logger.Name">
-            <summary>
-            Gets the logger name.
-            </summary>
-            <value>
-            The name of the logger.
-            </value>
-            <remarks>
-            <para>
-            The name of this logger
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Logger.Repository">
-            <summary>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> where this 
-            <c>Logger</c> instance is attached to.
-            </summary>
-            <value>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> that this logger belongs to.
-            </value>
-            <remarks>
-            <para>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> where this 
-            <c>Logger</c> instance is attached to.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.DefaultLoggerFactory.LoggerImpl.#ctor(System.String)">
-            <summary>
-            Construct a new Logger
-            </summary>
-            <param name="name">the name of the logger</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.DefaultLoggerFactory.LoggerImpl"/> class
-            with the specified name. 
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.Hierarchy.LoggerCreationEventHandler">
-            <summary>
-            Delegate used to handle logger creation event notifications.
-            </summary>
-            <param name="sender">The <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> in which the <see cref="T:log4net.Repository.Hierarchy.Logger"/> has been created.</param>
-            <param name="e">The <see cref="T:log4net.Repository.Hierarchy.LoggerCreationEventArgs"/> event args that hold the <see cref="T:log4net.Repository.Hierarchy.Logger"/> instance that has been created.</param>
-            <remarks>
-            <para>
-            Delegate used to handle logger creation event notifications.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.Hierarchy.LoggerCreationEventArgs">
-            <summary>
-            Provides data for the <see cref="E:log4net.Repository.Hierarchy.Hierarchy.LoggerCreatedEvent"/> event.
-            </summary>
-            <remarks>
-            <para>
-            A <see cref="E:log4net.Repository.Hierarchy.Hierarchy.LoggerCreatedEvent"/> event is raised every time a
-            <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger"/> is created.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Repository.Hierarchy.LoggerCreationEventArgs.m_log">
-            <summary>
-            The <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger"/> created
-            </summary>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.LoggerCreationEventArgs.#ctor(log4net.Repository.Hierarchy.Logger)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="log">The <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger"/> that has been created.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.LoggerCreationEventArgs"/> event argument 
-            class,with the specified <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger">
-            <summary>
-            Gets the <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger"/> that has been created.
-            </summary>
-            <value>
-            The <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger"/> that has been created.
-            </value>
-            <remarks>
-            <para>
-            The <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Logger"/> that has been created.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.Hierarchy.Hierarchy">
-            <summary>
-            Hierarchical organization of loggers
-            </summary>
-            <remarks>
-            <para>
-            <i>The casual user should not have to deal with this class
-            directly.</i>
-            </para>
-            <para>
-            This class is specialized in retrieving loggers by name and
-            also maintaining the logger hierarchy. Implements the 
-            <see cref="T:log4net.Repository.ILoggerRepository"/> interface.
-            </para>
-            <para>
-            The structure of the logger hierarchy is maintained by the
-            <see cref="M:log4net.Repository.Hierarchy.Hierarchy.GetLogger(System.String)"/> method. The hierarchy is such that children
-            link to their parent but parents do not have any references to their
-            children. Moreover, loggers can be instantiated in any order, in
-            particular descendant before ancestor.
-            </para>
-            <para>
-            In case a descendant is created before a particular ancestor,
-            then it creates a provision node for the ancestor and adds itself
-            to the provision node. Other descendants of the same ancestor add
-            themselves to the previously created provision node.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Repository.LoggerRepositorySkeleton">
-            <summary>
-            Base implementation of <see cref="T:log4net.Repository.ILoggerRepository"/>
-            </summary>
-            <remarks>
-            <para>
-            Default abstract implementation of the <see cref="T:log4net.Repository.ILoggerRepository"/> interface.
-            </para>
-            <para>
-            Skeleton implementation of the <see cref="T:log4net.Repository.ILoggerRepository"/> interface.
-            All <see cref="T:log4net.Repository.ILoggerRepository"/> types can extend this type.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Repository.ILoggerRepository">
-            <summary>
-            Interface implemented by logger repositories.
-            </summary>
-            <remarks>
-            <para>
-            This interface is implemented by logger repositories. e.g. 
-            <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>.
-            </para>
-            <para>
-            This interface is used by the <see cref="T:log4net.LogManager"/>
-            to obtain <see cref="T:log4net.ILog"/> interfaces.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Repository.ILoggerRepository.Exists(System.String)">
-            <summary>
-            Check if the named logger exists in the repository. If so return
-            its reference, otherwise returns <c>null</c>.
-            </summary>
-            <param name="name">The name of the logger to lookup</param>
-            <returns>The Logger object with the name specified</returns>
-            <remarks>
-            <para>
-            If the names logger exists it is returned, otherwise
-            <c>null</c> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.ILoggerRepository.GetCurrentLoggers">
-            <summary>
-            Returns all the currently defined loggers as an Array.
-            </summary>
-            <returns>All the defined loggers</returns>
-            <remarks>
-            <para>
-            Returns all the currently defined loggers as an Array.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.ILoggerRepository.GetLogger(System.String)">
-            <summary>
-            Returns a named logger instance
-            </summary>
-            <param name="name">The name of the logger to retrieve</param>
-            <returns>The logger object with the name specified</returns>
-            <remarks>
-            <para>
-            Returns a named logger instance.
-            </para>
-            <para>
-            If a logger of that name already exists, then it will be
-            returned.  Otherwise, a new logger will be instantiated and
-            then linked with its existing ancestors as well as children.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.ILoggerRepository.Shutdown">
-            <summary>Shutdown the repository</summary>
-            <remarks>
-            <para>
-            Shutting down a repository will <i>safely</i> close and remove
-            all appenders in all loggers including the root logger.
-            </para>
-            <para>
-            Some appenders need to be closed before the
-            application exists. Otherwise, pending logging events might be
-            lost.
-            </para>
-            <para>
-            The <see cref="M:log4net.Repository.ILoggerRepository.Shutdown"/> method is careful to close nested
-            appenders before closing regular appenders. This is allows
-            configurations where a regular appender is attached to a logger
-            and again to a nested appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.ILoggerRepository.ResetConfiguration">
-            <summary>
-            Reset the repositories configuration to a default state
-            </summary>
-            <remarks>
-            <para>
-            Reset all values contained in this instance to their
-            default state.
-            </para>
-            <para>
-            Existing loggers are not removed. They are just reset.
-            </para>
-            <para>
-            This method should be used sparingly and with care as it will
-            block all logging until it is completed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.ILoggerRepository.Log(log4net.Core.LoggingEvent)">
-            <summary>
-            Log the <see cref="T:log4net.Core.LoggingEvent"/> through this repository.
-            </summary>
-            <param name="logEvent">the event to log</param>
-            <remarks>
-            <para>
-            This method should not normally be used to log.
-            The <see cref="T:log4net.ILog"/> interface should be used 
-            for routine logging. This interface can be obtained
-            using the <see cref="M:log4net.LogManager.GetLogger(System.String)"/> method.
-            </para>
-            <para>
-            The <c>logEvent</c> is delivered to the appropriate logger and
-            that logger is then responsible for logging the event.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.ILoggerRepository.GetAppenders">
-            <summary>
-            Returns all the Appenders that are configured as an Array.
-            </summary>
-            <returns>All the Appenders</returns>
-            <remarks>
-            <para>
-            Returns all the Appenders that are configured as an Array.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.ILoggerRepository.Name">
-            <summary>
-            The name of the repository
-            </summary>
-            <value>
-            The name of the repository
-            </value>
-            <remarks>
-            <para>
-            The name of the repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.ILoggerRepository.RendererMap">
-            <summary>
-            RendererMap accesses the object renderer map for this repository.
-            </summary>
-            <value>
-            RendererMap accesses the object renderer map for this repository.
-            </value>
-            <remarks>
-            <para>
-            RendererMap accesses the object renderer map for this repository.
-            </para>
-            <para>
-            The RendererMap holds a mapping between types and
-            <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/> objects.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.ILoggerRepository.PluginMap">
-            <summary>
-            The plugin map for this repository.
-            </summary>
-            <value>
-            The plugin map for this repository.
-            </value>
-            <remarks>
-            <para>
-            The plugin map holds the <see cref="T:log4net.Plugin.IPlugin"/> instances
-            that have been attached to this repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.ILoggerRepository.LevelMap">
-            <summary>
-            Get the level map for the Repository.
-            </summary>
-            <remarks>
-            <para>
-            Get the level map for the Repository.
-            </para>
-            <para>
-            The level map defines the mappings between
-            level names and <see cref="T:log4net.Core.Level"/> objects in
-            this repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.ILoggerRepository.Threshold">
-            <summary>
-            The threshold for all events in this repository
-            </summary>
-            <value>
-            The threshold for all events in this repository
-            </value>
-            <remarks>
-            <para>
-            The threshold for all events in this repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.ILoggerRepository.Configured">
-            <summary>
-            Flag indicates if this repository has been configured.
-            </summary>
-            <value>
-            Flag indicates if this repository has been configured.
-            </value>
-            <remarks>
-            <para>
-            Flag indicates if this repository has been configured.
-            </para>
-            </remarks>
-        </member>
-        <member name="E:log4net.Repository.ILoggerRepository.ShutdownEvent">
-            <summary>
-            Event to notify that the repository has been shutdown.
-            </summary>
-            <value>
-            Event to notify that the repository has been shutdown.
-            </value>
-            <remarks>
-            <para>
-            Event raised when the repository has been shutdown.
-            </para>
-            </remarks>
-        </member>
-        <member name="E:log4net.Repository.ILoggerRepository.ConfigurationReset">
-            <summary>
-            Event to notify that the repository has had its configuration reset.
-            </summary>
-            <value>
-            Event to notify that the repository has had its configuration reset.
-            </value>
-            <remarks>
-            <para>
-            Event raised when the repository's configuration has been
-            reset to default.
-            </para>
-            </remarks>
-        </member>
-        <member name="E:log4net.Repository.ILoggerRepository.ConfigurationChanged">
-            <summary>
-            Event to notify that the repository has had its configuration changed.
-            </summary>
-            <value>
-            Event to notify that the repository has had its configuration changed.
-            </value>
-            <remarks>
-            <para>
-            Event raised when the repository's configuration has been changed.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.ILoggerRepository.Properties">
-            <summary>
-            Repository specific properties
-            </summary>
-            <value>
-            Repository specific properties
-            </value>
-            <remarks>
-            <para>
-            These properties can be specified on a repository specific basis.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.LoggerRepositorySkeleton.#ctor">
-            <summary>
-            Default Constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes the repository with default (empty) properties.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.LoggerRepositorySkeleton.#ctor(log4net.Util.PropertiesDictionary)">
-            <summary>
-            Construct the repository using specific properties
-            </summary>
-            <param name="properties">the properties to set for this repository</param>
-            <remarks>
-            <para>
-            Initializes the repository with specified properties.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.LoggerRepositorySkeleton.Exists(System.String)">
-            <summary>
-            Test if logger exists
-            </summary>
-            <param name="name">The name of the logger to lookup</param>
-            <returns>The Logger object with the name specified</returns>
-            <remarks>
-            <para>
-            Check if the named logger exists in the repository. If so return
-            its reference, otherwise returns <c>null</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.LoggerRepositorySkeleton.GetCurrentLoggers">
-            <summary>
-            Returns all the currently defined loggers in the repository
-            </summary>
-            <returns>All the defined loggers</returns>
-            <remarks>
-            <para>
-            Returns all the currently defined loggers in the repository as an Array.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.LoggerRepositorySkeleton.GetLogger(System.String)">
-            <summary>
-            Return a new logger instance
-            </summary>
-            <param name="name">The name of the logger to retrieve</param>
-            <returns>The logger object with the name specified</returns>
-            <remarks>
-            <para>
-            Return a new logger instance.
-            </para>
-            <para>
-            If a logger of that name already exists, then it will be
-            returned. Otherwise, a new logger will be instantiated and
-            then linked with its existing ancestors as well as children.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.LoggerRepositorySkeleton.Shutdown">
-            <summary>
-            Shutdown the repository
-            </summary>
-            <remarks>
-            <para>
-            Shutdown the repository. Can be overridden in a subclass.
-            This base class implementation notifies the <see cref="E:log4net.Repository.LoggerRepositorySkeleton.ShutdownEvent"/>
-            listeners and all attached plugins of the shutdown event.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.LoggerRepositorySkeleton.ResetConfiguration">
-            <summary>
-            Reset the repositories configuration to a default state
-            </summary>
-            <remarks>
-            <para>
-            Reset all values contained in this instance to their
-            default state.
-            </para>
-            <para>
-            Existing loggers are not removed. They are just reset.
-            </para>
-            <para>
-            This method should be used sparingly and with care as it will
-            block all logging until it is completed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.LoggerRepositorySkeleton.Log(log4net.Core.LoggingEvent)">
-            <summary>
-            Log the logEvent through this repository.
-            </summary>
-            <param name="logEvent">the event to log</param>
-            <remarks>
-            <para>
-            This method should not normally be used to log.
-            The <see cref="T:log4net.ILog"/> interface should be used 
-            for routine logging. This interface can be obtained
-            using the <see cref="M:log4net.LogManager.GetLogger(System.String)"/> method.
-            </para>
-            <para>
-            The <c>logEvent</c> is delivered to the appropriate logger and
-            that logger is then responsible for logging the event.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.LoggerRepositorySkeleton.GetAppenders">
-            <summary>
-            Returns all the Appenders that are configured as an Array.
-            </summary>
-            <returns>All the Appenders</returns>
-            <remarks>
-            <para>
-            Returns all the Appenders that are configured as an Array.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.LoggerRepositorySkeleton.AddRenderer(System.Type,log4net.ObjectRenderer.IObjectRenderer)">
-            <summary>
-            Adds an object renderer for a specific class. 
-            </summary>
-            <param name="typeToRender">The type that will be rendered by the renderer supplied.</param>
-            <param name="rendererInstance">The object renderer used to render the object.</param>
-            <remarks>
-            <para>
-            Adds an object renderer for a specific class. 
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.LoggerRepositorySkeleton.OnShutdown(System.EventArgs)">
-            <summary>
-            Notify the registered listeners that the repository is shutting down
-            </summary>
-            <param name="e">Empty EventArgs</param>
-            <remarks>
-            <para>
-            Notify any listeners that this repository is shutting down.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.LoggerRepositorySkeleton.OnConfigurationReset(System.EventArgs)">
-            <summary>
-            Notify the registered listeners that the repository has had its configuration reset
-            </summary>
-            <param name="e">Empty EventArgs</param>
-            <remarks>
-            <para>
-            Notify any listeners that this repository's configuration has been reset.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.LoggerRepositorySkeleton.OnConfigurationChanged(System.EventArgs)">
-            <summary>
-            Notify the registered listeners that the repository has had its configuration changed
-            </summary>
-            <param name="e">Empty EventArgs</param>
-            <remarks>
-            <para>
-            Notify any listeners that this repository's configuration has changed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.LoggerRepositorySkeleton.RaiseConfigurationChanged(System.EventArgs)">
-            <summary>
-            Raise a configuration changed event on this repository
-            </summary>
-            <param name="e">EventArgs.Empty</param>
-            <remarks>
-            <para>
-            Applications that programmatically change the configuration of the repository should
-            raise this event notification to notify listeners.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.LoggerRepositorySkeleton.Name">
-            <summary>
-            The name of the repository
-            </summary>
-            <value>
-            The string name of the repository
-            </value>
-            <remarks>
-            <para>
-            The name of this repository. The name is
-            used to store and lookup the repositories 
-            stored by the <see cref="T:log4net.Core.IRepositorySelector"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.LoggerRepositorySkeleton.Threshold">
-            <summary>
-            The threshold for all events in this repository
-            </summary>
-            <value>
-            The threshold for all events in this repository
-            </value>
-            <remarks>
-            <para>
-            The threshold for all events in this repository
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.LoggerRepositorySkeleton.RendererMap">
-            <summary>
-            RendererMap accesses the object renderer map for this repository.
-            </summary>
-            <value>
-            RendererMap accesses the object renderer map for this repository.
-            </value>
-            <remarks>
-            <para>
-            RendererMap accesses the object renderer map for this repository.
-            </para>
-            <para>
-            The RendererMap holds a mapping between types and
-            <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/> objects.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.LoggerRepositorySkeleton.PluginMap">
-            <summary>
-            The plugin map for this repository.
-            </summary>
-            <value>
-            The plugin map for this repository.
-            </value>
-            <remarks>
-            <para>
-            The plugin map holds the <see cref="T:log4net.Plugin.IPlugin"/> instances
-            that have been attached to this repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.LoggerRepositorySkeleton.LevelMap">
-            <summary>
-            Get the level map for the Repository.
-            </summary>
-            <remarks>
-            <para>
-            Get the level map for the Repository.
-            </para>
-            <para>
-            The level map defines the mappings between
-            level names and <see cref="T:log4net.Core.Level"/> objects in
-            this repository.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.LoggerRepositorySkeleton.Configured">
-            <summary>
-            Flag indicates if this repository has been configured.
-            </summary>
-            <value>
-            Flag indicates if this repository has been configured.
-            </value>
-            <remarks>
-            <para>
-            Flag indicates if this repository has been configured.
-            </para>
-            </remarks>
-        </member>
-        <member name="E:log4net.Repository.LoggerRepositorySkeleton.ShutdownEvent">
-            <summary>
-            Event to notify that the repository has been shutdown.
-            </summary>
-            <value>
-            Event to notify that the repository has been shutdown.
-            </value>
-            <remarks>
-            <para>
-            Event raised when the repository has been shutdown.
-            </para>
-            </remarks>
-        </member>
-        <member name="E:log4net.Repository.LoggerRepositorySkeleton.ConfigurationReset">
-            <summary>
-            Event to notify that the repository has had its configuration reset.
-            </summary>
-            <value>
-            Event to notify that the repository has had its configuration reset.
-            </value>
-            <remarks>
-            <para>
-            Event raised when the repository's configuration has been
-            reset to default.
-            </para>
-            </remarks>
-        </member>
-        <member name="E:log4net.Repository.LoggerRepositorySkeleton.ConfigurationChanged">
-            <summary>
-            Event to notify that the repository has had its configuration changed.
-            </summary>
-            <value>
-            Event to notify that the repository has had its configuration changed.
-            </value>
-            <remarks>
-            <para>
-            Event raised when the repository's configuration has been changed.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.LoggerRepositorySkeleton.Properties">
-            <summary>
-            Repository specific properties
-            </summary>
-            <value>
-            Repository specific properties
-            </value>
-            <remarks>
-            These properties can be specified on a repository specific basis
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.IBasicRepositoryConfigurator">
-            <summary>
-            Basic Configurator interface for repositories
-            </summary>
-            <remarks>
-            <para>
-            Interface used by basic configurator to configure a <see cref="T:log4net.Repository.ILoggerRepository"/>
-            with a default <see cref="T:log4net.Appender.IAppender"/>.
-            </para>
-            <para>
-            A <see cref="T:log4net.Repository.ILoggerRepository"/> should implement this interface to support
-            configuration by the <see cref="T:log4net.Config.BasicConfigurator"/>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Repository.IBasicRepositoryConfigurator.Configure(log4net.Appender.IAppender)">
-            <summary>
-            Initialize the repository using the specified appender
-            </summary>
-            <param name="appender">the appender to use to log all logging events</param>
-            <remarks>
-            <para>
-            Configure the repository to route all logging events to the
-            specified appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.IXmlRepositoryConfigurator">
-            <summary>
-            Configure repository using XML
-            </summary>
-            <remarks>
-            <para>
-            Interface used by Xml configurator to configure a <see cref="T:log4net.Repository.ILoggerRepository"/>.
-            </para>
-            <para>
-            A <see cref="T:log4net.Repository.ILoggerRepository"/> should implement this interface to support
-            configuration by the <see cref="T:log4net.Config.XmlConfigurator"/>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Repository.IXmlRepositoryConfigurator.Configure(System.Xml.XmlElement)">
-            <summary>
-            Initialize the repository using the specified config
-            </summary>
-            <param name="element">the element containing the root of the config</param>
-            <remarks>
-            <para>
-            The schema for the XML configuration data is defined by
-            the implementation.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.#ctor(log4net.Util.PropertiesDictionary)">
-            <summary>
-            Construct with properties
-            </summary>
-            <param name="properties">The properties to pass to this repository.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.#ctor(log4net.Repository.Hierarchy.ILoggerFactory)">
-            <summary>
-            Construct with a logger factory
-            </summary>
-            <param name="loggerFactory">The factory to use to create new logger instances.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> class with 
-            the specified <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.#ctor(log4net.Util.PropertiesDictionary,log4net.Repository.Hierarchy.ILoggerFactory)">
-            <summary>
-            Construct with properties and a logger factory
-            </summary>
-            <param name="properties">The properties to pass to this repository.</param>
-            <param name="loggerFactory">The factory to use to create new logger instances.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> class with 
-            the specified <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.Exists(System.String)">
-            <summary>
-            Test if a logger exists
-            </summary>
-            <param name="name">The name of the logger to lookup</param>
-            <returns>The Logger object with the name specified</returns>
-            <remarks>
-            <para>
-            Check if the named logger exists in the hierarchy. If so return
-            its reference, otherwise returns <c>null</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.GetCurrentLoggers">
-            <summary>
-            Returns all the currently defined loggers in the hierarchy as an Array
-            </summary>
-            <returns>All the defined loggers</returns>
-            <remarks>
-            <para>
-            Returns all the currently defined loggers in the hierarchy as an Array.
-            The root logger is <b>not</b> included in the returned
-            enumeration.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.GetLogger(System.String)">
-            <summary>
-            Return a new logger instance named as the first parameter using
-            the default factory.
-            </summary>
-            <remarks>
-            <para>
-            Return a new logger instance named as the first parameter using
-            the default factory.
-            </para>
-            <para>
-            If a logger of that name already exists, then it will be
-            returned.  Otherwise, a new logger will be instantiated and
-            then linked with its existing ancestors as well as children.
-            </para>
-            </remarks>
-            <param name="name">The name of the logger to retrieve</param>
-            <returns>The logger object with the name specified</returns>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.Shutdown">
-            <summary>
-            Shutting down a hierarchy will <i>safely</i> close and remove
-            all appenders in all loggers including the root logger.
-            </summary>
-            <remarks>
-            <para>
-            Shutting down a hierarchy will <i>safely</i> close and remove
-            all appenders in all loggers including the root logger.
-            </para>
-            <para>
-            Some appenders need to be closed before the
-            application exists. Otherwise, pending logging events might be
-            lost.
-            </para>
-            <para>
-            The <c>Shutdown</c> method is careful to close nested
-            appenders before closing regular appenders. This is allows
-            configurations where a regular appender is attached to a logger
-            and again to a nested appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.ResetConfiguration">
-            <summary>
-            Reset all values contained in this hierarchy instance to their default.
-            </summary>
-            <remarks>
-            <para>
-            Reset all values contained in this hierarchy instance to their
-            default.  This removes all appenders from all loggers, sets
-            the level of all non-root loggers to <c>null</c>,
-            sets their additivity flag to <c>true</c> and sets the level
-            of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. Moreover,
-            message disabling is set its default "off" value.
-            </para>
-            <para>
-            Existing loggers are not removed. They are just reset.
-            </para>
-            <para>
-            This method should be used sparingly and with care as it will
-            block all logging until it is completed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.Log(log4net.Core.LoggingEvent)">
-            <summary>
-            Log the logEvent through this hierarchy.
-            </summary>
-            <param name="logEvent">the event to log</param>
-            <remarks>
-            <para>
-            This method should not normally be used to log.
-            The <see cref="T:log4net.ILog"/> interface should be used 
-            for routine logging. This interface can be obtained
-            using the <see cref="M:log4net.LogManager.GetLogger(System.String)"/> method.
-            </para>
-            <para>
-            The <c>logEvent</c> is delivered to the appropriate logger and
-            that logger is then responsible for logging the event.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.GetAppenders">
-            <summary>
-            Returns all the Appenders that are currently configured
-            </summary>
-            <returns>An array containing all the currently configured appenders</returns>
-            <remarks>
-            <para>
-            Returns all the <see cref="T:log4net.Appender.IAppender"/> instances that are currently configured.
-            All the loggers are searched for appenders. The appenders may also be containers
-            for appenders and these are also searched for additional loggers.
-            </para>
-            <para>
-            The list returned is unordered but does not contain duplicates.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.CollectAppender(System.Collections.ArrayList,log4net.Appender.IAppender)">
-            <summary>
-            Collect the appenders from an <see cref="T:log4net.Core.IAppenderAttachable"/>.
-            The appender may also be a container.
-            </summary>
-            <param name="appenderList"></param>
-            <param name="appender"></param>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.CollectAppenders(System.Collections.ArrayList,log4net.Core.IAppenderAttachable)">
-            <summary>
-            Collect the appenders from an <see cref="T:log4net.Core.IAppenderAttachable"/> container
-            </summary>
-            <param name="appenderList"></param>
-            <param name="container"></param>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.log4net#Repository#IBasicRepositoryConfigurator#Configure(log4net.Appender.IAppender)">
-            <summary>
-            Initialize the log4net system using the specified appender
-            </summary>
-            <param name="appender">the appender to use to log all logging events</param>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.BasicRepositoryConfigure(log4net.Appender.IAppender)">
-            <summary>
-            Initialize the log4net system using the specified appender
-            </summary>
-            <param name="appender">the appender to use to log all logging events</param>
-            <remarks>
-            <para>
-            This method provides the same functionality as the 
-            <see cref="M:log4net.Repository.IBasicRepositoryConfigurator.Configure(log4net.Appender.IAppender)"/> method implemented
-            on this object, but it is protected and therefore can be called by subclasses.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.log4net#Repository#IXmlRepositoryConfigurator#Configure(System.Xml.XmlElement)">
-            <summary>
-            Initialize the log4net system using the specified config
-            </summary>
-            <param name="element">the element containing the root of the config</param>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.XmlRepositoryConfigure(System.Xml.XmlElement)">
-            <summary>
-            Initialize the log4net system using the specified config
-            </summary>
-            <param name="element">the element containing the root of the config</param>
-            <remarks>
-            <para>
-            This method provides the same functionality as the 
-            <see cref="M:log4net.Repository.IBasicRepositoryConfigurator.Configure(log4net.Appender.IAppender)"/> method implemented
-            on this object, but it is protected and therefore can be called by subclasses.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.IsDisabled(log4net.Core.Level)">
-            <summary>
-            Test if this hierarchy is disabled for the specified <see cref="T:log4net.Core.Level"/>.
-            </summary>
-            <param name="level">The level to check against.</param>
-            <returns>
-            <c>true</c> if the repository is disabled for the level argument, <c>false</c> otherwise.
-            </returns>
-            <remarks>
-            <para>
-            If this hierarchy has not been configured then this method will
-            always return <c>true</c>.
-            </para>
-            <para>
-            This method will return <c>true</c> if this repository is
-            disabled for <c>level</c> object passed as parameter and
-            <c>false</c> otherwise.
-            </para>
-            <para>
-            See also the <see cref="P:log4net.Repository.ILoggerRepository.Threshold"/> property.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.Clear">
-            <summary>
-            Clear all logger definitions from the internal hashtable
-            </summary>
-            <remarks>
-            <para>
-            This call will clear all logger definitions from the internal
-            hashtable. Invoking this method will irrevocably mess up the
-            logger hierarchy.
-            </para>
-            <para>
-            You should <b>really</b> know what you are doing before
-            invoking this method.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.GetLogger(System.String,log4net.Repository.Hierarchy.ILoggerFactory)">
-            <summary>
-            Return a new logger instance named as the first parameter using
-            <paramref name="factory"/>.
-            </summary>
-            <param name="name">The name of the logger to retrieve</param>
-            <param name="factory">The factory that will make the new logger instance</param>
-            <returns>The logger object with the name specified</returns>
-            <remarks>
-            <para>
-            If a logger of that name already exists, then it will be
-            returned. Otherwise, a new logger will be instantiated by the
-            <paramref name="factory"/> parameter and linked with its existing
-            ancestors as well as children.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.OnLoggerCreationEvent(log4net.Repository.Hierarchy.Logger)">
-            <summary>
-            Sends a logger creation event to all registered listeners
-            </summary>
-            <param name="logger">The newly created logger</param>
-            <remarks>
-            Raises the logger creation event.
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.UpdateParents(log4net.Repository.Hierarchy.Logger)">
-            <summary>
-            Updates all the parents of the specified logger
-            </summary>
-            <param name="log">The logger to update the parents for</param>
-            <remarks>
-            <para>
-            This method loops through all the <i>potential</i> parents of
-            <paramref name="log"/>. There 3 possible cases:
-            </para>
-            <list type="number">
-            	<item>
-            		<term>No entry for the potential parent of <paramref name="log"/> exists</term>
-            		<description>
-            		We create a ProvisionNode for this potential 
-            		parent and insert <paramref name="log"/> in that provision node.
-            		</description>
-            	</item>
-            	<item>
-            		<term>The entry is of type Logger for the potential parent.</term>
-            		<description>
-            		The entry is <paramref name="log"/>'s nearest existing parent. We 
-            		update <paramref name="log"/>'s parent field with this entry. We also break from 
-            		he loop because updating our parent's parent is our parent's 
-            		responsibility.
-            		</description>
-            	</item>
-            	<item>
-            		<term>The entry is of type ProvisionNode for this potential parent.</term>
-            		<description>
-            		We add <paramref name="log"/> to the list of children for this 
-            		potential parent.
-            		</description>
-            	</item>
-            </list>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.UpdateChildren(log4net.Repository.Hierarchy.ProvisionNode,log4net.Repository.Hierarchy.Logger)">
-            <summary>
-            Replace a <see cref="T:log4net.Repository.Hierarchy.ProvisionNode"/> with a <see cref="T:log4net.Repository.Hierarchy.Logger"/> in the hierarchy.
-            </summary>
-            <param name="pn"></param>
-            <param name="log"></param>
-            <remarks>
-            <para>
-            We update the links for all the children that placed themselves
-            in the provision node 'pn'. The second argument 'log' is a
-            reference for the newly created Logger, parent of all the
-            children in 'pn'.
-            </para>
-            <para>
-            We loop on all the children 'c' in 'pn'.
-            </para>
-            <para>
-            If the child 'c' has been already linked to a child of
-            'log' then there is no need to update 'c'.
-            </para>
-            <para>
-            Otherwise, we set log's parent field to c's parent and set
-            c's parent field to log.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.AddLevel(log4net.Repository.Hierarchy.Hierarchy.LevelEntry)">
-            <summary>
-            Define or redefine a Level using the values in the <see cref="T:log4net.Repository.Hierarchy.Hierarchy.LevelEntry"/> argument
-            </summary>
-            <param name="levelEntry">the level values</param>
-            <remarks>
-            <para>
-            Define or redefine a Level using the values in the <see cref="T:log4net.Repository.Hierarchy.Hierarchy.LevelEntry"/> argument
-            </para>
-            <para>
-            Supports setting levels via the configuration file.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.AddProperty(log4net.Repository.Hierarchy.Hierarchy.PropertyEntry)">
-            <summary>
-            Set a Property using the values in the <see cref="T:log4net.Repository.Hierarchy.Hierarchy.LevelEntry"/> argument
-            </summary>
-            <param name="propertyEntry">the property value</param>
-            <remarks>
-            <para>
-            Set a Property using the values in the <see cref="T:log4net.Repository.Hierarchy.Hierarchy.LevelEntry"/> argument.
-            </para>
-            <para>
-            Supports setting property values via the configuration file.
-            </para>
-            </remarks>
-        </member>
-        <member name="E:log4net.Repository.Hierarchy.Hierarchy.LoggerCreatedEvent">
-            <summary>
-            Event used to notify that a logger has been created.
-            </summary>
-            <remarks>
-            <para>
-            Event raised when a logger is created.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Hierarchy.EmittedNoAppenderWarning">
-            <summary>
-            Has no appender warning been emitted
-            </summary>
-            <remarks>
-            <para>
-            Flag to indicate if we have already issued a warning
-            about not having an appender warning.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Hierarchy.Root">
-            <summary>
-            Get the root of this hierarchy
-            </summary>
-            <remarks>
-            <para>
-            Get the root of this hierarchy.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Hierarchy.LoggerFactory">
-            <summary>
-            Gets or sets the default <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/> instance.
-            </summary>
-            <value>The default <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/></value>
-            <remarks>
-            <para>
-            The logger factory is used to create logger instances.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.Hierarchy.Hierarchy.LevelEntry">
-            <summary>
-            A class to hold the value, name and display name for a level
-            </summary>
-            <remarks>
-            <para>
-            A class to hold the value, name and display name for a level
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.LevelEntry.ToString">
-            <summary>
-            Override <c>Object.ToString</c> to return sensible debug info
-            </summary>
-            <returns>string info about this object</returns>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Hierarchy.LevelEntry.Value">
-            <summary>
-            Value of the level
-            </summary>
-            <remarks>
-            <para>
-            If the value is not set (defaults to -1) the value will be looked
-            up for the current level with the same name.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Hierarchy.LevelEntry.Name">
-            <summary>
-            Name of the level
-            </summary>
-            <value>
-            The name of the level
-            </value>
-            <remarks>
-            <para>
-            The name of the level.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Hierarchy.LevelEntry.DisplayName">
-            <summary>
-            Display name for the level
-            </summary>
-            <value>
-            The display name of the level
-            </value>
-            <remarks>
-            <para>
-            The display name of the level.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.Hierarchy.Hierarchy.PropertyEntry">
-            <summary>
-            A class to hold the key and data for a property set in the config file
-            </summary>
-            <remarks>
-            <para>
-            A class to hold the key and data for a property set in the config file
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.Hierarchy.PropertyEntry.ToString">
-            <summary>
-            Override <c>Object.ToString</c> to return sensible debug info
-            </summary>
-            <returns>string info about this object</returns>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Hierarchy.PropertyEntry.Key">
-            <summary>
-            Property Key
-            </summary>
-            <value>
-            Property Key
-            </value>
-            <remarks>
-            <para>
-            Property Key.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.Hierarchy.PropertyEntry.Value">
-            <summary>
-            Property Value
-            </summary>
-            <value>
-            Property Value
-            </value>
-            <remarks>
-            <para>
-            Property Value.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.Hierarchy.LoggerKey">
-            <summary>
-            Used internally to accelerate hash table searches.
-            </summary>
-            <remarks>
-            <para>
-            Internal class used to improve performance of 
-            string keyed hashtables.
-            </para>
-            <para>
-            The hashcode of the string is cached for reuse.
-            The string is stored as an interned value.
-            When comparing two <see cref="T:log4net.Repository.Hierarchy.LoggerKey"/> objects for equality 
-            the reference equality of the interned strings is compared.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.LoggerKey.#ctor(System.String)">
-            <summary>
-            Construct key with string name
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.LoggerKey"/> class 
-            with the specified name.
-            </para>
-            <para>
-            Stores the hashcode of the string and interns
-            the string key to optimize comparisons.
-            </para>
-            <note>
-            The Compact Framework 1.0 the <see cref="M:System.String.Intern(System.String)"/>
-            method does not work. On the Compact Framework
-            the string keys are not interned nor are they
-            compared by reference.
-            </note>
-            </remarks>
-            <param name="name">The name of the logger.</param>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.LoggerKey.GetHashCode">
-            <summary>
-            Returns a hash code for the current instance.
-            </summary>
-            <returns>A hash code for the current instance.</returns>
-            <remarks>
-            <para>
-            Returns the cached hashcode.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.LoggerKey.Equals(System.Object)">
-            <summary>
-            Determines whether two <see cref="T:log4net.Repository.Hierarchy.LoggerKey"/> instances 
-            are equal.
-            </summary>
-            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:log4net.Repository.Hierarchy.LoggerKey"/>.</param>
-            <returns>
-            <c>true</c> if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:log4net.Repository.Hierarchy.LoggerKey"/>; otherwise, <c>false</c>.
-            </returns>
-            <remarks>
-            <para>
-            Compares the references of the interned strings.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.Hierarchy.ProvisionNode">
-            <summary>
-            Provision nodes are used where no logger instance has been specified
-            </summary>
-            <remarks>
-            <para>
-            <see cref="T:log4net.Repository.Hierarchy.ProvisionNode"/> instances are used in the 
-            <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> when there is no specified 
-            <see cref="T:log4net.Repository.Hierarchy.Logger"/> for that node.
-            </para>
-            <para>
-            A provision node holds a list of child loggers on behalf of
-            a logger that does not exist.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.ProvisionNode.#ctor(log4net.Repository.Hierarchy.Logger)">
-            <summary>
-            Create a new provision node with child node
-            </summary>
-            <param name="log">A child logger to add to this node.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.ProvisionNode"/> class 
-            with the specified child logger.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.Hierarchy.RootLogger">
-            <summary>
-            The <see cref="T:log4net.Repository.Hierarchy.RootLogger"/> sits at the root of the logger hierarchy tree. 
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Repository.Hierarchy.RootLogger"/> is a regular <see cref="T:log4net.Repository.Hierarchy.Logger"/> except 
-            that it provides several guarantees.
-            </para>
-            <para>
-            First, it cannot be assigned a <c>null</c>
-            level. Second, since the root logger cannot have a parent, the
-            <see cref="P:log4net.Repository.Hierarchy.RootLogger.EffectiveLevel"/> property always returns the value of the
-            level field without walking the hierarchy.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.RootLogger.#ctor(log4net.Core.Level)">
-            <summary>
-            Construct a <see cref="T:log4net.Repository.Hierarchy.RootLogger"/>
-            </summary>
-            <param name="level">The level to assign to the root logger.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.RootLogger"/> class with
-            the specified logging level.
-            </para>
-            <para>
-            The root logger names itself as "root". However, the root
-            logger cannot be retrieved by name.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.RootLogger.EffectiveLevel">
-            <summary>
-            Gets the assigned level value without walking the logger hierarchy.
-            </summary>
-            <value>The assigned level value without walking the logger hierarchy.</value>
-            <remarks>
-            <para>
-            Because the root logger cannot have a parent and its level
-            must not be <c>null</c> this property just returns the
-            value of <see cref="P:log4net.Repository.Hierarchy.Logger.Level"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Repository.Hierarchy.RootLogger.Level">
-            <summary>
-            Gets or sets the assigned <see cref="P:log4net.Repository.Hierarchy.RootLogger.Level"/> for the root logger.  
-            </summary>
-            <value>
-            The <see cref="P:log4net.Repository.Hierarchy.RootLogger.Level"/> of the root logger.
-            </value>
-            <remarks>
-            <para>
-            Setting the level of the root logger to a <c>null</c> reference
-            may have catastrophic results. We prevent this here.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.Hierarchy.XmlHierarchyConfigurator">
-            <summary>
-            Initializes the log4net environment using an XML DOM.
-            </summary>
-            <remarks>
-            <para>
-            Configures a <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> using an XML DOM.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.#ctor(log4net.Repository.Hierarchy.Hierarchy)">
-            <summary>
-            Construct the configurator for a hierarchy
-            </summary>
-            <param name="hierarchy">The hierarchy to build.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Repository.Hierarchy.XmlHierarchyConfigurator"/> class
-            with the specified <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Configure(System.Xml.XmlElement)">
-            <summary>
-            Configure the hierarchy by parsing a DOM tree of XML elements.
-            </summary>
-            <param name="element">The root element to parse.</param>
-            <remarks>
-            <para>
-            Configure the hierarchy by parsing a DOM tree of XML elements.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.FindAppenderByReference(System.Xml.XmlElement)">
-            <summary>
-            Parse appenders by IDREF.
-            </summary>
-            <param name="appenderRef">The appender ref element.</param>
-            <returns>The instance of the appender that the ref refers to.</returns>
-            <remarks>
-            <para>
-            Parse an XML element that represents an appender and return 
-            the appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(System.Xml.XmlElement)">
-            <summary>
-            Parses an appender element.
-            </summary>
-            <param name="appenderElement">The appender element.</param>
-            <returns>The appender instance or <c>null</c> when parsing failed.</returns>
-            <remarks>
-            <para>
-            Parse an XML element that represents an appender and return
-            the appender instance.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseLogger(System.Xml.XmlElement)">
-            <summary>
-            Parses a logger element.
-            </summary>
-            <param name="loggerElement">The logger element.</param>
-            <remarks>
-            <para>
-            Parse an XML element that represents a logger.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseRoot(System.Xml.XmlElement)">
-            <summary>
-            Parses the root logger element.
-            </summary>
-            <param name="rootElement">The root element.</param>
-            <remarks>
-            <para>
-            Parse an XML element that represents the root logger.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseChildrenOfLoggerElement(System.Xml.XmlElement,log4net.Repository.Hierarchy.Logger,System.Boolean)">
-            <summary>
-            Parses the children of a logger element.
-            </summary>
-            <param name="catElement">The category element.</param>
-            <param name="log">The logger instance.</param>
-            <param name="isRoot">Flag to indicate if the logger is the root logger.</param>
-            <remarks>
-            <para>
-            Parse the child elements of a <logger> element.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseRenderer(System.Xml.XmlElement)">
-            <summary>
-            Parses an object renderer.
-            </summary>
-            <param name="element">The renderer element.</param>
-            <remarks>
-            <para>
-            Parse an XML element that represents a renderer.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseLevel(System.Xml.XmlElement,log4net.Repository.Hierarchy.Logger,System.Boolean)">
-            <summary>
-            Parses a level element.
-            </summary>
-            <param name="element">The level element.</param>
-            <param name="log">The logger object to set the level on.</param>
-            <param name="isRoot">Flag to indicate if the logger is the root logger.</param>
-            <remarks>
-            <para>
-            Parse an XML element that represents a level.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.SetParameter(System.Xml.XmlElement,System.Object)">
-            <summary>
-            Sets a parameter on an object.
-            </summary>
-            <param name="element">The parameter element.</param>
-            <param name="target">The object to set the parameter on.</param>
-            <remarks>
-            The parameter name must correspond to a writable property
-            on the object. The value of the parameter is a string,
-            therefore this function will attempt to set a string
-            property first. If unable to set a string property it
-            will inspect the property and its argument type. It will
-            attempt to call a static method called <c>Parse</c> on the
-            type of the property. This method will take a single
-            string argument and return a value that can be used to
-            set the property.
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.HasAttributesOrElements(System.Xml.XmlElement)">
-            <summary>
-            Test if an element has no attributes or child elements
-            </summary>
-            <param name="element">the element to inspect</param>
-            <returns><c>true</c> if the element has any attributes or child elements, <c>false</c> otherwise</returns>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.IsTypeConstructible(System.Type)">
-            <summary>
-            Test if a <see cref="T:System.Type"/> is constructible with <c>Activator.CreateInstance</c>.
-            </summary>
-            <param name="type">the type to inspect</param>
-            <returns><c>true</c> if the type is creatable using a default constructor, <c>false</c> otherwise</returns>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.FindMethodInfo(System.Type,System.String)">
-            <summary>
-            Look for a method on the <paramref name="targetType"/> that matches the <paramref name="name"/> supplied
-            </summary>
-            <param name="targetType">the type that has the method</param>
-            <param name="name">the name of the method</param>
-            <returns>the method info found</returns>
-            <remarks>
-            <para>
-            The method must be a public instance method on the <paramref name="targetType"/>.
-            The method must be named <paramref name="name"/> or "Add" followed by <paramref name="name"/>.
-            The method must take a single parameter.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ConvertStringTo(System.Type,System.String)">
-            <summary>
-            Converts a string value to a target type.
-            </summary>
-            <param name="type">The type of object to convert the string to.</param>
-            <param name="value">The string value to use as the value of the object.</param>
-            <returns>
-            <para>
-            An object of type <paramref name="type"/> with value <paramref name="value"/> or 
-            <c>null</c> when the conversion could not be performed.
-            </para>
-            </returns>
-        </member>
-        <member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.CreateObjectFromXml(System.Xml.XmlElement,System.Type,System.Type)">
-            <summary>
-            Creates an object as specified in XML.
-            </summary>
-            <param name="element">The XML element that contains the definition of the object.</param>
-            <param name="defaultTargetType">The object type to use if not explicitly specified.</param>
-            <param name="typeConstraint">The type that the returned object must be or must inherit from.</param>
-            <returns>The object or <c>null</c></returns>
-            <remarks>
-            <para>
-            Parse an XML element and create an object instance based on the configuration
-            data.
-            </para>
-            <para>
-            The type of the instance may be specified in the XML. If not
-            specified then the <paramref name="defaultTargetType"/> is used
-            as the type. However the type is specified it must support the
-            <paramref name="typeConstraint"/> type.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.m_appenderBag">
-            <summary>
-            key: appenderName, value: appender.
-            </summary>
-        </member>
-        <member name="F:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.m_hierarchy">
-            <summary>
-            The Hierarchy being configured.
-            </summary>
-        </member>
-        <member name="T:log4net.Repository.LoggerRepositoryShutdownEventHandler">
-            <summary>
-            Delegate used to handle logger repository shutdown event notifications
-            </summary>
-            <param name="sender">The <see cref="T:log4net.Repository.ILoggerRepository"/> that is shutting down.</param>
-            <param name="e">Empty event args</param>
-            <remarks>
-            <para>
-            Delegate used to handle logger repository shutdown event notifications.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.LoggerRepositoryConfigurationResetEventHandler">
-            <summary>
-            Delegate used to handle logger repository configuration reset event notifications
-            </summary>
-            <param name="sender">The <see cref="T:log4net.Repository.ILoggerRepository"/> that has had its configuration reset.</param>
-            <param name="e">Empty event args</param>
-            <remarks>
-            <para>
-            Delegate used to handle logger repository configuration reset event notifications.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Repository.LoggerRepositoryConfigurationChangedEventHandler">
-            <summary>
-            Delegate used to handle event notifications for logger repository configuration changes.
-            </summary>
-            <param name="sender">The <see cref="T:log4net.Repository.ILoggerRepository"/> that has had its configuration changed.</param>
-            <param name="e">Empty event arguments.</param>
-            <remarks>
-            <para>
-            Delegate used to handle event notifications for logger repository configuration changes.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PatternStringConverters.AppDomainPatternConverter">
-            <summary>
-            Write the name of the current AppDomain to the output
-            </summary>
-            <remarks>
-            <para>
-            Write the name of the current AppDomain to the output writer
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.AppDomainPatternConverter.Convert(System.IO.TextWriter,System.Object)">
-            <summary>
-            Write the name of the current AppDomain to the output
-            </summary>
-            <param name="writer">the writer to write to</param>
-            <param name="state">null, state is not set</param>
-            <remarks>
-            <para>
-            Writes name of the current AppDomain to the output <paramref name="writer"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PatternStringConverters.DatePatternConverter">
-            <summary>
-            Write the current date to the output
-            </summary>
-            <remarks>
-            <para>
-            Date pattern converter, uses a <see cref="T:log4net.DateFormatter.IDateFormatter"/> to format 
-            the current date and time to the writer as a string.
-            </para>
-            <para>
-            The value of the <see cref="P:log4net.Util.PatternConverter.Option"/> determines 
-            the formatting of the date. The following values are allowed:
-            <list type="definition">
-            	<listheader>
-            		<term>Option value</term>
-            		<description>Output</description>
-            	</listheader>
-            	<item>
-            		<term>ISO8601</term>
-            		<description>
-            		Uses the <see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/> formatter. 
-            		Formats using the <c>"yyyy-MM-dd HH:mm:ss,fff"</c> pattern.
-            		</description>
-            	</item>
-            	<item>
-            		<term>DATE</term>
-            		<description>
-            		Uses the <see cref="T:log4net.DateFormatter.DateTimeDateFormatter"/> formatter. 
-            		Formats using the <c>"dd MMM yyyy HH:mm:ss,fff"</c> for example, <c>"06 Nov 1994 15:49:37,459"</c>.
-            		</description>
-            	</item>
-            	<item>
-            		<term>ABSOLUTE</term>
-            		<description>
-            		Uses the <see cref="T:log4net.DateFormatter.AbsoluteTimeDateFormatter"/> formatter. 
-            		Formats using the <c>"HH:mm:ss,fff"</c> for example, <c>"15:49:37,459"</c>.
-            		</description>
-            	</item>
-            	<item>
-            		<term>other</term>
-            		<description>
-            		Any other pattern string uses the <see cref="T:log4net.DateFormatter.SimpleDateFormatter"/> formatter. 
-            		This formatter passes the pattern string to the <see cref="T:System.DateTime"/> 
-            		<see cref="M:System.DateTime.ToString(System.String)"/> method.
-            		For details on valid patterns see 
-            		<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemglobalizationdatetimeformatinfoclasstopic.asp">DateTimeFormatInfo Class</a>.
-            		</description>
-            	</item>
-            </list>
-            </para>
-            <para>
-            The date and time is in the local time zone and is rendered in that zone.
-            To output the time in Universal time see <see cref="T:log4net.Util.PatternStringConverters.UtcDatePatternConverter"/>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Util.PatternStringConverters.DatePatternConverter.m_dateFormatter">
-            <summary>
-            The <see cref="T:log4net.DateFormatter.IDateFormatter"/> used to render the date to a string
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.DateFormatter.IDateFormatter"/> used to render the date to a string
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.DatePatternConverter.ActivateOptions">
-            <summary>
-            Initialize the converter options
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Util.PatternStringConverters.DatePatternConverter.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Util.PatternStringConverters.DatePatternConverter.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Util.PatternStringConverters.DatePatternConverter.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.DatePatternConverter.Convert(System.IO.TextWriter,System.Object)">
-            <summary>
-            Write the current date to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="state">null, state is not set</param>
-            <remarks>
-            <para>
-            Pass the current date and time to the <see cref="T:log4net.DateFormatter.IDateFormatter"/>
-            for it to render it to the writer.
-            </para>
-            <para>
-            The date and time passed is in the local time zone.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PatternStringConverters.EnvironmentPatternConverter">
-            <summary>
-            Write an environment variable to the output
-            </summary>
-            <remarks>
-            <para>
-            Write an environment variable to the output writer.
-            The value of the <see cref="P:log4net.Util.PatternConverter.Option"/> determines 
-            the name of the variable to output.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.EnvironmentPatternConverter.Convert(System.IO.TextWriter,System.Object)">
-            <summary>
-            Write an environment variable to the output
-            </summary>
-            <param name="writer">the writer to write to</param>
-            <param name="state">null, state is not set</param>
-            <remarks>
-            <para>
-            Writes the environment variable to the output <paramref name="writer"/>.
-            The name of the environment variable to output must be set
-            using the <see cref="P:log4net.Util.PatternConverter.Option"/>
-            property.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PatternStringConverters.IdentityPatternConverter">
-            <summary>
-            Write the current thread identity to the output
-            </summary>
-            <remarks>
-            <para>
-            Write the current thread identity to the output writer
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.IdentityPatternConverter.Convert(System.IO.TextWriter,System.Object)">
-            <summary>
-            Write the current thread identity to the output
-            </summary>
-            <param name="writer">the writer to write to</param>
-            <param name="state">null, state is not set</param>
-            <remarks>
-            <para>
-            Writes the current thread identity to the output <paramref name="writer"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PatternStringConverters.LiteralPatternConverter">
-            <summary>
-            Pattern converter for literal string instances in the pattern
-            </summary>
-            <remarks>
-            <para>
-            Writes the literal string value specified in the 
-            <see cref="P:log4net.Util.PatternConverter.Option"/> property to 
-            the output.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.LiteralPatternConverter.SetNext(log4net.Util.PatternConverter)">
-            <summary>
-            Set the next converter in the chain
-            </summary>
-            <param name="pc">The next pattern converter in the chain</param>
-            <returns>The next pattern converter</returns>
-            <remarks>
-            <para>
-            Special case the building of the pattern converter chain
-            for <see cref="T:log4net.Util.PatternStringConverters.LiteralPatternConverter"/> instances. Two adjacent
-            literals in the pattern can be represented by a single combined
-            pattern converter. This implementation detects when a 
-            <see cref="T:log4net.Util.PatternStringConverters.LiteralPatternConverter"/> is added to the chain
-            after this converter and combines its value with this converter's
-            literal value.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.LiteralPatternConverter.Format(System.IO.TextWriter,System.Object)">
-            <summary>
-            Write the literal to the output
-            </summary>
-            <param name="writer">the writer to write to</param>
-            <param name="state">null, not set</param>
-            <remarks>
-            <para>
-            Override the formatting behavior to ignore the FormattingInfo
-            because we have a literal instead.
-            </para>
-            <para>
-            Writes the value of <see cref="P:log4net.Util.PatternConverter.Option"/>
-            to the output <paramref name="writer"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.LiteralPatternConverter.Convert(System.IO.TextWriter,System.Object)">
-            <summary>
-            Convert this pattern into the rendered message
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="state">null, not set</param>
-            <remarks>
-            <para>
-            This method is not used.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PatternStringConverters.NewLinePatternConverter">
-            <summary>
-            Writes a newline to the output
-            </summary>
-            <remarks>
-            <para>
-            Writes the system dependent line terminator to the output.
-            This behavior can be overridden by setting the <see cref="P:log4net.Util.PatternConverter.Option"/>:
-            </para>
-            <list type="definition">
-              <listheader>
-                <term>Option Value</term>
-                <description>Output</description>
-              </listheader>
-              <item>
-                <term>DOS</term>
-                <description>DOS or Windows line terminator <c>"\r\n"</c></description>
-              </item>
-              <item>
-                <term>UNIX</term>
-                <description>UNIX line terminator <c>"\n"</c></description>
-              </item>
-            </list>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.NewLinePatternConverter.ActivateOptions">
-            <summary>
-            Initialize the converter
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Util.PatternStringConverters.NewLinePatternConverter.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Util.PatternStringConverters.NewLinePatternConverter.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Util.PatternStringConverters.NewLinePatternConverter.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PatternStringConverters.ProcessIdPatternConverter">
-            <summary>
-            Write the current process ID to the output
-            </summary>
-            <remarks>
-            <para>
-            Write the current process ID to the output writer
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.ProcessIdPatternConverter.Convert(System.IO.TextWriter,System.Object)">
-            <summary>
-            Write the current process ID to the output
-            </summary>
-            <param name="writer">the writer to write to</param>
-            <param name="state">null, state is not set</param>
-            <remarks>
-            <para>
-            Write the current process ID to the output <paramref name="writer"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PatternStringConverters.PropertyPatternConverter">
-            <summary>
-            Property pattern converter
-            </summary>
-            <remarks>
-            <para>
-            This pattern converter reads the thread and global properties.
-            The thread properties take priority over global properties.
-            See <see cref="P:log4net.ThreadContext.Properties"/> for details of the 
-            thread properties. See <see cref="P:log4net.GlobalContext.Properties"/> for
-            details of the global properties.
-            </para>
-            <para>
-            If the <see cref="P:log4net.Util.PatternConverter.Option"/> is specified then that will be used to
-            lookup a single property. If no <see cref="P:log4net.Util.PatternConverter.Option"/> is specified
-            then all properties will be dumped as a list of key value pairs.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.PropertyPatternConverter.Convert(System.IO.TextWriter,System.Object)">
-            <summary>
-            Write the property value to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="state">null, state is not set</param>
-            <remarks>
-            <para>
-            Writes out the value of a named property. The property name
-            should be set in the <see cref="P:log4net.Util.PatternConverter.Option"/>
-            property.
-            </para>
-            <para>
-            If the <see cref="P:log4net.Util.PatternConverter.Option"/> is set to <c>null</c>
-            then all the properties are written as key value pairs.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PatternStringConverters.RandomStringPatternConverter">
-            <summary>
-            A Pattern converter that generates a string of random characters
-            </summary>
-            <remarks>
-            <para>
-            The converter generates a string of random characters. By default
-            the string is length 4. This can be changed by setting the <see cref="P:log4net.Util.PatternConverter.Option"/>
-            to the string value of the length required.
-            </para>
-            <para>
-            The random characters in the string are limited to uppercase letters
-            and numbers only.
-            </para>
-            <para>
-            The random number generator used by this class is not cryptographically secure.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Util.PatternStringConverters.RandomStringPatternConverter.s_random">
-            <summary>
-            Shared random number generator
-            </summary>
-        </member>
-        <member name="F:log4net.Util.PatternStringConverters.RandomStringPatternConverter.m_length">
-            <summary>
-            Length of random string to generate. Default length 4.
-            </summary>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.RandomStringPatternConverter.ActivateOptions">
-            <summary>
-            Initialize the converter options
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Util.PatternStringConverters.RandomStringPatternConverter.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Util.PatternStringConverters.RandomStringPatternConverter.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Util.PatternStringConverters.RandomStringPatternConverter.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.RandomStringPatternConverter.Convert(System.IO.TextWriter,System.Object)">
-            <summary>
-            Write a randoim string to the output
-            </summary>
-            <param name="writer">the writer to write to</param>
-            <param name="state">null, state is not set</param>
-            <remarks>
-            <para>
-            Write a randoim string to the output <paramref name="writer"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PatternStringConverters.UserNamePatternConverter">
-            <summary>
-            Write the current threads username to the output
-            </summary>
-            <remarks>
-            <para>
-            Write the current threads username to the output writer
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.UserNamePatternConverter.Convert(System.IO.TextWriter,System.Object)">
-            <summary>
-            Write the current threads username to the output
-            </summary>
-            <param name="writer">the writer to write to</param>
-            <param name="state">null, state is not set</param>
-            <remarks>
-            <para>
-            Write the current threads username to the output <paramref name="writer"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PatternStringConverters.UtcDatePatternConverter">
-            <summary>
-            Write the UTC date time to the output
-            </summary>
-            <remarks>
-            <para>
-            Date pattern converter, uses a <see cref="T:log4net.DateFormatter.IDateFormatter"/> to format 
-            the current date and time in Universal time.
-            </para>
-            <para>
-            See the <see cref="T:log4net.Util.PatternStringConverters.DatePatternConverter"/> for details on the date pattern syntax.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Util.PatternStringConverters.DatePatternConverter"/>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.PatternStringConverters.UtcDatePatternConverter.Convert(System.IO.TextWriter,System.Object)">
-            <summary>
-            Write the current date and time to the output
-            </summary>
-            <param name="writer"><see cref="T:System.IO.TextWriter"/> that will receive the formatted result.</param>
-            <param name="state">null, state is not set</param>
-            <remarks>
-            <para>
-            Pass the current date and time to the <see cref="T:log4net.DateFormatter.IDateFormatter"/>
-            for it to render it to the writer.
-            </para>
-            <para>
-            The date is in Universal time when it is rendered.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Util.PatternStringConverters.DatePatternConverter"/>
-        </member>
-        <member name="T:log4net.Util.TypeConverters.BooleanConverter">
-            <summary>
-            Type converter for Boolean.
-            </summary>
-            <remarks>
-            <para>
-            Supports conversion from string to <c>bool</c> type.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
-            <seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
-            <seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.BooleanConverter.CanConvertFrom(System.Type)">
-            <summary>
-            Can the source type be converted to the type supported by this object
-            </summary>
-            <param name="sourceType">the type to convert</param>
-            <returns>true if the conversion is possible</returns>
-            <remarks>
-            <para>
-            Returns <c>true</c> if the <paramref name="sourceType"/> is
-            the <see cref="T:System.String"/> type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.BooleanConverter.ConvertFrom(System.Object)">
-            <summary>
-            Convert the source object to the type supported by this object
-            </summary>
-            <param name="source">the object to convert</param>
-            <returns>the converted object</returns>
-            <remarks>
-            <para>
-            Uses the <see cref="M:System.Boolean.Parse(System.String)"/> method to convert the
-            <see cref="T:System.String"/> argument to a <see cref="T:System.Boolean"/>.
-            </para>
-            </remarks>
-            <exception cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
-            The <paramref name="source"/> object cannot be converted to the
-            target type. To check for this condition use the <see cref="M:log4net.Util.TypeConverters.BooleanConverter.CanConvertFrom(System.Type)"/>
-            method.
-            </exception>
-        </member>
-        <member name="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
-            <summary>
-            Exception base type for conversion errors.
-            </summary>
-            <remarks>
-            <para>
-            This type extends <see cref="T:System.ApplicationException"/>. It
-            does not add any new functionality but does differentiate the
-            type of exception being thrown.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.ConversionNotSupportedException.#ctor">
-            <summary>
-            Constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.ConversionNotSupportedException.#ctor(System.String)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="message">A message to include with the exception.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class
-            with the specified message.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.ConversionNotSupportedException.#ctor(System.String,System.Exception)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="message">A message to include with the exception.</param>
-            <param name="innerException">A nested exception to include.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class
-            with the specified message and inner exception.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.ConversionNotSupportedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Serialization constructor
-            </summary>
-            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
-            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class 
-            with serialized data.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.ConversionNotSupportedException.Create(System.Type,System.Object)">
-            <summary>
-            Creates a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class.
-            </summary>
-            <param name="destinationType">The conversion destination type.</param>
-            <param name="sourceValue">The value to convert.</param>
-            <returns>An instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/>.</returns>
-            <remarks>
-            <para>
-            Creates a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.ConversionNotSupportedException.Create(System.Type,System.Object,System.Exception)">
-            <summary>
-            Creates a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class.
-            </summary>
-            <param name="destinationType">The conversion destination type.</param>
-            <param name="sourceValue">The value to convert.</param>
-            <param name="innerException">A nested exception to include.</param>
-            <returns>An instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/>.</returns>
-            <remarks>
-            <para>
-            Creates a new instance of the <see cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.TypeConverters.ConverterRegistry">
-            <summary>
-            Register of type converters for specific types.
-            </summary>
-            <remarks>
-            <para>
-            Maintains a registry of type converters used to convert between
-            types.
-            </para>
-            <para>
-            Use the <see cref="M:log4net.Util.TypeConverters.ConverterRegistry.AddConverter(System.Type,System.Object)"/> and 
-            <see cref="M:log4net.Util.TypeConverters.ConverterRegistry.AddConverter(System.Type,System.Type)"/> methods to register new converters.
-            The <see cref="M:log4net.Util.TypeConverters.ConverterRegistry.GetConvertTo(System.Type,System.Type)"/> and <see cref="M:log4net.Util.TypeConverters.ConverterRegistry.GetConvertFrom(System.Type)"/> methods
-            lookup appropriate converters to use.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
-            <seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.#ctor">
-            <summary>
-            Private constructor
-            </summary>
-            <remarks>
-            Initializes a new instance of the <see cref="T:log4net.Util.TypeConverters.ConverterRegistry"/> class.
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.#cctor">
-            <summary>
-            Static constructor.
-            </summary>
-            <remarks>
-            <para>
-            This constructor defines the intrinsic type converters.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.AddConverter(System.Type,System.Object)">
-            <summary>
-            Adds a converter for a specific type.
-            </summary>
-            <param name="destinationType">The type being converted to.</param>
-            <param name="converter">The type converter to use to convert to the destination type.</param>
-            <remarks>
-            <para>
-            Adds a converter instance for a specific type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.AddConverter(System.Type,System.Type)">
-            <summary>
-            Adds a converter for a specific type.
-            </summary>
-            <param name="destinationType">The type being converted to.</param>
-            <param name="converterType">The type of the type converter to use to convert to the destination type.</param>
-            <remarks>
-            <para>
-            Adds a converter <see cref="T:System.Type"/> for a specific type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.GetConvertTo(System.Type,System.Type)">
-            <summary>
-            Gets the type converter to use to convert values to the destination type.
-            </summary>
-            <param name="sourceType">The type being converted from.</param>
-            <param name="destinationType">The type being converted to.</param>
-            <returns>
-            The type converter instance to use for type conversions or <c>null</c> 
-            if no type converter is found.
-            </returns>
-            <remarks>
-            <para>
-            Gets the type converter to use to convert values to the destination type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.GetConvertFrom(System.Type)">
-            <summary>
-            Gets the type converter to use to convert values to the destination type.
-            </summary>
-            <param name="destinationType">The type being converted to.</param>
-            <returns>
-            The type converter instance to use for type conversions or <c>null</c> 
-            if no type converter is found.
-            </returns>
-            <remarks>
-            <para>
-            Gets the type converter to use to convert values to the destination type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.GetConverterFromAttribute(System.Type)">
-            <summary>
-            Lookups the type converter to use as specified by the attributes on the 
-            destination type.
-            </summary>
-            <param name="destinationType">The type being converted to.</param>
-            <returns>
-            The type converter instance to use for type conversions or <c>null</c> 
-            if no type converter is found.
-            </returns>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.ConverterRegistry.CreateConverterInstance(System.Type)">
-            <summary>
-            Creates the instance of the type converter.
-            </summary>
-            <param name="converterType">The type of the type converter.</param>
-            <returns>
-            The type converter instance to use for type conversions or <c>null</c> 
-            if no type converter is found.
-            </returns>
-            <remarks>
-            <para>
-            The type specified for the type converter must implement 
-            the <see cref="T:log4net.Util.TypeConverters.IConvertFrom"/> or <see cref="T:log4net.Util.TypeConverters.IConvertTo"/> interfaces 
-            and must have a public default (no argument) constructor.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.TypeConverters.ConverterRegistry.s_type2converter">
-            <summary>
-            Mapping from <see cref="T:System.Type"/> to type converter.
-            </summary>
-        </member>
-        <member name="T:log4net.Util.TypeConverters.EncodingConverter">
-            <summary>
-            Supports conversion from string to <see cref="T:System.Text.Encoding"/> type.
-            </summary>
-            <remarks>
-            <para>
-            Supports conversion from string to <see cref="T:System.Text.Encoding"/> type.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
-            <seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
-            <seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.EncodingConverter.CanConvertFrom(System.Type)">
-            <summary>
-            Can the source type be converted to the type supported by this object
-            </summary>
-            <param name="sourceType">the type to convert</param>
-            <returns>true if the conversion is possible</returns>
-            <remarks>
-            <para>
-            Returns <c>true</c> if the <paramref name="sourceType"/> is
-            the <see cref="T:System.String"/> type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.EncodingConverter.ConvertFrom(System.Object)">
-            <summary>
-            Overrides the ConvertFrom method of IConvertFrom.
-            </summary>
-            <param name="source">the object to convert to an encoding</param>
-            <returns>the encoding</returns>
-            <remarks>
-            <para>
-            Uses the <see cref="M:System.Text.Encoding.GetEncoding(System.String)"/> method to 
-            convert the <see cref="T:System.String"/> argument to an <see cref="T:System.Text.Encoding"/>.
-            </para>
-            </remarks>
-            <exception cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
-            The <paramref name="source"/> object cannot be converted to the
-            target type. To check for this condition use the <see cref="M:log4net.Util.TypeConverters.EncodingConverter.CanConvertFrom(System.Type)"/>
-            method.
-            </exception>
-        </member>
-        <member name="T:log4net.Util.TypeConverters.IConvertTo">
-            <summary>
-            Interface supported by type converters
-            </summary>
-            <remarks>
-            <para>
-            This interface supports conversion from a single type to arbitrary types.
-            See <see cref="T:log4net.Util.TypeConverters.TypeConverterAttribute"/>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.IConvertTo.CanConvertTo(System.Type)">
-            <summary>
-            Returns whether this converter can convert the object to the specified type
-            </summary>
-            <param name="targetType">A Type that represents the type you want to convert to</param>
-            <returns>true if the conversion is possible</returns>
-            <remarks>
-            <para>
-            Test if the type supported by this converter can be converted to the
-            <paramref name="targetType"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.IConvertTo.ConvertTo(System.Object,System.Type)">
-            <summary>
-            Converts the given value object to the specified type, using the arguments
-            </summary>
-            <param name="source">the object to convert</param>
-            <param name="targetType">The Type to convert the value parameter to</param>
-            <returns>the converted object</returns>
-            <remarks>
-            <para>
-            Converts the <paramref name="source"/> (which must be of the type supported
-            by this converter) to the <paramref name="targetType"/> specified..
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.TypeConverters.IPAddressConverter">
-            <summary>
-            Supports conversion from string to <see cref="T:System.Net.IPAddress"/> type.
-            </summary>
-            <remarks>
-            <para>
-            Supports conversion from string to <see cref="T:System.Net.IPAddress"/> type.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
-            <seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.IPAddressConverter.CanConvertFrom(System.Type)">
-            <summary>
-            Can the source type be converted to the type supported by this object
-            </summary>
-            <param name="sourceType">the type to convert</param>
-            <returns>true if the conversion is possible</returns>
-            <remarks>
-            <para>
-            Returns <c>true</c> if the <paramref name="sourceType"/> is
-            the <see cref="T:System.String"/> type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.IPAddressConverter.ConvertFrom(System.Object)">
-            <summary>
-            Overrides the ConvertFrom method of IConvertFrom.
-            </summary>
-            <param name="source">the object to convert to an IPAddress</param>
-            <returns>the IPAddress</returns>
-            <remarks>
-            <para>
-            Uses the <see cref="M:System.Net.IPAddress.Parse(System.String)"/> method to convert the
-            <see cref="T:System.String"/> argument to an <see cref="T:System.Net.IPAddress"/>.
-            If that fails then the string is resolved as a DNS hostname.
-            </para>
-            </remarks>
-            <exception cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
-            The <paramref name="source"/> object cannot be converted to the
-            target type. To check for this condition use the <see cref="M:log4net.Util.TypeConverters.IPAddressConverter.CanConvertFrom(System.Type)"/>
-            method.
-            </exception>
-        </member>
-        <member name="F:log4net.Util.TypeConverters.IPAddressConverter.validIpAddressChars">
-            <summary>
-            Valid characters in an IPv4 or IPv6 address string. (Does not support subnets)
-            </summary>
-        </member>
-        <member name="T:log4net.Util.TypeConverters.PatternLayoutConverter">
-            <summary>
-            Supports conversion from string to <see cref="T:log4net.Layout.PatternLayout"/> type.
-            </summary>
-            <remarks>
-            <para>
-            Supports conversion from string to <see cref="T:log4net.Layout.PatternLayout"/> type.
-            </para>
-            <para>
-            The string is used as the <see cref="P:log4net.Layout.PatternLayout.ConversionPattern"/> 
-            of the <see cref="T:log4net.Layout.PatternLayout"/>.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
-            <seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
-            <seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.PatternLayoutConverter.CanConvertFrom(System.Type)">
-            <summary>
-            Can the source type be converted to the type supported by this object
-            </summary>
-            <param name="sourceType">the type to convert</param>
-            <returns>true if the conversion is possible</returns>
-            <remarks>
-            <para>
-            Returns <c>true</c> if the <paramref name="sourceType"/> is
-            the <see cref="T:System.String"/> type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.PatternLayoutConverter.ConvertFrom(System.Object)">
-            <summary>
-            Overrides the ConvertFrom method of IConvertFrom.
-            </summary>
-            <param name="source">the object to convert to a PatternLayout</param>
-            <returns>the PatternLayout</returns>
-            <remarks>
-            <para>
-            Creates and returns a new <see cref="T:log4net.Layout.PatternLayout"/> using
-            the <paramref name="source"/> <see cref="T:System.String"/> as the
-            <see cref="P:log4net.Layout.PatternLayout.ConversionPattern"/>.
-            </para>
-            </remarks>
-            <exception cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
-            The <paramref name="source"/> object cannot be converted to the
-            target type. To check for this condition use the <see cref="M:log4net.Util.TypeConverters.PatternLayoutConverter.CanConvertFrom(System.Type)"/>
-            method.
-            </exception>
-        </member>
-        <member name="T:log4net.Util.TypeConverters.PatternStringConverter">
-            <summary>
-            Convert between string and <see cref="T:log4net.Util.PatternString"/>
-            </summary>
-            <remarks>
-            <para>
-            Supports conversion from string to <see cref="T:log4net.Util.PatternString"/> type, 
-            and from a <see cref="T:log4net.Util.PatternString"/> type to a string.
-            </para>
-            <para>
-            The string is used as the <see cref="P:log4net.Util.PatternString.ConversionPattern"/> 
-            of the <see cref="T:log4net.Util.PatternString"/>.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
-            <seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
-            <seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.PatternStringConverter.CanConvertTo(System.Type)">
-            <summary>
-            Can the target type be converted to the type supported by this object
-            </summary>
-            <param name="targetType">A <see cref="T:System.Type"/> that represents the type you want to convert to</param>
-            <returns>true if the conversion is possible</returns>
-            <remarks>
-            <para>
-            Returns <c>true</c> if the <paramref name="targetType"/> is
-            assignable from a <see cref="T:System.String"/> type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.PatternStringConverter.ConvertTo(System.Object,System.Type)">
-            <summary>
-            Converts the given value object to the specified type, using the arguments
-            </summary>
-            <param name="source">the object to convert</param>
-            <param name="targetType">The Type to convert the value parameter to</param>
-            <returns>the converted object</returns>
-            <remarks>
-            <para>
-            Uses the <see cref="M:log4net.Util.PatternString.Format"/> method to convert the
-            <see cref="T:log4net.Util.PatternString"/> argument to a <see cref="T:System.String"/>.
-            </para>
-            </remarks>
-            <exception cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
-            The <paramref name="source"/> object cannot be converted to the
-            <paramref name="targetType"/>. To check for this condition use the 
-            <see cref="M:log4net.Util.TypeConverters.PatternStringConverter.CanConvertTo(System.Type)"/> method.
-            </exception>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.PatternStringConverter.CanConvertFrom(System.Type)">
-            <summary>
-            Can the source type be converted to the type supported by this object
-            </summary>
-            <param name="sourceType">the type to convert</param>
-            <returns>true if the conversion is possible</returns>
-            <remarks>
-            <para>
-            Returns <c>true</c> if the <paramref name="sourceType"/> is
-            the <see cref="T:System.String"/> type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.PatternStringConverter.ConvertFrom(System.Object)">
-            <summary>
-            Overrides the ConvertFrom method of IConvertFrom.
-            </summary>
-            <param name="source">the object to convert to a PatternString</param>
-            <returns>the PatternString</returns>
-            <remarks>
-            <para>
-            Creates and returns a new <see cref="T:log4net.Util.PatternString"/> using
-            the <paramref name="source"/> <see cref="T:System.String"/> as the
-            <see cref="P:log4net.Util.PatternString.ConversionPattern"/>.
-            </para>
-            </remarks>
-            <exception cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
-            The <paramref name="source"/> object cannot be converted to the
-            target type. To check for this condition use the <see cref="M:log4net.Util.TypeConverters.PatternStringConverter.CanConvertFrom(System.Type)"/>
-            method.
-            </exception>
-        </member>
-        <member name="T:log4net.Util.TypeConverters.TypeConverter">
-            <summary>
-            Supports conversion from string to <see cref="T:System.Type"/> type.
-            </summary>
-            <remarks>
-            <para>
-            Supports conversion from string to <see cref="T:System.Type"/> type.
-            </para>
-            </remarks>
-            <seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
-            <seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
-            <seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.TypeConverter.CanConvertFrom(System.Type)">
-            <summary>
-            Can the source type be converted to the type supported by this object
-            </summary>
-            <param name="sourceType">the type to convert</param>
-            <returns>true if the conversion is possible</returns>
-            <remarks>
-            <para>
-            Returns <c>true</c> if the <paramref name="sourceType"/> is
-            the <see cref="T:System.String"/> type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.TypeConverter.ConvertFrom(System.Object)">
-            <summary>
-            Overrides the ConvertFrom method of IConvertFrom.
-            </summary>
-            <param name="source">the object to convert to a Type</param>
-            <returns>the Type</returns>
-            <remarks>
-            <para>
-            Uses the <see cref="M:System.Type.GetType(System.String,System.Boolean)"/> method to convert the
-            <see cref="T:System.String"/> argument to a <see cref="T:System.Type"/>.
-            Additional effort is made to locate partially specified types
-            by searching the loaded assemblies.
-            </para>
-            </remarks>
-            <exception cref="T:log4net.Util.TypeConverters.ConversionNotSupportedException">
-            The <paramref name="source"/> object cannot be converted to the
-            target type. To check for this condition use the <see cref="M:log4net.Util.TypeConverters.TypeConverter.CanConvertFrom(System.Type)"/>
-            method.
-            </exception>
-        </member>
-        <member name="T:log4net.Util.TypeConverters.TypeConverterAttribute">
-            <summary>
-            Attribute used to associate a type converter
-            </summary>
-            <remarks>
-            <para>
-            Class and Interface level attribute that specifies a type converter
-            to use with the associated type.
-            </para>
-            <para>
-            To associate a type converter with a target type apply a
-            <c>TypeConverterAttribute</c> to the target type. Specify the
-            type of the type converter on the attribute.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="F:log4net.Util.TypeConverters.TypeConverterAttribute.m_typeName">
-            <summary>
-            The string type name of the type converter
-            </summary>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.TypeConverterAttribute.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Default constructor
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.TypeConverterAttribute.#ctor(System.String)">
-            <summary>
-            Create a new type converter attribute for the specified type name
-            </summary>
-            <param name="typeName">The string type name of the type converter</param>
-            <remarks>
-            <para>
-            The type specified must implement the <see cref="T:log4net.Util.TypeConverters.IConvertFrom"/> 
-            or the <see cref="T:log4net.Util.TypeConverters.IConvertTo"/> interfaces.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TypeConverters.TypeConverterAttribute.#ctor(System.Type)">
-            <summary>
-            Create a new type converter attribute for the specified type
-            </summary>
-            <param name="converterType">The type of the type converter</param>
-            <remarks>
-            <para>
-            The type specified must implement the <see cref="T:log4net.Util.TypeConverters.IConvertFrom"/> 
-            or the <see cref="T:log4net.Util.TypeConverters.IConvertTo"/> interfaces.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.TypeConverters.TypeConverterAttribute.ConverterTypeName">
-            <summary>
-            The string type name of the type converter 
-            </summary>
-            <value>
-            The string type name of the type converter 
-            </value>
-            <remarks>
-            <para>
-            The type specified must implement the <see cref="T:log4net.Util.TypeConverters.IConvertFrom"/> 
-            or the <see cref="T:log4net.Util.TypeConverters.IConvertTo"/> interfaces.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.AppenderAttachedImpl">
-            <summary>
-            A straightforward implementation of the <see cref="T:log4net.Core.IAppenderAttachable"/> interface.
-            </summary>
-            <remarks>
-            <para>
-            This is the default implementation of the <see cref="T:log4net.Core.IAppenderAttachable"/>
-            interface. Implementors of the <see cref="T:log4net.Core.IAppenderAttachable"/> interface
-            should aggregate an instance of this type.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.AppenderAttachedImpl.#ctor">
-            <summary>
-            Constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.AppenderAttachedImpl"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.AppenderAttachedImpl.AppendLoopOnAppenders(log4net.Core.LoggingEvent)">
-            <summary>
-            Append on on all attached appenders.
-            </summary>
-            <param name="loggingEvent">The event being logged.</param>
-            <returns>The number of appenders called.</returns>
-            <remarks>
-            <para>
-            Calls the <see cref="M:log4net.Appender.IAppender.DoAppend(log4net.Core.LoggingEvent)"/> method on all 
-            attached appenders.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.AppenderAttachedImpl.AppendLoopOnAppenders(log4net.Core.LoggingEvent[])">
-            <summary>
-            Append on on all attached appenders.
-            </summary>
-            <param name="loggingEvents">The array of events being logged.</param>
-            <returns>The number of appenders called.</returns>
-            <remarks>
-            <para>
-            Calls the <see cref="M:log4net.Appender.IAppender.DoAppend(log4net.Core.LoggingEvent)"/> method on all 
-            attached appenders.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.AppenderAttachedImpl.CallAppend(log4net.Appender.IAppender,log4net.Core.LoggingEvent[])">
-            <summary>
-            Calls the DoAppende method on the <see cref="T:log4net.Appender.IAppender"/> with 
-            the <see cref="T:log4net.Core.LoggingEvent"/> objects supplied.
-            </summary>
-            <param name="appender">The appender</param>
-            <param name="loggingEvents">The events</param>
-            <remarks>
-            <para>
-            If the <paramref name="appender"/> supports the <see cref="T:log4net.Appender.IBulkAppender"/>
-            interface then the <paramref name="loggingEvents"/> will be passed 
-            through using that interface. Otherwise the <see cref="T:log4net.Core.LoggingEvent"/>
-            objects in the array will be passed one at a time.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.AppenderAttachedImpl.AddAppender(log4net.Appender.IAppender)">
-            <summary>
-            Attaches an appender.
-            </summary>
-            <param name="newAppender">The appender to add.</param>
-            <remarks>
-            <para>
-            If the appender is already in the list it won't be added again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.AppenderAttachedImpl.GetAppender(System.String)">
-            <summary>
-            Gets an attached appender with the specified name.
-            </summary>
-            <param name="name">The name of the appender to get.</param>
-            <returns>
-            The appender with the name specified, or <c>null</c> if no appender with the
-            specified name is found.
-            </returns>
-            <remarks>
-            <para>
-            Lookup an attached appender by name.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.AppenderAttachedImpl.RemoveAllAppenders">
-            <summary>
-            Removes all attached appenders.
-            </summary>
-            <remarks>
-            <para>
-            Removes and closes all attached appenders
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.AppenderAttachedImpl.RemoveAppender(log4net.Appender.IAppender)">
-            <summary>
-            Removes the specified appender from the list of attached appenders.
-            </summary>
-            <param name="appender">The appender to remove.</param>
-            <returns>The appender removed from the list</returns>
-            <remarks>
-            <para>
-            The appender removed is not closed.
-            If you are discarding the appender you must call
-            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.AppenderAttachedImpl.RemoveAppender(System.String)">
-            <summary>
-            Removes the appender with the specified name from the list of appenders.
-            </summary>
-            <param name="name">The name of the appender to remove.</param>
-            <returns>The appender removed from the list</returns>
-            <remarks>
-            <para>
-            The appender removed is not closed.
-            If you are discarding the appender you must call
-            <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.AppenderAttachedImpl.m_appenderList">
-            <summary>
-            List of appenders
-            </summary>
-        </member>
-        <member name="F:log4net.Util.AppenderAttachedImpl.m_appenderArray">
-            <summary>
-            Array of appenders, used to cache the m_appenderList
-            </summary>
-        </member>
-        <member name="P:log4net.Util.AppenderAttachedImpl.Appenders">
-            <summary>
-            Gets all attached appenders.
-            </summary>
-            <returns>
-            A collection of attached appenders, or <c>null</c> if there
-            are no attached appenders.
-            </returns>
-            <remarks>
-            <para>
-            The read only collection of all currently attached appenders.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.CompositeProperties">
-            <summary>
-            This class aggregates several PropertiesDictionary collections together.
-            </summary>
-            <remarks>
-            <para>
-            Provides a dictionary style lookup over an ordered list of
-            <see cref="T:log4net.Util.PropertiesDictionary"/> collections.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.CompositeProperties.#ctor">
-            <summary>
-            Constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.CompositeProperties"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.CompositeProperties.Add(log4net.Util.ReadOnlyPropertiesDictionary)">
-            <summary>
-            Add a Properties Dictionary to this composite collection
-            </summary>
-            <param name="properties">the properties to add</param>
-            <remarks>
-            <para>
-            Properties dictionaries added first take precedence over dictionaries added
-            later.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.CompositeProperties.Flatten">
-            <summary>
-            Flatten this composite collection into a single properties dictionary
-            </summary>
-            <returns>the flattened dictionary</returns>
-            <remarks>
-            <para>
-            Reduces the collection of ordered dictionaries to a single dictionary
-            containing the resultant values for the keys.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.CompositeProperties.Item(System.String)">
-            <summary>
-            Gets the value of a property
-            </summary>
-            <value>
-            The value for the property with the specified key
-            </value>
-            <remarks>
-            <para>
-            Looks up the value for the <paramref name="key"/> specified.
-            The <see cref="T:log4net.Util.PropertiesDictionary"/> collections are searched
-            in the order in which they were added to this collection. The value
-            returned is the value held by the first collection that contains
-            the specified key.
-            </para>
-            <para>
-            If none of the collections contain the specified key then
-            <c>null</c> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.ContextPropertiesBase">
-            <summary>
-            Base class for Context Properties implementations
-            </summary>
-            <remarks>
-            <para>
-            This class defines a basic property get set accessor
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="P:log4net.Util.ContextPropertiesBase.Item(System.String)">
-            <summary>
-            Gets or sets the value of a property
-            </summary>
-            <value>
-            The value for the property with the specified key
-            </value>
-            <remarks>
-            <para>
-            Gets or sets the value of a property
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.CountingQuietTextWriter">
-            <summary>
-            Subclass of <see cref="T:log4net.Util.QuietTextWriter"/> that maintains a count of 
-            the number of bytes written.
-            </summary>
-            <remarks>
-            <para>
-            This writer counts the number of bytes written.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Util.QuietTextWriter">
-            <summary>
-            <see cref="T:System.IO.TextWriter"/> that does not leak exceptions
-            </summary>
-            <remarks>
-            <para>
-            <see cref="T:log4net.Util.QuietTextWriter"/> does not throw exceptions when things go wrong. 
-            Instead, it delegates error handling to its <see cref="T:log4net.Core.IErrorHandler"/>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Util.TextWriterAdapter">
-            <summary>
-            Adapter that extends <see cref="T:System.IO.TextWriter"/> and forwards all
-            messages to an instance of <see cref="T:System.IO.TextWriter"/>.
-            </summary>
-            <remarks>
-            <para>
-            Adapter that extends <see cref="T:System.IO.TextWriter"/> and forwards all
-            messages to an instance of <see cref="T:System.IO.TextWriter"/>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Util.TextWriterAdapter.m_writer">
-            <summary>
-            The writer to forward messages to
-            </summary>
-        </member>
-        <member name="M:log4net.Util.TextWriterAdapter.#ctor(System.IO.TextWriter)">
-            <summary>
-            Create an instance of <see cref="T:log4net.Util.TextWriterAdapter"/> that forwards all
-            messages to a <see cref="T:System.IO.TextWriter"/>.
-            </summary>
-            <param name="writer">The <see cref="T:System.IO.TextWriter"/> to forward to</param>
-            <remarks>
-            <para>
-            Create an instance of <see cref="T:log4net.Util.TextWriterAdapter"/> that forwards all
-            messages to a <see cref="T:System.IO.TextWriter"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TextWriterAdapter.Close">
-            <summary>
-            Closes the writer and releases any system resources associated with the writer
-            </summary>
-            <remarks>
-            <para>
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TextWriterAdapter.Dispose(System.Boolean)">
-            <summary>
-            Dispose this writer
-            </summary>
-            <param name="disposing">flag indicating if we are being disposed</param>
-            <remarks>
-            <para>
-            Dispose this writer
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TextWriterAdapter.Flush">
-            <summary>
-            Flushes any buffered output
-            </summary>
-            <remarks>
-            <para>
-            Clears all buffers for the writer and causes any buffered data to be written 
-            to the underlying device
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TextWriterAdapter.Write(System.Char)">
-            <summary>
-            Writes a character to the wrapped TextWriter
-            </summary>
-            <param name="value">the value to write to the TextWriter</param>
-            <remarks>
-            <para>
-            Writes a character to the wrapped TextWriter
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TextWriterAdapter.Write(System.Char[],System.Int32,System.Int32)">
-            <summary>
-            Writes a character buffer to the wrapped TextWriter
-            </summary>
-            <param name="buffer">the data buffer</param>
-            <param name="index">the start index</param>
-            <param name="count">the number of characters to write</param>
-            <remarks>
-            <para>
-            Writes a character buffer to the wrapped TextWriter
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.TextWriterAdapter.Write(System.String)">
-            <summary>
-            Writes a string to the wrapped TextWriter
-            </summary>
-            <param name="value">the value to write to the TextWriter</param>
-            <remarks>
-            <para>
-            Writes a string to the wrapped TextWriter
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.TextWriterAdapter.Writer">
-            <summary>
-            Gets or sets the underlying <see cref="T:System.IO.TextWriter"/>.
-            </summary>
-            <value>
-            The underlying <see cref="T:System.IO.TextWriter"/>.
-            </value>
-            <remarks>
-            <para>
-            Gets or sets the underlying <see cref="T:System.IO.TextWriter"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.TextWriterAdapter.Encoding">
-            <summary>
-            The Encoding in which the output is written
-            </summary>
-            <value>
-            The <see cref="P:log4net.Util.TextWriterAdapter.Encoding"/>
-            </value>
-            <remarks>
-            <para>
-            The Encoding in which the output is written
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.TextWriterAdapter.FormatProvider">
-            <summary>
-            Gets an object that controls formatting
-            </summary>
-            <value>
-            The format provider
-            </value>
-            <remarks>
-            <para>
-            Gets an object that controls formatting
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.TextWriterAdapter.NewLine">
-            <summary>
-            Gets or sets the line terminator string used by the TextWriter
-            </summary>
-            <value>
-            The line terminator to use
-            </value>
-            <remarks>
-            <para>
-            Gets or sets the line terminator string used by the TextWriter
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.QuietTextWriter.#ctor(System.IO.TextWriter,log4net.Core.IErrorHandler)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="writer">the writer to actually write to</param>
-            <param name="errorHandler">the error handler to report error to</param>
-            <remarks>
-            <para>
-            Create a new QuietTextWriter using a writer and error handler
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.QuietTextWriter.Write(System.Char)">
-            <summary>
-            Writes a character to the underlying writer
-            </summary>
-            <param name="value">the char to write</param>
-            <remarks>
-            <para>
-            Writes a character to the underlying writer
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.QuietTextWriter.Write(System.Char[],System.Int32,System.Int32)">
-            <summary>
-            Writes a buffer to the underlying writer
-            </summary>
-            <param name="buffer">the buffer to write</param>
-            <param name="index">the start index to write from</param>
-            <param name="count">the number of characters to write</param>
-            <remarks>
-            <para>
-            Writes a buffer to the underlying writer
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.QuietTextWriter.Write(System.String)">
-            <summary>
-            Writes a string to the output.
-            </summary>
-            <param name="value">The string data to write to the output.</param>
-            <remarks>
-            <para>
-            Writes a string to the output.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.QuietTextWriter.Close">
-            <summary>
-            Closes the underlying output writer.
-            </summary>
-            <remarks>
-            <para>
-            Closes the underlying output writer.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.QuietTextWriter.m_errorHandler">
-            <summary>
-            The error handler instance to pass all errors to
-            </summary>
-        </member>
-        <member name="F:log4net.Util.QuietTextWriter.m_closed">
-            <summary>
-            Flag to indicate if this writer is closed
-            </summary>
-        </member>
-        <member name="P:log4net.Util.QuietTextWriter.ErrorHandler">
-            <summary>
-            Gets or sets the error handler that all errors are passed to.
-            </summary>
-            <value>
-            The error handler that all errors are passed to.
-            </value>
-            <remarks>
-            <para>
-            Gets or sets the error handler that all errors are passed to.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.QuietTextWriter.Closed">
-            <summary>
-            Gets a value indicating whether this writer is closed.
-            </summary>
-            <value>
-            <c>true</c> if this writer is closed, otherwise <c>false</c>.
-            </value>
-            <remarks>
-            <para>
-            Gets a value indicating whether this writer is closed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.CountingQuietTextWriter.#ctor(System.IO.TextWriter,log4net.Core.IErrorHandler)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="writer">The <see cref="T:System.IO.TextWriter"/> to actually write to.</param>
-            <param name="errorHandler">The <see cref="T:log4net.Core.IErrorHandler"/> to report errors to.</param>
-            <remarks>
-            <para>
-            Creates a new instance of the <see cref="T:log4net.Util.CountingQuietTextWriter"/> class 
-            with the specified <see cref="T:System.IO.TextWriter"/> and <see cref="T:log4net.Core.IErrorHandler"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.CountingQuietTextWriter.Write(System.Char)">
-            <summary>
-            Writes a character to the underlying writer and counts the number of bytes written.
-            </summary>
-            <param name="value">the char to write</param>
-            <remarks>
-            <para>
-            Overrides implementation of <see cref="T:log4net.Util.QuietTextWriter"/>. Counts
-            the number of bytes written.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.CountingQuietTextWriter.Write(System.Char[],System.Int32,System.Int32)">
-            <summary>
-            Writes a buffer to the underlying writer and counts the number of bytes written.
-            </summary>
-            <param name="buffer">the buffer to write</param>
-            <param name="index">the start index to write from</param>
-            <param name="count">the number of characters to write</param>
-            <remarks>
-            <para>
-            Overrides implementation of <see cref="T:log4net.Util.QuietTextWriter"/>. Counts
-            the number of bytes written.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.CountingQuietTextWriter.Write(System.String)">
-            <summary>
-            Writes a string to the output and counts the number of bytes written.
-            </summary>
-            <param name="str">The string data to write to the output.</param>
-            <remarks>
-            <para>
-            Overrides implementation of <see cref="T:log4net.Util.QuietTextWriter"/>. Counts
-            the number of bytes written.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.CountingQuietTextWriter.m_countBytes">
-            <summary>
-            Total number of bytes written.
-            </summary>
-        </member>
-        <member name="P:log4net.Util.CountingQuietTextWriter.Count">
-            <summary>
-            Gets or sets the total number of bytes written.
-            </summary>
-            <value>
-            The total number of bytes written.
-            </value>
-            <remarks>
-            <para>
-            Gets or sets the total number of bytes written.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.CyclicBuffer">
-            <summary>
-            A fixed size rolling buffer of logging events.
-            </summary>
-            <remarks>
-            <para>
-            An array backed fixed size leaky bucket.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.CyclicBuffer.#ctor(System.Int32)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="maxSize">The maximum number of logging events in the buffer.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.CyclicBuffer"/> class with 
-            the specified maximum number of buffered logging events.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="maxSize"/> argument is not a positive integer.</exception>
-        </member>
-        <member name="M:log4net.Util.CyclicBuffer.Append(log4net.Core.LoggingEvent)">
-            <summary>
-            Appends a <paramref name="loggingEvent"/> to the buffer.
-            </summary>
-            <param name="loggingEvent">The event to append to the buffer.</param>
-            <returns>The event discarded from the buffer, if the buffer is full, otherwise <c>null</c>.</returns>
-            <remarks>
-            <para>
-            Append an event to the buffer. If the buffer still contains free space then
-            <c>null</c> is returned. If the buffer is full then an event will be dropped
-            to make space for the new event, the event dropped is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.CyclicBuffer.PopOldest">
-            <summary>
-            Get and remove the oldest event in the buffer.
-            </summary>
-            <returns>The oldest logging event in the buffer</returns>
-            <remarks>
-            <para>
-            Gets the oldest (first) logging event in the buffer and removes it 
-            from the buffer.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.CyclicBuffer.PopAll">
-            <summary>
-            Pops all the logging events from the buffer into an array.
-            </summary>
-            <returns>An array of all the logging events in the buffer.</returns>
-            <remarks>
-            <para>
-            Get all the events in the buffer and clear the buffer.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.CyclicBuffer.Clear">
-            <summary>
-            Clear the buffer
-            </summary>
-            <remarks>
-            <para>
-            Clear the buffer of all events. The events in the buffer are lost.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.CyclicBuffer.Item(System.Int32)">
-            <summary>
-            Gets the <paramref name="i"/>th oldest event currently in the buffer.
-            </summary>
-            <value>The <paramref name="i"/>th oldest event currently in the buffer.</value>
-            <remarks>
-            <para>
-            If <paramref name="i"/> is outside the range 0 to the number of events
-            currently in the buffer, then <c>null</c> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.CyclicBuffer.MaxSize">
-            <summary>
-            Gets the maximum size of the buffer.
-            </summary>
-            <value>The maximum size of the buffer.</value>
-            <remarks>
-            <para>
-            Gets the maximum size of the buffer
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.CyclicBuffer.Length">
-            <summary>
-            Gets the number of logging events in the buffer.
-            </summary>
-            <value>The number of logging events in the buffer.</value>
-            <remarks>
-            <para>
-            This number is guaranteed to be in the range 0 to <see cref="P:log4net.Util.CyclicBuffer.MaxSize"/>
-            (inclusive).
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.EmptyCollection">
-            <summary>
-            An always empty <see cref="T:System.Collections.ICollection"/>.
-            </summary>
-            <remarks>
-            <para>
-            A singleton implementation of the <see cref="T:System.Collections.ICollection"/>
-            interface that always represents an empty collection.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.EmptyCollection.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Util.EmptyCollection"/> class. 
-            </summary>
-            <remarks>
-            <para>
-            Uses a private access modifier to enforce the singleton pattern.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.EmptyCollection.CopyTo(System.Array,System.Int32)">
-            <summary>
-            Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an 
-            <see cref="T:System.Array"/>, starting at a particular Array index.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:System.Array"/> 
-            that is the destination of the elements copied from 
-            <see cref="T:System.Collections.ICollection"/>. The Array must have zero-based 
-            indexing.</param>
-            <param name="index">The zero-based index in array at which 
-            copying begins.</param>
-            <remarks>
-            <para>
-            As the collection is empty no values are copied into the array.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.EmptyCollection.GetEnumerator">
-            <summary>
-            Returns an enumerator that can iterate through a collection.
-            </summary>
-            <returns>
-            An <see cref="T:System.Collections.IEnumerator"/> that can be used to 
-            iterate through the collection.
-            </returns>
-            <remarks>
-            <para>
-            As the collection is empty a <see cref="T:log4net.Util.NullEnumerator"/> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.EmptyCollection.s_instance">
-            <summary>
-            The singleton instance of the empty collection.
-            </summary>
-        </member>
-        <member name="P:log4net.Util.EmptyCollection.Instance">
-            <summary>
-            Gets the singleton instance of the empty collection.
-            </summary>
-            <returns>The singleton instance of the empty collection.</returns>
-            <remarks>
-            <para>
-            Gets the singleton instance of the empty collection.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.EmptyCollection.IsSynchronized">
-            <summary>
-            Gets a value indicating if access to the <see cref="T:System.Collections.ICollection"/> is synchronized (thread-safe).
-            </summary>
-            <value>
-            <b>true</b> if access to the <see cref="T:System.Collections.ICollection"/> is synchronized (thread-safe); otherwise, <b>false</b>.
-            </value>
-            <remarks>
-            <para>
-            For the <see cref="T:log4net.Util.EmptyCollection"/> this property is always <c>true</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.EmptyCollection.Count">
-            <summary>
-            Gets the number of elements contained in the <see cref="T:System.Collections.ICollection"/>.
-            </summary>
-            <value>
-            The number of elements contained in the <see cref="T:System.Collections.ICollection"/>.
-            </value>
-            <remarks>
-            <para>
-            As the collection is empty the <see cref="P:log4net.Util.EmptyCollection.Count"/> is always <c>0</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.EmptyCollection.SyncRoot">
-            <summary>
-            Gets an object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection"/>.
-            </summary>
-            <value>
-            An object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection"/>.
-            </value>
-            <remarks>
-            <para>
-            As the collection is empty and thread safe and synchronized this instance is also
-            the <see cref="P:log4net.Util.EmptyCollection.SyncRoot"/> object.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.EmptyDictionary">
-            <summary>
-            An always empty <see cref="T:System.Collections.IDictionary"/>.
-            </summary>
-            <remarks>
-            <para>
-            A singleton implementation of the <see cref="T:System.Collections.IDictionary"/>
-            interface that always represents an empty collection.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.EmptyDictionary.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Util.EmptyDictionary"/> class. 
-            </summary>
-            <remarks>
-            <para>
-            Uses a private access modifier to enforce the singleton pattern.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.EmptyDictionary.CopyTo(System.Array,System.Int32)">
-            <summary>
-            Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an 
-            <see cref="T:System.Array"/>, starting at a particular Array index.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:System.Array"/> 
-            that is the destination of the elements copied from 
-            <see cref="T:System.Collections.ICollection"/>. The Array must have zero-based 
-            indexing.</param>
-            <param name="index">The zero-based index in array at which 
-            copying begins.</param>
-            <remarks>
-            <para>
-            As the collection is empty no values are copied into the array.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.EmptyDictionary.System#Collections#IEnumerable#GetEnumerator">
-            <summary>
-            Returns an enumerator that can iterate through a collection.
-            </summary>
-            <returns>
-            An <see cref="T:System.Collections.IEnumerator"/> that can be used to 
-            iterate through the collection.
-            </returns>
-            <remarks>
-            <para>
-            As the collection is empty a <see cref="T:log4net.Util.NullEnumerator"/> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.EmptyDictionary.Add(System.Object,System.Object)">
-            <summary>
-            Adds an element with the provided key and value to the 
-            <see cref="T:log4net.Util.EmptyDictionary"/>.
-            </summary>
-            <param name="key">The <see cref="T:System.Object"/> to use as the key of the element to add.</param>
-            <param name="value">The <see cref="T:System.Object"/> to use as the value of the element to add.</param>
-            <remarks>
-            <para>
-            As the collection is empty no new values can be added. A <see cref="T:System.InvalidOperationException"/>
-            is thrown if this method is called.
-            </para>
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
-        </member>
-        <member name="M:log4net.Util.EmptyDictionary.Clear">
-            <summary>
-            Removes all elements from the <see cref="T:log4net.Util.EmptyDictionary"/>.
-            </summary>
-            <remarks>
-            <para>
-            As the collection is empty no values can be removed. A <see cref="T:System.InvalidOperationException"/>
-            is thrown if this method is called.
-            </para>
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
-        </member>
-        <member name="M:log4net.Util.EmptyDictionary.Contains(System.Object)">
-            <summary>
-            Determines whether the <see cref="T:log4net.Util.EmptyDictionary"/> contains an element 
-            with the specified key.
-            </summary>
-            <param name="key">The key to locate in the <see cref="T:log4net.Util.EmptyDictionary"/>.</param>
-            <returns><c>false</c></returns>
-            <remarks>
-            <para>
-            As the collection is empty the <see cref="M:log4net.Util.EmptyDictionary.Contains(System.Object)"/> method always returns <c>false</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.EmptyDictionary.GetEnumerator">
-            <summary>
-            Returns an enumerator that can iterate through a collection.
-            </summary>
-            <returns>
-            An <see cref="T:System.Collections.IEnumerator"/> that can be used to 
-            iterate through the collection.
-            </returns>
-            <remarks>
-            <para>
-            As the collection is empty a <see cref="T:log4net.Util.NullEnumerator"/> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.EmptyDictionary.Remove(System.Object)">
-            <summary>
-            Removes the element with the specified key from the <see cref="T:log4net.Util.EmptyDictionary"/>.
-            </summary>
-            <param name="key">The key of the element to remove.</param>
-            <remarks>
-            <para>
-            As the collection is empty no values can be removed. A <see cref="T:System.InvalidOperationException"/>
-            is thrown if this method is called.
-            </para>
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
-        </member>
-        <member name="F:log4net.Util.EmptyDictionary.s_instance">
-            <summary>
-            The singleton instance of the empty dictionary.
-            </summary>
-        </member>
-        <member name="P:log4net.Util.EmptyDictionary.Instance">
-            <summary>
-            Gets the singleton instance of the <see cref="T:log4net.Util.EmptyDictionary"/>.
-            </summary>
-            <returns>The singleton instance of the <see cref="T:log4net.Util.EmptyDictionary"/>.</returns>
-            <remarks>
-            <para>
-            Gets the singleton instance of the <see cref="T:log4net.Util.EmptyDictionary"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.EmptyDictionary.IsSynchronized">
-            <summary>
-            Gets a value indicating if access to the <see cref="T:System.Collections.ICollection"/> is synchronized (thread-safe).
-            </summary>
-            <value>
-            <b>true</b> if access to the <see cref="T:System.Collections.ICollection"/> is synchronized (thread-safe); otherwise, <b>false</b>.
-            </value>
-            <remarks>
-            <para>
-            For the <see cref="T:log4net.Util.EmptyCollection"/> this property is always <b>true</b>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.EmptyDictionary.Count">
-            <summary>
-            Gets the number of elements contained in the <see cref="T:System.Collections.ICollection"/>
-            </summary>
-            <value>
-            The number of elements contained in the <see cref="T:System.Collections.ICollection"/>.
-            </value>
-            <remarks>
-            <para>
-            As the collection is empty the <see cref="P:log4net.Util.EmptyDictionary.Count"/> is always <c>0</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.EmptyDictionary.SyncRoot">
-            <summary>
-            Gets an object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection"/>.
-            </summary>
-            <value>
-            An object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection"/>.
-            </value>
-            <remarks>
-            <para>
-            As the collection is empty and thread safe and synchronized this instance is also
-            the <see cref="P:log4net.Util.EmptyDictionary.SyncRoot"/> object.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.EmptyDictionary.IsFixedSize">
-            <summary>
-            Gets a value indicating whether the <see cref="T:log4net.Util.EmptyDictionary"/> has a fixed size.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            As the collection is empty <see cref="P:log4net.Util.EmptyDictionary.IsFixedSize"/> always returns <c>true</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.EmptyDictionary.IsReadOnly">
-            <summary>
-            Gets a value indicating whether the <see cref="T:log4net.Util.EmptyDictionary"/> is read-only.
-            </summary>
-            <value><c>true</c></value>
-            <remarks>
-            <para>
-            As the collection is empty <see cref="P:log4net.Util.EmptyDictionary.IsReadOnly"/> always returns <c>true</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.EmptyDictionary.Keys">
-            <summary>
-            Gets an <see cref="T:System.Collections.ICollection"/> containing the keys of the <see cref="T:log4net.Util.EmptyDictionary"/>.
-            </summary>
-            <value>An <see cref="T:System.Collections.ICollection"/> containing the keys of the <see cref="T:log4net.Util.EmptyDictionary"/>.</value>
-            <remarks>
-            <para>
-            As the collection is empty a <see cref="T:log4net.Util.EmptyCollection"/> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.EmptyDictionary.Values">
-            <summary>
-            Gets an <see cref="T:System.Collections.ICollection"/> containing the values of the <see cref="T:log4net.Util.EmptyDictionary"/>.
-            </summary>
-            <value>An <see cref="T:System.Collections.ICollection"/> containing the values of the <see cref="T:log4net.Util.EmptyDictionary"/>.</value>
-            <remarks>
-            <para>
-            As the collection is empty a <see cref="T:log4net.Util.EmptyCollection"/> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.EmptyDictionary.Item(System.Object)">
-            <summary>
-            Gets or sets the element with the specified key.
-            </summary>
-            <param name="key">The key of the element to get or set.</param>
-            <value><c>null</c></value>
-            <remarks>
-            <para>
-            As the collection is empty no values can be looked up or stored. 
-            If the index getter is called then <c>null</c> is returned.
-            A <see cref="T:System.InvalidOperationException"/> is thrown if the setter is called.
-            </para>
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
-        </member>
-        <member name="T:log4net.Util.FormattingInfo">
-            <summary>
-            Contain the information obtained when parsing formatting modifiers 
-            in conversion modifiers.
-            </summary>
-            <remarks>
-            <para>
-            Holds the formatting information extracted from the format string by
-            the <see cref="T:log4net.Util.PatternParser"/>. This is used by the <see cref="T:log4net.Util.PatternConverter"/>
-            objects when rendering the output.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.FormattingInfo.#ctor">
-            <summary>
-            Defaut Constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.FormattingInfo"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.FormattingInfo.#ctor(System.Int32,System.Int32,System.Boolean)">
-            <summary>
-            Constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.FormattingInfo"/> class
-            with the specified parameters.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.FormattingInfo.Min">
-            <summary>
-            Gets or sets the minimum value.
-            </summary>
-            <value>
-            The minimum value.
-            </value>
-            <remarks>
-            <para>
-            Gets or sets the minimum value.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.FormattingInfo.Max">
-            <summary>
-            Gets or sets the maximum value.
-            </summary>
-            <value>
-            The maximum value.
-            </value>
-            <remarks>
-            <para>
-            Gets or sets the maximum value.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.FormattingInfo.LeftAlign">
-            <summary>
-            Gets or sets a flag indicating whether left align is enabled
-            or not.
-            </summary>
-            <value>
-            A flag indicating whether left align is enabled or not.
-            </value>
-            <remarks>
-            <para>
-            Gets or sets a flag indicating whether left align is enabled or not.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.GlobalContextProperties">
-            <summary>
-            Implementation of Properties collection for the <see cref="T:log4net.GlobalContext"/>
-            </summary>
-            <remarks>
-            <para>
-            This class implements a properties collection that is thread safe and supports both
-            storing properties and capturing a read only copy of the current propertied.
-            </para>
-            <para>
-            This class is optimized to the scenario where the properties are read frequently
-            and are modified infrequently.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Util.GlobalContextProperties.m_readOnlyProperties">
-            <summary>
-            The read only copy of the properties.
-            </summary>
-            <remarks>
-            <para>
-            This variable is declared <c>volatile</c> to prevent the compiler and JIT from
-            reordering reads and writes of this thread performed on different threads.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.GlobalContextProperties.m_syncRoot">
-            <summary>
-            Lock object used to synchronize updates within this instance
-            </summary>
-        </member>
-        <member name="M:log4net.Util.GlobalContextProperties.#ctor">
-            <summary>
-            Constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.GlobalContextProperties"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.GlobalContextProperties.Remove(System.String)">
-            <summary>
-            Remove a property from the global context
-            </summary>
-            <param name="key">the key for the entry to remove</param>
-            <remarks>
-            <para>
-            Removing an entry from the global context properties is relatively expensive compared
-            with reading a value. 
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.GlobalContextProperties.Clear">
-            <summary>
-            Clear the global context properties
-            </summary>
-        </member>
-        <member name="M:log4net.Util.GlobalContextProperties.GetReadOnlyProperties">
-            <summary>
-            Get a readonly immutable copy of the properties
-            </summary>
-            <returns>the current global context properties</returns>
-            <remarks>
-            <para>
-            This implementation is fast because the GlobalContextProperties class
-            stores a readonly copy of the properties.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.GlobalContextProperties.Item(System.String)">
-            <summary>
-            Gets or sets the value of a property
-            </summary>
-            <value>
-            The value for the property with the specified key
-            </value>
-            <remarks>
-            <para>
-            Reading the value for a key is faster than setting the value.
-            When the value is written a new read only copy of 
-            the properties is created.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.LevelMapping">
-            <summary>
-            Manages a mapping from levels to <see cref="T:log4net.Util.LevelMappingEntry"/>
-            </summary>
-            <remarks>
-            <para>
-            Manages an ordered mapping from <see cref="T:log4net.Core.Level"/> instances 
-            to <see cref="T:log4net.Util.LevelMappingEntry"/> subclasses.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.LevelMapping.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Initialise a new instance of <see cref="T:log4net.Util.LevelMapping"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LevelMapping.Add(log4net.Util.LevelMappingEntry)">
-            <summary>
-            Add a <see cref="T:log4net.Util.LevelMappingEntry"/> to this mapping
-            </summary>
-            <param name="entry">the entry to add</param>
-            <remarks>
-            <para>
-            If a <see cref="T:log4net.Util.LevelMappingEntry"/> has previously been added
-            for the same <see cref="T:log4net.Core.Level"/> then that entry will be 
-            overwritten.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LevelMapping.Lookup(log4net.Core.Level)">
-            <summary>
-            Lookup the mapping for the specified level
-            </summary>
-            <param name="level">the level to lookup</param>
-            <returns>the <see cref="T:log4net.Util.LevelMappingEntry"/> for the level or <c>null</c> if no mapping found</returns>
-            <remarks>
-            <para>
-            Lookup the value for the specified level. Finds the nearest
-            mapping value for the level that is equal to or less than the
-            <paramref name="level"/> specified.
-            </para>
-            <para>
-            If no mapping could be found then <c>null</c> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LevelMapping.ActivateOptions">
-            <summary>
-            Initialize options
-            </summary>
-            <remarks>
-            <para>
-            Caches the sorted list of <see cref="T:log4net.Util.LevelMappingEntry"/> in an array
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.LogicalThreadContextProperties">
-            <summary>
-            Implementation of Properties collection for the <see cref="T:log4net.LogicalThreadContext"/>
-            </summary>
-            <remarks>
-            <para>
-            Class implements a collection of properties that is specific to each thread.
-            The class is not synchronized as each thread has its own <see cref="T:log4net.Util.PropertiesDictionary"/>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.LogicalThreadContextProperties.#ctor">
-            <summary>
-            Constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.LogicalThreadContextProperties"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LogicalThreadContextProperties.Remove(System.String)">
-            <summary>
-            Remove a property
-            </summary>
-            <param name="key">the key for the entry to remove</param>
-            <remarks>
-            <para>
-            Remove the value for the specified <paramref name="key"/> from the context.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LogicalThreadContextProperties.Clear">
-            <summary>
-            Clear all the context properties
-            </summary>
-            <remarks>
-            <para>
-            Clear all the context properties
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LogicalThreadContextProperties.GetProperties(System.Boolean)">
-            <summary>
-            Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread.
-            </summary>
-            <param name="create">create the dictionary if it does not exist, otherwise return null if is does not exist</param>
-            <returns>the properties for this thread</returns>
-            <remarks>
-            <para>
-            The collection returned is only to be used on the calling thread. If the
-            caller needs to share the collection between different threads then the 
-            caller must clone the collection before doings so.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.LogicalThreadContextProperties.Item(System.String)">
-            <summary>
-            Gets or sets the value of a property
-            </summary>
-            <value>
-            The value for the property with the specified key
-            </value>
-            <remarks>
-            <para>
-            Get or set the property value for the <paramref name="key"/> specified.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.LogLog">
-            <summary>
-            Outputs log statements from within the log4net assembly.
-            </summary>
-            <remarks>
-            <para>
-            Log4net components cannot make log4net logging calls. However, it is
-            sometimes useful for the user to learn about what log4net is
-            doing.
-            </para>
-            <para>
-            All log4net internal debug calls go to the standard output stream
-            whereas internal error messages are sent to the standard error output 
-            stream.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.LogLog.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Util.LogLog"/> class. 
-            </summary>
-            <remarks>
-            <para>
-            Uses a private access modifier to prevent instantiation of this class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LogLog.#cctor">
-            <summary>
-            Static constructor that initializes logging by reading 
-            settings from the application configuration file.
-            </summary>
-            <remarks>
-            <para>
-            The <c>log4net.Internal.Debug</c> application setting
-            controls internal debugging. This setting should be set
-            to <c>true</c> to enable debugging.
-            </para>
-            <para>
-            The <c>log4net.Internal.Quiet</c> application setting
-            suppresses all internal logging including error messages. 
-            This setting should be set to <c>true</c> to enable message
-            suppression.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LogLog.Debug(System.String)">
-            <summary>
-            Writes log4net internal debug messages to the 
-            standard output stream.
-            </summary>
-            <param name="message">The message to log.</param>
-            <remarks>
-            <para>
-            All internal debug messages are prepended with 
-            the string "log4net: ".
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LogLog.Debug(System.String,System.Exception)">
-            <summary>
-            Writes log4net internal debug messages to the 
-            standard output stream.
-            </summary>
-            <param name="message">The message to log.</param>
-            <param name="exception">An exception to log.</param>
-            <remarks>
-            <para>
-            All internal debug messages are prepended with 
-            the string "log4net: ".
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LogLog.Warn(System.String)">
-            <summary>
-            Writes log4net internal warning messages to the 
-            standard error stream.
-            </summary>
-            <param name="message">The message to log.</param>
-            <remarks>
-            <para>
-            All internal warning messages are prepended with 
-            the string "log4net:WARN ".
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LogLog.Warn(System.String,System.Exception)">
-            <summary>
-            Writes log4net internal warning messages to the 
-            standard error stream.
-            </summary>
-            <param name="message">The message to log.</param>
-            <param name="exception">An exception to log.</param>
-            <remarks>
-            <para>
-            All internal warning messages are prepended with 
-            the string "log4net:WARN ".
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LogLog.Error(System.String)">
-            <summary>
-            Writes log4net internal error messages to the 
-            standard error stream.
-            </summary>
-            <param name="message">The message to log.</param>
-            <remarks>
-            <para>
-            All internal error messages are prepended with 
-            the string "log4net:ERROR ".
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LogLog.Error(System.String,System.Exception)">
-            <summary>
-            Writes log4net internal error messages to the 
-            standard error stream.
-            </summary>
-            <param name="message">The message to log.</param>
-            <param name="exception">An exception to log.</param>
-            <remarks>
-            <para>
-            All internal debug messages are prepended with 
-            the string "log4net:ERROR ".
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LogLog.EmitOutLine(System.String)">
-            <summary>
-            Writes output to the standard output stream.  
-            </summary>
-            <param name="message">The message to log.</param>
-            <remarks>
-            <para>
-            Writes to both Console.Out and System.Diagnostics.Trace.
-            Note that the System.Diagnostics.Trace is not supported
-            on the Compact Framework.
-            </para>
-            <para>
-            If the AppDomain is not configured with a config file then
-            the call to System.Diagnostics.Trace may fail. This is only
-            an issue if you are programmatically creating your own AppDomains.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.LogLog.EmitErrorLine(System.String)">
-            <summary>
-            Writes output to the standard error stream.  
-            </summary>
-            <param name="message">The message to log.</param>
-            <remarks>
-            <para>
-            Writes to both Console.Error and System.Diagnostics.Trace.
-            Note that the System.Diagnostics.Trace is not supported
-            on the Compact Framework.
-            </para>
-            <para>
-            If the AppDomain is not configured with a config file then
-            the call to System.Diagnostics.Trace may fail. This is only
-            an issue if you are programmatically creating your own AppDomains.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.LogLog.s_debugEnabled">
-            <summary>
-             Default debug level
-            </summary>
-        </member>
-        <member name="F:log4net.Util.LogLog.s_quietMode">
-            <summary>
-            In quietMode not even errors generate any output.
-            </summary>
-        </member>
-        <member name="P:log4net.Util.LogLog.InternalDebugging">
-            <summary>
-            Gets or sets a value indicating whether log4net internal logging
-            is enabled or disabled.
-            </summary>
-            <value>
-            <c>true</c> if log4net internal logging is enabled, otherwise 
-            <c>false</c>.
-            </value>
-            <remarks>
-            <para>
-            When set to <c>true</c>, internal debug level logging will be 
-            displayed.
-            </para>
-            <para>
-            This value can be set by setting the application setting 
-            <c>log4net.Internal.Debug</c> in the application configuration
-            file.
-            </para>
-            <para>
-            The default value is <c>false</c>, i.e. debugging is
-            disabled.
-            </para>
-            </remarks>
-            <example>
-            <para>
-            The following example enables internal debugging using the 
-            application configuration file :
-            </para>
-            <code lang="XML" escaped="true">
-            <configuration>
-            	<appSettings>
-            		<add key="log4net.Internal.Debug" value="true" />
-            	</appSettings>
-            </configuration>
-            </code>
-            </example>
-        </member>
-        <member name="P:log4net.Util.LogLog.QuietMode">
-            <summary>
-            Gets or sets a value indicating whether log4net should generate no output
-            from internal logging, not even for errors. 
-            </summary>
-            <value>
-            <c>true</c> if log4net should generate no output at all from internal 
-            logging, otherwise <c>false</c>.
-            </value>
-            <remarks>
-            <para>
-            When set to <c>true</c> will cause internal logging at all levels to be 
-            suppressed. This means that no warning or error reports will be logged. 
-            This option overrides the <see cref="P:log4net.Util.LogLog.InternalDebugging"/> setting and 
-            disables all debug also.
-            </para>
-            <para>This value can be set by setting the application setting
-            <c>log4net.Internal.Quiet</c> in the application configuration file.
-            </para>
-            <para>
-            The default value is <c>false</c>, i.e. internal logging is not
-            disabled.
-            </para>
-            </remarks>
-            <example>
-            The following example disables internal logging using the 
-            application configuration file :
-            <code lang="XML" escaped="true">
-            <configuration>
-            	<appSettings>
-            		<add key="log4net.Internal.Quiet" value="true"/>
-            	</appSettings>
-            </configuration>
-            </code>
-            </example>
-        </member>
-        <member name="P:log4net.Util.LogLog.IsDebugEnabled">
-            <summary>
-            Test if LogLog.Debug is enabled for output.
-            </summary>
-            <value>
-            <c>true</c> if Debug is enabled
-            </value>
-            <remarks>
-            <para>
-            Test if LogLog.Debug is enabled for output.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.LogLog.IsWarnEnabled">
-            <summary>
-            Test if LogLog.Warn is enabled for output.
-            </summary>
-            <value>
-            <c>true</c> if Warn is enabled
-            </value>
-            <remarks>
-            <para>
-            Test if LogLog.Warn is enabled for output.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.LogLog.IsErrorEnabled">
-            <summary>
-            Test if LogLog.Error is enabled for output.
-            </summary>
-            <value>
-            <c>true</c> if Error is enabled
-            </value>
-            <remarks>
-            <para>
-            Test if LogLog.Error is enabled for output.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.NativeError">
-            <summary>
-            Represents a native error code and message.
-            </summary>
-            <remarks>
-            <para>
-            Represents a Win32 platform native error.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.NativeError.#ctor(System.Int32,System.String)">
-            <summary>
-            Create an instance of the <see cref="T:log4net.Util.NativeError"/> class with the specified 
-            error number and message.
-            </summary>
-            <param name="number">The number of the native error.</param>
-            <param name="message">The message of the native error.</param>
-            <remarks>
-            <para>
-            Create an instance of the <see cref="T:log4net.Util.NativeError"/> class with the specified 
-            error number and message.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.NativeError.GetLastError">
-            <summary>
-            Create a new instance of the <see cref="T:log4net.Util.NativeError"/> class for the last Windows error.
-            </summary>
-            <returns>
-            An instance of the <see cref="T:log4net.Util.NativeError"/> class for the last windows error.
-            </returns>
-            <remarks>
-            <para>
-            The message for the <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/> error number is lookup up using the 
-            native Win32 <c>FormatMessage</c> function.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.NativeError.GetError(System.Int32)">
-            <summary>
-            Create a new instance of the <see cref="T:log4net.Util.NativeError"/> class.
-            </summary>
-            <param name="number">the error number for the native error</param>
-            <returns>
-            An instance of the <see cref="T:log4net.Util.NativeError"/> class for the specified 
-            error number.
-            </returns>
-            <remarks>
-            <para>
-            The message for the specified error number is lookup up using the 
-            native Win32 <c>FormatMessage</c> function.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.NativeError.GetErrorMessage(System.Int32)">
-            <summary>
-            Retrieves the message corresponding with a Win32 message identifier.
-            </summary>
-            <param name="messageId">Message identifier for the requested message.</param>
-            <returns>
-            The message corresponding with the specified message identifier.
-            </returns>
-            <remarks>
-            <para>
-            The message will be searched for in system message-table resource(s)
-            using the native <c>FormatMessage</c> function.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.NativeError.ToString">
-            <summary>
-            Return error information string
-            </summary>
-            <returns>error information string</returns>
-            <remarks>
-            <para>
-            Return error information string
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.NativeError.FormatMessage(System.Int32,System.IntPtr@,System.Int32,System.Int32,System.String@,System.Int32,System.IntPtr)">
-            <summary>
-            Formats a message string.
-            </summary>
-            <param name="dwFlags">Formatting options, and how to interpret the <paramref name="lpSource"/> parameter.</param>
-            <param name="lpSource">Location of the message definition.</param>
-            <param name="dwMessageId">Message identifier for the requested message.</param>
-            <param name="dwLanguageId">Language identifier for the requested message.</param>
-            <param name="lpBuffer">If <paramref name="dwFlags"/> includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the <c>LocalAlloc</c> function, and places the pointer to the buffer at the address specified in <paramref name="lpBuffer"/>.</param>
-            <param name="nSize">If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer.</param>
-            <param name="Arguments">Pointer to an array of values that are used as insert values in the formatted message.</param>
-            <remarks>
-            <para>
-            The function requires a message definition as input. The message definition can come from a 
-            buffer passed into the function. It can come from a message table resource in an 
-            already-loaded module. Or the caller can ask the function to search the system's message 
-            table resource(s) for the message definition. The function finds the message definition 
-            in a message table resource based on a message identifier and a language identifier. 
-            The function copies the formatted message text to an output buffer, processing any embedded 
-            insert sequences if requested.
-            </para>
-            <para>
-            To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message.
-            </para>
-            </remarks>
-            <returns>
-            <para>
-            If the function succeeds, the return value is the number of TCHARs stored in the output 
-            buffer, excluding the terminating null character.
-            </para>
-            <para>
-            If the function fails, the return value is zero. To get extended error information, 
-            call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
-            </para>
-            </returns>
-        </member>
-        <member name="P:log4net.Util.NativeError.Number">
-            <summary>
-            Gets the number of the native error.
-            </summary>
-            <value>
-            The number of the native error.
-            </value>
-            <remarks>
-            <para>
-            Gets the number of the native error.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.NativeError.Message">
-            <summary>
-            Gets the message of the native error.
-            </summary>
-            <value>
-            The message of the native error.
-            </value>
-            <remarks>
-            <para>
-            </para>
-            Gets the message of the native error.
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.NullDictionaryEnumerator">
-            <summary>
-            An always empty <see cref="T:System.Collections.IDictionaryEnumerator"/>.
-            </summary>
-            <remarks>
-            <para>
-            A singleton implementation of the <see cref="T:System.Collections.IDictionaryEnumerator"/> over a collection
-            that is empty and not modifiable.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.NullDictionaryEnumerator.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Util.NullDictionaryEnumerator"/> class. 
-            </summary>
-            <remarks>
-            <para>
-            Uses a private access modifier to enforce the singleton pattern.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.NullDictionaryEnumerator.MoveNext">
-            <summary>
-            Test if the enumerator can advance, if so advance.
-            </summary>
-            <returns><c>false</c> as the <see cref="T:log4net.Util.NullDictionaryEnumerator"/> cannot advance.</returns>
-            <remarks>
-            <para>
-            As the enumerator is over an empty collection its <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
-            value cannot be moved over a valid position, therefore <see cref="M:log4net.Util.NullDictionaryEnumerator.MoveNext"/>
-            will always return <c>false</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.NullDictionaryEnumerator.Reset">
-            <summary>
-            Resets the enumerator back to the start.
-            </summary>
-            <remarks>
-            <para>
-            As the enumerator is over an empty collection <see cref="M:log4net.Util.NullDictionaryEnumerator.Reset"/> does nothing.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.NullDictionaryEnumerator.s_instance">
-            <summary>
-            The singleton instance of the <see cref="T:log4net.Util.NullDictionaryEnumerator"/>.
-            </summary>
-        </member>
-        <member name="P:log4net.Util.NullDictionaryEnumerator.Instance">
-            <summary>
-            Gets the singleton instance of the <see cref="T:log4net.Util.NullDictionaryEnumerator"/>.
-            </summary>
-            <returns>The singleton instance of the <see cref="T:log4net.Util.NullDictionaryEnumerator"/>.</returns>
-            <remarks>
-            <para>
-            Gets the singleton instance of the <see cref="T:log4net.Util.NullDictionaryEnumerator"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.NullDictionaryEnumerator.Current">
-            <summary>
-            Gets the current object from the enumerator.
-            </summary>
-            <remarks>
-            Throws an <see cref="T:System.InvalidOperationException"/> because the 
-            <see cref="T:log4net.Util.NullDictionaryEnumerator"/> never has a current value.
-            </remarks>
-            <remarks>
-            <para>
-            As the enumerator is over an empty collection its <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
-            value cannot be moved over a valid position, therefore <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
-            will throw an <see cref="T:System.InvalidOperationException"/>.
-            </para>
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">The collection is empty and <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/> 
-            cannot be positioned over a valid location.</exception>
-        </member>
-        <member name="P:log4net.Util.NullDictionaryEnumerator.Key">
-            <summary>
-            Gets the current key from the enumerator.
-            </summary>
-            <remarks>
-            Throws an exception because the <see cref="T:log4net.Util.NullDictionaryEnumerator"/>
-            never has a current value.
-            </remarks>
-            <remarks>
-            <para>
-            As the enumerator is over an empty collection its <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
-            value cannot be moved over a valid position, therefore <see cref="P:log4net.Util.NullDictionaryEnumerator.Key"/>
-            will throw an <see cref="T:System.InvalidOperationException"/>.
-            </para>
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">The collection is empty and <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/> 
-            cannot be positioned over a valid location.</exception>
-        </member>
-        <member name="P:log4net.Util.NullDictionaryEnumerator.Value">
-            <summary>
-            Gets the current value from the enumerator.
-            </summary>
-            <value>The current value from the enumerator.</value>
-            <remarks>
-            Throws an <see cref="T:System.InvalidOperationException"/> because the 
-            <see cref="T:log4net.Util.NullDictionaryEnumerator"/> never has a current value.
-            </remarks>
-            <remarks>
-            <para>
-            As the enumerator is over an empty collection its <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
-            value cannot be moved over a valid position, therefore <see cref="P:log4net.Util.NullDictionaryEnumerator.Value"/>
-            will throw an <see cref="T:System.InvalidOperationException"/>.
-            </para>
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">The collection is empty and <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/> 
-            cannot be positioned over a valid location.</exception>
-        </member>
-        <member name="P:log4net.Util.NullDictionaryEnumerator.Entry">
-            <summary>
-            Gets the current entry from the enumerator.
-            </summary>
-            <remarks>
-            Throws an <see cref="T:System.InvalidOperationException"/> because the 
-            <see cref="T:log4net.Util.NullDictionaryEnumerator"/> never has a current entry.
-            </remarks>
-            <remarks>
-            <para>
-            As the enumerator is over an empty collection its <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
-            value cannot be moved over a valid position, therefore <see cref="P:log4net.Util.NullDictionaryEnumerator.Entry"/>
-            will throw an <see cref="T:System.InvalidOperationException"/>.
-            </para>
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">The collection is empty and <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/> 
-            cannot be positioned over a valid location.</exception>
-        </member>
-        <member name="T:log4net.Util.NullEnumerator">
-            <summary>
-            An always empty <see cref="T:System.Collections.IEnumerator"/>.
-            </summary>
-            <remarks>
-            <para>
-            A singleton implementation of the <see cref="T:System.Collections.IEnumerator"/> over a collection
-            that is empty and not modifiable.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.NullEnumerator.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Util.NullEnumerator"/> class. 
-            </summary>
-            <remarks>
-            <para>
-            Uses a private access modifier to enforce the singleton pattern.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.NullEnumerator.MoveNext">
-            <summary>
-            Test if the enumerator can advance, if so advance
-            </summary>
-            <returns><c>false</c> as the <see cref="T:log4net.Util.NullEnumerator"/> cannot advance.</returns>
-            <remarks>
-            <para>
-            As the enumerator is over an empty collection its <see cref="P:log4net.Util.NullEnumerator.Current"/>
-            value cannot be moved over a valid position, therefore <see cref="M:log4net.Util.NullEnumerator.MoveNext"/>
-            will always return <c>false</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.NullEnumerator.Reset">
-            <summary>
-            Resets the enumerator back to the start.
-            </summary>
-            <remarks>
-            <para>
-            As the enumerator is over an empty collection <see cref="M:log4net.Util.NullEnumerator.Reset"/> does nothing.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.NullEnumerator.s_instance">
-            <summary>
-            The singleton instance of the <see cref="T:log4net.Util.NullEnumerator"/>.
-            </summary>
-        </member>
-        <member name="P:log4net.Util.NullEnumerator.Instance">
-            <summary>
-            Get the singleton instance of the <see cref="T:log4net.Util.NullEnumerator"/>.
-            </summary>
-            <returns>The singleton instance of the <see cref="T:log4net.Util.NullEnumerator"/>.</returns>
-            <remarks>
-            <para>
-            Gets the singleton instance of the <see cref="T:log4net.Util.NullEnumerator"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.NullEnumerator.Current">
-            <summary>
-            Gets the current object from the enumerator.
-            </summary>
-            <remarks>
-            Throws an <see cref="T:System.InvalidOperationException"/> because the 
-            <see cref="T:log4net.Util.NullDictionaryEnumerator"/> never has a current value.
-            </remarks>
-            <remarks>
-            <para>
-            As the enumerator is over an empty collection its <see cref="P:log4net.Util.NullEnumerator.Current"/>
-            value cannot be moved over a valid position, therefore <see cref="P:log4net.Util.NullEnumerator.Current"/>
-            will throw an <see cref="T:System.InvalidOperationException"/>.
-            </para>
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">The collection is empty and <see cref="P:log4net.Util.NullEnumerator.Current"/> 
-            cannot be positioned over a valid location.</exception>
-        </member>
-        <member name="T:log4net.Util.NullSecurityContext">
-            <summary>
-            A SecurityContext used when a SecurityContext is not required
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Util.NullSecurityContext"/> is a no-op implementation of the
-            <see cref="T:log4net.Core.SecurityContext"/> base class. It is used where a <see cref="T:log4net.Core.SecurityContext"/>
-            is required but one has not been provided.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Util.NullSecurityContext.Instance">
-            <summary>
-            Singleton instance of <see cref="T:log4net.Util.NullSecurityContext"/>
-            </summary>
-            <remarks>
-            <para>
-            Singleton instance of <see cref="T:log4net.Util.NullSecurityContext"/>
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.NullSecurityContext.#ctor">
-            <summary>
-            Private constructor
-            </summary>
-            <remarks>
-            <para>
-            Private constructor for singleton pattern.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.NullSecurityContext.Impersonate(System.Object)">
-            <summary>
-            Impersonate this SecurityContext
-            </summary>
-            <param name="state">State supplied by the caller</param>
-            <returns><c>null</c></returns>
-            <remarks>
-            <para>
-            No impersonation is done and <c>null</c> is always returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.OnlyOnceErrorHandler">
-            <summary>
-            Implements log4net's default error handling policy which consists 
-            of emitting a message for the first error in an appender and 
-            ignoring all subsequent errors.
-            </summary>
-            <remarks>
-            <para>
-            The error message is printed on the standard error output stream.
-            </para>
-            <para>
-            This policy aims at protecting an otherwise working application
-            from being flooded with error messages when logging fails.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.OnlyOnceErrorHandler.#ctor">
-            <summary>
-            Default Constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.OnlyOnceErrorHandler"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.OnlyOnceErrorHandler.#ctor(System.String)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="prefix">The prefix to use for each message.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.OnlyOnceErrorHandler"/> class
-            with the specified prefix.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.OnlyOnceErrorHandler.Error(System.String,System.Exception,log4net.Core.ErrorCode)">
-            <summary>
-            Log an Error
-            </summary>
-            <param name="message">The error message.</param>
-            <param name="e">The exception.</param>
-            <param name="errorCode">The internal error code.</param>
-            <remarks>
-            <para>
-            Prints the message and the stack trace of the exception on the standard
-            error output stream.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.OnlyOnceErrorHandler.Error(System.String,System.Exception)">
-            <summary>
-            Log an Error
-            </summary>
-            <param name="message">The error message.</param>
-            <param name="e">The exception.</param>
-            <remarks>
-            <para>
-            Prints the message and the stack trace of the exception on the standard
-            error output stream.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.OnlyOnceErrorHandler.Error(System.String)">
-            <summary>
-            Log an error
-            </summary>
-            <param name="message">The error message.</param>
-            <remarks>
-            <para>
-            Print a the error message passed as parameter on the standard
-            error output stream.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.OnlyOnceErrorHandler.m_firstTime">
-            <summary>
-            Flag to indicate if it is the first error
-            </summary>
-        </member>
-        <member name="F:log4net.Util.OnlyOnceErrorHandler.m_prefix">
-            <summary>
-            String to prefix each message with
-            </summary>
-        </member>
-        <member name="P:log4net.Util.OnlyOnceErrorHandler.IsEnabled">
-            <summary>
-            Is error logging enabled
-            </summary>
-            <remarks>
-            <para>
-            Is error logging enabled. Logging is only enabled for the
-            first error delivered to the <see cref="T:log4net.Util.OnlyOnceErrorHandler"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.OptionConverter">
-            <summary>
-            A convenience class to convert property values to specific types.
-            </summary>
-            <remarks>
-            <para>
-            Utility functions for converting types and parsing values.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.OptionConverter.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Util.OptionConverter"/> class. 
-            </summary>
-            <remarks>
-            <para>
-            Uses a private access modifier to prevent instantiation of this class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.OptionConverter.ToBoolean(System.String,System.Boolean)">
-            <summary>
-            Converts a string to a <see cref="T:System.Boolean"/> value.
-            </summary>
-            <param name="argValue">String to convert.</param>
-            <param name="defaultValue">The default value.</param>
-            <returns>The <see cref="T:System.Boolean"/> value of <paramref name="argValue"/>.</returns>
-            <remarks>
-            <para>
-            If <paramref name="argValue"/> is "true", then <c>true</c> is returned. 
-            If <paramref name="argValue"/> is "false", then <c>false</c> is returned. 
-            Otherwise, <paramref name="defaultValue"/> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.OptionConverter.ToFileSize(System.String,System.Int64)">
-            <summary>
-            Parses a file size into a number.
-            </summary>
-            <param name="argValue">String to parse.</param>
-            <param name="defaultValue">The default value.</param>
-            <returns>The <see cref="T:System.Int64"/> value of <paramref name="argValue"/>.</returns>
-            <remarks>
-            <para>
-            Parses a file size of the form: number[KB|MB|GB] into a
-            long value. It is scaled with the appropriate multiplier.
-            </para>
-            <para>
-            <paramref name="defaultValue"/> is returned when <paramref name="argValue"/>
-            cannot be converted to a <see cref="T:System.Int64"/> value.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.OptionConverter.ConvertStringTo(System.Type,System.String)">
-            <summary>
-            Converts a string to an object.
-            </summary>
-            <param name="target">The target type to convert to.</param>
-            <param name="txt">The string to convert to an object.</param>
-            <returns>
-            The object converted from a string or <c>null</c> when the 
-            conversion failed.
-            </returns>
-            <remarks>
-            <para>
-            Converts a string to an object. Uses the converter registry to try
-            to convert the string value into the specified target type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.OptionConverter.CanConvertTypeTo(System.Type,System.Type)">
-            <summary>
-            Checks if there is an appropriate type conversion from the source type to the target type.
-            </summary>
-            <param name="sourceType">The type to convert from.</param>
-            <param name="targetType">The type to convert to.</param>
-            <returns><c>true</c> if there is a conversion from the source type to the target type.</returns>
-            <remarks>
-            Checks if there is an appropriate type conversion from the source type to the target type.
-            <para>
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.OptionConverter.ConvertTypeTo(System.Object,System.Type)">
-            <summary>
-            Converts an object to the target type.
-            </summary>
-            <param name="sourceInstance">The object to convert to the target type.</param>
-            <param name="targetType">The type to convert to.</param>
-            <returns>The converted object.</returns>
-            <remarks>
-            <para>
-            Converts an object to the target type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.OptionConverter.InstantiateByClassName(System.String,System.Type,System.Object)">
-            <summary>
-            Instantiates an object given a class name.
-            </summary>
-            <param name="className">The fully qualified class name of the object to instantiate.</param>
-            <param name="superClass">The class to which the new object should belong.</param>
-            <param name="defaultValue">The object to return in case of non-fulfillment.</param>
-            <returns>
-            An instance of the <paramref name="className"/> or <paramref name="defaultValue"/>
-            if the object could not be instantiated.
-            </returns>
-            <remarks>
-            <para>
-            Checks that the <paramref name="className"/> is a subclass of
-            <paramref name="superClass"/>. If that test fails or the object could
-            not be instantiated, then <paramref name="defaultValue"/> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.OptionConverter.SubstituteVariables(System.String,System.Collections.IDictionary)">
-            <summary>
-            Performs variable substitution in string <paramref name="val"/> from the 
-            values of keys found in <paramref name="props"/>.
-            </summary>
-            <param name="value">The string on which variable substitution is performed.</param>
-            <param name="props">The dictionary to use to lookup variables.</param>
-            <returns>The result of the substitutions.</returns>
-            <remarks>
-            <para>
-            The variable substitution delimiters are <b>${</b> and <b>}</b>.
-            </para>
-            <para>
-            For example, if props contains <c>key=value</c>, then the call
-            </para>
-            <para>
-            <code lang="C#">
-            string s = OptionConverter.SubstituteVariables("Value of key is ${key}.");
-            </code>
-            </para>
-            <para>
-            will set the variable <c>s</c> to "Value of key is value.".
-            </para>
-            <para>
-            If no value could be found for the specified key, then substitution 
-            defaults to an empty string.
-            </para>
-            <para>
-            For example, if system properties contains no value for the key
-            "nonExistentKey", then the call
-            </para>
-            <para>
-            <code lang="C#">
-            string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]");
-            </code>
-            </para>
-            <para>
-            will set <s>s</s> to "Value of nonExistentKey is []".	 
-            </para>
-            <para>
-            An Exception is thrown if <paramref name="value"/> contains a start 
-            delimiter "${" which is not balanced by a stop delimiter "}". 
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.OptionConverter.ParseEnum(System.Type,System.String,System.Boolean)">
-            <summary>
-            Converts the string representation of the name or numeric value of one or 
-            more enumerated constants to an equivalent enumerated object.
-            </summary>
-            <param name="enumType">The type to convert to.</param>
-            <param name="value">The enum string value.</param>
-            <param name="ignoreCase">If <c>true</c>, ignore case; otherwise, regard case.</param>
-            <returns>An object of type <paramref name="enumType" /> whose value is represented by <paramref name="value" />.</returns>
-        </member>
-        <member name="T:log4net.Util.PatternParser">
-            <summary>
-            Most of the work of the <see cref="T:log4net.Layout.PatternLayout"/> class
-            is delegated to the PatternParser class.
-            </summary>
-            <remarks>
-            <para>
-            The <c>PatternParser</c> processes a pattern string and
-            returns a chain of <see cref="T:log4net.Util.PatternConverter"/> objects.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.PatternParser.#ctor(System.String)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="pattern">The pattern to parse.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.PatternParser"/> class 
-            with the specified pattern string.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternParser.Parse">
-            <summary>
-            Parses the pattern into a chain of pattern converters.
-            </summary>
-            <returns>The head of a chain of pattern converters.</returns>
-            <remarks>
-            <para>
-            Parses the pattern into a chain of pattern converters.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternParser.BuildCache">
-            <summary>
-            Build the unified cache of converters from the static and instance maps
-            </summary>
-            <returns>the list of all the converter names</returns>
-            <remarks>
-            <para>
-            Build the unified cache of converters from the static and instance maps
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternParser.ParseInternal(System.String,System.String[])">
-            <summary>
-            Internal method to parse the specified pattern to find specified matches
-            </summary>
-            <param name="pattern">the pattern to parse</param>
-            <param name="matches">the converter names to match in the pattern</param>
-            <remarks>
-            <para>
-            The matches param must be sorted such that longer strings come before shorter ones.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternParser.ProcessLiteral(System.String)">
-            <summary>
-            Process a parsed literal
-            </summary>
-            <param name="text">the literal text</param>
-        </member>
-        <member name="M:log4net.Util.PatternParser.ProcessConverter(System.String,System.String,log4net.Util.FormattingInfo)">
-            <summary>
-            Process a parsed converter pattern
-            </summary>
-            <param name="converterName">the name of the converter</param>
-            <param name="option">the optional option for the converter</param>
-            <param name="formattingInfo">the formatting info for the converter</param>
-        </member>
-        <member name="M:log4net.Util.PatternParser.AddConverter(log4net.Util.PatternConverter)">
-            <summary>
-            Resets the internal state of the parser and adds the specified pattern converter 
-            to the chain.
-            </summary>
-            <param name="pc">The pattern converter to add.</param>
-        </member>
-        <member name="F:log4net.Util.PatternParser.m_head">
-            <summary>
-            The first pattern converter in the chain
-            </summary>
-        </member>
-        <member name="F:log4net.Util.PatternParser.m_tail">
-            <summary>
-             the last pattern converter in the chain
-            </summary>
-        </member>
-        <member name="F:log4net.Util.PatternParser.m_pattern">
-            <summary>
-            The pattern
-            </summary>
-        </member>
-        <member name="F:log4net.Util.PatternParser.m_patternConverters">
-            <summary>
-            Internal map of converter identifiers to converter types
-            </summary>
-            <remarks>
-            <para>
-            This map overrides the static s_globalRulesRegistry map.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.PatternParser.PatternConverters">
-            <summary>
-            Get the converter registry used by this parser
-            </summary>
-            <value>
-            The converter registry used by this parser
-            </value>
-            <remarks>
-            <para>
-            Get the converter registry used by this parser
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PatternParser.StringLengthComparer">
-            <summary>
-            Sort strings by length
-            </summary>
-            <remarks>
-            <para>
-            <see cref="T:System.Collections.IComparer"/> that orders strings by string length.
-            The longest strings are placed first
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PatternString">
-            <summary>
-            This class implements a patterned string.
-            </summary>
-            <remarks>
-            <para>
-            This string has embedded patterns that are resolved and expanded
-            when the string is formatted.
-            </para>
-            <para>
-            This class functions similarly to the <see cref="T:log4net.Layout.PatternLayout"/>
-            in that it accepts a pattern and renders it to a string. Unlike the 
-            <see cref="T:log4net.Layout.PatternLayout"/> however the <c>PatternString</c>
-            does not render the properties of a specific <see cref="T:log4net.Core.LoggingEvent"/> but
-            of the process in general.
-            </para>
-            <para>
-            The recognized conversion pattern names are:
-            </para>
-            <list type="table">
-                <listheader>
-                    <term>Conversion Pattern Name</term>
-                    <description>Effect</description>
-                </listheader>
-                <item>
-                    <term>appdomain</term>
-                    <description>
-                        <para>
-                        Used to output the friendly name of the current AppDomain.
-                        </para>
-                    </description>
-                </item>
-                <item>
-                    <term>date</term>
-                    <description>
-            			<para>
-            			Used to output the date of the logging event in the local time zone. 
-            			To output the date in universal time use the <c>%utcdate</c> pattern.
-            			The date conversion 
-            			specifier may be followed by a <i>date format specifier</i> enclosed 
-            			between braces. For example, <b>%date{HH:mm:ss,fff}</b> or
-            			<b>%date{dd MMM yyyy HH:mm:ss,fff}</b>.  If no date format specifier is 
-            			given then ISO8601 format is
-            			assumed (<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>).
-            			</para>
-            			<para>
-            			The date format specifier admits the same syntax as the
-            			time pattern string of the <see cref="M:System.DateTime.ToString(System.String)"/>.
-            			</para>
-            			<para>
-            			For better results it is recommended to use the log4net date
-            			formatters. These can be specified using one of the strings
-            			"ABSOLUTE", "DATE" and "ISO8601" for specifying 
-            			<see cref="T:log4net.DateFormatter.AbsoluteTimeDateFormatter"/>, 
-            			<see cref="T:log4net.DateFormatter.DateTimeDateFormatter"/> and respectively 
-            			<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>. For example, 
-            			<b>%date{ISO8601}</b> or <b>%date{ABSOLUTE}</b>.
-            			</para>
-            			<para>
-            			These dedicated date formatters perform significantly
-            			better than <see cref="M:System.DateTime.ToString(System.String)"/>.
-            			</para>
-                    </description>
-                </item>
-                <item>
-                    <term>env</term>
-                    <description>
-                        <para>
-            			Used to output the a specific environment variable. The key to 
-            			lookup must be specified within braces and directly following the
-            			pattern specifier, e.g. <b>%env{COMPUTERNAME}</b> would include the value
-            			of the <c>COMPUTERNAME</c> environment variable.
-                        </para>
-                        <para>
-                        The <c>env</c> pattern is not supported on the .NET Compact Framework.
-                        </para>
-                    </description>
-                </item>
-                <item>
-                    <term>identity</term>
-                    <description>
-            			<para>
-            			Used to output the user name for the currently active user
-            			(Principal.Identity.Name).
-            			</para>
-                    </description>
-                </item>
-                <item>
-                    <term>newline</term>
-                    <description>
-            			<para>
-            			Outputs the platform dependent line separator character or
-            			characters.
-            			</para>
-            			<para>
-            			This conversion pattern name offers the same performance as using 
-            			non-portable line separator strings such as	"\n", or "\r\n". 
-            			Thus, it is the preferred way of specifying a line separator.
-            			</para> 
-                    </description>
-                </item>
-                <item>
-                    <term>processid</term>
-                    <description>
-                        <para>
-            			Used to output the system process ID for the current process.
-                        </para>
-                    </description>
-                </item>
-                <item>
-                    <term>property</term>
-                    <description>
-            			<para>
-            			Used to output a specific context property. The key to 
-            			lookup must be specified within braces and directly following the
-            			pattern specifier, e.g. <b>%property{user}</b> would include the value
-            			from the property that is keyed by the string 'user'. Each property value
-            			that is to be included in the log must be specified separately.
-            			Properties are stored in logging contexts. By default 
-            			the <c>log4net:HostName</c> property is set to the name of machine on 
-            			which the event was originally logged.
-            			</para>
-            			<para>
-            			If no key is specified, e.g. <b>%property</b> then all the keys and their
-            			values are printed in a comma separated list.
-            			</para>
-            			<para>
-            			The properties of an event are combined from a number of different
-            			contexts. These are listed below in the order in which they are searched.
-            			</para>
-            			<list type="definition">
-            				<item>
-            					<term>the thread properties</term>
-            					<description>
-            					The <see cref="P:log4net.ThreadContext.Properties"/> that are set on the current
-            					thread. These properties are shared by all events logged on this thread.
-            					</description>
-            				</item>
-            				<item>
-            					<term>the global properties</term>
-            					<description>
-            					The <see cref="P:log4net.GlobalContext.Properties"/> that are set globally. These 
-            					properties are shared by all the threads in the AppDomain.
-            					</description>
-            				</item>
-            			</list>
-                    </description>
-                </item>
-                <item>
-                    <term>random</term>
-                    <description>
-                        <para>
-                        Used to output a random string of characters. The string is made up of
-                        uppercase letters and numbers. By default the string is 4 characters long.
-                        The length of the string can be specified within braces directly following the
-            			pattern specifier, e.g. <b>%random{8}</b> would output an 8 character string.
-                        </para>
-                    </description>
-                </item>
-                <item>
-                    <term>username</term>
-                    <description>
-            			<para>
-            			Used to output the WindowsIdentity for the currently
-            			active user.
-            			</para>
-                    </description>
-                </item>
-                <item>
-                    <term>utcdate</term>
-                    <description>
-            			<para>
-            			Used to output the date of the logging event in universal time. 
-            			The date conversion 
-            			specifier may be followed by a <i>date format specifier</i> enclosed 
-            			between braces. For example, <b>%utcdate{HH:mm:ss,fff}</b> or
-            			<b>%utcdate{dd MMM yyyy HH:mm:ss,fff}</b>.  If no date format specifier is 
-            			given then ISO8601 format is
-            			assumed (<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>).
-            			</para>
-            			<para>
-            			The date format specifier admits the same syntax as the
-            			time pattern string of the <see cref="M:System.DateTime.ToString(System.String)"/>.
-            			</para>
-            			<para>
-            			For better results it is recommended to use the log4net date
-            			formatters. These can be specified using one of the strings
-            			"ABSOLUTE", "DATE" and "ISO8601" for specifying 
-            			<see cref="T:log4net.DateFormatter.AbsoluteTimeDateFormatter"/>, 
-            			<see cref="T:log4net.DateFormatter.DateTimeDateFormatter"/> and respectively 
-            			<see cref="T:log4net.DateFormatter.Iso8601DateFormatter"/>. For example, 
-            			<b>%utcdate{ISO8601}</b> or <b>%utcdate{ABSOLUTE}</b>.
-            			</para>
-            			<para>
-            			These dedicated date formatters perform significantly
-            			better than <see cref="M:System.DateTime.ToString(System.String)"/>.
-            			</para>
-                    </description>
-                </item>
-            	<item>
-            		<term>%</term>
-            		<description>
-            			<para>
-            			The sequence %% outputs a single percent sign.
-            			</para>
-            		</description>
-            	</item>
-            </list>
-            <para>
-            Additional pattern converters may be registered with a specific <see cref="T:log4net.Util.PatternString"/>
-            instance using <see cref="M:log4net.Util.PatternString.AddConverter(log4net.Util.PatternString.ConverterInfo)"/> or
-            <see cref="M:log4net.Util.PatternString.AddConverter(System.String,System.Type)"/>.
-            </para>
-            <para>
-            See the <see cref="T:log4net.Layout.PatternLayout"/> for details on the 
-            <i>format modifiers</i> supported by the patterns.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Util.PatternString.s_globalRulesRegistry">
-            <summary>
-            Internal map of converter identifiers to converter types.
-            </summary>
-        </member>
-        <member name="F:log4net.Util.PatternString.m_pattern">
-            <summary>
-            the pattern
-            </summary>
-        </member>
-        <member name="F:log4net.Util.PatternString.m_head">
-            <summary>
-            the head of the pattern converter chain
-            </summary>
-        </member>
-        <member name="F:log4net.Util.PatternString.m_instanceRulesRegistry">
-            <summary>
-            patterns defined on this PatternString only
-            </summary>
-        </member>
-        <member name="M:log4net.Util.PatternString.#cctor">
-            <summary>
-            Initialize the global registry
-            </summary>
-        </member>
-        <member name="M:log4net.Util.PatternString.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Initialize a new instance of <see cref="T:log4net.Util.PatternString"/>
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternString.#ctor(System.String)">
-            <summary>
-            Constructs a PatternString
-            </summary>
-            <param name="pattern">The pattern to use with this PatternString</param>
-            <remarks>
-            <para>
-            Initialize a new instance of <see cref="T:log4net.Util.PatternString"/> with the pattern specified.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternString.ActivateOptions">
-            <summary>
-            Initialize object options
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Util.PatternString.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Util.PatternString.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Util.PatternString.ActivateOptions"/> must be called again.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternString.CreatePatternParser(System.String)">
-            <summary>
-            Create the <see cref="T:log4net.Util.PatternParser"/> used to parse the pattern
-            </summary>
-            <param name="pattern">the pattern to parse</param>
-            <returns>The <see cref="T:log4net.Util.PatternParser"/></returns>
-            <remarks>
-            <para>
-            Returns PatternParser used to parse the conversion string. Subclasses
-            may override this to return a subclass of PatternParser which recognize
-            custom conversion pattern name.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternString.Format(System.IO.TextWriter)">
-            <summary>
-            Produces a formatted string as specified by the conversion pattern.
-            </summary>
-            <param name="writer">The TextWriter to write the formatted event to</param>
-            <remarks>
-            <para>
-            Format the pattern to the <paramref name="writer"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternString.Format">
-            <summary>
-            Format the pattern as a string
-            </summary>
-            <returns>the pattern formatted as a string</returns>
-            <remarks>
-            <para>
-            Format the pattern to a string.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternString.AddConverter(log4net.Util.PatternString.ConverterInfo)">
-            <summary>
-            Add a converter to this PatternString
-            </summary>
-            <param name="converterInfo">the converter info</param>
-            <remarks>
-            <para>
-            This version of the method is used by the configurator.
-            Programmatic users should use the alternative <see cref="M:log4net.Util.PatternString.AddConverter(System.String,System.Type)"/> method.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternString.AddConverter(System.String,System.Type)">
-            <summary>
-            Add a converter to this PatternString
-            </summary>
-            <param name="name">the name of the conversion pattern for this converter</param>
-            <param name="type">the type of the converter</param>
-            <remarks>
-            <para>
-            Add a converter to this PatternString
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.PatternString.ConversionPattern">
-            <summary>
-            Gets or sets the pattern formatting string
-            </summary>
-            <value>
-            The pattern formatting string
-            </value>
-            <remarks>
-            <para>
-            The <b>ConversionPattern</b> option. This is the string which
-            controls formatting and consists of a mix of literal content and
-            conversion specifiers.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PatternString.ConverterInfo">
-            <summary>
-            Wrapper class used to map converter names to converter types
-            </summary>
-            <remarks>
-            <para>
-            Wrapper class used to map converter names to converter types
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PatternString.ConverterInfo.#ctor">
-            <summary>
-            default constructor
-            </summary>
-        </member>
-        <member name="P:log4net.Util.PatternString.ConverterInfo.Name">
-            <summary>
-            Gets or sets the name of the conversion pattern
-            </summary>
-            <value>
-            The name of the conversion pattern
-            </value>
-            <remarks>
-            <para>
-            Gets or sets the name of the conversion pattern
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.PatternString.ConverterInfo.Type">
-            <summary>
-            Gets or sets the type of the converter
-            </summary>
-            <value>
-            The type of the converter
-            </value>
-            <remarks>
-            <para>
-            Gets or sets the type of the converter
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.PropertiesDictionary">
-            <summary>
-            String keyed object map.
-            </summary>
-            <remarks>
-            <para>
-            While this collection is serializable only member 
-            objects that are serializable will
-            be serialized along with this collection.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="T:log4net.Util.ReadOnlyPropertiesDictionary">
-            <summary>
-            String keyed object map that is read only.
-            </summary>
-            <remarks>
-            <para>
-            This collection is readonly and cannot be modified.
-            </para>
-            <para>
-            While this collection is serializable only member 
-            objects that are serializable will
-            be serialized along with this collection.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="F:log4net.Util.ReadOnlyPropertiesDictionary.m_hashtable">
-            <summary>
-            The Hashtable used to store the properties data
-            </summary>
-        </member>
-        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.#ctor">
-            <summary>
-            Constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.ReadOnlyPropertiesDictionary"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.#ctor(log4net.Util.ReadOnlyPropertiesDictionary)">
-            <summary>
-            Copy Constructor
-            </summary>
-            <param name="propertiesDictionary">properties to copy</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.ReadOnlyPropertiesDictionary"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Deserialization constructor
-            </summary>
-            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data.</param>
-            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.ReadOnlyPropertiesDictionary"/> class 
-            with serialized data.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.GetKeys">
-            <summary>
-            Gets the key names.
-            </summary>
-            <returns>An array of all the keys.</returns>
-            <remarks>
-            <para>
-            Gets the key names.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.Contains(System.String)">
-            <summary>
-            Test if the dictionary contains a specified key
-            </summary>
-            <param name="key">the key to look for</param>
-            <returns>true if the dictionary contains the specified key</returns>
-            <remarks>
-            <para>
-            Test if the dictionary contains a specified key
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Serializes this object into the <see cref="T:System.Runtime.Serialization.SerializationInfo"/> provided.
-            </summary>
-            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> to populate with data.</param>
-            <param name="context">The destination for this serialization.</param>
-            <remarks>
-            <para>
-            Serializes this object into the <see cref="T:System.Runtime.Serialization.SerializationInfo"/> provided.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#GetEnumerator">
-            <summary>
-            See <see cref="M:System.Collections.IDictionary.GetEnumerator"/>
-            </summary>
-        </member>
-        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#Remove(System.Object)">
-            <summary>
-            See <see cref="M:System.Collections.IDictionary.Remove(System.Object)"/>
-            </summary>
-            <param name="key"></param>
-        </member>
-        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#Contains(System.Object)">
-            <summary>
-            See <see cref="M:System.Collections.IDictionary.Contains(System.Object)"/>
-            </summary>
-            <param name="key"></param>
-            <returns></returns>
-        </member>
-        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.Clear">
-            <summary>
-            Remove all properties from the properties collection
-            </summary>
-        </member>
-        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#Add(System.Object,System.Object)">
-            <summary>
-            See <see cref="M:System.Collections.IDictionary.Add(System.Object,System.Object)"/>
-            </summary>
-            <param name="key"></param>
-            <param name="value"></param>
-        </member>
-        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
-            <summary>
-            See <see cref="M:System.Collections.ICollection.CopyTo(System.Array,System.Int32)"/>
-            </summary>
-            <param name="array"></param>
-            <param name="index"></param>
-        </member>
-        <member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IEnumerable#GetEnumerator">
-            <summary>
-            See <see cref="M:System.Collections.IEnumerable.GetEnumerator"/>
-            </summary>
-        </member>
-        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.Item(System.String)">
-            <summary>
-            Gets or sets the value of the  property with the specified key.
-            </summary>
-            <value>
-            The value of the property with the specified key.
-            </value>
-            <param name="key">The key of the property to get or set.</param>
-            <remarks>
-            <para>
-            The property value will only be serialized if it is serializable.
-            If it cannot be serialized it will be silently ignored if
-            a serialization operation is performed.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.InnerHashtable">
-            <summary>
-            The hashtable used to store the properties
-            </summary>
-            <value>
-            The internal collection used to store the properties
-            </value>
-            <remarks>
-            <para>
-            The hashtable used to store the properties
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#IsReadOnly">
-            <summary>
-            See <see cref="P:System.Collections.IDictionary.IsReadOnly"/>
-            </summary>
-        </member>
-        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#Item(System.Object)">
-            <summary>
-            See <see cref="P:System.Collections.IDictionary.Item(System.Object)"/>
-            </summary>
-        </member>
-        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#Values">
-            <summary>
-            See <see cref="P:System.Collections.IDictionary.Values"/>
-            </summary>
-        </member>
-        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#Keys">
-            <summary>
-            See <see cref="P:System.Collections.IDictionary.Keys"/>
-            </summary>
-        </member>
-        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#IDictionary#IsFixedSize">
-            <summary>
-            See <see cref="P:System.Collections.IDictionary.IsFixedSize"/>
-            </summary>
-        </member>
-        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#ICollection#IsSynchronized">
-            <summary>
-            See <see cref="P:System.Collections.ICollection.IsSynchronized"/>
-            </summary>
-        </member>
-        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.Count">
-            <summary>
-            The number of properties in this collection
-            </summary>
-        </member>
-        <member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collections#ICollection#SyncRoot">
-            <summary>
-            See <see cref="P:System.Collections.ICollection.SyncRoot"/>
-            </summary>
-        </member>
-        <member name="M:log4net.Util.PropertiesDictionary.#ctor">
-            <summary>
-            Constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.PropertiesDictionary"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PropertiesDictionary.#ctor(log4net.Util.ReadOnlyPropertiesDictionary)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="propertiesDictionary">properties to copy</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.PropertiesDictionary"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PropertiesDictionary.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Util.PropertiesDictionary"/> class 
-            with serialized data.
-            </summary>
-            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data.</param>
-            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
-            <remarks>
-            <para>
-            Because this class is sealed the serialization constructor is private.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PropertiesDictionary.Remove(System.String)">
-            <summary>
-            Remove the entry with the specified key from this dictionary
-            </summary>
-            <param name="key">the key for the entry to remove</param>
-            <remarks>
-            <para>
-            Remove the entry with the specified key from this dictionary
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#GetEnumerator">
-            <summary>
-            See <see cref="M:System.Collections.IDictionary.GetEnumerator"/>
-            </summary>
-            <returns>an enumerator</returns>
-            <remarks>
-            <para>
-            Returns a <see cref="T:System.Collections.IDictionaryEnumerator"/> over the contest of this collection.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#Remove(System.Object)">
-            <summary>
-            See <see cref="M:System.Collections.IDictionary.Remove(System.Object)"/>
-            </summary>
-            <param name="key">the key to remove</param>
-            <remarks>
-            <para>
-            Remove the entry with the specified key from this dictionary
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#Contains(System.Object)">
-            <summary>
-            See <see cref="M:System.Collections.IDictionary.Contains(System.Object)"/>
-            </summary>
-            <param name="key">the key to lookup in the collection</param>
-            <returns><c>true</c> if the collection contains the specified key</returns>
-            <remarks>
-            <para>
-            Test if this collection contains a specified key.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PropertiesDictionary.Clear">
-            <summary>
-            Remove all properties from the properties collection
-            </summary>
-            <remarks>
-            <para>
-            Remove all properties from the properties collection
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#Add(System.Object,System.Object)">
-            <summary>
-            See <see cref="M:System.Collections.IDictionary.Add(System.Object,System.Object)"/>
-            </summary>
-            <param name="key">the key</param>
-            <param name="value">the value to store for the key</param>
-            <remarks>
-            <para>
-            Store a value for the specified <see cref="T:System.String"/> <paramref name="key"/>.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentException">Thrown if the <paramref name="key"/> is not a string</exception>
-        </member>
-        <member name="M:log4net.Util.PropertiesDictionary.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
-            <summary>
-            See <see cref="M:System.Collections.ICollection.CopyTo(System.Array,System.Int32)"/>
-            </summary>
-            <param name="array"></param>
-            <param name="index"></param>
-        </member>
-        <member name="M:log4net.Util.PropertiesDictionary.System#Collections#IEnumerable#GetEnumerator">
-            <summary>
-            See <see cref="M:System.Collections.IEnumerable.GetEnumerator"/>
-            </summary>
-        </member>
-        <member name="P:log4net.Util.PropertiesDictionary.Item(System.String)">
-            <summary>
-            Gets or sets the value of the  property with the specified key.
-            </summary>
-            <value>
-            The value of the property with the specified key.
-            </value>
-            <param name="key">The key of the property to get or set.</param>
-            <remarks>
-            <para>
-            The property value will only be serialized if it is serializable.
-            If it cannot be serialized it will be silently ignored if
-            a serialization operation is performed.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#IsReadOnly">
-            <summary>
-            See <see cref="P:System.Collections.IDictionary.IsReadOnly"/>
-            </summary>
-            <value>
-            <c>false</c>
-            </value>
-            <remarks>
-            <para>
-            This collection is modifiable. This property always
-            returns <c>false</c>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#Item(System.Object)">
-            <summary>
-            See <see cref="P:System.Collections.IDictionary.Item(System.Object)"/>
-            </summary>
-            <value>
-            The value for the key specified.
-            </value>
-            <remarks>
-            <para>
-            Get or set a value for the specified <see cref="T:System.String"/> <paramref name="key"/>.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentException">Thrown if the <paramref name="key"/> is not a string</exception>
-        </member>
-        <member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#Values">
-            <summary>
-            See <see cref="P:System.Collections.IDictionary.Values"/>
-            </summary>
-        </member>
-        <member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#Keys">
-            <summary>
-            See <see cref="P:System.Collections.IDictionary.Keys"/>
-            </summary>
-        </member>
-        <member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDictionary#IsFixedSize">
-            <summary>
-            See <see cref="P:System.Collections.IDictionary.IsFixedSize"/>
-            </summary>
-        </member>
-        <member name="P:log4net.Util.PropertiesDictionary.System#Collections#ICollection#IsSynchronized">
-            <summary>
-            See <see cref="P:System.Collections.ICollection.IsSynchronized"/>
-            </summary>
-        </member>
-        <member name="P:log4net.Util.PropertiesDictionary.System#Collections#ICollection#SyncRoot">
-            <summary>
-            See <see cref="P:System.Collections.ICollection.SyncRoot"/>
-            </summary>
-        </member>
-        <member name="T:log4net.Util.ProtectCloseTextWriter">
-            <summary>
-            A <see cref="T:System.IO.TextWriter"/> that ignores the <see cref="M:log4net.Util.ProtectCloseTextWriter.Close"/> message
-            </summary>
-            <remarks>
-            <para>
-            This writer is used in special cases where it is necessary 
-            to protect a writer from being closed by a client.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.ProtectCloseTextWriter.#ctor(System.IO.TextWriter)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="writer">the writer to actually write to</param>
-            <remarks>
-            <para>
-            Create a new ProtectCloseTextWriter using a writer
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ProtectCloseTextWriter.Attach(System.IO.TextWriter)">
-            <summary>
-            Attach this instance to a different underlying <see cref="T:System.IO.TextWriter"/>
-            </summary>
-            <param name="writer">the writer to attach to</param>
-            <remarks>
-            <para>
-            Attach this instance to a different underlying <see cref="T:System.IO.TextWriter"/>
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ProtectCloseTextWriter.Close">
-            <summary>
-            Does not close the underlying output writer.
-            </summary>
-            <remarks>
-            <para>
-            Does not close the underlying output writer.
-            This method does nothing.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.ReaderWriterLock">
-            <summary>
-            Defines a lock that supports single writers and multiple readers
-            </summary>
-            <remarks>
-            <para>
-            <c>ReaderWriterLock</c> is used to synchronize access to a resource. 
-            At any given time, it allows either concurrent read access for 
-            multiple threads, or write access for a single thread. In a 
-            situation where a resource is changed infrequently, a 
-            <c>ReaderWriterLock</c> provides better throughput than a simple 
-            one-at-a-time lock, such as <see cref="T:System.Threading.Monitor"/>.
-            </para>
-            <para>
-            If a platform does not support a <c>System.Threading.ReaderWriterLock</c> 
-            implementation then all readers and writers are serialized. Therefore 
-            the caller must not rely on multiple simultaneous readers.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.ReaderWriterLock.#ctor">
-            <summary>
-            Constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.ReaderWriterLock"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ReaderWriterLock.AcquireReaderLock">
-            <summary>
-            Acquires a reader lock
-            </summary>
-            <remarks>
-            <para>
-            <see cref="M:log4net.Util.ReaderWriterLock.AcquireReaderLock"/> blocks if a different thread has the writer 
-            lock, or if at least one thread is waiting for the writer lock.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ReaderWriterLock.ReleaseReaderLock">
-            <summary>
-            Decrements the lock count
-            </summary>
-            <remarks>
-            <para>
-            <see cref="M:log4net.Util.ReaderWriterLock.ReleaseReaderLock"/> decrements the lock count. When the count 
-            reaches zero, the lock is released.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ReaderWriterLock.AcquireWriterLock">
-            <summary>
-            Acquires the writer lock
-            </summary>
-            <remarks>
-            <para>
-            This method blocks if another thread has a reader lock or writer lock.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ReaderWriterLock.ReleaseWriterLock">
-            <summary>
-            Decrements the lock count on the writer lock
-            </summary>
-            <remarks>
-            <para>
-            ReleaseWriterLock decrements the writer lock count. 
-            When the count reaches zero, the writer lock is released.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.ReusableStringWriter">
-            <summary>
-            A <see cref="T:System.IO.StringWriter"/> that can be <see cref="M:log4net.Util.ReusableStringWriter.Reset(System.Int32,System.Int32)"/> and reused
-            </summary>
-            <remarks>
-            <para>
-            A <see cref="T:System.IO.StringWriter"/> that can be <see cref="M:log4net.Util.ReusableStringWriter.Reset(System.Int32,System.Int32)"/> and reused.
-            This uses a single buffer for string operations.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.ReusableStringWriter.#ctor(System.IFormatProvider)">
-            <summary>
-            Create an instance of <see cref="T:log4net.Util.ReusableStringWriter"/>
-            </summary>
-            <param name="formatProvider">the format provider to use</param>
-            <remarks>
-            <para>
-            Create an instance of <see cref="T:log4net.Util.ReusableStringWriter"/>
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ReusableStringWriter.Dispose(System.Boolean)">
-            <summary>
-            Override Dispose to prevent closing of writer
-            </summary>
-            <param name="disposing">flag</param>
-            <remarks>
-            <para>
-            Override Dispose to prevent closing of writer
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ReusableStringWriter.Reset(System.Int32,System.Int32)">
-            <summary>
-            Reset this string writer so that it can be reused.
-            </summary>
-            <param name="maxCapacity">the maximum buffer capacity before it is trimmed</param>
-            <param name="defaultSize">the default size to make the buffer</param>
-            <remarks>
-            <para>
-            Reset this string writer so that it can be reused.
-            The internal buffers are cleared and reset.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.SystemInfo">
-            <summary>
-            Utility class for system specific information.
-            </summary>
-            <remarks>
-            <para>
-            Utility class of static methods for system specific information.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-            <author>Alexey Solofnenko</author>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.#ctor">
-            <summary>
-            Private constructor to prevent instances.
-            </summary>
-            <remarks>
-            <para>
-            Only static methods are exposed from this type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.#cctor">
-            <summary>
-            Initialize default values for private static fields.
-            </summary>
-            <remarks>
-            <para>
-            Only static methods are exposed from this type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.AssemblyLocationInfo(System.Reflection.Assembly)">
-            <summary>
-            Gets the assembly location path for the specified assembly.
-            </summary>
-            <param name="myAssembly">The assembly to get the location for.</param>
-            <returns>The location of the assembly.</returns>
-            <remarks>
-            <para>
-            This method does not guarantee to return the correct path
-            to the assembly. If only tries to give an indication as to
-            where the assembly was loaded from.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.AssemblyQualifiedName(System.Type)">
-            <summary>
-            Gets the fully qualified name of the <see cref="T:System.Type"/>, including 
-            the name of the assembly from which the <see cref="T:System.Type"/> was 
-            loaded.
-            </summary>
-            <param name="type">The <see cref="T:System.Type"/> to get the fully qualified name for.</param>
-            <returns>The fully qualified name for the <see cref="T:System.Type"/>.</returns>
-            <remarks>
-            <para>
-            This is equivalent to the <c>Type.AssemblyQualifiedName</c> property,
-            but this method works on the .NET Compact Framework 1.0 as well as
-            the full .NET runtime.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.AssemblyShortName(System.Reflection.Assembly)">
-            <summary>
-            Gets the short name of the <see cref="T:System.Reflection.Assembly"/>.
-            </summary>
-            <param name="myAssembly">The <see cref="T:System.Reflection.Assembly"/> to get the name for.</param>
-            <returns>The short name of the <see cref="T:System.Reflection.Assembly"/>.</returns>
-            <remarks>
-            <para>
-            The short name of the assembly is the <see cref="P:System.Reflection.Assembly.FullName"/> 
-            without the version, culture, or public key. i.e. it is just the 
-            assembly's file name without the extension.
-            </para>
-            <para>
-            Use this rather than <c>Assembly.GetName().Name</c> because that
-            is not available on the Compact Framework.
-            </para>
-            <para>
-            Because of a FileIOPermission security demand we cannot do
-            the obvious Assembly.GetName().Name. We are allowed to get
-            the <see cref="P:System.Reflection.Assembly.FullName"/> of the assembly so we 
-            start from there and strip out just the assembly name.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.AssemblyFileName(System.Reflection.Assembly)">
-            <summary>
-            Gets the file name portion of the <see cref="T:System.Reflection.Assembly"/>, including the extension.
-            </summary>
-            <param name="myAssembly">The <see cref="T:System.Reflection.Assembly"/> to get the file name for.</param>
-            <returns>The file name of the assembly.</returns>
-            <remarks>
-            <para>
-            Gets the file name portion of the <see cref="T:System.Reflection.Assembly"/>, including the extension.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.GetTypeFromString(System.Type,System.String,System.Boolean,System.Boolean)">
-            <summary>
-            Loads the type specified in the type string.
-            </summary>
-            <param name="relativeType">A sibling type to use to load the type.</param>
-            <param name="typeName">The name of the type to load.</param>
-            <param name="throwOnError">Flag set to <c>true</c> to throw an exception if the type cannot be loaded.</param>
-            <param name="ignoreCase"><c>true</c> to ignore the case of the type name; otherwise, <c>false</c></param>
-            <returns>The type loaded or <c>null</c> if it could not be loaded.</returns>
-            <remarks>
-            <para>
-            If the type name is fully qualified, i.e. if contains an assembly name in 
-            the type name, the type will be loaded from the system using 
-            <see cref="M:System.Type.GetType(System.String,System.Boolean)"/>.
-            </para>
-            <para>
-            If the type name is not fully qualified, it will be loaded from the assembly
-            containing the specified relative type. If the type is not found in the assembly 
-            then all the loaded assemblies will be searched for the type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.GetTypeFromString(System.String,System.Boolean,System.Boolean)">
-            <summary>
-            Loads the type specified in the type string.
-            </summary>
-            <param name="typeName">The name of the type to load.</param>
-            <param name="throwOnError">Flag set to <c>true</c> to throw an exception if the type cannot be loaded.</param>
-            <param name="ignoreCase"><c>true</c> to ignore the case of the type name; otherwise, <c>false</c></param>
-            <returns>The type loaded or <c>null</c> if it could not be loaded.</returns>		
-            <remarks>
-            <para>
-            If the type name is fully qualified, i.e. if contains an assembly name in 
-            the type name, the type will be loaded from the system using 
-            <see cref="M:System.Type.GetType(System.String,System.Boolean)"/>.
-            </para>
-            <para>
-            If the type name is not fully qualified it will be loaded from the
-            assembly that is directly calling this method. If the type is not found 
-            in the assembly then all the loaded assemblies will be searched for the type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.GetTypeFromString(System.Reflection.Assembly,System.String,System.Boolean,System.Boolean)">
-            <summary>
-            Loads the type specified in the type string.
-            </summary>
-            <param name="relativeAssembly">An assembly to load the type from.</param>
-            <param name="typeName">The name of the type to load.</param>
-            <param name="throwOnError">Flag set to <c>true</c> to throw an exception if the type cannot be loaded.</param>
-            <param name="ignoreCase"><c>true</c> to ignore the case of the type name; otherwise, <c>false</c></param>
-            <returns>The type loaded or <c>null</c> if it could not be loaded.</returns>
-            <remarks>
-            <para>
-            If the type name is fully qualified, i.e. if contains an assembly name in 
-            the type name, the type will be loaded from the system using 
-            <see cref="M:System.Type.GetType(System.String,System.Boolean)"/>.
-            </para>
-            <para>
-            If the type name is not fully qualified it will be loaded from the specified
-            assembly. If the type is not found in the assembly then all the loaded assemblies 
-            will be searched for the type.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.NewGuid">
-            <summary>
-            Generate a new guid
-            </summary>
-            <returns>A new Guid</returns>
-            <remarks>
-            <para>
-            Generate a new guid
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.CreateArgumentOutOfRangeException(System.String,System.Object,System.String)">
-            <summary>
-            Create an <see cref="T:System.ArgumentOutOfRangeException"/>
-            </summary>
-            <param name="parameterName">The name of the parameter that caused the exception</param>
-            <param name="actualValue">The value of the argument that causes this exception</param>
-            <param name="message">The message that describes the error</param>
-            <returns>the ArgumentOutOfRangeException object</returns>
-            <remarks>
-            <para>
-            Create a new instance of the <see cref="T:System.ArgumentOutOfRangeException"/> class 
-            with a specified error message, the parameter name, and the value 
-            of the argument.
-            </para>
-            <para>
-            The Compact Framework does not support the 3 parameter constructor for the
-            <see cref="T:System.ArgumentOutOfRangeException"/> type. This method provides an
-            implementation that works for all platforms.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.TryParse(System.String,System.Int32@)">
-            <summary>
-            Parse a string into an <see cref="T:System.Int32"/> value
-            </summary>
-            <param name="s">the string to parse</param>
-            <param name="val">out param where the parsed value is placed</param>
-            <returns><c>true</c> if the string was able to be parsed into an integer</returns>
-            <remarks>
-            <para>
-            Attempts to parse the string into an integer. If the string cannot
-            be parsed then this method returns <c>false</c>. The method does not throw an exception.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.TryParse(System.String,System.Int64@)">
-            <summary>
-            Parse a string into an <see cref="T:System.Int64"/> value
-            </summary>
-            <param name="s">the string to parse</param>
-            <param name="val">out param where the parsed value is placed</param>
-            <returns><c>true</c> if the string was able to be parsed into an integer</returns>
-            <remarks>
-            <para>
-            Attempts to parse the string into an integer. If the string cannot
-            be parsed then this method returns <c>false</c>. The method does not throw an exception.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.GetAppSetting(System.String)">
-            <summary>
-            Lookup an application setting
-            </summary>
-            <param name="key">the application settings key to lookup</param>
-            <returns>the value for the key, or <c>null</c></returns>
-            <remarks>
-            <para>
-            Configuration APIs are not supported under the Compact Framework
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.ConvertToFullPath(System.String)">
-            <summary>
-            Convert a path into a fully qualified local file path.
-            </summary>
-            <param name="path">The path to convert.</param>
-            <returns>The fully qualified path.</returns>
-            <remarks>
-            <para>
-            Converts the path specified to a fully
-            qualified path. If the path is relative it is
-            taken as relative from the application base 
-            directory.
-            </para>
-            <para>
-            The path specified must be a local file path, a URI is not supported.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemInfo.CreateCaseInsensitiveHashtable">
-            <summary>
-            Creates a new case-insensitive instance of the <see cref="T:System.Collections.Hashtable"/> class with the default initial capacity. 
-            </summary>
-            <returns>A new case-insensitive instance of the <see cref="T:System.Collections.Hashtable"/> class with the default initial capacity</returns>
-            <remarks>
-            <para>
-            The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.SystemInfo.EmptyTypes">
-            <summary>
-            Gets an empty array of types.
-            </summary>
-            <remarks>
-            <para>
-            The <c>Type.EmptyTypes</c> field is not available on
-            the .NET Compact Framework 1.0.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.SystemInfo.s_hostName">
-            <summary>
-            Cache the host name for the current machine
-            </summary>
-        </member>
-        <member name="F:log4net.Util.SystemInfo.s_appFriendlyName">
-            <summary>
-            Cache the application friendly name
-            </summary>
-        </member>
-        <member name="F:log4net.Util.SystemInfo.s_nullText">
-            <summary>
-            Text to output when a <c>null</c> is encountered.
-            </summary>
-        </member>
-        <member name="F:log4net.Util.SystemInfo.s_notAvailableText">
-            <summary>
-            Text to output when an unsupported feature is requested.
-            </summary>
-        </member>
-        <member name="F:log4net.Util.SystemInfo.s_processStartTime">
-            <summary>
-            Start time for the current process.
-            </summary>
-        </member>
-        <member name="P:log4net.Util.SystemInfo.NewLine">
-            <summary>
-            Gets the system dependent line terminator.
-            </summary>
-            <value>
-            The system dependent line terminator.
-            </value>
-            <remarks>
-            <para>
-            Gets the system dependent line terminator.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.SystemInfo.ApplicationBaseDirectory">
-            <summary>
-            Gets the base directory for this <see cref="T:System.AppDomain"/>.
-            </summary>
-            <value>The base directory path for the current <see cref="T:System.AppDomain"/>.</value>
-            <remarks>
-            <para>
-            Gets the base directory for this <see cref="T:System.AppDomain"/>.
-            </para>
-            <para>
-            The value returned may be either a local file path or a URI.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.SystemInfo.ConfigurationFileLocation">
-            <summary>
-            Gets the path to the configuration file for the current <see cref="T:System.AppDomain"/>.
-            </summary>
-            <value>The path to the configuration file for the current <see cref="T:System.AppDomain"/>.</value>
-            <remarks>
-            <para>
-            The .NET Compact Framework 1.0 does not have a concept of a configuration
-            file. For this runtime, we use the entry assembly location as the root for
-            the configuration file name.
-            </para>
-            <para>
-            The value returned may be either a local file path or a URI.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.SystemInfo.EntryAssemblyLocation">
-            <summary>
-            Gets the path to the file that first executed in the current <see cref="T:System.AppDomain"/>.
-            </summary>
-            <value>The path to the entry assembly.</value>
-            <remarks>
-            <para>
-            Gets the path to the file that first executed in the current <see cref="T:System.AppDomain"/>.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.SystemInfo.CurrentThreadId">
-            <summary>
-            Gets the ID of the current thread.
-            </summary>
-            <value>The ID of the current thread.</value>
-            <remarks>
-            <para>
-            On the .NET framework, the <c>AppDomain.GetCurrentThreadId</c> method
-            is used to obtain the thread ID for the current thread. This is the 
-            operating system ID for the thread.
-            </para>
-            <para>
-            On the .NET Compact Framework 1.0 it is not possible to get the 
-            operating system thread ID for the current thread. The native method 
-            <c>GetCurrentThreadId</c> is implemented inline in a header file
-            and cannot be called.
-            </para>
-            <para>
-            On the .NET Framework 2.0 the <c>Thread.ManagedThreadId</c> is used as this
-            gives a stable id unrelated to the operating system thread ID which may 
-            change if the runtime is using fibers.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.SystemInfo.HostName">
-            <summary>
-            Get the host name or machine name for the current machine
-            </summary>
-            <value>
-            The hostname or machine name
-            </value>
-            <remarks>
-            <para>
-            Get the host name or machine name for the current machine
-            </para>
-            <para>
-            The host name (<see cref="M:System.Net.Dns.GetHostName"/>) or
-            the machine name (<c>Environment.MachineName</c>) for
-            the current machine, or if neither of these are available
-            then <c>NOT AVAILABLE</c> is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.SystemInfo.ApplicationFriendlyName">
-            <summary>
-            Get this application's friendly name
-            </summary>
-            <value>
-            The friendly name of this application as a string
-            </value>
-            <remarks>
-            <para>
-            If available the name of the application is retrieved from
-            the <c>AppDomain</c> using <c>AppDomain.CurrentDomain.FriendlyName</c>.
-            </para>
-            <para>
-            Otherwise the file name of the entry assembly is used.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.SystemInfo.ProcessStartTime">
-            <summary>
-            Get the start time for the current process.
-            </summary>
-            <remarks>
-            <para>
-            This is the time at which the log4net library was loaded into the
-            AppDomain. Due to reports of a hang in the call to <c>System.Diagnostics.Process.StartTime</c>
-            this is not the start time for the current process.
-            </para>
-            <para>
-            The log4net library should be loaded by an application early during its
-            startup, therefore this start time should be a good approximation for
-            the actual start time.
-            </para>
-            <para>
-            Note that AppDomains may be loaded and unloaded within the
-            same process without the process terminating, however this start time
-            will be set per AppDomain.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.SystemInfo.NullText">
-            <summary>
-            Text to output when a <c>null</c> is encountered.
-            </summary>
-            <remarks>
-            <para>
-            Use this value to indicate a <c>null</c> has been encountered while
-            outputting a string representation of an item.
-            </para>
-            <para>
-            The default value is <c>(null)</c>. This value can be overridden by specifying
-            a value for the <c>log4net.NullText</c> appSetting in the application's
-            .config file.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.SystemInfo.NotAvailableText">
-            <summary>
-            Text to output when an unsupported feature is requested.
-            </summary>
-            <remarks>
-            <para>
-            Use this value when an unsupported feature is requested.
-            </para>
-            <para>
-            The default value is <c>NOT AVAILABLE</c>. This value can be overridden by specifying
-            a value for the <c>log4net.NotAvailableText</c> appSetting in the application's
-            .config file.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.SystemStringFormat">
-            <summary>
-            Utility class that represents a format string.
-            </summary>
-            <remarks>
-            <para>
-            Utility class that represents a format string.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.SystemStringFormat.#ctor(System.IFormatProvider,System.String,System.Object[])">
-            <summary>
-            Initialise the <see cref="T:log4net.Util.SystemStringFormat"/>
-            </summary>
-            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
-            <param name="format">A <see cref="T:System.String"/> containing zero or more format items.</param>
-            <param name="args">An <see cref="T:System.Object"/> array containing zero or more objects to format.</param>
-        </member>
-        <member name="M:log4net.Util.SystemStringFormat.ToString">
-            <summary>
-            Format the string and arguments
-            </summary>
-            <returns>the formatted string</returns>
-        </member>
-        <member name="M:log4net.Util.SystemStringFormat.StringFormat(System.IFormatProvider,System.String,System.Object[])">
-            <summary>
-            Replaces the format item in a specified <see cref="T:System.String"/> with the text equivalent 
-            of the value of a corresponding <see cref="T:System.Object"/> instance in a specified array.
-            A specified parameter supplies culture-specific formatting information.
-            </summary>
-            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
-            <param name="format">A <see cref="T:System.String"/> containing zero or more format items.</param>
-            <param name="args">An <see cref="T:System.Object"/> array containing zero or more objects to format.</param>
-            <returns>
-            A copy of format in which the format items have been replaced by the <see cref="T:System.String"/> 
-            equivalent of the corresponding instances of <see cref="T:System.Object"/> in args.
-            </returns>
-            <remarks>
-            <para>
-            This method does not throw exceptions. If an exception thrown while formatting the result the
-            exception and arguments are returned in the result string.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.SystemStringFormat.StringFormatError(System.Exception,System.String,System.Object[])">
-            <summary>
-            Process an error during StringFormat
-            </summary>
-        </member>
-        <member name="M:log4net.Util.SystemStringFormat.RenderArray(System.Array,System.Text.StringBuilder)">
-            <summary>
-            Dump the contents of an array into a string builder
-            </summary>
-        </member>
-        <member name="M:log4net.Util.SystemStringFormat.RenderObject(System.Object,System.Text.StringBuilder)">
-            <summary>
-            Dump an object to a string
-            </summary>
-        </member>
-        <member name="T:log4net.Util.ThreadContextProperties">
-            <summary>
-            Implementation of Properties collection for the <see cref="T:log4net.ThreadContext"/>
-            </summary>
-            <remarks>
-            <para>
-            Class implements a collection of properties that is specific to each thread.
-            The class is not synchronized as each thread has its own <see cref="T:log4net.Util.PropertiesDictionary"/>.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Util.ThreadContextProperties.s_threadLocalSlot">
-            <summary>
-            The thread local data slot to use to store a PropertiesDictionary.
-            </summary>
-        </member>
-        <member name="M:log4net.Util.ThreadContextProperties.#ctor">
-            <summary>
-            Internal constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.ThreadContextProperties"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ThreadContextProperties.Remove(System.String)">
-            <summary>
-            Remove a property
-            </summary>
-            <param name="key">the key for the entry to remove</param>
-            <remarks>
-            <para>
-            Remove a property
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ThreadContextProperties.Clear">
-            <summary>
-            Clear all properties
-            </summary>
-            <remarks>
-            <para>
-            Clear all properties
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ThreadContextProperties.GetProperties(System.Boolean)">
-            <summary>
-            Get the <c>PropertiesDictionary</c> for this thread.
-            </summary>
-            <param name="create">create the dictionary if it does not exist, otherwise return null if is does not exist</param>
-            <returns>the properties for this thread</returns>
-            <remarks>
-            <para>
-            The collection returned is only to be used on the calling thread. If the
-            caller needs to share the collection between different threads then the 
-            caller must clone the collection before doing so.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.ThreadContextProperties.Item(System.String)">
-            <summary>
-            Gets or sets the value of a property
-            </summary>
-            <value>
-            The value for the property with the specified key
-            </value>
-            <remarks>
-            <para>
-            Gets or sets the value of a property
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.ThreadContextStack">
-            <summary>
-            Implementation of Stack for the <see cref="T:log4net.ThreadContext"/>
-            </summary>
-            <remarks>
-            <para>
-            Implementation of Stack for the <see cref="T:log4net.ThreadContext"/>
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="F:log4net.Util.ThreadContextStack.m_stack">
-            <summary>
-            The stack store.
-            </summary>
-        </member>
-        <member name="M:log4net.Util.ThreadContextStack.#ctor">
-            <summary>
-            Internal constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.ThreadContextStack"/> class. 
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ThreadContextStack.Clear">
-            <summary>
-            Clears all the contextual information held in this stack.
-            </summary>
-            <remarks>
-            <para>
-            Clears all the contextual information held in this stack.
-            Only call this if you think that this tread is being reused after
-            a previous call execution which may not have completed correctly.
-            You do not need to use this method if you always guarantee to call
-            the <see cref="M:System.IDisposable.Dispose"/> method of the <see cref="T:System.IDisposable"/>
-            returned from <see cref="M:log4net.Util.ThreadContextStack.Push(System.String)"/> even in exceptional circumstances,
-            for example by using the <c>using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message"))</c> 
-            syntax.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ThreadContextStack.Pop">
-            <summary>
-            Removes the top context from this stack.
-            </summary>
-            <returns>The message in the context that was removed from the top of this stack.</returns>
-            <remarks>
-            <para>
-            Remove the top context from this stack, and return
-            it to the caller. If this stack is empty then an
-            empty string (not <see langword="null"/>) is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ThreadContextStack.Push(System.String)">
-            <summary>
-            Pushes a new context message into this stack.
-            </summary>
-            <param name="message">The new context message.</param>
-            <returns>
-            An <see cref="T:System.IDisposable"/> that can be used to clean up the context stack.
-            </returns>
-            <remarks>
-            <para>
-            Pushes a new context onto this stack. An <see cref="T:System.IDisposable"/>
-            is returned that can be used to clean up this stack. This
-            can be easily combined with the <c>using</c> keyword to scope the
-            context.
-            </para>
-            </remarks>
-            <example>Simple example of using the <c>Push</c> method with the <c>using</c> keyword.
-            <code lang="C#">
-            using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message"))
-            {
-            	log.Warn("This should have an ThreadContext Stack message");
-            }
-            </code>
-            </example>
-        </member>
-        <member name="M:log4net.Util.ThreadContextStack.GetFullMessage">
-            <summary>
-            Gets the current context information for this stack.
-            </summary>
-            <returns>The current context information.</returns>
-        </member>
-        <member name="M:log4net.Util.ThreadContextStack.ToString">
-            <summary>
-            Gets the current context information for this stack.
-            </summary>
-            <returns>Gets the current context information</returns>
-            <remarks>
-            <para>
-            Gets the current context information for this stack.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ThreadContextStack.log4net#Core#IFixingRequired#GetFixedObject">
-            <summary>
-            Get a portable version of this object
-            </summary>
-            <returns>the portable instance of this object</returns>
-            <remarks>
-            <para>
-            Get a cross thread portable version of this object
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.ThreadContextStack.Count">
-            <summary>
-            The number of messages in the stack
-            </summary>
-            <value>
-            The current number of messages in the stack
-            </value>
-            <remarks>
-            <para>
-            The current number of messages in the stack. That is
-            the number of times <see cref="M:log4net.Util.ThreadContextStack.Push(System.String)"/> has been called
-            minus the number of times <see cref="M:log4net.Util.ThreadContextStack.Pop"/> has been called.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.ThreadContextStack.InternalStack">
-            <summary>
-            Gets and sets the internal stack used by this <see cref="T:log4net.Util.ThreadContextStack"/>
-            </summary>
-            <value>The internal storage stack</value>
-            <remarks>
-            <para>
-            This property is provided only to support backward compatability 
-            of the <see cref="T:log4net.NDC"/>. Tytpically the internal stack should not
-            be modified.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.ThreadContextStack.StackFrame">
-            <summary>
-            Inner class used to represent a single context frame in the stack.
-            </summary>
-            <remarks>
-            <para>
-            Inner class used to represent a single context frame in the stack.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ThreadContextStack.StackFrame.#ctor(System.String,log4net.Util.ThreadContextStack.StackFrame)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="message">The message for this context.</param>
-            <param name="parent">The parent context in the chain.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.ThreadContextStack.StackFrame"/> class
-            with the specified message and parent context.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.ThreadContextStack.StackFrame.Message">
-            <summary>
-            Get the message.
-            </summary>
-            <value>The message.</value>
-            <remarks>
-            <para>
-            Get the message.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.ThreadContextStack.StackFrame.FullMessage">
-            <summary>
-            Gets the full text of the context down to the root level.
-            </summary>
-            <value>
-            The full text of the context down to the root level.
-            </value>
-            <remarks>
-            <para>
-            Gets the full text of the context down to the root level.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.ThreadContextStack.AutoPopStackFrame">
-            <summary>
-            Struct returned from the <see cref="M:log4net.Util.ThreadContextStack.Push(System.String)"/> method.
-            </summary>
-            <remarks>
-            <para>
-            This struct implements the <see cref="T:System.IDisposable"/> and is designed to be used
-            with the <see langword="using"/> pattern to remove the stack frame at the end of the scope.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.ThreadContextStack.AutoPopStackFrame.m_frameStack">
-            <summary>
-            The ThreadContextStack internal stack
-            </summary>
-        </member>
-        <member name="F:log4net.Util.ThreadContextStack.AutoPopStackFrame.m_frameDepth">
-            <summary>
-            The depth to trim the stack to when this instance is disposed
-            </summary>
-        </member>
-        <member name="M:log4net.Util.ThreadContextStack.AutoPopStackFrame.#ctor(System.Collections.Stack,System.Int32)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="frameStack">The internal stack used by the ThreadContextStack.</param>
-            <param name="frameDepth">The depth to return the stack to when this object is disposed.</param>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.ThreadContextStack.AutoPopStackFrame"/> class with
-            the specified stack and return depth.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.ThreadContextStack.AutoPopStackFrame.Dispose">
-            <summary>
-            Returns the stack to the correct depth.
-            </summary>
-            <remarks>
-            <para>
-            Returns the stack to the correct depth.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.ThreadContextStacks">
-            <summary>
-            Implementation of Stacks collection for the <see cref="T:log4net.ThreadContext"/>
-            </summary>
-            <remarks>
-            <para>
-            Implementation of Stacks collection for the <see cref="T:log4net.ThreadContext"/>
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.Util.ThreadContextStacks.#ctor(log4net.Util.ContextPropertiesBase)">
-            <summary>
-            Internal constructor
-            </summary>
-            <remarks>
-            <para>
-            Initializes a new instance of the <see cref="T:log4net.Util.ThreadContextStacks"/> class.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.ThreadContextStacks.Item(System.String)">
-            <summary>
-            Gets the named thread context stack
-            </summary>
-            <value>
-            The named stack
-            </value>
-            <remarks>
-            <para>
-            Gets the named thread context stack
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.Transform">
-            <summary>
-            Utility class for transforming strings.
-            </summary>
-            <remarks>
-            <para>
-            Utility class for transforming strings.
-            </para>
-            </remarks>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.Util.Transform.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.Util.Transform"/> class. 
-            </summary>
-            <remarks>
-            <para>
-            Uses a private access modifier to prevent instantiation of this class.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.Transform.WriteEscapedXmlString(System.Xml.XmlWriter,System.String,System.String)">
-            <summary>
-            Write a string to an <see cref="T:System.Xml.XmlWriter"/>
-            </summary>
-            <param name="writer">the writer to write to</param>
-            <param name="textData">the string to write</param>
-            <param name="invalidCharReplacement">The string to replace non XML compliant chars with</param>
-            <remarks>
-            <para>
-            The test is escaped either using XML escape entities
-            or using CDATA sections.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.Transform.MaskXmlInvalidCharacters(System.String,System.String)">
-            <summary>
-            Replace invalid XML characters in text string
-            </summary>
-            <param name="textData">the XML text input string</param>
-            <param name="mask">the string to use in place of invalid characters</param>
-            <returns>A string that does not contain invalid XML characters.</returns>
-            <remarks>
-            <para>
-            Certain Unicode code points are not allowed in the XML InfoSet, for
-            details see: <a href="http://www.w3.org/TR/REC-xml/#charsets">http://www.w3.org/TR/REC-xml/#charsets</a>.
-            </para>
-            <para>
-            This method replaces any illegal characters in the input string
-            with the mask string specified.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.Transform.CountSubstrings(System.String,System.String)">
-            <summary>
-            Count the number of times that the substring occurs in the text
-            </summary>
-            <param name="text">the text to search</param>
-            <param name="substring">the substring to find</param>
-            <returns>the number of times the substring occurs in the text</returns>
-            <remarks>
-            <para>
-            The substring is assumed to be non repeating within itself.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.WindowsSecurityContext">
-            <summary>
-            Impersonate a Windows Account
-            </summary>
-            <remarks>
-            <para>
-            This <see cref="T:log4net.Core.SecurityContext"/> impersonates a Windows account.
-            </para>
-            <para>
-            How the impersonation is done depends on the value of <see cref="M:log4net.Util.WindowsSecurityContext.Impersonate(System.Object)"/>.
-            This allows the context to either impersonate a set of user credentials specified 
-            using username, domain name and password or to revert to the process credentials.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.WindowsSecurityContext.#ctor">
-            <summary>
-            Default constructor
-            </summary>
-            <remarks>
-            <para>
-            Default constructor
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.WindowsSecurityContext.ActivateOptions">
-            <summary>
-            Initialize the SecurityContext based on the options set.
-            </summary>
-            <remarks>
-            <para>
-            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
-            activation scheme. The <see cref="M:log4net.Util.WindowsSecurityContext.ActivateOptions"/> method must 
-            be called on this object after the configuration properties have
-            been set. Until <see cref="M:log4net.Util.WindowsSecurityContext.ActivateOptions"/> is called this
-            object is in an undefined state and must not be used. 
-            </para>
-            <para>
-            If any of the configuration properties are modified then 
-            <see cref="M:log4net.Util.WindowsSecurityContext.ActivateOptions"/> must be called again.
-            </para>
-            <para>
-            The security context will try to Logon the specified user account and
-            capture a primary token for impersonation.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">The required <see cref="P:log4net.Util.WindowsSecurityContext.UserName"/>, 
-            <see cref="P:log4net.Util.WindowsSecurityContext.DomainName"/> or <see cref="P:log4net.Util.WindowsSecurityContext.Password"/> properties were not specified.</exception>
-        </member>
-        <member name="M:log4net.Util.WindowsSecurityContext.Impersonate(System.Object)">
-            <summary>
-            Impersonate the Windows account specified by the <see cref="P:log4net.Util.WindowsSecurityContext.UserName"/> and <see cref="P:log4net.Util.WindowsSecurityContext.DomainName"/> properties.
-            </summary>
-            <param name="state">caller provided state</param>
-            <returns>
-            An <see cref="T:System.IDisposable"/> instance that will revoke the impersonation of this SecurityContext
-            </returns>
-            <remarks>
-            <para>
-            Depending on the <see cref="P:log4net.Util.WindowsSecurityContext.Credentials"/> property either
-            impersonate a user using credentials supplied or revert 
-            to the process credentials.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.WindowsSecurityContext.LogonUser(System.String,System.String,System.String)">
-            <summary>
-            Create a <see cref="T:System.Security.Principal.WindowsIdentity"/> given the userName, domainName and password.
-            </summary>
-            <param name="userName">the user name</param>
-            <param name="domainName">the domain name</param>
-            <param name="password">the password</param>
-            <returns>the <see cref="T:System.Security.Principal.WindowsIdentity"/> for the account specified</returns>
-            <remarks>
-            <para>
-            Uses the Windows API call LogonUser to get a principal token for the account. This
-            token is used to initialize the WindowsIdentity.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.WindowsSecurityContext.Credentials">
-            <summary>
-            Gets or sets the impersonation mode for this security context
-            </summary>
-            <value>
-            The impersonation mode for this security context
-            </value>
-            <remarks>
-            <para>
-            Impersonate either a user with user credentials or
-            revert this thread to the credentials of the process.
-            The value is one of the <see cref="T:log4net.Util.WindowsSecurityContext.ImpersonationMode"/>
-            enum.
-            </para>
-            <para>
-            The default value is <see cref="F:log4net.Util.WindowsSecurityContext.ImpersonationMode.User"/>
-            </para>
-            <para>
-            When the mode is set to <see cref="F:log4net.Util.WindowsSecurityContext.ImpersonationMode.User"/>
-            the user's credentials are established using the
-            <see cref="P:log4net.Util.WindowsSecurityContext.UserName"/>, <see cref="P:log4net.Util.WindowsSecurityContext.DomainName"/> and <see cref="P:log4net.Util.WindowsSecurityContext.Password"/>
-            values.
-            </para>
-            <para>
-            When the mode is set to <see cref="F:log4net.Util.WindowsSecurityContext.ImpersonationMode.Process"/>
-            no other properties need to be set. If the calling thread is 
-            impersonating then it will be reverted back to the process credentials.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.WindowsSecurityContext.UserName">
-            <summary>
-            Gets or sets the Windows username for this security context
-            </summary>
-            <value>
-            The Windows username for this security context
-            </value>
-            <remarks>
-            <para>
-            This property must be set if <see cref="P:log4net.Util.WindowsSecurityContext.Credentials"/>
-            is set to <see cref="F:log4net.Util.WindowsSecurityContext.ImpersonationMode.User"/> (the default setting).
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.WindowsSecurityContext.DomainName">
-            <summary>
-            Gets or sets the Windows domain name for this security context
-            </summary>
-            <value>
-            The Windows domain name for this security context
-            </value>
-            <remarks>
-            <para>
-            The default value for <see cref="P:log4net.Util.WindowsSecurityContext.DomainName"/> is the local machine name
-            taken from the <see cref="P:System.Environment.MachineName"/> property.
-            </para>
-            <para>
-            This property must be set if <see cref="P:log4net.Util.WindowsSecurityContext.Credentials"/>
-            is set to <see cref="F:log4net.Util.WindowsSecurityContext.ImpersonationMode.User"/> (the default setting).
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.Util.WindowsSecurityContext.Password">
-            <summary>
-            Sets the password for the Windows account specified by the <see cref="P:log4net.Util.WindowsSecurityContext.UserName"/> and <see cref="P:log4net.Util.WindowsSecurityContext.DomainName"/> properties.
-            </summary>
-            <value>
-            The password for the Windows account specified by the <see cref="P:log4net.Util.WindowsSecurityContext.UserName"/> and <see cref="P:log4net.Util.WindowsSecurityContext.DomainName"/> properties.
-            </value>
-            <remarks>
-            <para>
-            This property must be set if <see cref="P:log4net.Util.WindowsSecurityContext.Credentials"/>
-            is set to <see cref="F:log4net.Util.WindowsSecurityContext.ImpersonationMode.User"/> (the default setting).
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.Util.WindowsSecurityContext.ImpersonationMode">
-            <summary>
-            The impersonation modes for the <see cref="T:log4net.Util.WindowsSecurityContext"/>
-            </summary>
-            <remarks>
-            <para>
-            See the <see cref="P:log4net.Util.WindowsSecurityContext.Credentials"/> property for
-            details.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.Util.WindowsSecurityContext.ImpersonationMode.User">
-            <summary>
-            Impersonate a user using the credentials supplied
-            </summary>
-        </member>
-        <member name="F:log4net.Util.WindowsSecurityContext.ImpersonationMode.Process">
-            <summary>
-            Revert this the thread to the credentials of the process
-            </summary>
-        </member>
-        <member name="T:log4net.Util.WindowsSecurityContext.DisposableImpersonationContext">
-            <summary>
-            Adds <see cref="T:System.IDisposable"/> to <see cref="T:System.Security.Principal.WindowsImpersonationContext"/>
-            </summary>
-            <remarks>
-            <para>
-            Helper class to expose the <see cref="T:System.Security.Principal.WindowsImpersonationContext"/>
-            through the <see cref="T:System.IDisposable"/> interface.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.WindowsSecurityContext.DisposableImpersonationContext.#ctor(System.Security.Principal.WindowsImpersonationContext)">
-            <summary>
-            Constructor
-            </summary>
-            <param name="impersonationContext">the impersonation context being wrapped</param>
-            <remarks>
-            <para>
-            Constructor
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.Util.WindowsSecurityContext.DisposableImpersonationContext.Dispose">
-            <summary>
-            Revert the impersonation
-            </summary>
-            <remarks>
-            <para>
-            Revert the impersonation
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.GlobalContext">
-            <summary>
-            The log4net Global Context.
-            </summary>
-            <remarks>
-            <para>
-            The <c>GlobalContext</c> provides a location for global debugging 
-            information to be stored.
-            </para>
-            <para>
-            The global context has a properties map and these properties can 
-            be included in the output of log messages. The <see cref="T:log4net.Layout.PatternLayout"/>
-            supports selecting and outputing these properties.
-            </para>
-            <para>
-            By default the <c>log4net:HostName</c> property is set to the name of 
-            the current machine.
-            </para>
-            </remarks>
-            <example>
-            <code lang="C#">
-            GlobalContext.Properties["hostname"] = Environment.MachineName;
-            </code>
-            </example>
-            <threadsafety static="true" instance="true"/>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.GlobalContext.#ctor">
-            <summary>
-            Private Constructor. 
-            </summary>
-            <remarks>
-            Uses a private access modifier to prevent instantiation of this class.
-            </remarks>
-        </member>
-        <member name="F:log4net.GlobalContext.s_properties">
-            <summary>
-            The global context properties instance
-            </summary>
-        </member>
-        <member name="P:log4net.GlobalContext.Properties">
-            <summary>
-            The global properties map.
-            </summary>
-            <value>
-            The global properties map.
-            </value>
-            <remarks>
-            <para>
-            The global properties map.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.LogicalThreadContext">
-            <summary>
-            The log4net Logical Thread Context.
-            </summary>
-            <remarks>
-            <para>
-            The <c>LogicalThreadContext</c> provides a location for <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/> specific debugging 
-            information to be stored.
-            The <c>LogicalThreadContext</c> properties override any <see cref="T:log4net.ThreadContext"/> or <see cref="T:log4net.GlobalContext"/>
-            properties with the same name.
-            </para>
-            <para>
-            The Logical Thread Context has a properties map and a stack.
-            The properties and stack can 
-            be included in the output of log messages. The <see cref="T:log4net.Layout.PatternLayout"/>
-            supports selecting and outputting these properties.
-            </para>
-            <para>
-            The Logical Thread Context provides a diagnostic context for the current call context. 
-            This is an instrument for distinguishing interleaved log
-            output from different sources. Log output is typically interleaved
-            when a server handles multiple clients near-simultaneously.
-            </para>
-            <para>
-            The Logical Thread Context is managed on a per <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/> basis.
-            </para>
-            </remarks>
-            <example>Example of using the thread context properties to store a username.
-            <code lang="C#">
-            LogicalThreadContext.Properties["user"] = userName;
-            log.Info("This log message has a LogicalThreadContext Property called 'user'");
-            </code>
-            </example>
-            <example>Example of how to push a message into the context stack
-            <code lang="C#">
-            using(LogicalThreadContext.Stacks["LDC"].Push("my context message"))
-            {
-            	log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'");
-            
-            } // at the end of the using block the message is automatically popped 
-            </code>
-            </example>
-            <threadsafety static="true" instance="true"/>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.LogicalThreadContext.#ctor">
-            <summary>
-            Private Constructor. 
-            </summary>
-            <remarks>
-            <para>
-            Uses a private access modifier to prevent instantiation of this class.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.LogicalThreadContext.s_properties">
-            <summary>
-            The thread context properties instance
-            </summary>
-        </member>
-        <member name="F:log4net.LogicalThreadContext.s_stacks">
-            <summary>
-            The thread context stacks instance
-            </summary>
-        </member>
-        <member name="P:log4net.LogicalThreadContext.Properties">
-            <summary>
-            The thread properties map
-            </summary>
-            <value>
-            The thread properties map
-            </value>
-            <remarks>
-            <para>
-            The <c>LogicalThreadContext</c> properties override any <see cref="T:log4net.ThreadContext"/> 
-            or <see cref="T:log4net.GlobalContext"/> properties with the same name.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.LogicalThreadContext.Stacks">
-            <summary>
-            The thread stacks
-            </summary>
-            <value>
-            stack map
-            </value>
-            <remarks>
-            <para>
-            The logical thread stacks.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.LogManager">
-            <summary>
-            This class is used by client applications to request logger instances.
-            </summary>
-            <remarks>
-            <para>
-            This class has static methods that are used by a client to request
-            a logger instance. The <see cref="M:log4net.LogManager.GetLogger(System.String)"/> method is 
-            used to retrieve a logger.
-            </para>
-            <para>
-            See the <see cref="T:log4net.ILog"/> interface for more details.
-            </para>
-            </remarks>
-            <example>Simple example of logging messages
-            <code lang="C#">
-            ILog log = LogManager.GetLogger("application-log");
-            
-            log.Info("Application Start");
-            log.Debug("This is a debug message");
-            
-            if (log.IsDebugEnabled)
-            {
-            	log.Debug("This is another debug message");
-            }
-            </code>
-            </example>
-            <threadsafety static="true" instance="true"/>
-            <seealso cref="T:log4net.ILog"/>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.LogManager.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.LogManager"/> class. 
-            </summary>
-            <remarks>
-            Uses a private access modifier to prevent instantiation of this class.
-            </remarks>
-        </member>
-        <member name="M:log4net.LogManager.Exists(System.String)">
-            <overloads>Returns the named logger if it exists.</overloads>
-            <summary>
-            Returns the named logger if it exists.
-            </summary>
-            <remarks>
-            <para>
-            If the named logger exists (in the default repository) then it
-            returns a reference to the logger, otherwise it returns <c>null</c>.
-            </para>
-            </remarks>
-            <param name="name">The fully qualified logger name to look for.</param>
-            <returns>The logger found, or <c>null</c> if no logger could be found.</returns>
-        </member>
-        <member name="M:log4net.LogManager.Exists(System.String,System.String)">
-            <summary>
-            Returns the named logger if it exists.
-            </summary>
-            <remarks>
-            <para>
-            If the named logger exists (in the specified repository) then it
-            returns a reference to the logger, otherwise it returns
-            <c>null</c>.
-            </para>
-            </remarks>
-            <param name="repository">The repository to lookup in.</param>
-            <param name="name">The fully qualified logger name to look for.</param>
-            <returns>
-            The logger found, or <c>null</c> if the logger doesn't exist in the specified 
-            repository.
-            </returns>
-        </member>
-        <member name="M:log4net.LogManager.Exists(System.Reflection.Assembly,System.String)">
-            <summary>
-            Returns the named logger if it exists.
-            </summary>
-            <remarks>
-            <para>
-            If the named logger exists (in the repository for the specified assembly) then it
-            returns a reference to the logger, otherwise it returns
-            <c>null</c>.
-            </para>
-            </remarks>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
-            <param name="name">The fully qualified logger name to look for.</param>
-            <returns>
-            The logger, or <c>null</c> if the logger doesn't exist in the specified
-            assembly's repository.
-            </returns>
-        </member>
-        <member name="M:log4net.LogManager.GetCurrentLoggers">
-            <overloads>Get the currently defined loggers.</overloads>
-            <summary>
-            Returns all the currently defined loggers in the default repository.
-            </summary>
-            <remarks>
-            <para>The root logger is <b>not</b> included in the returned array.</para>
-            </remarks>
-            <returns>All the defined loggers.</returns>
-        </member>
-        <member name="M:log4net.LogManager.GetCurrentLoggers(System.String)">
-            <summary>
-            Returns all the currently defined loggers in the specified repository.
-            </summary>
-            <param name="repository">The repository to lookup in.</param>
-            <remarks>
-            The root logger is <b>not</b> included in the returned array.
-            </remarks>
-            <returns>All the defined loggers.</returns>
-        </member>
-        <member name="M:log4net.LogManager.GetCurrentLoggers(System.Reflection.Assembly)">
-            <summary>
-            Returns all the currently defined loggers in the specified assembly's repository.
-            </summary>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
-            <remarks>
-            The root logger is <b>not</b> included in the returned array.
-            </remarks>
-            <returns>All the defined loggers.</returns>
-        </member>
-        <member name="M:log4net.LogManager.GetLogger(System.String)">
-            <overloads>Get or create a logger.</overloads>
-            <summary>
-            Retrieves or creates a named logger.
-            </summary>
-            <remarks>
-            <para>
-            Retrieves a logger named as the <paramref name="name"/>
-            parameter. If the named logger already exists, then the
-            existing instance will be returned. Otherwise, a new instance is
-            created.
-            </para>
-            <para>By default, loggers do not have a set level but inherit
-            it from the hierarchy. This is one of the central features of
-            log4net.
-            </para>
-            </remarks>
-            <param name="name">The name of the logger to retrieve.</param>
-            <returns>The logger with the name specified.</returns>
-        </member>
-        <member name="M:log4net.LogManager.GetLogger(System.String,System.String)">
-            <summary>
-            Retrieves or creates a named logger.
-            </summary>
-            <remarks>
-            <para>
-            Retrieve a logger named as the <paramref name="name"/>
-            parameter. If the named logger already exists, then the
-            existing instance will be returned. Otherwise, a new instance is
-            created.
-            </para>
-            <para>
-            By default, loggers do not have a set level but inherit
-            it from the hierarchy. This is one of the central features of
-            log4net.
-            </para>
-            </remarks>
-            <param name="repository">The repository to lookup in.</param>
-            <param name="name">The name of the logger to retrieve.</param>
-            <returns>The logger with the name specified.</returns>
-        </member>
-        <member name="M:log4net.LogManager.GetLogger(System.Reflection.Assembly,System.String)">
-            <summary>
-            Retrieves or creates a named logger.
-            </summary>
-            <remarks>
-            <para>
-            Retrieve a logger named as the <paramref name="name"/>
-            parameter. If the named logger already exists, then the
-            existing instance will be returned. Otherwise, a new instance is
-            created.
-            </para>
-            <para>
-            By default, loggers do not have a set level but inherit
-            it from the hierarchy. This is one of the central features of
-            log4net.
-            </para>
-            </remarks>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
-            <param name="name">The name of the logger to retrieve.</param>
-            <returns>The logger with the name specified.</returns>
-        </member>
-        <member name="M:log4net.LogManager.GetLogger(System.Type)">
-            <summary>
-            Shorthand for <see cref="M:log4net.LogManager.GetLogger(System.String)"/>.
-            </summary>
-            <remarks>
-            Get the logger for the fully qualified name of the type specified.
-            </remarks>
-            <param name="type">The full name of <paramref name="type"/> will be used as the name of the logger to retrieve.</param>
-            <returns>The logger with the name specified.</returns>
-        </member>
-        <member name="M:log4net.LogManager.GetLogger(System.String,System.Type)">
-            <summary>
-            Shorthand for <see cref="M:log4net.LogManager.GetLogger(System.String)"/>.
-            </summary>
-            <remarks>
-            Gets the logger for the fully qualified name of the type specified.
-            </remarks>
-            <param name="repository">The repository to lookup in.</param>
-            <param name="type">The full name of <paramref name="type"/> will be used as the name of the logger to retrieve.</param>
-            <returns>The logger with the name specified.</returns>
-        </member>
-        <member name="M:log4net.LogManager.GetLogger(System.Reflection.Assembly,System.Type)">
-            <summary>
-            Shorthand for <see cref="M:log4net.LogManager.GetLogger(System.String)"/>.
-            </summary>
-            <remarks>
-            Gets the logger for the fully qualified name of the type specified.
-            </remarks>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
-            <param name="type">The full name of <paramref name="type"/> will be used as the name of the logger to retrieve.</param>
-            <returns>The logger with the name specified.</returns>
-        </member>
-        <member name="M:log4net.LogManager.Shutdown">
-            <summary>
-            Shuts down the log4net system.
-            </summary>
-            <remarks>
-            <para>
-            Calling this method will <b>safely</b> close and remove all
-            appenders in all the loggers including root contained in all the
-            default repositories.
-            </para>
-            <para>
-            Some appenders need to be closed before the application exists. 
-            Otherwise, pending logging events might be lost.
-            </para>
-            <para>The <c>shutdown</c> method is careful to close nested
-            appenders before closing regular appenders. This is allows
-            configurations where a regular appender is attached to a logger
-            and again to a nested appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.LogManager.ShutdownRepository">
-            <overloads>Shutdown a logger repository.</overloads>
-            <summary>
-            Shuts down the default repository.
-            </summary>
-            <remarks>
-            <para>
-            Calling this method will <b>safely</b> close and remove all
-            appenders in all the loggers including root contained in the
-            default repository.
-            </para>
-            <para>Some appenders need to be closed before the application exists. 
-            Otherwise, pending logging events might be lost.
-            </para>
-            <para>The <c>shutdown</c> method is careful to close nested
-            appenders before closing regular appenders. This is allows
-            configurations where a regular appender is attached to a logger
-            and again to a nested appender.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.LogManager.ShutdownRepository(System.String)">
-            <summary>
-            Shuts down the repository for the repository specified.
-            </summary>
-            <remarks>
-            <para>
-            Calling this method will <b>safely</b> close and remove all
-            appenders in all the loggers including root contained in the
-            <paramref name="repository"/> specified.
-            </para>
-            <para>
-            Some appenders need to be closed before the application exists. 
-            Otherwise, pending logging events might be lost.
-            </para>
-            <para>The <c>shutdown</c> method is careful to close nested
-            appenders before closing regular appenders. This is allows
-            configurations where a regular appender is attached to a logger
-            and again to a nested appender.
-            </para>
-            </remarks>
-            <param name="repository">The repository to shutdown.</param>
-        </member>
-        <member name="M:log4net.LogManager.ShutdownRepository(System.Reflection.Assembly)">
-            <summary>
-            Shuts down the repository specified.
-            </summary>
-            <remarks>
-            <para>
-            Calling this method will <b>safely</b> close and remove all
-            appenders in all the loggers including root contained in the
-            repository. The repository is looked up using
-            the <paramref name="repositoryAssembly"/> specified.
-            </para>
-            <para>
-            Some appenders need to be closed before the application exists. 
-            Otherwise, pending logging events might be lost.
-            </para>
-            <para>
-            The <c>shutdown</c> method is careful to close nested
-            appenders before closing regular appenders. This is allows
-            configurations where a regular appender is attached to a logger
-            and again to a nested appender.
-            </para>
-            </remarks>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
-        </member>
-        <member name="M:log4net.LogManager.ResetConfiguration">
-            <overloads>Reset the configuration of a repository</overloads>
-            <summary>
-            Resets all values contained in this repository instance to their defaults.
-            </summary>
-            <remarks>
-            <para>
-            Resets all values contained in the repository instance to their
-            defaults.  This removes all appenders from all loggers, sets
-            the level of all non-root loggers to <c>null</c>,
-            sets their additivity flag to <c>true</c> and sets the level
-            of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. Moreover,
-            message disabling is set to its default "off" value.
-            </para>		
-            </remarks>
-        </member>
-        <member name="M:log4net.LogManager.ResetConfiguration(System.String)">
-            <summary>
-            Resets all values contained in this repository instance to their defaults.
-            </summary>
-            <remarks>
-            <para>
-            Reset all values contained in the repository instance to their
-            defaults.  This removes all appenders from all loggers, sets
-            the level of all non-root loggers to <c>null</c>,
-            sets their additivity flag to <c>true</c> and sets the level
-            of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. Moreover,
-            message disabling is set to its default "off" value.
-            </para>		
-            </remarks>
-            <param name="repository">The repository to reset.</param>
-        </member>
-        <member name="M:log4net.LogManager.ResetConfiguration(System.Reflection.Assembly)">
-            <summary>
-            Resets all values contained in this repository instance to their defaults.
-            </summary>
-            <remarks>
-            <para>
-            Reset all values contained in the repository instance to their
-            defaults.  This removes all appenders from all loggers, sets
-            the level of all non-root loggers to <c>null</c>,
-            sets their additivity flag to <c>true</c> and sets the level
-            of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. Moreover,
-            message disabling is set to its default "off" value.
-            </para>		
-            </remarks>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository to reset.</param>
-        </member>
-        <member name="M:log4net.LogManager.GetLoggerRepository">
-            <overloads>Get the logger repository.</overloads>
-            <summary>
-            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
-            </summary>
-            <remarks>
-            <para>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
-            by the callers assembly (<see cref="M:System.Reflection.Assembly.GetCallingAssembly"/>).
-            </para>
-            </remarks>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> instance for the default repository.</returns>
-        </member>
-        <member name="M:log4net.LogManager.GetLoggerRepository(System.String)">
-            <summary>
-            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
-            </summary>
-            <returns>The default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.</returns>
-            <remarks>
-            <para>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
-            by the <paramref name="repository"/> argument.
-            </para>
-            </remarks>
-            <param name="repository">The repository to lookup in.</param>
-        </member>
-        <member name="M:log4net.LogManager.GetLoggerRepository(System.Reflection.Assembly)">
-            <summary>
-            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
-            </summary>
-            <returns>The default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.</returns>
-            <remarks>
-            <para>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
-            by the <paramref name="repositoryAssembly"/> argument.
-            </para>
-            </remarks>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
-        </member>
-        <member name="M:log4net.LogManager.GetRepository">
-            <overloads>Get a logger repository.</overloads>
-            <summary>
-            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
-            </summary>
-            <remarks>
-            <para>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
-            by the callers assembly (<see cref="M:System.Reflection.Assembly.GetCallingAssembly"/>).
-            </para>
-            </remarks>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> instance for the default repository.</returns>
-        </member>
-        <member name="M:log4net.LogManager.GetRepository(System.String)">
-            <summary>
-            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
-            </summary>
-            <returns>The default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.</returns>
-            <remarks>
-            <para>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
-            by the <paramref name="repository"/> argument.
-            </para>
-            </remarks>
-            <param name="repository">The repository to lookup in.</param>
-        </member>
-        <member name="M:log4net.LogManager.GetRepository(System.Reflection.Assembly)">
-            <summary>
-            Returns the default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.
-            </summary>
-            <returns>The default <see cref="T:log4net.Repository.ILoggerRepository"/> instance.</returns>
-            <remarks>
-            <para>
-            Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified
-            by the <paramref name="repositoryAssembly"/> argument.
-            </para>
-            </remarks>
-            <param name="repositoryAssembly">The assembly to use to lookup the repository.</param>
-        </member>
-        <member name="M:log4net.LogManager.CreateDomain(System.Type)">
-            <overloads>Create a domain</overloads>
-            <summary>
-            Creates a repository with the specified repository type.
-            </summary>
-            <remarks>
-            <para>
-            <b>CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.</b>
-            </para>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
-            specified such that a call to <see cref="M:log4net.LogManager.GetRepository"/> will return 
-            the same repository instance.
-            </para>
-            </remarks>
-            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
-            and has a no arg constructor. An instance of this type will be created to act
-            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
-        </member>
-        <member name="M:log4net.LogManager.CreateRepository(System.Type)">
-            <overloads>Create a logger repository.</overloads>
-            <summary>
-            Creates a repository with the specified repository type.
-            </summary>
-            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
-            and has a no arg constructor. An instance of this type will be created to act
-            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
-            specified such that a call to <see cref="M:log4net.LogManager.GetRepository"/> will return 
-            the same repository instance.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.LogManager.CreateDomain(System.String)">
-            <summary>
-            Creates a repository with the specified name.
-            </summary>
-            <remarks>
-            <para>
-            <b>CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.</b>
-            </para>
-            <para>
-            Creates the default type of <see cref="T:log4net.Repository.ILoggerRepository"/> which is a
-            <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> object.
-            </para>
-            <para>
-            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
-            An <see cref="T:System.Exception"/> will be thrown if the repository already exists.
-            </para>
-            </remarks>
-            <param name="repository">The name of the repository, this must be unique amongst repositories.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
-            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
-        </member>
-        <member name="M:log4net.LogManager.CreateRepository(System.String)">
-            <summary>
-            Creates a repository with the specified name.
-            </summary>
-            <remarks>
-            <para>
-            Creates the default type of <see cref="T:log4net.Repository.ILoggerRepository"/> which is a
-            <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> object.
-            </para>
-            <para>
-            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
-            An <see cref="T:System.Exception"/> will be thrown if the repository already exists.
-            </para>
-            </remarks>
-            <param name="repository">The name of the repository, this must be unique amongst repositories.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
-            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
-        </member>
-        <member name="M:log4net.LogManager.CreateDomain(System.String,System.Type)">
-            <summary>
-            Creates a repository with the specified name and repository type.
-            </summary>
-            <remarks>
-            <para>
-            <b>CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.</b>
-            </para>
-            <para>
-            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
-            An <see cref="T:System.Exception"/> will be thrown if the repository already exists.
-            </para>
-            </remarks>
-            <param name="repository">The name of the repository, this must be unique to the repository.</param>
-            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
-            and has a no arg constructor. An instance of this type will be created to act
-            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
-            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
-        </member>
-        <member name="M:log4net.LogManager.CreateRepository(System.String,System.Type)">
-            <summary>
-            Creates a repository with the specified name and repository type.
-            </summary>
-            <remarks>
-            <para>
-            The <paramref name="repository"/> name must be unique. Repositories cannot be redefined.
-            An <see cref="T:System.Exception"/> will be thrown if the repository already exists.
-            </para>
-            </remarks>
-            <param name="repository">The name of the repository, this must be unique to the repository.</param>
-            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
-            and has a no arg constructor. An instance of this type will be created to act
-            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
-            <exception cref="T:log4net.Core.LogException">The specified repository already exists.</exception>
-        </member>
-        <member name="M:log4net.LogManager.CreateDomain(System.Reflection.Assembly,System.Type)">
-            <summary>
-            Creates a repository for the specified assembly and repository type.
-            </summary>
-            <remarks>
-            <para>
-            <b>CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.</b>
-            </para>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
-            specified such that a call to <see cref="M:log4net.LogManager.GetRepository(System.Reflection.Assembly)"/> with the
-            same assembly specified will return the same repository instance.
-            </para>
-            </remarks>
-            <param name="repositoryAssembly">The assembly to use to get the name of the repository.</param>
-            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
-            and has a no arg constructor. An instance of this type will be created to act
-            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
-        </member>
-        <member name="M:log4net.LogManager.CreateRepository(System.Reflection.Assembly,System.Type)">
-            <summary>
-            Creates a repository for the specified assembly and repository type.
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="T:log4net.Repository.ILoggerRepository"/> created will be associated with the repository
-            specified such that a call to <see cref="M:log4net.LogManager.GetRepository(System.Reflection.Assembly)"/> with the
-            same assembly specified will return the same repository instance.
-            </para>
-            </remarks>
-            <param name="repositoryAssembly">The assembly to use to get the name of the repository.</param>
-            <param name="repositoryType">A <see cref="T:System.Type"/> that implements <see cref="T:log4net.Repository.ILoggerRepository"/>
-            and has a no arg constructor. An instance of this type will be created to act
-            as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the repository specified.</param>
-            <returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> created for the repository.</returns>
-        </member>
-        <member name="M:log4net.LogManager.GetAllRepositories">
-            <summary>
-            Gets the list of currently defined repositories.
-            </summary>
-            <remarks>
-            <para>
-            Get an array of all the <see cref="T:log4net.Repository.ILoggerRepository"/> objects that have been created.
-            </para>
-            </remarks>
-            <returns>An array of all the known <see cref="T:log4net.Repository.ILoggerRepository"/> objects.</returns>
-        </member>
-        <member name="M:log4net.LogManager.WrapLogger(log4net.Core.ILogger)">
-            <summary>
-            Looks up the wrapper object for the logger specified.
-            </summary>
-            <param name="logger">The logger to get the wrapper for.</param>
-            <returns>The wrapper for the logger specified.</returns>
-        </member>
-        <member name="M:log4net.LogManager.WrapLoggers(log4net.Core.ILogger[])">
-            <summary>
-            Looks up the wrapper objects for the loggers specified.
-            </summary>
-            <param name="loggers">The loggers to get the wrappers for.</param>
-            <returns>The wrapper objects for the loggers specified.</returns>
-        </member>
-        <member name="M:log4net.LogManager.WrapperCreationHandler(log4net.Core.ILogger)">
-            <summary>
-            Create the <see cref="T:log4net.Core.ILoggerWrapper"/> objects used by
-            this manager.
-            </summary>
-            <param name="logger">The logger to wrap.</param>
-            <returns>The wrapper for the logger specified.</returns>
-        </member>
-        <member name="F:log4net.LogManager.s_wrapperMap">
-            <summary>
-            The wrapper map to use to hold the <see cref="T:log4net.Core.LogImpl"/> objects.
-            </summary>
-        </member>
-        <member name="T:log4net.MDC">
-            <summary>
-            Implementation of Mapped Diagnostic Contexts.
-            </summary>
-            <remarks>
-            <note>
-            <para>
-            The MDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Properties"/>.
-            The current MDC implementation forwards to the <c>ThreadContext.Properties</c>.
-            </para>
-            </note>
-            <para>
-            The MDC class is similar to the <see cref="T:log4net.NDC"/> class except that it is
-            based on a map instead of a stack. It provides <i>mapped
-            diagnostic contexts</i>. A <i>Mapped Diagnostic Context</i>, or
-            MDC in short, is an instrument for distinguishing interleaved log
-            output from different sources. Log output is typically interleaved
-            when a server handles multiple clients near-simultaneously.
-            </para>
-            <para>
-            The MDC is managed on a per thread basis.
-            </para>
-            </remarks>
-            <threadsafety static="true" instance="true"/>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.MDC.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.MDC"/> class. 
-            </summary>
-            <remarks>
-            Uses a private access modifier to prevent instantiation of this class.
-            </remarks>
-        </member>
-        <member name="M:log4net.MDC.Get(System.String)">
-            <summary>
-            Gets the context value identified by the <paramref name="key"/> parameter.
-            </summary>
-            <param name="key">The key to lookup in the MDC.</param>
-            <returns>The string value held for the key, or a <c>null</c> reference if no corresponding value is found.</returns>
-            <remarks>
-            <note>
-            <para>
-            The MDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Properties"/>.
-            The current MDC implementation forwards to the <c>ThreadContext.Properties</c>.
-            </para>
-            </note>
-            <para>
-            If the <paramref name="key"/> parameter does not look up to a
-            previously defined context then <c>null</c> will be returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.MDC.Set(System.String,System.String)">
-            <summary>
-            Add an entry to the MDC
-            </summary>
-            <param name="key">The key to store the value under.</param>
-            <param name="value">The value to store.</param>
-            <remarks>
-            <note>
-            <para>
-            The MDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Properties"/>.
-            The current MDC implementation forwards to the <c>ThreadContext.Properties</c>.
-            </para>
-            </note>
-            <para>
-            Puts a context value (the <paramref name="val"/> parameter) as identified
-            with the <paramref name="key"/> parameter into the current thread's
-            context map.
-            </para>
-            <para>
-            If a value is already defined for the <paramref name="key"/>
-            specified then the value will be replaced. If the <paramref name="val"/> 
-            is specified as <c>null</c> then the key value mapping will be removed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.MDC.Remove(System.String)">
-            <summary>
-            Removes the key value mapping for the key specified.
-            </summary>
-            <param name="key">The key to remove.</param>
-            <remarks>
-            <note>
-            <para>
-            The MDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Properties"/>.
-            The current MDC implementation forwards to the <c>ThreadContext.Properties</c>.
-            </para>
-            </note>
-            <para>
-            Remove the specified entry from this thread's MDC
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.MDC.Clear">
-            <summary>
-            Clear all entries in the MDC
-            </summary>
-            <remarks>
-            <note>
-            <para>
-            The MDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Properties"/>.
-            The current MDC implementation forwards to the <c>ThreadContext.Properties</c>.
-            </para>
-            </note>
-            <para>
-            Remove all the entries from this thread's MDC
-            </para>
-            </remarks>
-        </member>
-        <member name="T:log4net.NDC">
-            <summary>
-            Implementation of Nested Diagnostic Contexts.
-            </summary>
-            <remarks>
-            <note>
-            <para>
-            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
-            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
-            </para>
-            </note>
-            <para>
-            A Nested Diagnostic Context, or NDC in short, is an instrument
-            to distinguish interleaved log output from different sources. Log
-            output is typically interleaved when a server handles multiple
-            clients near-simultaneously.
-            </para>
-            <para>
-            Interleaved log output can still be meaningful if each log entry
-            from different contexts had a distinctive stamp. This is where NDCs
-            come into play.
-            </para>
-            <para>
-            Note that NDCs are managed on a per thread basis. The NDC class
-            is made up of static methods that operate on the context of the
-            calling thread.
-            </para>
-            </remarks>
-            <example>How to push a message into the context
-            <code lang="C#">
-            using(NDC.Push("my context message"))
-            {
-            	... all log calls will have 'my context message' included ...
-            
-            } // at the end of the using block the message is automatically removed 
-            </code>
-            </example>
-            <threadsafety static="true" instance="true"/>
-            <author>Nicko Cadell</author>
-            <author>Gert Driesen</author>
-        </member>
-        <member name="M:log4net.NDC.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:log4net.NDC"/> class. 
-            </summary>
-            <remarks>
-            Uses a private access modifier to prevent instantiation of this class.
-            </remarks>
-        </member>
-        <member name="M:log4net.NDC.Clear">
-            <summary>
-            Clears all the contextual information held on the current thread.
-            </summary>
-            <remarks>
-            <note>
-            <para>
-            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
-            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
-            </para>
-            </note>
-            <para>
-            Clears the stack of NDC data held on the current thread.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.NDC.CloneStack">
-            <summary>
-            Creates a clone of the stack of context information.
-            </summary>
-            <returns>A clone of the context info for this thread.</returns>
-            <remarks>
-            <note>
-            <para>
-            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
-            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
-            </para>
-            </note>
-            <para>
-            The results of this method can be passed to the <see cref="M:log4net.NDC.Inherit(System.Collections.Stack)"/> 
-            method to allow child threads to inherit the context of their 
-            parent thread.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.NDC.Inherit(System.Collections.Stack)">
-            <summary>
-            Inherits the contextual information from another thread.
-            </summary>
-            <param name="stack">The context stack to inherit.</param>
-            <remarks>
-            <note>
-            <para>
-            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
-            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
-            </para>
-            </note>
-            <para>
-            This thread will use the context information from the stack
-            supplied. This can be used to initialize child threads with
-            the same contextual information as their parent threads. These
-            contexts will <b>NOT</b> be shared. Any further contexts that
-            are pushed onto the stack will not be visible to the other.
-            Call <see cref="M:log4net.NDC.CloneStack"/> to obtain a stack to pass to
-            this method.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.NDC.Pop">
-            <summary>
-            Removes the top context from the stack.
-            </summary>
-            <returns>
-            The message in the context that was removed from the top 
-            of the stack.
-            </returns>
-            <remarks>
-            <note>
-            <para>
-            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
-            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
-            </para>
-            </note>
-            <para>
-            Remove the top context from the stack, and return
-            it to the caller. If the stack is empty then an
-            empty string (not <c>null</c>) is returned.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.NDC.Push(System.String)">
-            <summary>
-            Pushes a new context message.
-            </summary>
-            <param name="message">The new context message.</param>
-            <returns>
-            An <see cref="T:System.IDisposable"/> that can be used to clean up 
-            the context stack.
-            </returns>
-            <remarks>
-            <note>
-            <para>
-            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
-            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
-            </para>
-            </note>
-            <para>
-            Pushes a new context onto the context stack. An <see cref="T:System.IDisposable"/>
-            is returned that can be used to clean up the context stack. This
-            can be easily combined with the <c>using</c> keyword to scope the
-            context.
-            </para>
-            </remarks>
-            <example>Simple example of using the <c>Push</c> method with the <c>using</c> keyword.
-            <code lang="C#">
-            using(log4net.NDC.Push("NDC_Message"))
-            {
-            	log.Warn("This should have an NDC message");
-            }
-            </code>
-            </example>
-        </member>
-        <member name="M:log4net.NDC.Remove">
-            <summary>
-            Removes the context information for this thread. It is
-            not required to call this method.
-            </summary>
-            <remarks>
-            <note>
-            <para>
-            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
-            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
-            </para>
-            </note>
-            <para>
-            This method is not implemented.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:log4net.NDC.SetMaxDepth(System.Int32)">
-            <summary>
-            Forces the stack depth to be at most <paramref name="maxDepth"/>.
-            </summary>
-            <param name="maxDepth">The maximum depth of the stack</param>
-            <remarks>
-            <note>
-            <para>
-            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
-            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
-            </para>
-            </note>
-            <para>
-            Forces the stack depth to be at most <paramref name="maxDepth"/>.
-            This may truncate the head of the stack. This only affects the 
-            stack in the current thread. Also it does not prevent it from
-            growing, it only sets the maximum depth at the time of the
-            call. This can be used to return to a known context depth.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.NDC.Depth">
-            <summary>
-            Gets the current context depth.
-            </summary>
-            <value>The current context depth.</value>
-            <remarks>
-            <note>
-            <para>
-            The NDC is deprecated and has been replaced by the <see cref="P:log4net.ThreadContext.Stacks"/>.
-            The current NDC implementation forwards to the <c>ThreadContext.Stacks["NDC"]</c>.
-            </para>
-            </note>
-            <para>
-            The number of context values pushed onto the context stack.
-            </para>
-            <para>
-            Used to record the current depth of the context. This can then 
-            be restored using the <see cref="M:log4net.NDC.SetMaxDepth(System.Int32)"/> method.
-            </para>
-            </remarks>
-            <seealso cref="M:log4net.NDC.SetMaxDepth(System.Int32)"/>
-        </member>
-        <member name="T:log4net.ThreadContext">
-            <summary>
-            The log4net Thread Context.
-            </summary>
-            <remarks>
-            <para>
-            The <c>ThreadContext</c> provides a location for thread specific debugging 
-            information to be stored.
-            The <c>ThreadContext</c> properties override any <see cref="T:log4net.GlobalContext"/>
-            properties with the same name.
-            </para>
-            <para>
-            The thread context has a properties map and a stack.
-            The properties and stack can 
-            be included in the output of log messages. The <see cref="T:log4net.Layout.PatternLayout"/>
-            supports selecting and outputting these properties.
-            </para>
-            <para>
-            The Thread Context provides a diagnostic context for the current thread. 
-            This is an instrument for distinguishing interleaved log
-            output from different sources. Log output is typically interleaved
-            when a server handles multiple clients near-simultaneously.
-            </para>
-            <para>
-            The Thread Context is managed on a per thread basis.
-            </para>
-            </remarks>
-            <example>Example of using the thread context properties to store a username.
-            <code lang="C#">
-            ThreadContext.Properties["user"] = userName;
-            log.Info("This log message has a ThreadContext Property called 'user'");
-            </code>
-            </example>
-            <example>Example of how to push a message into the context stack
-            <code lang="C#">
-            using(ThreadContext.Stacks["NDC"].Push("my context message"))
-            {
-            	log.Info("This log message has a ThreadContext Stack message that includes 'my context message'");
-            
-            } // at the end of the using block the message is automatically popped 
-            </code>
-            </example>
-            <threadsafety static="true" instance="true"/>
-            <author>Nicko Cadell</author>
-        </member>
-        <member name="M:log4net.ThreadContext.#ctor">
-            <summary>
-            Private Constructor. 
-            </summary>
-            <remarks>
-            <para>
-            Uses a private access modifier to prevent instantiation of this class.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:log4net.ThreadContext.s_properties">
-            <summary>
-            The thread context properties instance
-            </summary>
-        </member>
-        <member name="F:log4net.ThreadContext.s_stacks">
-            <summary>
-            The thread context stacks instance
-            </summary>
-        </member>
-        <member name="P:log4net.ThreadContext.Properties">
-            <summary>
-            The thread properties map
-            </summary>
-            <value>
-            The thread properties map
-            </value>
-            <remarks>
-            <para>
-            The <c>ThreadContext</c> properties override any <see cref="T:log4net.GlobalContext"/>
-            properties with the same name.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:log4net.ThreadContext.Stacks">
-            <summary>
-            The thread stacks
-            </summary>
-            <value>
-            stack map
-            </value>
-            <remarks>
-            <para>
-            The thread local stacks.
-            </para>
-            </remarks>
-        </member>
-    </members>
-</doc>
diff --git a/lib/libdvd/libdvdnav/msvc/config.h b/lib/libdvd/libdvdnav/msvc/config.h
deleted file mode 100755
index 25f68fb..0000000
--- a/lib/libdvd/libdvdnav/msvc/config.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* config.h.  Generated by hand.  */
-
-#ifndef LIBDVNAV_CONFIG_H
-#define LIBDVNAV_CONFIG_H
-
-#define HAVE_DLFCN_H 1
-/* #undef HAVE_DVDCSS_DVDCSS_H*/
-/* #undef HAVE_INTTYPES_H */
-#define HAVE_MEMORY_H 1
-/* #undef HAVE_STDINT_H */
-#define HAVE_STDLIB_H 1
-#define HAVE_STRINGS_H 1
-#define HAVE_STRING_H 1
-#define HAVE_SYS_STAT_H 1
-#define HAVE_SYS_TYPES_H 1
-/* #undef HAVE_UNISTD_H */
-#define PACKAGE "libdvdread"
-#define PACKAGE_BUGREPORT ""
-#define PACKAGE_NAME ""
-#define PACKAGE_STRING ""
-#define PACKAGE_TARNAME ""
-#define PACKAGE_VERSION ""
-#define STDC_HEADERS 1
-#define VERSION "1.2.6"
-/* #undef WORDS_BIGENDIAN */
-/* #undef __DARWIN__ */
-/* #undef const */
-#define inline __inline
-/* #undef size_t */
-
-#define ssize_t __int64
-
-#ifndef PATH_MAX
-#define PATH_MAX MAX_PATH
-#endif
-
-#define strcasecmp stricmp
-#define strncasecmp strnicmp
-
-#define S_ISDIR(m) ((m) & _S_IFDIR)
-#define S_ISREG(m) ((m) & _S_IFREG)
-#define S_ISBLK(m) 0
-#define S_ISCHR(m) 0
-
-/* Fallback types (very x86-centric, sorry) */
-typedef unsigned char       uint8_t;
-typedef signed char         int8_t;
-typedef unsigned short      uint16_t;
-typedef signed short        int16_t;
-typedef unsigned int        uint32_t;
-typedef signed int          int32_t;
-typedef unsigned __int64    uint64_t;
-typedef signed __int64      int64_t;
-typedef unsigned int        uintptr_t;
-
-#endif /* LIBDVNAV_CONFIG_H */
diff --git a/lib/libdvd/libdvdnav/msvc/contrib/bcopy.c b/lib/libdvd/libdvdnav/msvc/contrib/bcopy.c
deleted file mode 100755
index 21be364..0000000
--- a/lib/libdvd/libdvdnav/msvc/contrib/bcopy.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <string.h>
-
-void bcopy(const void *IN, void *OUT, size_t N);
-
-void bcopy(const void *IN, void *OUT, size_t N)
-{
-  memcpy(OUT, IN, N);
-}
diff --git a/lib/libdvd/libdvdnav/msvc/contrib/dirent/dirent.c b/lib/libdvd/libdvdnav/msvc/contrib/dirent/dirent.c
deleted file mode 100755
index 00289ed..0000000
--- a/lib/libdvd/libdvdnav/msvc/contrib/dirent/dirent.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
-
-    Implementation of POSIX directory browsing functions and types for Win32.
-
-    Kevlin Henney (mailto:kevlin at acm.org), March 1997.
-
-    Copyright Kevlin Henney, 1997. All rights reserved.
-
-    Permission to use, copy, modify, and distribute this software and its
-    documentation for any purpose is hereby granted without fee, provided
-    that this copyright and permissions notice appear in all copies and
-    derivatives, and that no charge may be made for the software and its
-    documentation except to cover cost of distribution.
-
-    This software is supplied "as is" without express or implied warranty.
-
-    But that said, if there are any problems please get in touch.
-
-*/
-
-#include <dirent.h>
-#include <errno.h>
-#include <io.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifndef DIR
-
-struct DIR
-{
-    long                handle; /* -1 for failed rewind */
-    struct _finddata_t  info;
-    struct dirent       result; /* d_name null iff first time */
-    char                *name;  /* NTBS */
-};
-
-#endif
-
-DIR *opendir(const char *name)
-{
-    DIR *dir = 0;
-
-    if(name && name[0])
-    {
-        size_t base_length = strlen(name);
-        const char *all = /* the root directory is a special case... */
-            strchr("/\\", name[base_length - 1]) ? "*" : "/*";
-
-        if((dir = (DIR *) malloc(sizeof *dir)) != 0 &&
-           (dir->name = (char *) malloc(base_length + strlen(all) + 1)) != 0)
-        {
-            strcat(strcpy(dir->name, name), all);
-
-            if((dir->handle = _findfirst(dir->name, &dir->info)) != -1)
-            {
-                dir->result.d_name = 0;
-            }
-            else /* rollback */
-            {
-                free(dir->name);
-                free(dir);
-                dir = 0;
-            }
-        }
-        else /* rollback */
-        {
-            free(dir);
-            dir   = 0;
-            errno = ENOMEM;
-        }
-    }
-    else
-    {
-        errno = EINVAL;
-    }
-
-    return dir;
-}
-
-int closedir(DIR *dir)
-{
-    int result = -1;
-
-    if(dir)
-    {
-        if(dir->handle != -1)
-        {
-            result = _findclose(dir->handle);
-        }
-
-        free(dir->name);
-        free(dir);
-    }
-
-    if(result == -1) /* map all errors to EBADF */
-    {
-        errno = EBADF;
-    }
-
-    return result;
-}
-
-struct dirent *readdir(DIR *dir)
-{
-    struct dirent *result = 0;
-
-    if(dir && dir->handle != -1)
-    {
-        if(!dir->result.d_name || _findnext(dir->handle, &dir->info) != -1)
-        {
-            result         = &dir->result;
-            result->d_name = dir->info.name;
-        }
-    }
-    else
-    {
-        errno = EBADF;
-    }
-
-    return result;
-}
-
-void rewinddir(DIR *dir)
-{
-    if(dir && dir->handle != -1)
-    {
-        _findclose(dir->handle);
-        dir->handle = _findfirst(dir->name, &dir->info);
-        dir->result.d_name = 0;
-    }
-    else
-    {
-        errno = EBADF;
-    }
-}
diff --git a/lib/libdvd/libdvdnav/msvc/contrib/dirent/dirent.h b/lib/libdvd/libdvdnav/msvc/contrib/dirent/dirent.h
deleted file mode 100755
index 28a1773..0000000
--- a/lib/libdvd/libdvdnav/msvc/contrib/dirent/dirent.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-
-    Declaration of POSIX directory browsing functions and types for Win32.
-
-    Kevlin Henney (mailto:kevlin at acm.org), March 1997.
-
-    Copyright Kevlin Henney, 1997. All rights reserved.
-
-    Permission to use, copy, modify, and distribute this software and its
-    documentation for any purpose is hereby granted without fee, provided
-    that this copyright and permissions notice appear in all copies and
-    derivatives, and that no charge may be made for the software and its
-    documentation except to cover cost of distribution.
-
-*/
-
-#ifndef DIRENT_INCLUDED
-#define DIRENT_INCLUDED
-
-typedef struct DIR DIR;
-
-struct dirent
-{
-    char *d_name;
-};
-
-DIR           *opendir(const char *);
-int           closedir(DIR *);
-struct dirent *readdir(DIR *);
-void          rewinddir(DIR *);
-
-#endif
diff --git a/lib/libdvd/libdvdnav/msvc/contrib/dlfcn.c b/lib/libdvd/libdvdnav/msvc/contrib/dlfcn.c
deleted file mode 100755
index 3a00045..0000000
--- a/lib/libdvd/libdvdnav/msvc/contrib/dlfcn.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Adopted from Apache DSO code.
- * Portions copyright Apache Software Foundation
- *
- * Structures and types used to implement dlopen, dlsym, etc.
- * on Windows 95/NT.
- */
-#include <windows.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "dlfcn.h"
-#include "os_types.h"
-
-void *dlopen(const char *module_name, int mode)
-{
-    UINT em;
-    HINSTANCE dsoh;
-    char path[MAX_PATH], *p;
-    /* Load the module...
-     * per PR2555, the LoadLibraryEx function is very picky about slashes.
-     * Debugging on NT 4 SP 6a reveals First Chance Exception within NTDLL.
-     * LoadLibrary in the MS PSDK also reveals that it -explicitly- states
-     * that backslashes must be used.
-     *
-     * Transpose '\' for '/' in the filename.
-     */
-    (void)strncpy(path, module_name, MAX_PATH);
-    p = path;
-    while (p = strchr(p, '/'))
-        *p = '\\';
-
-    /* First assume the dso/dll's required by -this- dso are sitting in the
-     * same path or can be found in the usual places.  Failing that, let's
-     * let that dso look in the apache root.
-     */
-    em = SetErrorMode(SEM_FAILCRITICALERRORS);
-    dsoh = LoadLibraryEx(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
-    if (!dsoh)
-    {
-        SetLastError(0); // clear the last error
-        dsoh = LoadLibraryEx(path, NULL, 0);
-    }
-    SetErrorMode(em);
-    SetLastError(0); // clear the last error
-    return (void *)dsoh;
-}
-
-char *dlerror(void)
-{
-    int len, nErrorCode;
-    static char errstr[120];
-    /* This is -not- threadsafe code, but it's about the best we can do.
-     * mostly a potential problem for isapi modules, since LoadModule
-     * errors are handled within a single config thread.
-     */
-
-    if((nErrorCode = GetLastError()) == 0)
-      return((char *)0);
-
-    SetLastError(0); // clear the last error
-    len = snprintf(errstr, sizeof(errstr), "(%d) ", nErrorCode);
-
-    len += FormatMessage(
-            FORMAT_MESSAGE_FROM_SYSTEM,
-            NULL,
-            nErrorCode,
-            MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */
-            (LPTSTR) errstr + len,
-            sizeof(errstr) - len,
-            NULL
-        );
-        /* FormatMessage may have appended a newline (\r\n). So remove it
-         * and use ": " instead like the Unix errors. The error may also
-         * end with a . before the return - if so, trash it.
-         */
-    if (len > 1 && errstr[len-2] == '\r' && errstr[len-1] == '\n') {
-        if (len > 2 && errstr[len-3] == '.')
-            len--;
-        errstr[len-2] = ':';
-        errstr[len-1] = ' ';
-    }
-    return errstr;
-}
-
-int dlclose(void *handle)
-{
-  return  FreeLibrary(handle);
-}
-
-void *dlsym(void *handle, const char *name)
-{
-  return GetProcAddress(handle, name);
-}
diff --git a/lib/libdvd/libdvdnav/msvc/contrib/getopt.c b/lib/libdvd/libdvdnav/msvc/contrib/getopt.c
deleted file mode 100755
index b4634e1..0000000
--- a/lib/libdvd/libdvdnav/msvc/contrib/getopt.c
+++ /dev/null
@@ -1,1009 +0,0 @@
-/* Getopt for GNU.
-   NOTE: getopt is now part of the C library, so if you don't know what
-   "Keep this file name-space clean" means, talk to roland at gnu.ai.mit.edu
-   before changing it!
-
-   Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
-   Free Software Foundation, Inc.
-
-   This file is part of the GNU C Library.  Its master source is NOT part of
-   the C library, however.  The master source lives in /gd/gnu/lib.
-
-   The GNU C 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.
-
-   The GNU C Library is distributed in the hope that 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 the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
-   Floor, Boston, MA 02110-1301 USA.  */
-
-/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
-   Ditto for AIX 3.2 and <stdlib.h>.  */
-#ifndef _NO_PROTO
-#define _NO_PROTO
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#if !defined (__STDC__) || !__STDC__
-/* This is a separate conditional since some stdc systems
-   reject `defined (const)'.  */
-#ifndef const
-#define const
-#endif
-#endif
-
-#include <stdio.h>
-
-/* Comment out all this code if we are using the GNU C Library, and are not
-   actually compiling the library itself.  This code is part of the GNU C
-   Library, but also included in many other GNU distributions.  Compiling
-   and linking in this code is a waste when using the GNU C library
-   (especially if it is a shared library).  Rather than having every GNU
-   program understand `configure --with-gnu-libc' and omit the object files,
-   it is simpler to just do this in the source for each such file.  */
-
-#define GETOPT_INTERFACE_VERSION 2
-#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
-#include <gnu-versions.h>
-#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
-#define ELIDE_CODE
-#endif
-#endif
-
-#ifndef ELIDE_CODE
-
-/* This needs to come after some library #include
-   to get __GNU_LIBRARY__ defined.  */
-#ifdef	__GNU_LIBRARY__
-/* Don't include stdlib.h for non-GNU C libraries because some of them
-   contain conflicting prototypes for getopt.  */
-#include <stdlib.h>
-#include <unistd.h>
-#endif /* GNU C library.  */
-
-#ifdef VMS
-#include <unixlib.h>
-#if HAVE_STRING_H - 0
-#include <string.h>
-#ifdef STRNCASECMP_IN_STRINGS_H
-#   include <strings.h>
-#endif
-#endif
-#endif
-
-#if defined (WIN32) && !defined (__CYGWIN32__) || defined(UNDER_CE)
-/* It's not Unix, really.  See?  Capital letters.  */
-#include <windows.h>
-#define getpid() GetCurrentProcessId()
-#endif
-
-#ifndef _
-/* This is for other GNU distributions with internationalized messages.
-   When compiling libc, the _ macro is predefined.  */
-#ifdef HAVE_LIBINTL_H
-#include <libintl.h>
-#define _(msgid)	gettext (msgid)
-#else
-#define _(msgid)	(msgid)
-#endif
-#endif
-
-/* This version of `getopt' appears to the caller like standard Unix `getopt'
-   but it behaves differently for the user, since it allows the user
-   to intersperse the options with the other arguments.
-
-   As `getopt' works, it permutes the elements of ARGV so that,
-   when it is done, all the options precede everything else.  Thus
-   all application programs are extended to handle flexible argument order.
-
-   Setting the environment variable POSIXLY_CORRECT disables permutation.
-   Then the behavior is completely standard.
-
-   GNU application programs can use a third alternative mode in which
-   they can distinguish the relative order of options and other arguments.  */
-
-#include "getopt.h"
-
-/* For communication from `getopt' to the caller.
-   When `getopt' finds an option that takes an argument,
-   the argument value is returned here.
-   Also, when `ordering' is RETURN_IN_ORDER,
-   each non-option ARGV-element is returned here.  */
-
-char *optarg = NULL;
-
-/* Index in ARGV of the next element to be scanned.
-   This is used for communication to and from the caller
-   and for communication between successive calls to `getopt'.
-
-   On entry to `getopt', zero means this is the first call; initialize.
-
-   When `getopt' returns -1, this is the index of the first of the
-   non-option elements that the caller should itself scan.
-
-   Otherwise, `optind' communicates from one call to the next
-   how much of ARGV has been scanned so far.  */
-
-/* 1003.2 says this must be 1 before any call.  */
-int optind = 1;
-
-/* Formerly, initialization of getopt depended on optind==0, which
-   causes problems with re-calling getopt as programs generally don't
-   know that. */
-
-int __getopt_initialized = 0;
-
-/* The next char to be scanned in the option-element
-   in which the last option character we returned was found.
-   This allows us to pick up the scan where we left off.
-
-   If this is zero, or a null string, it means resume the scan
-   by advancing to the next ARGV-element.  */
-
-static char *nextchar;
-
-/* Callers store zero here to inhibit the error message
-   for unrecognized options.  */
-
-int opterr = 1;
-
-/* Set to an option character which was unrecognized.
-   This must be initialized on some systems to avoid linking in the
-   system's own getopt implementation.  */
-
-int optopt = '?';
-
-/* Describe how to deal with options that follow non-option ARGV-elements.
-
-   If the caller did not specify anything,
-   the default is REQUIRE_ORDER if the environment variable
-   POSIXLY_CORRECT is defined, PERMUTE otherwise.
-
-   REQUIRE_ORDER means don't recognize them as options;
-   stop option processing when the first non-option is seen.
-   This is what Unix does.
-   This mode of operation is selected by either setting the environment
-   variable POSIXLY_CORRECT, or using `+' as the first character
-   of the list of option characters.
-
-   PERMUTE is the default.  We permute the contents of ARGV as we scan,
-   so that eventually all the non-options are at the end.  This allows options
-   to be given in any order, even with programs that were not written to
-   expect this.
-
-   RETURN_IN_ORDER is an option available to programs that were written
-   to expect options and other ARGV-elements in any order and that care about
-   the ordering of the two.  We describe each non-option ARGV-element
-   as if it were the argument of an option with character code 1.
-   Using `-' as the first character of the list of option characters
-   selects this mode of operation.
-
-   The special argument `--' forces an end of option-scanning regardless
-   of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
-   `--' can cause `getopt' to return -1 with `optind' != ARGC.  */
-
-static enum
-{
-	REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
-}
-ordering;
-
-/* Value of POSIXLY_CORRECT environment variable.  */
-static char *posixly_correct;
-
-#ifdef	__GNU_LIBRARY__
-/* We want to avoid inclusion of string.h with non-GNU libraries
-   because there are many ways it can cause trouble.
-   On some systems, it contains special magic macros that don't work
-   in GCC.  */
-#include <string.h>
-#define	my_index	strchr
-#else
-
-/* Avoid depending on library functions or files
-   whose names are inconsistent.  */
-
-char *getenv();
-
-static char *
-     my_index(str, chr)
-     const char *str;
-     int chr;
-{
-	while (*str)
-	{
-		if (*str == chr)
-			return (char *) str;
-		str++;
-	}
-	return 0;
-}
-
-/* If using GCC, we can safely declare strlen this way.
-   If not using GCC, it is ok not to declare it.  */
-#ifdef __GNUC__
-/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
-   That was relevant to code that was here before.  */
-#if !defined (__STDC__) || !__STDC__
-/* gcc with -traditional declares the built-in strlen to return int,
-   and has done so at least since version 2.4.5. -- rms.  */
-extern int strlen(const char *);
-
-#endif /* not __STDC__ */
-#endif /* __GNUC__ */
-
-#endif /* not __GNU_LIBRARY__ */
-
-/* Handle permutation of arguments.  */
-
-/* Describe the part of ARGV that contains non-options that have
-   been skipped.  `first_nonopt' is the index in ARGV of the first of them;
-   `last_nonopt' is the index after the last of them.  */
-
-static int first_nonopt;
-static int last_nonopt;
-
-#ifdef _LIBC
-/* Bash 2.0 gives us an environment variable containing flags
-   indicating ARGV elements that should not be considered arguments.  */
-
-static const char *nonoption_flags;
-static int nonoption_flags_len;
-
-static int original_argc;
-static char *const *original_argv;
-
-/* Make sure the environment variable bash 2.0 puts in the environment
-   is valid for the getopt call we must make sure that the ARGV passed
-   to getopt is that one passed to the process.  */
-static void store_args(int argc, char *const *argv) __attribute__((unused));
-     static void
-          store_args(int argc, char *const *argv)
-{
-	/* XXX This is no good solution.  We should rather copy the args so
-	   that we can compare them later.  But we must not use malloc(3).  */
-	original_argc = argc;
-	original_argv = argv;
-}
-text_set_element(__libc_subinit, store_args);
-#endif
-
-/* Exchange two adjacent subsequences of ARGV.
-   One subsequence is elements [first_nonopt,last_nonopt)
-   which contains all the non-options that have been skipped so far.
-   The other is elements [last_nonopt,optind), which contains all
-   the options processed since those non-options were skipped.
-
-   `first_nonopt' and `last_nonopt' are relocated so that they describe
-   the new indices of the non-options in ARGV after they are moved.  */
-
-#if defined (__STDC__) && __STDC__
-static void exchange(char **);
-
-#endif
-
-static void
-     exchange(argv)
-     char **argv;
-{
-	int bottom = first_nonopt;
-	int middle = last_nonopt;
-	int top = optind;
-	char *tem;
-
-	/* Exchange the shorter segment with the far end of the longer segment.
-	   That puts the shorter segment into the right place.
-	   It leaves the longer segment in the right place overall,
-	   but it consists of two parts that need to be swapped next.  */
-
-	while (top > middle && middle > bottom)
-	{
-		if (top - middle > middle - bottom)
-		{
-			/* Bottom segment is the short one.  */
-			int len = middle - bottom;
-			register int i;
-
-			/* Swap it with the top part of the top segment.  */
-			for (i = 0; i < len; i++)
-			{
-				tem = argv[bottom + i];
-				argv[bottom + i] = argv[top - (middle - bottom) + i];
-				argv[top - (middle - bottom) + i] = tem;
-			}
-			/* Exclude the moved bottom segment from further swapping.  */
-			top -= len;
-		}
-		else
-		{
-			/* Top segment is the short one.  */
-			int len = top - middle;
-			register int i;
-
-			/* Swap it with the bottom part of the bottom segment.  */
-			for (i = 0; i < len; i++)
-			{
-				tem = argv[bottom + i];
-				argv[bottom + i] = argv[middle + i];
-				argv[middle + i] = tem;
-			}
-			/* Exclude the moved top segment from further swapping.  */
-			bottom += len;
-		}
-	}
-
-	/* Update records for the slots the non-options now occupy.  */
-
-	first_nonopt += (optind - last_nonopt);
-	last_nonopt = optind;
-}
-
-/* Initialize the internal data when the first call is made.  */
-
-#if defined (__STDC__) && __STDC__
-static const char *_getopt_initialize(int, char *const *, const char *);
-
-#endif
-static const char *
-     _getopt_initialize(argc, argv, optstring)
-     int argc;
-     char *const *argv;
-     const char *optstring;
-{
-	/* Start processing options with ARGV-element 1 (since ARGV-element 0
-	   is the program name); the sequence of previously skipped
-	   non-option ARGV-elements is empty.  */
-
-	first_nonopt = last_nonopt = optind = 1;
-
-	nextchar = NULL;
-
-	posixly_correct = getenv("POSIXLY_CORRECT");
-
-	/* Determine how to handle the ordering of options and nonoptions.  */
-
-	if (optstring[0] == '-')
-	{
-		ordering = RETURN_IN_ORDER;
-		++optstring;
-	}
-	else if (optstring[0] == '+')
-	{
-		ordering = REQUIRE_ORDER;
-		++optstring;
-	}
-	else if (posixly_correct != NULL)
-		ordering = REQUIRE_ORDER;
-	else
-		ordering = PERMUTE;
-
-#ifdef _LIBC
-	if (posixly_correct == NULL
-	    && argc == original_argc && argv == original_argv)
-	{
-		/* Bash 2.0 puts a special variable in the environment for each
-		   command it runs, specifying which ARGV elements are the results of
-		   file name wildcard expansion and therefore should not be
-		   considered as options.  */
-		char var[100];
-
-		sprintf(var, "_%d_GNU_nonoption_argv_flags_", getpid());
-		nonoption_flags = getenv(var);
-		if (nonoption_flags == NULL)
-			nonoption_flags_len = 0;
-		else
-			nonoption_flags_len = strlen(nonoption_flags);
-	}
-	else
-		nonoption_flags_len = 0;
-#endif
-
-	return optstring;
-}
-
-/* Scan elements of ARGV (whose length is ARGC) for option characters
-   given in OPTSTRING.
-
-   If an element of ARGV starts with '-', and is not exactly "-" or "--",
-   then it is an option element.  The characters of this element
-   (aside from the initial '-') are option characters.  If `getopt'
-   is called repeatedly, it returns successively each of the option characters
-   from each of the option elements.
-
-   If `getopt' finds another option character, it returns that character,
-   updating `optind' and `nextchar' so that the next call to `getopt' can
-   resume the scan with the following option character or ARGV-element.
-
-   If there are no more option characters, `getopt' returns -1.
-   Then `optind' is the index in ARGV of the first ARGV-element
-   that is not an option.  (The ARGV-elements have been permuted
-   so that those that are not options now come last.)
-
-   OPTSTRING is a string containing the legitimate option characters.
-   If an option character is seen that is not listed in OPTSTRING,
-   return '?' after printing an error message.  If you set `opterr' to
-   zero, the error message is suppressed but we still return '?'.
-
-   If a char in OPTSTRING is followed by a colon, that means it wants an arg,
-   so the following text in the same ARGV-element, or the text of the following
-   ARGV-element, is returned in `optarg'.  Two colons mean an option that
-   wants an optional arg; if there is text in the current ARGV-element,
-   it is returned in `optarg', otherwise `optarg' is set to zero.
-
-   If OPTSTRING starts with `-' or `+', it requests different methods of
-   handling the non-option ARGV-elements.
-   See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
-
-   Long-named options begin with `--' instead of `-'.
-   Their names may be abbreviated as long as the abbreviation is unique
-   or is an exact match for some defined option.  If they have an
-   argument, it follows the option name in the same ARGV-element, separated
-   from the option name by a `=', or else the in next ARGV-element.
-   When `getopt' finds a long-named option, it returns 0 if that option's
-   `flag' field is nonzero, the value of the option's `val' field
-   if the `flag' field is zero.
-
-   The elements of ARGV aren't really const, because we permute them.
-   But we pretend they're const in the prototype to be compatible
-   with other systems.
-
-   LONGOPTS is a vector of `struct option' terminated by an
-   element containing a name which is zero.
-
-   LONGIND returns the index in LONGOPT of the long-named option found.
-   It is only valid when a long-named option has been found by the most
-   recent call.
-
-   If LONG_ONLY is nonzero, '-' as well as '--' can introduce
-   long-named options.  */
-
-int
-    _getopt_internal(argc, argv, optstring, longopts, longind, long_only)
-     int argc;
-     char *const *argv;
-     const char *optstring;
-     const struct option *longopts;
-     int *longind;
-     int long_only;
-{
-	optarg = NULL;
-
-	if (!__getopt_initialized || optind == 0)
-	{
-		optstring = _getopt_initialize(argc, argv, optstring);
-		optind = 1;	/* Don't scan ARGV[0], the program name.  */
-		__getopt_initialized = 1;
-	}
-
-	/* Test whether ARGV[optind] points to a non-option argument.
-	   Either it does not have option syntax, or there is an environment flag
-	   from the shell indicating it is not an option.  The later information
-	   is only used when the used in the GNU libc.  */
-#ifdef _LIBC
-#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0'	      \
-		     || (optind < nonoption_flags_len			      \
-			 && nonoption_flags[optind] == '1'))
-#else
-#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
-#endif
-
-	if (nextchar == NULL || *nextchar == '\0')
-	{
-		/* Advance to the next ARGV-element.  */
-
-		/* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been
-		   moved back by the user (who may also have changed the arguments).  */
-		if (last_nonopt > optind)
-			last_nonopt = optind;
-		if (first_nonopt > optind)
-			first_nonopt = optind;
-
-		if (ordering == PERMUTE)
-		{
-			/* If we have just processed some options following some non-options,
-			   exchange them so that the options come first.  */
-
-			if (first_nonopt != last_nonopt && last_nonopt != optind)
-				exchange((char **) argv);
-			else if (last_nonopt != optind)
-				first_nonopt = optind;
-
-			/* Skip any additional non-options
-			   and extend the range of non-options previously skipped.  */
-
-			while (optind < argc && NONOPTION_P)
-				optind++;
-			last_nonopt = optind;
-		}
-
-		/* The special ARGV-element `--' means premature end of options.
-		   Skip it like a null option,
-		   then exchange with previous non-options as if it were an option,
-		   then skip everything else like a non-option.  */
-
-		if (optind != argc && !strcmp(argv[optind], "--"))
-		{
-			optind++;
-
-			if (first_nonopt != last_nonopt && last_nonopt != optind)
-				exchange((char **) argv);
-			else if (first_nonopt == last_nonopt)
-				first_nonopt = optind;
-			last_nonopt = argc;
-
-			optind = argc;
-		}
-
-		/* If we have done all the ARGV-elements, stop the scan
-		   and back over any non-options that we skipped and permuted.  */
-
-		if (optind == argc)
-		{
-			/* Set the next-arg-index to point at the non-options
-			   that we previously skipped, so the caller will digest them.  */
-			if (first_nonopt != last_nonopt)
-				optind = first_nonopt;
-			return -1;
-		}
-
-		/* If we have come to a non-option and did not permute it,
-		   either stop the scan or describe it to the caller and pass it by.  */
-
-		if (NONOPTION_P)
-		{
-			if (ordering == REQUIRE_ORDER)
-				return -1;
-			optarg = argv[optind++];
-			return 1;
-		}
-
-		/* We have found another option-ARGV-element.
-		   Skip the initial punctuation.  */
-
-		nextchar = (argv[optind] + 1
-			    + (longopts != NULL && argv[optind][1] == '-'));
-	}
-
-	/* Decode the current option-ARGV-element.  */
-
-	/* Check whether the ARGV-element is a long option.
-
-	   If long_only and the ARGV-element has the form "-f", where f is
-	   a valid short option, don't consider it an abbreviated form of
-	   a long option that starts with f.  Otherwise there would be no
-	   way to give the -f short option.
-
-	   On the other hand, if there's a long option "fubar" and
-	   the ARGV-element is "-fu", do consider that an abbreviation of
-	   the long option, just like "--fu", and not "-f" with arg "u".
-
-	   This distinction seems to be the most useful approach.  */
-
-	if (longopts != NULL
-	    && (argv[optind][1] == '-'
-		|| (long_only && (argv[optind][2] || !my_index(optstring, argv[optind][1])))))
-	{
-		char *nameend;
-		const struct option *p;
-		const struct option *pfound = NULL;
-		int exact = 0;
-		int ambig = 0;
-		int indfound = -1;
-		int option_index;
-
-		for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
-			/* Do nothing.  */ ;
-
-		/* Test all long options for either exact match
-		   or abbreviated matches.  */
-		for (p = longopts, option_index = 0; p->name; p++, option_index++)
-			if (!strncmp(p->name, nextchar, nameend - nextchar))
-			{
-				if ((unsigned int) (nameend - nextchar)
-				    == (unsigned int) strlen(p->name))
-				{
-					/* Exact match found.  */
-					pfound = p;
-					indfound = option_index;
-					exact = 1;
-					break;
-				}
-				else if (pfound == NULL)
-				{
-					/* First nonexact match found.  */
-					pfound = p;
-					indfound = option_index;
-				}
-				else
-					/* Second or later nonexact match found.  */
-					ambig = 1;
-			}
-
-		if (ambig && !exact)
-		{
-			if (opterr)
-				fprintf(stderr, _("%s: option `%s' is ambiguous\n"),
-					argv[0], argv[optind]);
-			nextchar += strlen(nextchar);
-			optind++;
-			optopt = 0;
-			return '?';
-		}
-
-		if (pfound != NULL)
-		{
-			option_index = indfound;
-			optind++;
-			if (*nameend)
-			{
-				/* Don't test has_arg with >, because some C compilers don't
-				   allow it to be used on enums.  */
-				if (pfound->has_arg)
-					optarg = nameend + 1;
-				else
-				{
-					if (opterr)
-					{
-						if (argv[optind - 1][1] == '-')
-							/* --option */
-							fprintf(stderr,
-								_("%s: option `--%s' doesn't allow an argument\n"),
-								argv[0], pfound->name);
-						else
-							/* +option or -option */
-							fprintf(stderr,
-								_("%s: option `%c%s' doesn't allow an argument\n"),
-								argv[0], argv[optind - 1][0], pfound->name);
-					}
-
-					nextchar += strlen(nextchar);
-
-					optopt = pfound->val;
-					return '?';
-				}
-			}
-			else if (pfound->has_arg == 1)
-			{
-				if (optind < argc)
-					optarg = argv[optind++];
-				else
-				{
-					if (opterr)
-						fprintf(stderr,
-							_("%s: option `%s' requires an argument\n"),
-						 argv[0], argv[optind - 1]);
-					nextchar += strlen(nextchar);
-					optopt = pfound->val;
-					return optstring[0] == ':' ? ':' : '?';
-				}
-			}
-			nextchar += strlen(nextchar);
-			if (longind != NULL)
-				*longind = option_index;
-			if (pfound->flag)
-			{
-				*(pfound->flag) = pfound->val;
-				return 0;
-			}
-			return pfound->val;
-		}
-
-		/* Can't find it as a long option.  If this is not getopt_long_only,
-		   or the option starts with '--' or is not a valid short
-		   option, then it's an error.
-		   Otherwise interpret it as a short option.  */
-		if (!long_only || argv[optind][1] == '-'
-		    || my_index(optstring, *nextchar) == NULL)
-		{
-			if (opterr)
-			{
-				if (argv[optind][1] == '-')
-					/* --option */
-					fprintf(stderr, _("%s: unrecognized option `--%s'\n"),
-						argv[0], nextchar);
-				else
-					/* +option or -option */
-					fprintf(stderr, _("%s: unrecognized option `%c%s'\n"),
-					argv[0], argv[optind][0], nextchar);
-			}
-			nextchar = (char *) "";
-			optind++;
-			optopt = 0;
-			return '?';
-		}
-	}
-
-	/* Look at and handle the next short option-character.  */
-
-	{
-		char c = *nextchar++;
-		char *temp = my_index(optstring, c);
-
-		/* Increment `optind' when we start to process its last character.  */
-		if (*nextchar == '\0')
-			++optind;
-
-		if (temp == NULL || c == ':')
-		{
-			if (opterr)
-			{
-				if (posixly_correct)
-					/* 1003.2 specifies the format of this message.  */
-					fprintf(stderr, _("%s: illegal option -- %c\n"),
-						argv[0], c);
-				else
-					fprintf(stderr, _("%s: invalid option -- %c\n"),
-						argv[0], c);
-			}
-			optopt = c;
-			return '?';
-		}
-		/* Convenience. Treat POSIX -W foo same as long option --foo */
-		if (temp[0] == 'W' && temp[1] == ';')
-		{
-			char *nameend;
-			const struct option *p;
-			const struct option *pfound = NULL;
-			int exact = 0;
-			int ambig = 0;
-			int indfound = 0;
-			int option_index;
-
-			/* This is an option that requires an argument.  */
-			if (*nextchar != '\0')
-			{
-				optarg = nextchar;
-				/* If we end this ARGV-element by taking the rest as an arg,
-				   we must advance to the next element now.  */
-				optind++;
-			}
-			else if (optind == argc)
-			{
-				if (opterr)
-				{
-					/* 1003.2 specifies the format of this message.  */
-					fprintf(stderr, _("%s: option requires an argument -- %c\n"),
-						argv[0], c);
-				}
-				optopt = c;
-				if (optstring[0] == ':')
-					c = ':';
-				else
-					c = '?';
-				return c;
-			}
-			else
-				/* We already incremented `optind' once;
-				   increment it again when taking next ARGV-elt as argument.  */
-				optarg = argv[optind++];
-
-			/* optarg is now the argument, see if it's in the
-			   table of longopts.  */
-
-			for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++)
-				/* Do nothing.  */ ;
-
-			/* Test all long options for either exact match
-			   or abbreviated matches.  */
-			for (p = longopts, option_index = 0; p->name; p++, option_index++)
-				if (!strncmp(p->name, nextchar, nameend - nextchar))
-				{
-					if ((unsigned int) (nameend - nextchar) == strlen(p->name))
-					{
-						/* Exact match found.  */
-						pfound = p;
-						indfound = option_index;
-						exact = 1;
-						break;
-					}
-					else if (pfound == NULL)
-					{
-						/* First nonexact match found.  */
-						pfound = p;
-						indfound = option_index;
-					}
-					else
-						/* Second or later nonexact match found.  */
-						ambig = 1;
-				}
-			if (ambig && !exact)
-			{
-				if (opterr)
-					fprintf(stderr, _("%s: option `-W %s' is ambiguous\n"),
-						argv[0], argv[optind]);
-				nextchar += strlen(nextchar);
-				optind++;
-				return '?';
-			}
-			if (pfound != NULL)
-			{
-				option_index = indfound;
-				if (*nameend)
-				{
-					/* Don't test has_arg with >, because some C compilers don't
-					   allow it to be used on enums.  */
-					if (pfound->has_arg)
-						optarg = nameend + 1;
-					else
-					{
-						if (opterr)
-							fprintf(stderr, _("\
-%s: option `-W %s' doesn't allow an argument\n"),
-								argv[0], pfound->name);
-
-						nextchar += strlen(nextchar);
-						return '?';
-					}
-				}
-				else if (pfound->has_arg == 1)
-				{
-					if (optind < argc)
-						optarg = argv[optind++];
-					else
-					{
-						if (opterr)
-							fprintf(stderr,
-								_("%s: option `%s' requires an argument\n"),
-								argv[0], argv[optind - 1]);
-						nextchar += strlen(nextchar);
-						return optstring[0] == ':' ? ':' : '?';
-					}
-				}
-				nextchar += strlen(nextchar);
-				if (longind != NULL)
-					*longind = option_index;
-				if (pfound->flag)
-				{
-					*(pfound->flag) = pfound->val;
-					return 0;
-				}
-				return pfound->val;
-			}
-			nextchar = NULL;
-			return 'W';	/* Let the application handle it.   */
-		}
-		if (temp[1] == ':')
-		{
-			if (temp[2] == ':')
-			{
-				/* This is an option that accepts an argument optionally.  */
-				if (*nextchar != '\0')
-				{
-					optarg = nextchar;
-					optind++;
-				}
-				else
-					optarg = NULL;
-				nextchar = NULL;
-			}
-			else
-			{
-				/* This is an option that requires an argument.  */
-				if (*nextchar != '\0')
-				{
-					optarg = nextchar;
-					/* If we end this ARGV-element by taking the rest as an arg,
-					   we must advance to the next element now.  */
-					optind++;
-				}
-				else if (optind == argc)
-				{
-					if (opterr)
-					{
-						/* 1003.2 specifies the format of this message.  */
-						fprintf(stderr,
-							_("%s: option requires an argument -- %c\n"),
-							argv[0], c);
-					}
-					optopt = c;
-					if (optstring[0] == ':')
-						c = ':';
-					else
-						c = '?';
-				}
-				else
-					/* We already incremented `optind' once;
-					   increment it again when taking next ARGV-elt as argument.  */
-					optarg = argv[optind++];
-				nextchar = NULL;
-			}
-		}
-		return c;
-	}
-}
-
-int
-    getopt(argc, argv, optstring)
-     int argc;
-     char *const *argv;
-     const char *optstring;
-{
-	return _getopt_internal(argc, argv, optstring,
-				(const struct option *) 0,
-				(int *) 0,
-				0);
-}
-
-#endif /* Not ELIDE_CODE.  */
-
-#ifdef TEST
-
-/* Compile with -DTEST to make an executable for use in testing
-   the above definition of `getopt'.  */
-
-int
-    main(argc, argv)
-     int argc;
-     char **argv;
-{
-	int c;
-	int digit_optind = 0;
-
-	while (1)
-	{
-		int this_option_optind = optind ? optind : 1;
-
-		c = getopt(argc, argv, "abc:d:0123456789");
-		if (c == -1)
-			break;
-
-		switch (c)
-		{
-			case '0':
-			case '1':
-			case '2':
-			case '3':
-			case '4':
-			case '5':
-			case '6':
-			case '7':
-			case '8':
-			case '9':
-				if (digit_optind != 0 && digit_optind != this_option_optind)
-					printf("digits occur in two different argv-elements.\n");
-				digit_optind = this_option_optind;
-				printf("option %c\n", c);
-				break;
-
-			case 'a':
-				printf("option a\n");
-				break;
-
-			case 'b':
-				printf("option b\n");
-				break;
-
-			case 'c':
-				printf("option c with value `%s'\n", optarg);
-				break;
-
-			case '?':
-				break;
-
-			default:
-				printf("?? getopt returned character code 0%o ??\n", c);
-		}
-	}
-
-	if (optind < argc)
-	{
-		printf("non-option ARGV-elements: ");
-		while (optind < argc)
-			printf("%s ", argv[optind++]);
-		printf("\n");
-	}
-
-	exit(0);
-}
-
-#endif /* TEST */
diff --git a/lib/libdvd/libdvdnav/msvc/contrib/timer/timer.c b/lib/libdvd/libdvdnav/msvc/contrib/timer/timer.c
deleted file mode 100755
index f99a73b..0000000
--- a/lib/libdvd/libdvdnav/msvc/contrib/timer/timer.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2000-2001 the xine project
- *
- * This file is part of xine, a unix video player.
- *
- * xine 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.
- *
- * xine is distributed in the hope that 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.
- *
- * WIN32 PORT,
- * by Matthew Grooms <elon at altavista.com>
- *
- * timer.c - Missing unix timer functions
- *
- */
-
-#include "stdio.h"
-#include "timer.h"
-
-/*
-	this function returns somewhat
-	accurate unix time with the data
-	accurate to the first call to get
-	of day and the resolution accurate
-	to ~ miliseconds.
-*/
-
-static time_t startseconds = 0;
-
-int gettimeofday( struct timeval *tp, struct timezone *tzp )
-{
-	MMTIME mmtime;
-
-	// clock() returns time in miliseconds
-
-	if( !startseconds )
-		startseconds = time( 0 );
-
-	timeGetSystemTime( &mmtime, sizeof( mmtime ) );
-
-	tp->tv_sec	= ( mmtime.u.ms / 1000 ) + startseconds;
-	tp->tv_usec	= ( mmtime.u.ms % 1000 ) * 1000;
-
-	return 0;
-};
-
-/*
-	These functions are designed to mimick
-	a subset of itimer for use with the
-	alarm signal on win32. This is just
-	enough for xine to work.
-*/
-
-static HANDLE sigalarm = 0;
-
-int setitimer( int which, struct itimerval * value, struct itimerval *ovalue )
-{
-	long int miliseconds;
-
-	if( !sigalarm )
-		sigalarm = CreateEvent( 0, FALSE, TRUE, "SIGALARM" );
-
-    miliseconds = value->it_value.tv_usec / 1000;
-
-	timeSetEvent( miliseconds, 0, ( LPTIMECALLBACK ) sigalarm, 0, TIME_PERIODIC | TIME_CALLBACK_EVENT_PULSE );
-
-	return 0;
-}
-
-/*
-	Wait for sigalarm to wake the thread
-*/
-
-int pause( void )
-{
-	WaitForSingleObject( sigalarm, INFINITE );
-
-	return 0;
-}
-
-int nanosleep( const struct timespec * rqtp, struct timespec * rmtp )
-{
-	Sleep( rqtp->tv_nsec / 1000000 );
-
-	return 0;
-}
-
-unsigned int sleep( unsigned int seconds )
-{
-	Sleep( seconds * 1000 );
-	return 0;
-}
\ No newline at end of file
diff --git a/lib/libdvd/libdvdnav/msvc/contrib/timer/timer.h b/lib/libdvd/libdvdnav/msvc/contrib/timer/timer.h
deleted file mode 100755
index efab6f4..0000000
--- a/lib/libdvd/libdvdnav/msvc/contrib/timer/timer.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <time.h>
-#include <winsock.h>
-#include "pthread.h"
-
-#ifndef _ITIMER_
-#define _ITIMER_
-
-#define ITIMER_REAL		0
-#define ITIMER_VIRTUAL	1
-
-//	time reference
-//	----------------------------------
-//
-//	1,000			milliseconds / sec
-//	1,000,000		microseconds / sec
-//	1,000,000,000	nanoseconds  / sec
-//
-//  timeval.time_sec  = seconds
-//  timeval.time_usec = microseconds
-
-struct itimerval
-{
-	struct timeval it_interval;    /* timer interval */
-	struct timeval it_value;       /* current value */
-};
-
-struct timezone {
-    int     tz_minuteswest; /* minutes west of Greenwich */
-    int     tz_dsttime;     /* type of dst correction */
-};
-
-int gettimeofday( struct timeval *tp, struct timezone *tzp );
-int setitimer( int which, struct itimerval * value, struct itimerval *ovalue );
-int pause( void );
-
-unsigned int sleep( unsigned int seconds );
-int nanosleep( const struct timespec *rqtp, struct timespec *rmtp );
-
-#endif
\ No newline at end of file
diff --git a/lib/libdvd/libdvdnav/msvc/ifo_dump.dsp b/lib/libdvd/libdvdnav/msvc/ifo_dump.dsp
deleted file mode 100755
index fc39837..0000000
--- a/lib/libdvd/libdvdnav/msvc/ifo_dump.dsp
+++ /dev/null
@@ -1,110 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ifo_dump" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=ifo_dump - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "ifo_dump.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "ifo_dump.mak" CFG="ifo_dump - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "ifo_dump - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "ifo_dump - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "ifo_dump - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-
-!ELSEIF  "$(CFG)" == "ifo_dump - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "ifo_dump___Win32_Debug"
-# PROP BASE Intermediate_Dir "ifo_dump___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug\ifo_dump"
-# PROP Intermediate_Dir "Debug\ifo_dump"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "include" /I "." /I "include/pthreads" /I "install/include" /I ".." /I "../src" /I "contrib/timer" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "DVDNAV_COMPILE" /FR /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"Debug/bin/ifo_dump.exe" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF 
-
-# Begin Target
-
-# Name "ifo_dump - Win32 Release"
-# Name "ifo_dump - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\src\ifo_dump.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\ifo_print.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\vmcmd.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/lib/libdvd/libdvdnav/msvc/include/dlfcn.h b/lib/libdvd/libdvdnav/msvc/include/dlfcn.h
deleted file mode 100755
index b5fe376..0000000
--- a/lib/libdvd/libdvdnav/msvc/include/dlfcn.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef __DLFCN_H__
-# define __DLFCN_H__
-
-extern void *dlopen  (const char *file, int mode);
-extern int   dlclose (void *handle);
-extern void *dlsym   (void * handle, const char * name);
-extern char *dlerror (void);
-
-/* These don't mean anything on windows */
-#define RTLD_NEXT      ((void *) -1l)
-#define RTLD_DEFAULT   ((void *) 0)
-#define RTLD_LAZY					-1
-#define RTLD_NOW					-1
-#define RTLD_BINDING_MASK -1
-#define RTLD_NOLOAD				-1
-#define RTLD_GLOBAL				-1
-
-#endif /* __DLFCN_H__ */
diff --git a/lib/libdvd/libdvdnav/msvc/include/dvdnav_internal.h b/lib/libdvd/libdvdnav/msvc/include/dvdnav_internal.h
deleted file mode 100644
index 72f8393..0000000
--- a/lib/libdvd/libdvdnav/msvc/include/dvdnav_internal.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/* !! DO NO EDIT THIS FILE, it is automatically generated */
-/*
- * Copyright (C) 2001 Rich Wareham <richwareham at users.sourceforge.net>
- *
- * This file is part of libdvdnav, a DVD navigation library.
- *
- * libdvdnav 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.
- *
- * libdvdnav is distributed in the hope that 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 libdvdnav; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef LIBDVDNAV_DVDNAV_INTERNAL_H
-#define LIBDVDNAV_DVDNAV_INTERNAL_H
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <limits.h>
-#include <string.h>
-#include <pthread.h>
-
-#undef WORDS_BIGENDIAN
-
-#include "dvd_reader.h"
-#include "ifo_read.h"
-#include "ifo_types.h"
-
-/* Uncomment for VM command tracing */
-/* #define TRACE */
-
-#include "decoder.h"
-#include "dvdnav.h"
-#include "vm.h"
-#include "vmcmd.h"
-
-/* where should libdvdnav write its messages (stdout/stderr) */
-#define MSG_OUT stdout
-
-/* Maximum length of an error string */
-#define MAX_ERR_LEN 255
-
-/* Use the POSIX PATH_MAX if available */
-#ifdef PATH_MAX
-#define MAX_PATH_LEN PATH_MAX
-#else
-#define MAX_PATH_LEN 255 /* Arbitrary */
-#endif
-
-#ifndef DVD_VIDEO_LB_LEN
-#define DVD_VIDEO_LB_LEN 2048
-#endif
-
-typedef struct read_cache_s read_cache_t;
-
-/*
- * These are defined here because they are
- * not in ifo_types.h, they maybe one day
- */
-
-#ifndef audio_status_t
-typedef struct {
-#ifdef WORDS_BIGENDIAN
-  unsigned int available     : 1;
-  unsigned int zero1         : 4;
-  unsigned int stream_number : 3;
-  uint8_t zero2;
-#else
-  uint8_t zero2;
-  unsigned int stream_number : 3;
-  unsigned int zero1         : 4;
-  unsigned int available     : 1;
-#endif
-} ATTRIBUTE_PACKED audio_status_t;
-#endif
-
-#ifndef spu_status_t
-typedef struct {
-#ifdef WORDS_BIGENDIAN
-  unsigned int available               : 1;
-  unsigned int zero1                   : 2;
-  unsigned int stream_number_4_3       : 5;
-  unsigned int zero2                   : 3;
-  unsigned int stream_number_wide      : 5;
-  unsigned int zero3                   : 3;
-  unsigned int stream_number_letterbox : 5;
-  unsigned int zero4                   : 3;
-  unsigned int stream_number_pan_scan  : 5;
-#else
-  unsigned int stream_number_pan_scan  : 5;
-  unsigned int zero4                   : 3;
-  unsigned int stream_number_letterbox : 5;
-  unsigned int zero3                   : 3;
-  unsigned int stream_number_wide      : 5;
-  unsigned int zero2                   : 3;
-  unsigned int stream_number_4_3       : 5;
-  unsigned int zero1                   : 2;
-  unsigned int available               : 1;
-#endif
-} ATTRIBUTE_PACKED spu_status_t;
-#endif
-
-typedef struct dvdnav_vobu_s {
-  int32_t vobu_start;  /* Logical Absolute. MAX needed is 0x300000 */
-  int32_t vobu_length;
-  int32_t blockN;      /* Relative offset */
-  int32_t vobu_next;   /* Relative offset */
-} dvdnav_vobu_t;
-
-/** The main DVDNAV type **/
-
-struct dvdnav_s {
-  /* General data */
-  char        path[MAX_PATH_LEN]; /* Path to DVD device/dir */
-  dvd_file_t *file;               /* Currently opened file */
-  int         open_vtsN;          /* The domain and number of the... */
-  int         open_domain;        /* ..currently opened VOB */
-
-  /* Position data */
-  vm_position_t position_next;
-  vm_position_t position_current;
-  dvdnav_vobu_t vobu;
-
-  /* NAV data */
-  pci_t pci;
-  dsi_t dsi;
-  uint32_t last_cmd_nav_lbn;      /* detects when a command is issued on an already left NAV */
-
-  /* Flags */
-  int skip_still;                 /* Set when skipping a still */
-  int sync_wait;                  /* applications should wait till they are in sync with us */
-  int sync_wait_skip;             /* Set when skipping wait state */
-  int spu_clut_changed;           /* The SPU CLUT changed */
-  int started;                    /* vm_start has been called? */
-  int use_read_ahead;             /* 1 - use read-ahead cache, 0 - don't */
-  int pgc_based;                  /* positioning works PGC based instead of PG based */
-
-  /* VM */
-  vm_t *vm;
-  pthread_mutex_t vm_lock;
-
-  /* Read-ahead cache */
-  read_cache_t *cache;
-
-  /* Errors */
-  char err_str[MAX_ERR_LEN];
-};
-
-/** USEFUL MACROS **/
-
-#ifdef __GNUC__
-#define printerrf(format, args...) snprintf(this->err_str, MAX_ERR_LEN, format, ## args);
-#else
-#ifdef _MSC_VER
-#define printerrf(str) snprintf(this->err_str, MAX_ERR_LEN, str);
-#else
-#define printerrf(...) snprintf(this->err_str, MAX_ERR_LEN, __VA_ARGS__);
-#endif /* WIN32 */
-#endif
-#define printerr(str) strncpy(this->err_str, str, MAX_ERR_LEN);
-
-/* Save my typing */
-#define S_ERR DVDNAV_STATUS_ERR
-
-#ifndef _MSC_VER
-#define S_OK  DVDNAV_STATUS_OK
-#endif /* MSC_VER */
-
-#endif /* LIBDVDNAV_DVDNAV_INTERNAL_H */
diff --git a/lib/libdvd/libdvdnav/msvc/include/getopt.h b/lib/libdvd/libdvdnav/msvc/include/getopt.h
deleted file mode 100755
index 5f4643a..0000000
--- a/lib/libdvd/libdvdnav/msvc/include/getopt.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Declarations for getopt.
-   Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc.
-
-   This file is part of the GNU C Library.  Its master source is NOT part of
-   the C library, however.  The master source lives in /gd/gnu/lib.
-
-   The GNU C 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.
-
-   The GNU C Library is distributed in the hope that 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 the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
-   Floor, Boston, MA 02110-1301 USA.  */
-
-#ifndef _GETOPT_H
-#define _GETOPT_H 1
-
-#ifdef	__cplusplus
-extern "C"
-{
-#endif
-
-/* For communication from `getopt' to the caller.
-   When `getopt' finds an option that takes an argument,
-   the argument value is returned here.
-   Also, when `ordering' is RETURN_IN_ORDER,
-   each non-option ARGV-element is returned here.  */
-
-	extern char *optarg;
-
-/* Index in ARGV of the next element to be scanned.
-   This is used for communication to and from the caller
-   and for communication between successive calls to `getopt'.
-
-   On entry to `getopt', zero means this is the first call; initialize.
-
-   When `getopt' returns -1, this is the index of the first of the
-   non-option elements that the caller should itself scan.
-
-   Otherwise, `optind' communicates from one call to the next
-   how much of ARGV has been scanned so far.  */
-
-	extern int optind;
-
-/* Callers store zero here to inhibit the error message `getopt' prints
-   for unrecognized options.  */
-
-	extern int opterr;
-
-/* Set to an option character which was unrecognized.  */
-
-	extern int optopt;
-
-/* Describe the long-named options requested by the application.
-   The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
-   of `struct option' terminated by an element containing a name which is
-   zero.
-
-   The field `has_arg' is:
-   no_argument          (or 0) if the option does not take an argument,
-   required_argument    (or 1) if the option requires an argument,
-   optional_argument    (or 2) if the option takes an optional argument.
-
-   If the field `flag' is not NULL, it points to a variable that is set
-   to the value given in the field `val' when the option is found, but
-   left unchanged if the option is not found.
-
-   To have a long-named option do something other than set an `int' to
-   a compiled-in constant, such as set a value from `optarg', set the
-   option's `flag' field to zero and its `val' field to a nonzero
-   value (the equivalent single-letter option character, if there is
-   one).  For long options that have a zero `flag' field, `getopt'
-   returns the contents of the `val' field.  */
-
-	struct option
-	{
-#if defined (__STDC__) && __STDC__
-		const char *name;
-#else
-		char *name;
-#endif
-		/* has_arg can't be an enum because some compilers complain about
-		   type mismatches in all the code that assumes it is an int.  */
-		int has_arg;
-		int *flag;
-		int val;
-	};
-
-/* Names for the values of the `has_arg' field of `struct option'.  */
-
-#define	no_argument		0
-#define required_argument	1
-#define optional_argument	2
-
-#if defined (__STDC__) && __STDC__
-#ifdef __GNU_LIBRARY__
-/* Many other libraries have conflicting prototypes for getopt, with
-   differences in the consts, in stdlib.h.  To avoid compilation
-   errors, only prototype getopt for the GNU C library.  */
-	extern int getopt(int argc, char *const *argv, const char *shortopts);
-#else				/* not __GNU_LIBRARY__ */
-	extern int getopt();
-#endif				/* __GNU_LIBRARY__ */
-	extern int getopt_long(int argc, char *const *argv, const char *shortopts,
-			       const struct option *longopts, int *longind);
-	extern int getopt_long_only(int argc, char *const *argv,
-				    const char *shortopts,
-			       const struct option *longopts, int *longind);
-
-/* Internal only.  Users should not call this directly.  */
-	extern int _getopt_internal(int argc, char *const *argv,
-				    const char *shortopts,
-				const struct option *longopts, int *longind,
-				    int long_only);
-#else				/* not __STDC__ */
-	extern int getopt();
-	extern int getopt_long();
-	extern int getopt_long_only();
-
-	extern int _getopt_internal();
-#endif				/* __STDC__ */
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif				/* _GETOPT_H */
diff --git a/lib/libdvd/libdvdnav/msvc/include/inttypes.h b/lib/libdvd/libdvdnav/msvc/include/inttypes.h
deleted file mode 100755
index 4e1cbe1..0000000
--- a/lib/libdvd/libdvdnav/msvc/include/inttypes.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2000-2001 the xine project
- *
- * This file is part of xine, a unix video player.
- *
- * xine 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.
- *
- * xine is distributed in the hope that 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.
- *
- * WIN32 PORT,
- * by Matthew Grooms <elon at altavista.com>
- *
- * inttypes.h - Standard integer definitions.
- *
- */
-
-#ifndef _SYS_INTTYPES_H_
-#define _SYS_INTTYPES_H_
-
-#include <config.h>
-
-#endif
diff --git a/lib/libdvd/libdvdnav/msvc/include/os_types.h b/lib/libdvd/libdvdnav/msvc/include/os_types.h
deleted file mode 100755
index 294847e..0000000
--- a/lib/libdvd/libdvdnav/msvc/include/os_types.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef __OS_TYPES_H__
-#define __OS_TYPES_H__
-/*
- * win32 types
- * 04 Sept 2001 - Chris Wolf create.
- */
-
-typedef unsigned char			uint_8;
-typedef unsigned short		uint_16;
-typedef unsigned int			uint_32;
-typedef signed   char			sint_32;
-typedef signed   short		sint_16;
-typedef signed   int			sint_8;
-
-#define snprintf _snprintf
-#define M_PI            3.14159265358979323846  /* pi */
-#define DLLENTRY __declspec(dllexport)
-
-  // Temporarily hardcode this location
-#define AO_PLUGIN_PATH "c:\\Program Files\\Common Files\\Xiphophorus\\ao"
-
-#define SHARED_LIB_EXT ".dll"
-
-#endif /* __OS_TYPES_H__ */
diff --git a/lib/libdvd/libdvdnav/msvc/include/pthreads/pthread.h b/lib/libdvd/libdvdnav/msvc/include/pthreads/pthread.h
deleted file mode 100755
index 9f6fae5..0000000
--- a/lib/libdvd/libdvdnav/msvc/include/pthreads/pthread.h
+++ /dev/null
@@ -1,1077 +0,0 @@
-/* This is the POSIX thread API (POSIX 1003).
- *
- * Pthreads-win32 - POSIX Threads Library for Win32
- * Copyright (C) 1998
- *
- * 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 02110-1301 USA.
- */
-
-#if !defined( PTHREAD_H )
-#define PTHREAD_H
-
-#ifdef _UWIN
-#   define HAVE_STRUCT_TIMESPEC 1
-#   define HAVE_SIGNAL_H        1
-#   undef HAVE_CONFIG_H
-#   pragma comment(lib, "pthread")
-#endif
-
-/*
- * -------------------------------------------------------------
- *
- *
- * Module: pthread.h
- *
- * Purpose:
- *      Provides an implementation of PThreads based upon the
- *      standard:
- *
- *              POSIX 1003.1c-1995      (POSIX.1c)
- *
- *	Parts of the implementation also comply with the
- *	Open Group Unix 98 specification in order to enhance
- *	code portability between Windows, various commercial
- *	Unix implementations, and Linux.
- *
- * Authors:
- *	There have been many contributors to this library.
- *	The initial implementation was contributed by
- *	John Bossom, and several others have provided major
- *	sections or revisions of parts of the implementation.
- *	Often significant effort has been contributed to
- *	find and fix important bugs and other problems to
- *	improve the reliability of the library, which sometimes
- *	is not reflected in the amount of code which changed as
- *	result.
- *	As much as possible, the contributors are acknowledged
- *	in the ChangeLog file in the source code distribution
- *	where their changes are noted in detail.
- *
- *      Contributors are listed in the MAINTAINERS file.
- *
- *	As usual, all bouquets go to the contributors, and all
- *	brickbats go to the project maintainer.
- *
- * Maintainer:
- *	The code base for this project is coordinated and
- *	eventually pre-tested, packaged, and made available by
- *
- *		Ross Johnson <rpj at ise.canberra.edu.au>
- *
- * QA Testers:
- *	Ultimately, the library is tested in the real world by
- *	a host of competent and demanding scientists and
- *	engineers who report bugs and/or provide solutions
- *	which are then fixed or incorporated into subsequent
- *	versions of the library. Each time a bug is fixed, a
- *	test case is written to prove the fix and ensure
- *	that later changes to the code don't reintroduce the
- *	same error. The number of test cases is slowly growing
- *	and therefore so is the code reliability.
- *
- * Compliance:
- *	See the file ANNOUNCE for the list of implemented
- *	and not-implemented routines and defined options.
- *	Of course, these are all defined is this file as well.
- *
- * Web site:
- *	The source code and other information about this library
- *	are available from
- *
- *		http://sources.redhat.com/pthreads-win32/
- *
- * -------------------------------------------------------------
- */
-
-/*
- * -----------------
- * autoconf switches
- * -----------------
- */
-
-#if HAVE_CONFIG_H
-#include "config.h"
-#endif /* HAVE_CONFIG_H */
-
-#include <windows.h>
-
-#ifndef NEED_FTIME
-#include <time.h>
-#else /* NEED_FTIME */
-/* use native WIN32 time API */
-#endif /* NEED_FTIME */
-
-#if HAVE_SIGNAL_H
-#include <signal.h>
-#endif /* HAVE_SIGNAL_H */
-
-#include <setjmp.h>
-
-#ifndef HAVE_STRUCT_TIMESPEC
-struct timespec {
-	long tv_sec;
-	long tv_nsec;
-};
-#endif /* HAVE_STRUCT_TIMESPEC */
-
-#ifndef SIG_BLOCK
-#define SIG_BLOCK 0
-#endif /* SIG_BLOCK */
-
-#ifndef SIG_UNBLOCK
-#define SIG_UNBLOCK 1
-#endif /* SIG_UNBLOCK */
-
-#ifndef SIG_SETMASK
-#define SIG_SETMASK 2
-#endif /* SIG_SETMASK */
-
-/*
- * note: ETIMEDOUT is correctly defined in winsock.h
- */
-#include <winsock.h>
-
-#ifdef NEED_ERRNO
-#  include "need_errno.h"
-#else
-#  include <errno.h>
-#endif
-
-#include <sched.h>
-
-/*
- * In case ETIMEDOUT hasn't been defined above somehow.
- */
-#ifndef ETIMEDOUT
-#  define ETIMEDOUT 10060     /* This is the value in winsock.h. */
-#endif
-
-/*
- * Several systems don't define ENOTSUP. If not, we use
- * the same value as Solaris.
- */
-#ifndef ENOTSUP
-#  define ENOTSUP 48
-#endif
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif				/* __cplusplus */
-
-/*
- * -------------------------------------------------------------
- *
- * POSIX 1003.1c-1995 Options
- * ===========================
- *
- * _POSIX_THREADS (set)
- *                      If set, you can use threads
- *
- * _POSIX_THREAD_ATTR_STACKSIZE (set)
- *                      If set, you can control the size of a thread's
- *                      stack
- *                              pthread_attr_getstacksize
- *                              pthread_attr_setstacksize
- *
- * _POSIX_THREAD_ATTR_STACKADDR (not set)
- *                      If set, you can allocate and control a thread's
- *                      stack. If not supported, the following functions
- *                      will return ENOSYS, indicating they are not
- *                      supported:
- *                              pthread_attr_getstackaddr
- *                              pthread_attr_setstackaddr
- *
- * _POSIX_THREAD_PRIORITY_SCHEDULING (set)
- *                      If set, you can use realtime scheduling.
- *                      Indicates the availability of:
- *                              pthread_attr_getinheritsched
- *                              pthread_attr_getschedparam
- *                              pthread_attr_getschedpolicy
- *                              pthread_attr_getscope
- *                              pthread_attr_setinheritsched
- *                              pthread_attr_setschedparam
- *                              pthread_attr_setschedpolicy
- *                              pthread_attr_setscope
- *                              pthread_getschedparam
- *                              pthread_setschedparam
- *                              sched_get_priority_max
- *                              sched_get_priority_min
- *                              sched_rr_set_interval
- *
- * _POSIX_THREAD_PRIO_INHERIT (not set)
- *                      If set, you can create priority inheritance
- *                      mutexes.
- *                              pthread_mutexattr_getprotocol +
- *                              pthread_mutexattr_setprotocol +
- *
- * _POSIX_THREAD_PRIO_PROTECT (not set)
- *                      If set, you can create priority ceiling mutexes
- *                      Indicates the availability of:
- *                              pthread_mutex_getprioceiling
- *                              pthread_mutex_setprioceiling
- *                              pthread_mutexattr_getprioceiling
- *                              pthread_mutexattr_getprotocol     +
- *                              pthread_mutexattr_setprioceiling
- *                              pthread_mutexattr_setprotocol     +
- *
- * _POSIX_THREAD_PROCESS_SHARED (not set)
- *                      If set, you can create mutexes and condition
- *                      variables that can be shared with another
- *                      process.If set, indicates the availability
- *                      of:
- *                              pthread_mutexattr_getpshared
- *                              pthread_mutexattr_setpshared
- *                              pthread_condattr_getpshared
- *                              pthread_condattr_setpshared
- *
- * _POSIX_THREAD_SAFE_FUNCTIONS (set)
- *                      If set you can use the special *_r library
- *                      functions that provide thread-safe behaviour
- *
- *      + These functions provide both 'inherit' and/or
- *        'protect' protocol, based upon these macro
- *        settings.
- *
- * POSIX 1003.1c-1995 Limits
- * ===========================
- *
- * PTHREAD_DESTRUCTOR_ITERATIONS
- *                      Maximum number of attempts to destroy
- *                      a thread's thread-specific data on
- *                      termination (must be at least 4)
- *
- * PTHREAD_KEYS_MAX
- *                      Maximum number of thread-specific data keys
- *                      available per process (must be at least 128)
- *
- * PTHREAD_STACK_MIN
- *                      Minimum supported stack size for a thread
- *
- * PTHREAD_THREADS_MAX
- *                      Maximum number of threads supported per
- *                      process (must be at least 64).
- *
- *
- * POSIX 1003.1j/D10-1999 Options
- * ==============================
- *
- * _POSIX_READER_WRITER_LOCKS (set)
- *                      If set, you can use read/write locks
- *
- * _POSIX_SPIN_LOCKS (set)
- *                      If set, you can use spin locks
- *
- * _POSIX_BARRIERS (set)
- *                      If set, you can use barriers
- *
- * -------------------------------------------------------------
- */
-
-/*
- * POSIX Options
- */
-#ifndef _POSIX_THREADS
-#define _POSIX_THREADS
-#endif
-
-#ifndef _POSIX_READER_WRITER_LOCKS
-#define _POSIX_READER_WRITER_LOCKS
-#endif
-
-#ifndef _POSIX_SPIN_LOCKS
-#define _POSIX_SPIN_LOCKS
-#endif
-
-#ifndef _POSIX_BARRIERS
-#define _POSIX_BARRIERS
-#endif
-
-#define _POSIX_THREAD_SAFE_FUNCTIONS
-#define _POSIX_THREAD_ATTR_STACKSIZE
-#define _POSIX_THREAD_PRIORITY_SCHEDULING
-
-#if defined( KLUDGE )
-/*
- * The following are not supported
- */
-#define _POSIX_THREAD_ATTR_STACKADDR
-#define _POSIX_THREAD_PRIO_INHERIT
-#define _POSIX_THREAD_PRIO_PROTECT
-#define _POSIX_THREAD_PROCESS_SHARED
-
-#endif				/* KLUDGE */
-
-/*
- * POSIX Limits
- *
- *      PTHREAD_DESTRUCTOR_ITERATIONS
- *              Standard states this must be at least
- *              4.
- *
- *      PTHREAD_KEYS_MAX
- *              WIN32 permits only 64 TLS keys per process.
- *              This limitation could be worked around by
- *              simply simulating keys.
- *
- *      PTHREADS_STACK_MIN
- *              POSIX specifies 0 which is also the value WIN32
- *              interprets as allowing the system to
- *              set the size to that of the main thread. The
- *              maximum stack size in Win32 is 1Meg. WIN32
- *              allocates more stack as required up to the 1Meg
- *              limit.
- *
- *      PTHREAD_THREADS_MAX
- *              Not documented by WIN32. Wrote a test program
- *              that kept creating threads until it failed
- *              revealed this approximate number.
- *
- */
-#define PTHREAD_DESTRUCTOR_ITERATIONS	                   4
-#define PTHREAD_KEYS_MAX				  64
-#define PTHREAD_STACK_MIN				   0
-#define PTHREAD_THREADS_MAX				2019
-
-
-#ifdef _UWIN
-#   include	<sys/types.h>
-#else
-typedef struct pthread_t_ *pthread_t;
-typedef struct pthread_attr_t_ *pthread_attr_t;
-typedef struct pthread_once_t_ pthread_once_t;
-typedef struct pthread_key_t_ *pthread_key_t;
-typedef struct pthread_mutex_t_ *pthread_mutex_t;
-typedef struct pthread_mutexattr_t_ *pthread_mutexattr_t;
-typedef struct pthread_cond_t_ *pthread_cond_t;
-typedef struct pthread_condattr_t_ *pthread_condattr_t;
-#endif
-typedef struct pthread_rwlock_t_ *pthread_rwlock_t;
-typedef struct pthread_rwlockattr_t_ *pthread_rwlockattr_t;
-typedef struct pthread_spinlock_t_ *pthread_spinlock_t;
-typedef struct pthread_barrier_t_ *pthread_barrier_t;
-typedef struct pthread_barrierattr_t_ *pthread_barrierattr_t;
-
-/*
- * ====================
- * ====================
- * POSIX Threads
- * ====================
- * ====================
- */
-
-enum {
-/*
- * pthread_attr_{get,set}detachstate
- */
-  PTHREAD_CREATE_JOINABLE	= 0,  /* Default */
-  PTHREAD_CREATE_DETACHED	= 1,
-
-/*
- * pthread_attr_{get,set}inheritsched
- */
-  PTHREAD_INHERIT_SCHED		= 0,
-  PTHREAD_EXPLICIT_SCHED	= 1,  /* Default */
-
-/*
- * pthread_{get,set}scope
- */
-  PTHREAD_SCOPE_PROCESS		= 0,
-  PTHREAD_SCOPE_SYSTEM		= 1,  /* Default */
-
-/*
- * pthread_setcancelstate paramters
- */
-  PTHREAD_CANCEL_ENABLE		= 0,  /* Default */
-  PTHREAD_CANCEL_DISABLE	= 1,
-
-/*
- * pthread_setcanceltype parameters
- */
-  PTHREAD_CANCEL_ASYNCHRONOUS	= 0,
-  PTHREAD_CANCEL_DEFERRED	= 1,  /* Default */
-
-/*
- * pthread_mutexattr_{get,set}pshared
- * pthread_condattr_{get,set}pshared
- */
-  PTHREAD_PROCESS_PRIVATE	= 0,
-  PTHREAD_PROCESS_SHARED	= 1,
-
-/*
- * pthread_barrier_wait
- */
-  PTHREAD_BARRIER_SERIAL_THREAD = -1
-};
-
-/*
- * ====================
- * ====================
- * Cancelation
- * ====================
- * ====================
- */
-#define PTHREAD_CANCELED       ((void *) -1)
-
-
-/*
- * ====================
- * ====================
- * Once Key
- * ====================
- * ====================
- */
-#define PTHREAD_ONCE_INIT       { FALSE, -1 }
-
-struct pthread_once_t_
-{
-  int done;                 /* indicates if user function executed  */
-  long started;             /* First thread to increment this value */
-                            /* to zero executes the user function   */
-};
-
-
-/*
- * ====================
- * ====================
- * Object initialisers
- * ====================
- * ====================
- */
-#define PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) -1)
-
-#define PTHREAD_COND_INITIALIZER ((pthread_cond_t) -1)
-
-#define PTHREAD_RWLOCK_INITIALIZER ((pthread_rwlock_t) -1)
-
-#define PTHREAD_SPINLOCK_INITIALIZER ((pthread_spinlock_t) -1)
-
-enum
-{
-  PTHREAD_MUTEX_FAST_NP,
-  PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_FAST_NP,
-  PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
-};
-
-
-/* There are three implementations of cancel cleanup.
- * Note that pthread.h is included in both application
- * compilation units and also internally for the library.
- * The code here and within the library aims to work
- * for all reasonable combinations of environments.
- *
- * The three implementations are:
- *
- *   WIN32 SEH
- *   C
- *   C++
- *
- * Please note that exiting a push/pop block via
- * "return", "exit", "break", or "continue" will
- * lead to different behaviour amongst applications
- * depending upon whether the library was built
- * using SEH, C++, or C. For example, a library built
- * with SEH will call the cleanup routine, while both
- * C++ and C built versions will not.
- */
-
-/*
- * define defaults for cleanup code
- */
-#if !defined( __CLEANUP_SEH ) && !defined( __CLEANUP_CXX ) && !defined( __CLEANUP_C )
-
-#if defined(_MSC_VER)
-#define __CLEANUP_SEH
-#elif defined(__cplusplus)
-#define __CLEANUP_CXX
-#else
-#define __CLEANUP_C
-#endif
-
-#endif
-
-#if defined( __CLEANUP_SEH ) && defined(__GNUC__)
-#error ERROR [__FILE__, line __LINE__]: GNUC does not support SEH.
-#endif
-
-typedef struct ptw32_cleanup_t ptw32_cleanup_t;
-typedef void (__cdecl *ptw32_cleanup_callback_t)(void *);
-
-struct ptw32_cleanup_t
-{
-  ptw32_cleanup_callback_t routine;
-  void *arg;
-  struct ptw32_cleanup_t *prev;
-};
-
-#ifdef __CLEANUP_SEH
-	/*
-	 * WIN32 SEH version of cancel cleanup.
-	 */
-
-#define pthread_cleanup_push( _rout, _arg ) \
-	{ \
-	    ptw32_cleanup_t	_cleanup; \
-	    \
-        _cleanup.routine	= (ptw32_cleanup_callback_t)(_rout); \
-	    _cleanup.arg	= (_arg); \
-	    __try \
-	      { \
-
-#define pthread_cleanup_pop( _execute ) \
-	      } \
-	    __finally \
-		{ \
-		    if( _execute || AbnormalTermination()) \
-		      { \
-			  (*(_cleanup.routine))( _cleanup.arg ); \
-		      } \
-		} \
-	}
-
-#else /* __CLEANUP_SEH */
-
-#ifdef __CLEANUP_C
-
-	/*
-	 * C implementation of PThreads cancel cleanup
-	 */
-
-#define pthread_cleanup_push( _rout, _arg ) \
-	{ \
-	    ptw32_cleanup_t	_cleanup; \
-            \
-	    ptw32_push_cleanup( &_cleanup, (ptw32_cleanup_callback_t) (_rout), (_arg) ); \
-
-#define pthread_cleanup_pop( _execute ) \
-	    (void) ptw32_pop_cleanup( _execute ); \
-	}
-
-#else /* __CLEANUP_C */
-
-#ifdef __CLEANUP_CXX
-
-	/*
-	 * C++ version of cancel cleanup.
-	 * - John E. Bossom.
-	 */
-
-	class PThreadCleanup {
-	  /*
-	   * PThreadCleanup
-	   *
-	   * Purpose
-	   *      This class is a C++ helper class that is
-	   *      used to implement pthread_cleanup_push/
-	   *      pthread_cleanup_pop.
-	   *      The destructor of this class automatically
-	   *      pops the pushed cleanup routine regardless
-	   *      of how the code exits the scope
-	   *      (i.e. such as by an exception)
-	   */
-      ptw32_cleanup_callback_t cleanUpRout;
-	  void    *       obj;
-	  int             executeIt;
-
-	public:
-	  PThreadCleanup() :
-	    cleanUpRout( NULL ),
-	    obj( NULL ),
-	    executeIt( 0 )
-	    /*
-	     * No cleanup performed
-	     */
-	    {
-	    }
-
-	  PThreadCleanup(
-             ptw32_cleanup_callback_t routine,
-			 void    *       arg ) :
-	    cleanUpRout( routine ),
-	    obj( arg ),
-	    executeIt( 1 )
-	    /*
-             * Registers a cleanup routine for 'arg'
-             */
-	    {
-	    }
-
-	  ~PThreadCleanup()
-	    {
-	      if ( executeIt && ((void *) cleanUpRout != NULL) )
-		{
-                  (void) (*cleanUpRout)( obj );
-		}
-	    }
-
-	  void execute( int exec )
-	    {
-	      executeIt = exec;
-	    }
-	};
-
-	/*
-	 * C++ implementation of PThreads cancel cleanup;
-	 * This implementation takes advantage of a helper
-	 * class who's destructor automatically calls the
-	 * cleanup routine if we exit our scope weirdly
-	 */
-#define pthread_cleanup_push( _rout, _arg ) \
-        { \
-	    PThreadCleanup  cleanup((ptw32_cleanup_callback_t)(_rout), \
-				    (void *) (_arg) );
-
-#define pthread_cleanup_pop( _execute ) \
-	    cleanup.execute( _execute ); \
-	}
-
-#else
-
-#error ERROR [__FILE__, line __LINE__]: Cleanup type undefined.
-
-#endif /* __CLEANUP_CXX */
-
-#endif /* __CLEANUP_C */
-
-#endif /* __CLEANUP_SEH */
-
-/*
- * ===============
- * ===============
- * Methods
- * ===============
- * ===============
- */
-
-/*
- * PThread Attribute Functions
- */
-int pthread_attr_init (pthread_attr_t * attr);
-
-int pthread_attr_destroy (pthread_attr_t * attr);
-
-int pthread_attr_getdetachstate (const pthread_attr_t * attr,
-				 int *detachstate);
-
-int pthread_attr_getstackaddr (const pthread_attr_t * attr,
-			       void **stackaddr);
-
-int pthread_attr_getstacksize (const pthread_attr_t * attr,
-			       size_t * stacksize);
-
-int pthread_attr_setdetachstate (pthread_attr_t * attr,
-				 int detachstate);
-
-int pthread_attr_setstackaddr (pthread_attr_t * attr,
-			       void *stackaddr);
-
-int pthread_attr_setstacksize (pthread_attr_t * attr,
-			       size_t stacksize);
-
-int pthread_attr_getschedparam (const pthread_attr_t *attr,
-                                struct sched_param *param);
-
-int pthread_attr_setschedparam (pthread_attr_t *attr,
-                                const struct sched_param *param);
-
-int pthread_attr_setschedpolicy (pthread_attr_t *,
-                                 int);
-
-int pthread_attr_getschedpolicy (pthread_attr_t *,
-                                 int *);
-
-int pthread_attr_setinheritsched(pthread_attr_t * attr,
-                                 int inheritsched);
-
-int pthread_attr_getinheritsched(pthread_attr_t * attr,
-                                 int * inheritsched);
-
-int pthread_attr_setscope (pthread_attr_t *,
-                           int);
-
-int pthread_attr_getscope (const pthread_attr_t *,
-                           int *);
-
-/*
- * PThread Functions
- */
-int pthread_create (pthread_t * tid,
-		    const pthread_attr_t * attr,
-		    void *(*start) (void *),
-		    void *arg);
-
-int pthread_detach (pthread_t tid);
-
-int pthread_equal (pthread_t t1,
-		   pthread_t t2);
-
-void pthread_exit (void *value_ptr);
-
-int pthread_join (pthread_t thread,
-		  void **value_ptr);
-
-pthread_t pthread_self (void);
-
-int pthread_cancel (pthread_t thread);
-
-int pthread_setcancelstate (int state,
-			    int *oldstate);
-
-int pthread_setcanceltype (int type,
-			   int *oldtype);
-
-void pthread_testcancel (void);
-
-int pthread_once (pthread_once_t * once_control,
-		  void (*init_routine) (void));
-
-ptw32_cleanup_t *ptw32_pop_cleanup (int execute);
-
-void ptw32_push_cleanup (ptw32_cleanup_t * cleanup,
-			   void (*routine) (void *),
-			   void *arg);
-
-/*
- * Thread Specific Data Functions
- */
-int pthread_key_create (pthread_key_t * key,
-			void (*destructor) (void *));
-
-int pthread_key_delete (pthread_key_t key);
-
-int pthread_setspecific (pthread_key_t key,
-			 const void *value);
-
-void *pthread_getspecific (pthread_key_t key);
-
-
-/*
- * Mutex Attribute Functions
- */
-int pthread_mutexattr_init (pthread_mutexattr_t * attr);
-
-int pthread_mutexattr_destroy (pthread_mutexattr_t * attr);
-
-int pthread_mutexattr_getpshared (const pthread_mutexattr_t
-				  * attr,
-				  int *pshared);
-
-int pthread_mutexattr_setpshared (pthread_mutexattr_t * attr,
-				  int pshared);
-
-int pthread_mutexattr_settype (pthread_mutexattr_t * attr, int kind);
-int pthread_mutexattr_gettype (pthread_mutexattr_t * attr, int *kind);
-
-/*
- * Barrier Attribute Functions
- */
-int pthread_barrierattr_init (pthread_barrierattr_t * attr);
-
-int pthread_barrierattr_destroy (pthread_barrierattr_t * attr);
-
-int pthread_barrierattr_getpshared (const pthread_barrierattr_t
-				    * attr,
-				    int *pshared);
-
-int pthread_barrierattr_setpshared (pthread_barrierattr_t * attr,
-				    int pshared);
-
-/*
- * Mutex Functions
- */
-int pthread_mutex_init (pthread_mutex_t * mutex,
-			const pthread_mutexattr_t * attr);
-
-int pthread_mutex_destroy (pthread_mutex_t * mutex);
-
-int pthread_mutex_lock (pthread_mutex_t * mutex);
-
-int pthread_mutex_trylock (pthread_mutex_t * mutex);
-
-int pthread_mutex_unlock (pthread_mutex_t * mutex);
-
-/*
- * Spinlock Functions
- */
-int pthread_spin_init (pthread_spinlock_t * lock, int pshared);
-
-int pthread_spin_destroy (pthread_spinlock_t * lock);
-
-int pthread_spin_lock (pthread_spinlock_t * lock);
-
-int pthread_spin_trylock (pthread_spinlock_t * lock);
-
-int pthread_spin_unlock (pthread_spinlock_t * lock);
-
-/*
- * Barrier Functions
- */
-int pthread_barrier_init (pthread_barrier_t * barrier,
-			  const pthread_barrierattr_t * attr,
-                          unsigned int count);
-
-int pthread_barrier_destroy (pthread_barrier_t * barrier);
-
-int pthread_barrier_wait (pthread_barrier_t * barrier);
-
-/*
- * Condition Variable Attribute Functions
- */
-int pthread_condattr_init (pthread_condattr_t * attr);
-
-int pthread_condattr_destroy (pthread_condattr_t * attr);
-
-int pthread_condattr_getpshared (const pthread_condattr_t * attr,
-				 int *pshared);
-
-int pthread_condattr_setpshared (pthread_condattr_t * attr,
-				 int pshared);
-
-/*
- * Condition Variable Functions
- */
-int pthread_cond_init (pthread_cond_t * cond,
-		       const pthread_condattr_t * attr);
-
-int pthread_cond_destroy (pthread_cond_t * cond);
-
-int pthread_cond_wait (pthread_cond_t * cond,
-		       pthread_mutex_t * mutex);
-
-int pthread_cond_timedwait (pthread_cond_t * cond,
-			    pthread_mutex_t * mutex,
-			    const struct timespec *abstime);
-
-int pthread_cond_signal (pthread_cond_t * cond);
-
-int pthread_cond_broadcast (pthread_cond_t * cond);
-
-/*
- * Scheduling
- */
-int pthread_setschedparam (pthread_t thread,
-			   int policy,
-			   const struct sched_param *param);
-
-int pthread_getschedparam (pthread_t thread,
-			   int *policy,
-			   struct sched_param *param);
-
-int pthread_setconcurrency (int);
-
-int pthread_getconcurrency (void);
-
-/*
- * Read-Write Lock Functions
- */
-int pthread_rwlock_init(pthread_rwlock_t *lock,
-                               const pthread_rwlockattr_t *attr);
-
-int pthread_rwlock_destroy(pthread_rwlock_t *lock);
-
-int pthread_rwlock_tryrdlock(pthread_rwlock_t *);
-
-int pthread_rwlock_trywrlock(pthread_rwlock_t *);
-
-int pthread_rwlock_rdlock(pthread_rwlock_t *lock);
-
-int pthread_rwlock_wrlock(pthread_rwlock_t *lock);
-
-int pthread_rwlock_unlock(pthread_rwlock_t *lock);
-
-
-/*
- * Non-portable functions
- */
-
-/*
- * Compatibility with Linux.
- */
-int pthread_mutexattr_setkind_np(pthread_mutexattr_t * attr, int kind);
-int pthread_mutexattr_getkind_np(pthread_mutexattr_t * attr, int *kind);
-
-/*
- * Possibly supported by other POSIX threads implementations
- */
-int pthread_delay_np (struct timespec * interval);
-
-/*
- * Returns the Win32 HANDLE for the POSIX thread.
- */
-HANDLE pthread_getw32threadhandle_np(pthread_t thread);
-
-/*
- * Returns the number of CPUs available to the process.
- */
-int pthread_getprocessors_np(int * count);
-
-/*
- * Useful if an application wants to statically link
- * the lib rather than load the DLL at run-time.
- */
-int pthread_win32_process_attach_np(void);
-int pthread_win32_process_detach_np(void);
-int pthread_win32_thread_attach_np(void);
-int pthread_win32_thread_detach_np(void);
-
-
-/*
- * Protected Methods
- *
- * This function blocks until the given WIN32 handle
- * is signaled or pthread_cancel had been called.
- * This function allows the caller to hook into the
- * PThreads cancel mechanism. It is implemented using
- *
- *              WaitForMultipleObjects
- *
- * on 'waitHandle' and a manually reset WIN32 Event
- * used to implement pthread_cancel. The 'timeout'
- * argument to TimedWait is simply passed to
- * WaitForMultipleObjects.
- */
-int pthreadCancelableWait (HANDLE waitHandle);
-int pthreadCancelableTimedWait (HANDLE waitHandle, DWORD timeout);
-
-/*
- * Thread-Safe C Runtime Library Mappings.
- */
-#ifndef _UWIN
-#if 1
-#if (! defined(HAVE_ERRNO)) && (! defined(_REENTRANT)) && (! defined(_MT))
-int * _errno( void );
-#endif
-#else
-#if (! defined(NEED_ERRNO)) || (! defined( _REENTRANT ) && (! defined( _MT ) || ! defined( _MD )))
-#if defined(PTW32_BUILD)
-__declspec( dllexport ) int * _errno( void );
-#else
-int * _errno( void );
-#endif
-#endif
-#endif
-#endif
-
-/*
- * WIN32 C runtime library had been made thread-safe
- * without affecting the user interface. Provide
- * mappings from the UNIX thread-safe versions to
- * the standard C runtime library calls.
- * Only provide function mappings for functions that
- * actually exist on WIN32.
- */
-
-#if !defined(__MINGW32__)
-#define strtok_r( _s, _sep, _lasts ) \
-	( *(_lasts) = strtok( (_s), (_sep) ) )
-#endif /* !__MINGW32__ */
-
-#define asctime_r( _tm, _buf ) \
-	( strcpy( (_buf), asctime( (_tm) ) ), \
-	  (_buf) )
-
-#define ctime_r( _clock, _buf ) \
-	( strcpy( (_buf), ctime( (_clock) ) ),  \
-          (_buf) )
-
-#define gmtime_r( _clock, _result ) \
-	( *(_result) = *gmtime( (_clock) ), \
-	  (_result) )
-
-#define localtime_r( _clock, _result ) \
-	( *(_result) = *localtime( (_clock) ), \
-	  (_result) )
-
-#define rand_r( _seed ) \
-	( _seed == _seed? rand() : rand() )
-
-
-#ifdef __cplusplus
-
-/*
- * Internal exceptions
- */
-class ptw32_exception {};
-class ptw32_exception_cancel : public ptw32_exception {};
-class ptw32_exception_exit   : public ptw32_exception {};
-
-#endif
-
-/* FIXME: This is only required if the library was built using SEH */
-/*
- * Get internal SEH tag
- */
-DWORD ptw32_get_exception_services_code(void);
-
-#ifndef PTW32_BUILD
-
-#ifdef __CLEANUP_SEH
-
-/*
- * Redefine the SEH __except keyword to ensure that applications
- * propagate our internal exceptions up to the library's internal handlers.
- */
-#define __except( E ) \
-        __except( ( GetExceptionCode() == ptw32_get_exception_services_code() ) \
-		 ? EXCEPTION_CONTINUE_SEARCH : ( E ) )
-
-#endif /* __CLEANUP_SEH */
-
-#ifdef __cplusplus
-
-/*
- * Redefine the C++ catch keyword to ensure that applications
- * propagate our internal exceptions up to the library's internal handlers.
- */
-#ifdef _MSC_VER
-        /*
-         * WARNING: Replace any 'catch( ... )' with 'PtW32CatchAll'
-         * if you want Pthread-Win32 cancelation and pthread_exit to work.
-         */
-
-#ifndef PtW32NoCatchWarn
-
-#pragma message("When compiling applications with MSVC++ and C++ exception handling:")
-#pragma message("  Replace any 'catch( ... )' with 'PtW32CatchAll' in POSIX threads")
-#pragma message("  if you want POSIX thread cancelation and pthread_exit to work.")
-
-#endif
-
-#define PtW32CatchAll \
-        catch( ptw32_exception & ) { throw; } \
-        catch( ... )
-
-#else /* _MSC_VER */
-
-#define catch( E ) \
-        catch( ptw32_exception & ) { throw; } \
-        catch( E )
-
-#endif /* _MSC_VER */
-
-#endif /* __cplusplus */
-
-#endif /* ! PTW32_BUILD */
-
-#ifdef __cplusplus
-}				/* End of extern "C" */
-#endif				/* __cplusplus */
-
-#endif /* PTHREAD_H */
diff --git a/lib/libdvd/libdvdnav/msvc/include/pthreads/sched.h b/lib/libdvd/libdvdnav/msvc/include/pthreads/sched.h
deleted file mode 100755
index d7596b2..0000000
--- a/lib/libdvd/libdvdnav/msvc/include/pthreads/sched.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Module: sched.h
- *
- * Purpose:
- *      Provides an implementation of POSIX realtime extensions
- *      as defined in
- *
- *              POSIX 1003.1b-1993      (POSIX.1b)
- *
- * Pthreads-win32 - POSIX Threads Library for Win32
- * Copyright (C) 1998
- *
- * 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 02110-1301 USA.
- */
-#ifndef _SCHED_H
-#define _SCHED_H
-
-#if defined(__MINGW32__) || defined(_UWIN)
-/* For pid_t */
-#  include <sys/types.h>
-/* Required by Unix 98 */
-#  include <time.h>
-#else
-typedef int pid_t;
-#endif
-
-/* Thread scheduling policies */
-
-enum {
-  SCHED_OTHER = 0,
-  SCHED_FIFO,
-  SCHED_RR,
-  SCHED_MIN   = SCHED_OTHER,
-  SCHED_MAX   = SCHED_RR
-};
-
-struct sched_param {
-  int sched_priority;
-};
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif                          /* __cplusplus */
-
-int sched_yield (void);
-
-int sched_get_priority_min (int policy);
-
-int sched_get_priority_max (int policy);
-
-int sched_setscheduler (pid_t pid, int policy);
-
-int sched_getscheduler (pid_t pid);
-
-/*
- * Note that this macro returns ENOTSUP rather than
- * ENOSYS as might be expected. However, returning ENOSYS
- * should mean that sched_get_priority_{min,max} are
- * not implemented as well as sched_rr_get_interval.
- * This is not the case, since we just don't support
- * round-robin scheduling. Therefore I have chosen to
- * return the same value as sched_setscheduler when
- * SCHED_RR is passed to it.
- */
-#define sched_rr_get_interval(_pid, _interval) \
-  ( errno = ENOTSUP, (int) -1 )
-
-
-#ifdef __cplusplus
-}                               /* End of extern "C" */
-#endif                          /* __cplusplus */
-
-
-#endif                          /* !_SCHED_H */
-
diff --git a/lib/libdvd/libdvdnav/msvc/include/sys/time.h b/lib/libdvd/libdvdnav/msvc/include/sys/time.h
deleted file mode 100755
index 843e252..0000000
--- a/lib/libdvd/libdvdnav/msvc/include/sys/time.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2000-2001 the xine project
- *
- * This file is part of xine, a unix video player.
- *
- * xine 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.
- *
- * xine is distributed in the hope that 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.
- *
- * WIN32 PORT,
- * by Matthew Grooms <elon at altavista.com>
- *
- * sys/time.h - There is no seperate sys/time.h for win32 so we simply
- *              include the standard time header as well as our xine
- *				timer functions.
- */
-
-#include <time.h>
diff --git a/lib/libdvd/libdvdnav/msvc/include/timer.h b/lib/libdvd/libdvdnav/msvc/include/timer.h
deleted file mode 100755
index efab6f4..0000000
--- a/lib/libdvd/libdvdnav/msvc/include/timer.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <time.h>
-#include <winsock.h>
-#include "pthread.h"
-
-#ifndef _ITIMER_
-#define _ITIMER_
-
-#define ITIMER_REAL		0
-#define ITIMER_VIRTUAL	1
-
-//	time reference
-//	----------------------------------
-//
-//	1,000			milliseconds / sec
-//	1,000,000		microseconds / sec
-//	1,000,000,000	nanoseconds  / sec
-//
-//  timeval.time_sec  = seconds
-//  timeval.time_usec = microseconds
-
-struct itimerval
-{
-	struct timeval it_interval;    /* timer interval */
-	struct timeval it_value;       /* current value */
-};
-
-struct timezone {
-    int     tz_minuteswest; /* minutes west of Greenwich */
-    int     tz_dsttime;     /* type of dst correction */
-};
-
-int gettimeofday( struct timeval *tp, struct timezone *tzp );
-int setitimer( int which, struct itimerval * value, struct itimerval *ovalue );
-int pause( void );
-
-unsigned int sleep( unsigned int seconds );
-int nanosleep( const struct timespec *rqtp, struct timespec *rmtp );
-
-#endif
\ No newline at end of file
diff --git a/lib/libdvd/libdvdnav/msvc/include/unistd.h b/lib/libdvd/libdvdnav/msvc/include/unistd.h
deleted file mode 100755
index 2f3c458..0000000
--- a/lib/libdvd/libdvdnav/msvc/include/unistd.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2000-2001 the xine project
- *
- * This file is part of xine, a unix video player.
- *
- * xine 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.
- *
- * xine is distributed in the hope that 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.
- *
- * WIN32 PORT,
- * by Matthew Grooms <elon at altavista.com>
- *
- * unistd.h - This is mostly a catch all header that maps standard unix
- *            libc calls to the equivelent win32 functions.
- *
- */
-
-#include <windows.h>
-#include <malloc.h>
-#include <errno.h>
-#include <direct.h>
-
-#include <config.h>
-
-#ifndef _SYS_UNISTD_H_
-#define _SYS_UNISTD_H_
-
-#define inline __inline
-
-#define mkdir( A, B )	_mkdir( A )
-#define lstat			stat
-
-#ifndef S_ISDIR
-#define S_ISDIR(A)		( S_IFDIR & A )
-#endif
-
-#define S_IXUSR			S_IEXEC
-#define S_IXGRP			S_IEXEC
-#define S_IXOTH			S_IEXEC
-
-#define  M_PI			3.14159265358979323846  /* pi */
-
-#define bzero( A, B ) memset( A, 0, B )
-
-#ifndef strcasecmp
-#define strcasecmp _stricmp
-#endif
-
-#ifndef strncasecmp
-#define strncasecmp _strnicmp
-#endif
-
-#define snprintf _snprintf
-#define vsnprintf _vsnprintf
-
-// FIXME : I dont remember why this is here
-#define readlink
-
-#endif
diff --git a/lib/libdvd/libdvdnav/msvc/install/README b/lib/libdvd/libdvdnav/msvc/install/README
deleted file mode 100755
index 5e6ba4a..0000000
--- a/lib/libdvd/libdvdnav/msvc/install/README
+++ /dev/null
@@ -1,7 +0,0 @@
-MSVC Help
----------
-
-In order to build using any application that requires libdvdnav using MSVC the 
-following directories (lib and include) must be copied to the msvc directory of 
-the particular application. 
-
diff --git a/lib/libdvd/libdvdnav/msvc/libdvdnav.def b/lib/libdvd/libdvdnav/msvc/libdvdnav.def
deleted file mode 100755
index 7f633d1..0000000
--- a/lib/libdvd/libdvdnav/msvc/libdvdnav.def
+++ /dev/null
@@ -1,82 +0,0 @@
-;------------------------------------------------------------
-; LIBDVDNAV DLL DEFINITIONS FILE
-
-EXPORTS
-
-DVDOpen
-DVDClose
-DVDOpenFile
-DVDCloseFile
-DVDReadBlocks
-
-navRead_DSI
-navRead_PCI
-
-ifoClose
-ifoRead_VOBU_ADMAP
-ifoRead_VTS_ATRT
-ifoRead_PTL_MAIT
-ifoRead_PGCI_UT
-ifoRead_TT_SRPT
-ifoRead_FP_PGC
-ifoOpenVMGI
-ifoRead_TITLE_VOBU_ADMAP
-ifoRead_PGCIT
-ifoRead_VTS_PTT_SRPT
-ifoOpenVTSI
-ifoPrint
-
-dvdnav_set_readahead_flag
-dvdnav_set_region_mask
-dvdnav_spu_language_select
-dvdnav_audio_language_select
-dvdnav_menu_language_select
-dvdnav_get_angle_info
-dvdnav_current_title_info
-dvdnav_title_play
-dvdnav_part_play
-dvdnav_get_number_of_titles
-dvdnav_get_title_string
-dvdnav_open
-dvdnav_close
-dvdnav_wait_skip
-dvdnav_get_video_scale_permission
-dvdnav_get_video_aspect
-dvdnav_still_skip
-dvdnav_err_to_string
-dvdnav_get_next_cache_block
-dvdnav_free_cache_block
-dvdnav_get_position
-dvdnav_sector_search
-dvdnav_get_current_highlight
-dvdnav_button_select_and_activate
-dvdnav_right_button_select
-dvdnav_left_button_select
-dvdnav_lower_button_select
-dvdnav_upper_button_select
-dvdnav_mouse_select
-dvdnav_button_select
-dvdnav_mouse_activate
-dvdnav_button_activate
-dvdnav_angle_change
-dvdnav_prev_pg_search
-dvdnav_next_pg_search
-dvdnav_menu_call
-dvdnav_spu_stream_to_lang
-dvdnav_get_spu_logical_stream
-dvdnav_audio_stream_to_lang
-dvdnav_get_audio_logical_stream
-dvdnav_is_domain_vts
-
-dvdnav_set_PGC_positioning_flag
-dvdnav_get_number_of_parts
-dvdnav_reset
-
-;------------------------------------------------------------
-; timer exports
-
-gettimeofday
-setitimer
-pause
-sleep
-nanosleep
diff --git a/lib/libdvd/libdvdnav/msvc/libdvdnav.dsp b/lib/libdvd/libdvdnav/msvc/libdvdnav.dsp
deleted file mode 100755
index c1dd747..0000000
--- a/lib/libdvd/libdvdnav/msvc/libdvdnav.dsp
+++ /dev/null
@@ -1,156 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libdvdnav" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=libdvdnav - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "libdvdnav.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "libdvdnav.mak" CFG="libdvdnav - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "libdvdnav - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "libdvdnav - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "libdvdnav - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-LINK32=link.exe
-# ADD BASE LINK32 /machine:IX86
-# ADD LINK32 /machine:IX86
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "..\..\libdvdcss\src" /I "." /I "include" /I "contrib/dirent" /I "include/pthreads" /I "../../libdvdcss" /I ".." /I "../src" /I "../src/vm" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "DVDNAV_COMPILE" /D "HAVE_CONFIG_H" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"Release\libdvdnav\libdvdnav.lib"
-# Begin Special Build Tool
-SOURCE="$(InputPath)"
-PostBuild_Desc=Create libdvdnav Install Files
-PostBuild_Cmds=scripts\libdvdnav_install.bat Release
-# End Special Build Tool
-
-!ELSEIF  "$(CFG)" == "libdvdnav - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-LINK32=link.exe
-# ADD BASE LINK32 /machine:IX86
-# ADD LINK32 /debug /machine:IX86 /out:"Debug/libdvdnav.lib" /implib:"Debug/libdvdnav.lib"
-# SUBTRACT LINK32 /pdb:none /nodefaultlib
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "include" /I "contrib/dirent" /I "include/pthreads" /I "../../libdvdcss" /I "../src" /I "." /I ".." /I "../src/vm" /D "WIN32" /D "_DEBUG" /D "_LIB" /D "DVDNAV_COMPILE" /D "HAVE_CONFIG_H" /FR"Debug/libdvdnav/" /Fp"Debug/libdvdnav/libdvdnav.pch" /YX /Fo"Debug/libdvdnav/" /Fd"Debug/libdvdnav/" /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 libwin32utils.lib /nologo /out:"Debug\libdvdnav\libdvdnav.lib"
-# Begin Special Build Tool
-SOURCE="$(InputPath)"
-PostBuild_Desc=Create libdvdnav Install Files
-PostBuild_Cmds=scripts\libdvdnav_install.bat Debug
-# End Special Build Tool
-
-!ENDIF 
-
-# Begin Target
-
-# Name "libdvdnav - Win32 Release"
-# Name "libdvdnav - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\src\vm\decoder.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\dvdnav.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\highlight.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\navigation.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\read_cache.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\remap.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\searching.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\settings.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\vm\vm.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\vm\vmcmd.c
-# End Source File
-# End Group
-# Begin Group "DLL Defs"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\libdvdnav.def
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/lib/libdvd/libdvdnav/msvc/libdvdnav.dsw b/lib/libdvd/libdvdnav/msvc/libdvdnav.dsw
deleted file mode 100755
index 8974efb..0000000
--- a/lib/libdvd/libdvdnav/msvc/libdvdnav.dsw
+++ /dev/null
@@ -1,101 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "ifo_dump"=.\ifo_dump.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libdvdnav
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "libdvdcss"=.\libdvdcss.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "libdvdnav"=.\libdvdnav.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libwin32utils
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "libwin32utils"=.\libwin32utils.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "play_title"=.\play_title.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libdvdnav
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "title_info"=.\title_info.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libdvdnav
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/lib/libdvd/libdvdnav/msvc/libwin32utils.def b/lib/libdvd/libdvdnav/msvc/libwin32utils.def
deleted file mode 100755
index 1277cc8..0000000
--- a/lib/libdvd/libdvdnav/msvc/libwin32utils.def
+++ /dev/null
@@ -1,229 +0,0 @@
-;------------------------------------------------------------
-; LIBWIN32UTILS DLL DEFINITIONS FILE
-
-EXPORTS
-
-;------------------------------------------------------------
-; dirent exports
-
-opendir
-closedir
-readdir
-rewinddir
-
-;------------------------------------------------------------
-; pthread exports
-
-;pthread_atfork
-pthread_attr_destroy
-pthread_attr_getdetachstate
-pthread_attr_getinheritsched
-pthread_attr_getschedparam
-pthread_attr_getschedpolicy
-pthread_attr_getscope
-pthread_attr_getstackaddr
-pthread_attr_getstacksize
-pthread_attr_init
-pthread_attr_setdetachstate
-pthread_attr_setinheritsched
-pthread_attr_setschedparam
-pthread_attr_setschedpolicy
-pthread_attr_setscope
-pthread_attr_setstackaddr
-pthread_attr_setstacksize
-pthread_cancel
-;
-; These two are implemented as macros in pthread.h
-;
-;pthread_cleanup_pop
-;pthread_cleanup_push
-;
-pthread_condattr_destroy
-pthread_condattr_getpshared
-pthread_condattr_init
-pthread_condattr_setpshared
-pthread_cond_broadcast
-pthread_cond_destroy
-pthread_cond_init
-pthread_cond_signal
-pthread_cond_timedwait
-pthread_cond_wait
-pthread_create
-pthread_detach
-pthread_equal
-pthread_exit
-pthread_getconcurrency
-pthread_getschedparam
-pthread_getspecific
-pthread_join
-pthread_key_create
-pthread_key_delete
-;pthread_kill
-pthread_mutexattr_destroy
-;pthread_mutexattr_getprioceiling
-;pthread_mutexattr_getprotocol
-pthread_mutexattr_getpshared
-pthread_mutexattr_gettype
-pthread_mutexattr_init
-;pthread_mutexattr_setprioceiling
-;pthread_mutexattr_setprotocol
-pthread_mutexattr_setpshared
-pthread_mutexattr_settype
-pthread_mutexattr_destroy
-pthread_mutex_init
-pthread_mutex_destroy
-pthread_mutex_lock
-pthread_mutex_trylock
-pthread_mutex_unlock
-pthread_once
-pthread_self
-pthread_setcancelstate
-pthread_setcanceltype
-pthread_setconcurrency
-pthread_setschedparam
-pthread_setspecific
-;pthread_sigmask
-pthread_testcancel
-;
-; POSIX 1.b
-;
-sched_get_priority_min
-sched_get_priority_max
-sched_getscheduler
-sched_setscheduler
-sched_yield
-sem_init
-sem_destroy
-sem_trywait
-sem_wait
-sem_post
-sem_open
-sem_close
-sem_unlink
-sem_getvalue
-;
-; This next one is a macro
-;sched_rr_get_interval
-;
-;
-; Read/Write Locks
-;
-pthread_rwlock_init
-pthread_rwlock_destroy
-pthread_rwlock_tryrdlock
-pthread_rwlock_trywrlock
-pthread_rwlock_rdlock
-pthread_rwlock_wrlock
-pthread_rwlock_unlock
-;
-; Spin locks
-;
-pthread_spin_init
-pthread_spin_destroy
-pthread_spin_lock
-pthread_spin_unlock
-pthread_spin_trylock
-;
-; Barriers
-;
-pthread_barrier_init
-pthread_barrier_destroy
-pthread_barrier_wait
-pthread_barrierattr_init
-pthread_barrierattr_destroy
-pthread_barrierattr_getpshared
-pthread_barrierattr_setpshared
-;
-; Non-portable/compatibility with other implementations
-;
-pthread_delay_np
-pthread_mutexattr_getkind_np
-pthread_mutexattr_setkind_np
-;
-; Non-portable local implementation only
-;
-pthread_getw32threadhandle_np
-pthread_getprocessors_np
-pthreadCancelableWait
-pthreadCancelableTimedWait
-;
-; For use when linking statically
-;
-pthread_win32_process_attach_np
-pthread_win32_process_detach_np
-pthread_win32_thread_attach_np
-pthread_win32_thread_detach_np
-;
-; Needed if !defined(_MSC_VER) && !defined(__cplusplus)
-;
-ptw32_push_cleanup
-ptw32_pop_cleanup
-;
-; Not for use directly. Needed by macros in pthread.h
-; to return internal SEH code.
-;
-ptw32_get_exception_services_code
-
-;------------------------------------------------------------
-; timer exports
-
-adler32
-compress
-crc32
-deflate
-deflateCopy
-deflateEnd
-deflateInit2_
-deflateInit_
-deflateParams
-deflateReset
-deflateSetDictionary
-gzclose
-gzdopen
-gzerror
-gzflush
-gzopen
-gzread
-gzwrite
-inflate
-inflateEnd
-inflateInit2_
-inflateInit_
-inflateReset
-inflateSetDictionary
-inflateSync
-uncompress
-zlibVersion
-gzprintf
-gzputc
-gzgetc
-gzseek
-gzrewind
-gztell
-gzeof
-gzsetparams
-zError
-inflateSyncPoint
-get_crc_table
-compress2
-gzputs
-gzgets
-
-;------------------------------------------------------------
-; timer exports
-
-gettimeofday
-setitimer
-pause
-sleep
-nanosleep
-
-;------------------------------------------------------------
-; other exports
-bcopy
-dlclose
-dlsym
-dlopen
-dlerror
-
-optind
\ No newline at end of file
diff --git a/lib/libdvd/libdvdnav/msvc/libwin32utils.dsp b/lib/libdvd/libdvdnav/msvc/libwin32utils.dsp
deleted file mode 100755
index f94af8f..0000000
--- a/lib/libdvd/libdvdnav/msvc/libwin32utils.dsp
+++ /dev/null
@@ -1,136 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libwin32utils" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=libwin32utils - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "libwin32utils.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "libwin32utils.mak" CFG="libwin32utils - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "libwin32utils - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "libwin32utils - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "libwin32utils - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release/libwin32utils"
-# PROP Intermediate_Dir "Release/libwin32utils"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /machine:I386
-# ADD LINK32 winmm.lib /nologo /machine:I386 /out:"Release/libwin32utils.lib"
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /D "LIBWIN32UTILS_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "include" /I "contrib/dirent" /I "include/pthreads" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /D "LIBWIN32UTILS_EXPORTS" /D "__CLEANUP_C" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD LIB32 /out:"libwin32utils.lib"
-
-!ELSEIF  "$(CFG)" == "libwin32utils - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug/libwin32utils"
-# PROP Intermediate_Dir "Debug/libwin32utils"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 winmm.lib /nologo /debug /machine:I386 /out:"Debug/libwin32utils.lib" /pdbtype:sept
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /D "LIBWIN32UTILS_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "include/pthreads" /I "include" /I "contrib/dirent" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /D "LIBWIN32UTILS_EXPORTS" /D "__CLEANUP_C" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD LIB32 winmm.lib /out:"libwin32utils.lib"
-
-!ENDIF 
-
-# Begin Target
-
-# Name "libwin32utils - Win32 Release"
-# Name "libwin32utils - Win32 Debug"
-# Begin Group "Source Files ( dirent )"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\contrib\dirent\dirent.c
-# End Source File
-# End Group
-# Begin Group "Source Files ( timer )"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\contrib\timer\timer.c
-# End Source File
-# End Group
-# Begin Group "DLL Defs"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\libwin32utils.def
-# End Source File
-# End Group
-# Begin Group "Source Files ( other )"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\contrib\bcopy.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\contrib\dlfcn.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\contrib\getopt.c
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/lib/libdvd/libdvdnav/msvc/play_title.dsp b/lib/libdvd/libdvdnav/msvc/play_title.dsp
deleted file mode 100755
index 8a3efdf..0000000
--- a/lib/libdvd/libdvdnav/msvc/play_title.dsp
+++ /dev/null
@@ -1,101 +0,0 @@
-# Microsoft Developer Studio Project File - Name="play_title" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=play_title - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "play_title.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "play_title.mak" CFG="play_title - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "play_title - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "play_title - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "play_title - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-
-!ELSEIF  "$(CFG)" == "play_title - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "play_title___Win32_Debug"
-# PROP BASE Intermediate_Dir "play_title___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug\play_title"
-# PROP Intermediate_Dir "Debug\play_title"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "include" /I "contrib/dirent" /I "../../libdvdcss" /I "install/include" /I "." /I ".." /I "../src" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"Debug/bin/play_title.exe" /pdbtype:sept
-
-!ENDIF 
-
-# Begin Target
-
-# Name "play_title - Win32 Release"
-# Name "play_title - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\src\play_title.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/lib/libdvd/libdvdnav/msvc/scripts/libdvdnav_install.bat b/lib/libdvd/libdvdnav/msvc/scripts/libdvdnav_install.bat
deleted file mode 100755
index f49f2f2..0000000
--- a/lib/libdvd/libdvdnav/msvc/scripts/libdvdnav_install.bat
+++ /dev/null
@@ -1,21 +0,0 @@
-
-ECHO mkdir install ...
-rmdir /s install\include
-rmdir /s install\lib
-mkdir install\include\dvdnav
-mkdir install\lib
-
-ECHO includes ...
-xcopy /Y ..\src\dvdnav.h install\include\dvdnav
-xcopy /Y ..\src\dvdnav_events.h install\include\dvdnav
-xcopy /Y ..\src\dvd_types.h install\include\dvdnav
-xcopy /Y ..\src\dvdread\dvd_reader.h install\include\dvdnav
-xcopy /Y ..\src\dvdread\nav_read.h install\include\dvdnav
-xcopy /Y ..\src\dvdread\ifo_read.h install\include\dvdnav
-xcopy /Y ..\src\dvdread\nav_print.h install\include\dvdnav
-xcopy /Y ..\src\dvdread\ifo_print.h install\include\dvdnav
-xcopy /Y ..\src\dvdread\ifo_types.h install\include\dvdnav
-xcopy /Y ..\src\dvdread\nav_types.h install\include\dvdnav
-
-ECHO lib ...
-xcopy /Y %1\libdvdnav\libdvdnav.lib install\lib
diff --git a/lib/libdvd/libdvdnav/msvc/title_info.dsp b/lib/libdvd/libdvdnav/msvc/title_info.dsp
deleted file mode 100755
index 39d3768..0000000
--- a/lib/libdvd/libdvdnav/msvc/title_info.dsp
+++ /dev/null
@@ -1,101 +0,0 @@
-# Microsoft Developer Studio Project File - Name="title_info" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=title_info - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "title_info.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "title_info.mak" CFG="title_info - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "title_info - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "title_info - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "title_info - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-
-!ELSEIF  "$(CFG)" == "title_info - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "title_info___Win32_Debug"
-# PROP BASE Intermediate_Dir "title_info___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "title_info___Win32_Debug"
-# PROP Intermediate_Dir "title_info___Win32_Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "include" /I "contrib/dirent" /I "../../libdvdcss" /I "install/include" /I "." /I ".." /I "../src" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"Debug/title_info/title_info.pch" /YX /Fo"Debug/title_info/" /Fd"Debug/title_info/" /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"Debug/bin/title_info.exe" /pdbtype:sept
-
-!ENDIF 
-
-# Begin Target
-
-# Name "title_info - Win32 Release"
-# Name "title_info - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\src\title_info.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/lib/libdvd/libdvdread/msvc/config.h b/lib/libdvd/libdvdread/msvc/config.h
deleted file mode 100755
index 4e9b60e..0000000
--- a/lib/libdvd/libdvdread/msvc/config.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* config.h.  Generated by hand.  */
-
-#ifndef LIBDVDREAD_CONFIG_H
-#define LIBDVDREAD_CONFIG_H
-
-#define HAVE_DLFCN_H 1
-/* #undef HAVE_DVDCSS_DVDCSS_H*/
-/* #undef HAVE_INTTYPES_H */
-#define HAVE_MEMORY_H 1
-/* #undef HAVE_STDINT_H */
-#define HAVE_STDLIB_H 1
-#define HAVE_STRINGS_H 1
-#define HAVE_STRING_H 1
-#define HAVE_SYS_STAT_H 1
-#define HAVE_SYS_TYPES_H 1
-/* #undef HAVE_UNISTD_H */
-#define PACKAGE "libdvdread"
-#define PACKAGE_BUGREPORT ""
-#define PACKAGE_NAME ""
-#define PACKAGE_STRING ""
-#define PACKAGE_TARNAME ""
-#define PACKAGE_VERSION ""
-#define STDC_HEADERS 1
-#define VERSION "1.2.6"
-/* #undef WORDS_BIGENDIAN */
-/* #undef __DARWIN__ */
-/* #undef const */
-#define inline __inline
-/* #undef size_t */
-
-#define ssize_t __int64
-
-#ifndef PATH_MAX
-#define PATH_MAX MAX_PATH
-#endif
-
-#define strcasecmp stricmp
-#define strncasecmp strnicmp
-
-#define S_ISDIR(m) ((m) & _S_IFDIR)
-#define S_ISREG(m) ((m) & _S_IFREG)
-#define S_ISBLK(m) 0
-#define S_ISCHR(m) 0
-
-/* Fallback types (very x86-centric, sorry) */
-typedef unsigned char       uint8_t;
-typedef signed char         int8_t;
-typedef unsigned short      uint16_t;
-typedef signed short        int16_t;
-typedef unsigned int        uint32_t;
-typedef signed int          int32_t;
-typedef unsigned __int64    uint64_t;
-typedef signed __int64      int64_t;
-typedef unsigned int        uintptr_t;
-
-#endif /* LIBDVDREAD_CONFIG_H */
diff --git a/lib/libdvd/libdvdread/msvc/contrib/bcopy.c b/lib/libdvd/libdvdread/msvc/contrib/bcopy.c
deleted file mode 100755
index 21be364..0000000
--- a/lib/libdvd/libdvdread/msvc/contrib/bcopy.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <string.h>
-
-void bcopy(const void *IN, void *OUT, size_t N);
-
-void bcopy(const void *IN, void *OUT, size_t N)
-{
-  memcpy(OUT, IN, N);
-}
diff --git a/lib/libdvd/libdvdread/msvc/contrib/dirent/dirent.c b/lib/libdvd/libdvdread/msvc/contrib/dirent/dirent.c
deleted file mode 100755
index 00289ed..0000000
--- a/lib/libdvd/libdvdread/msvc/contrib/dirent/dirent.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
-
-    Implementation of POSIX directory browsing functions and types for Win32.
-
-    Kevlin Henney (mailto:kevlin at acm.org), March 1997.
-
-    Copyright Kevlin Henney, 1997. All rights reserved.
-
-    Permission to use, copy, modify, and distribute this software and its
-    documentation for any purpose is hereby granted without fee, provided
-    that this copyright and permissions notice appear in all copies and
-    derivatives, and that no charge may be made for the software and its
-    documentation except to cover cost of distribution.
-
-    This software is supplied "as is" without express or implied warranty.
-
-    But that said, if there are any problems please get in touch.
-
-*/
-
-#include <dirent.h>
-#include <errno.h>
-#include <io.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifndef DIR
-
-struct DIR
-{
-    long                handle; /* -1 for failed rewind */
-    struct _finddata_t  info;
-    struct dirent       result; /* d_name null iff first time */
-    char                *name;  /* NTBS */
-};
-
-#endif
-
-DIR *opendir(const char *name)
-{
-    DIR *dir = 0;
-
-    if(name && name[0])
-    {
-        size_t base_length = strlen(name);
-        const char *all = /* the root directory is a special case... */
-            strchr("/\\", name[base_length - 1]) ? "*" : "/*";
-
-        if((dir = (DIR *) malloc(sizeof *dir)) != 0 &&
-           (dir->name = (char *) malloc(base_length + strlen(all) + 1)) != 0)
-        {
-            strcat(strcpy(dir->name, name), all);
-
-            if((dir->handle = _findfirst(dir->name, &dir->info)) != -1)
-            {
-                dir->result.d_name = 0;
-            }
-            else /* rollback */
-            {
-                free(dir->name);
-                free(dir);
-                dir = 0;
-            }
-        }
-        else /* rollback */
-        {
-            free(dir);
-            dir   = 0;
-            errno = ENOMEM;
-        }
-    }
-    else
-    {
-        errno = EINVAL;
-    }
-
-    return dir;
-}
-
-int closedir(DIR *dir)
-{
-    int result = -1;
-
-    if(dir)
-    {
-        if(dir->handle != -1)
-        {
-            result = _findclose(dir->handle);
-        }
-
-        free(dir->name);
-        free(dir);
-    }
-
-    if(result == -1) /* map all errors to EBADF */
-    {
-        errno = EBADF;
-    }
-
-    return result;
-}
-
-struct dirent *readdir(DIR *dir)
-{
-    struct dirent *result = 0;
-
-    if(dir && dir->handle != -1)
-    {
-        if(!dir->result.d_name || _findnext(dir->handle, &dir->info) != -1)
-        {
-            result         = &dir->result;
-            result->d_name = dir->info.name;
-        }
-    }
-    else
-    {
-        errno = EBADF;
-    }
-
-    return result;
-}
-
-void rewinddir(DIR *dir)
-{
-    if(dir && dir->handle != -1)
-    {
-        _findclose(dir->handle);
-        dir->handle = _findfirst(dir->name, &dir->info);
-        dir->result.d_name = 0;
-    }
-    else
-    {
-        errno = EBADF;
-    }
-}
diff --git a/lib/libdvd/libdvdread/msvc/contrib/dirent/dirent.h b/lib/libdvd/libdvdread/msvc/contrib/dirent/dirent.h
deleted file mode 100755
index 28a1773..0000000
--- a/lib/libdvd/libdvdread/msvc/contrib/dirent/dirent.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-
-    Declaration of POSIX directory browsing functions and types for Win32.
-
-    Kevlin Henney (mailto:kevlin at acm.org), March 1997.
-
-    Copyright Kevlin Henney, 1997. All rights reserved.
-
-    Permission to use, copy, modify, and distribute this software and its
-    documentation for any purpose is hereby granted without fee, provided
-    that this copyright and permissions notice appear in all copies and
-    derivatives, and that no charge may be made for the software and its
-    documentation except to cover cost of distribution.
-
-*/
-
-#ifndef DIRENT_INCLUDED
-#define DIRENT_INCLUDED
-
-typedef struct DIR DIR;
-
-struct dirent
-{
-    char *d_name;
-};
-
-DIR           *opendir(const char *);
-int           closedir(DIR *);
-struct dirent *readdir(DIR *);
-void          rewinddir(DIR *);
-
-#endif
diff --git a/lib/libdvd/libdvdread/msvc/contrib/dlfcn.c b/lib/libdvd/libdvdread/msvc/contrib/dlfcn.c
deleted file mode 100755
index 3a00045..0000000
--- a/lib/libdvd/libdvdread/msvc/contrib/dlfcn.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Adopted from Apache DSO code.
- * Portions copyright Apache Software Foundation
- *
- * Structures and types used to implement dlopen, dlsym, etc.
- * on Windows 95/NT.
- */
-#include <windows.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "dlfcn.h"
-#include "os_types.h"
-
-void *dlopen(const char *module_name, int mode)
-{
-    UINT em;
-    HINSTANCE dsoh;
-    char path[MAX_PATH], *p;
-    /* Load the module...
-     * per PR2555, the LoadLibraryEx function is very picky about slashes.
-     * Debugging on NT 4 SP 6a reveals First Chance Exception within NTDLL.
-     * LoadLibrary in the MS PSDK also reveals that it -explicitly- states
-     * that backslashes must be used.
-     *
-     * Transpose '\' for '/' in the filename.
-     */
-    (void)strncpy(path, module_name, MAX_PATH);
-    p = path;
-    while (p = strchr(p, '/'))
-        *p = '\\';
-
-    /* First assume the dso/dll's required by -this- dso are sitting in the
-     * same path or can be found in the usual places.  Failing that, let's
-     * let that dso look in the apache root.
-     */
-    em = SetErrorMode(SEM_FAILCRITICALERRORS);
-    dsoh = LoadLibraryEx(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
-    if (!dsoh)
-    {
-        SetLastError(0); // clear the last error
-        dsoh = LoadLibraryEx(path, NULL, 0);
-    }
-    SetErrorMode(em);
-    SetLastError(0); // clear the last error
-    return (void *)dsoh;
-}
-
-char *dlerror(void)
-{
-    int len, nErrorCode;
-    static char errstr[120];
-    /* This is -not- threadsafe code, but it's about the best we can do.
-     * mostly a potential problem for isapi modules, since LoadModule
-     * errors are handled within a single config thread.
-     */
-
-    if((nErrorCode = GetLastError()) == 0)
-      return((char *)0);
-
-    SetLastError(0); // clear the last error
-    len = snprintf(errstr, sizeof(errstr), "(%d) ", nErrorCode);
-
-    len += FormatMessage(
-            FORMAT_MESSAGE_FROM_SYSTEM,
-            NULL,
-            nErrorCode,
-            MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */
-            (LPTSTR) errstr + len,
-            sizeof(errstr) - len,
-            NULL
-        );
-        /* FormatMessage may have appended a newline (\r\n). So remove it
-         * and use ": " instead like the Unix errors. The error may also
-         * end with a . before the return - if so, trash it.
-         */
-    if (len > 1 && errstr[len-2] == '\r' && errstr[len-1] == '\n') {
-        if (len > 2 && errstr[len-3] == '.')
-            len--;
-        errstr[len-2] = ':';
-        errstr[len-1] = ' ';
-    }
-    return errstr;
-}
-
-int dlclose(void *handle)
-{
-  return  FreeLibrary(handle);
-}
-
-void *dlsym(void *handle, const char *name)
-{
-  return GetProcAddress(handle, name);
-}
diff --git a/lib/libdvd/libdvdread/msvc/contrib/getopt.c b/lib/libdvd/libdvdread/msvc/contrib/getopt.c
deleted file mode 100755
index b4634e1..0000000
--- a/lib/libdvd/libdvdread/msvc/contrib/getopt.c
+++ /dev/null
@@ -1,1009 +0,0 @@
-/* Getopt for GNU.
-   NOTE: getopt is now part of the C library, so if you don't know what
-   "Keep this file name-space clean" means, talk to roland at gnu.ai.mit.edu
-   before changing it!
-
-   Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
-   Free Software Foundation, Inc.
-
-   This file is part of the GNU C Library.  Its master source is NOT part of
-   the C library, however.  The master source lives in /gd/gnu/lib.
-
-   The GNU C 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.
-
-   The GNU C Library is distributed in the hope that 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 the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
-   Floor, Boston, MA 02110-1301 USA.  */
-
-/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
-   Ditto for AIX 3.2 and <stdlib.h>.  */
-#ifndef _NO_PROTO
-#define _NO_PROTO
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#if !defined (__STDC__) || !__STDC__
-/* This is a separate conditional since some stdc systems
-   reject `defined (const)'.  */
-#ifndef const
-#define const
-#endif
-#endif
-
-#include <stdio.h>
-
-/* Comment out all this code if we are using the GNU C Library, and are not
-   actually compiling the library itself.  This code is part of the GNU C
-   Library, but also included in many other GNU distributions.  Compiling
-   and linking in this code is a waste when using the GNU C library
-   (especially if it is a shared library).  Rather than having every GNU
-   program understand `configure --with-gnu-libc' and omit the object files,
-   it is simpler to just do this in the source for each such file.  */
-
-#define GETOPT_INTERFACE_VERSION 2
-#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
-#include <gnu-versions.h>
-#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
-#define ELIDE_CODE
-#endif
-#endif
-
-#ifndef ELIDE_CODE
-
-/* This needs to come after some library #include
-   to get __GNU_LIBRARY__ defined.  */
-#ifdef	__GNU_LIBRARY__
-/* Don't include stdlib.h for non-GNU C libraries because some of them
-   contain conflicting prototypes for getopt.  */
-#include <stdlib.h>
-#include <unistd.h>
-#endif /* GNU C library.  */
-
-#ifdef VMS
-#include <unixlib.h>
-#if HAVE_STRING_H - 0
-#include <string.h>
-#ifdef STRNCASECMP_IN_STRINGS_H
-#   include <strings.h>
-#endif
-#endif
-#endif
-
-#if defined (WIN32) && !defined (__CYGWIN32__) || defined(UNDER_CE)
-/* It's not Unix, really.  See?  Capital letters.  */
-#include <windows.h>
-#define getpid() GetCurrentProcessId()
-#endif
-
-#ifndef _
-/* This is for other GNU distributions with internationalized messages.
-   When compiling libc, the _ macro is predefined.  */
-#ifdef HAVE_LIBINTL_H
-#include <libintl.h>
-#define _(msgid)	gettext (msgid)
-#else
-#define _(msgid)	(msgid)
-#endif
-#endif
-
-/* This version of `getopt' appears to the caller like standard Unix `getopt'
-   but it behaves differently for the user, since it allows the user
-   to intersperse the options with the other arguments.
-
-   As `getopt' works, it permutes the elements of ARGV so that,
-   when it is done, all the options precede everything else.  Thus
-   all application programs are extended to handle flexible argument order.
-
-   Setting the environment variable POSIXLY_CORRECT disables permutation.
-   Then the behavior is completely standard.
-
-   GNU application programs can use a third alternative mode in which
-   they can distinguish the relative order of options and other arguments.  */
-
-#include "getopt.h"
-
-/* For communication from `getopt' to the caller.
-   When `getopt' finds an option that takes an argument,
-   the argument value is returned here.
-   Also, when `ordering' is RETURN_IN_ORDER,
-   each non-option ARGV-element is returned here.  */
-
-char *optarg = NULL;
-
-/* Index in ARGV of the next element to be scanned.
-   This is used for communication to and from the caller
-   and for communication between successive calls to `getopt'.
-
-   On entry to `getopt', zero means this is the first call; initialize.
-
-   When `getopt' returns -1, this is the index of the first of the
-   non-option elements that the caller should itself scan.
-
-   Otherwise, `optind' communicates from one call to the next
-   how much of ARGV has been scanned so far.  */
-
-/* 1003.2 says this must be 1 before any call.  */
-int optind = 1;
-
-/* Formerly, initialization of getopt depended on optind==0, which
-   causes problems with re-calling getopt as programs generally don't
-   know that. */
-
-int __getopt_initialized = 0;
-
-/* The next char to be scanned in the option-element
-   in which the last option character we returned was found.
-   This allows us to pick up the scan where we left off.
-
-   If this is zero, or a null string, it means resume the scan
-   by advancing to the next ARGV-element.  */
-
-static char *nextchar;
-
-/* Callers store zero here to inhibit the error message
-   for unrecognized options.  */
-
-int opterr = 1;
-
-/* Set to an option character which was unrecognized.
-   This must be initialized on some systems to avoid linking in the
-   system's own getopt implementation.  */
-
-int optopt = '?';
-
-/* Describe how to deal with options that follow non-option ARGV-elements.
-
-   If the caller did not specify anything,
-   the default is REQUIRE_ORDER if the environment variable
-   POSIXLY_CORRECT is defined, PERMUTE otherwise.
-
-   REQUIRE_ORDER means don't recognize them as options;
-   stop option processing when the first non-option is seen.
-   This is what Unix does.
-   This mode of operation is selected by either setting the environment
-   variable POSIXLY_CORRECT, or using `+' as the first character
-   of the list of option characters.
-
-   PERMUTE is the default.  We permute the contents of ARGV as we scan,
-   so that eventually all the non-options are at the end.  This allows options
-   to be given in any order, even with programs that were not written to
-   expect this.
-
-   RETURN_IN_ORDER is an option available to programs that were written
-   to expect options and other ARGV-elements in any order and that care about
-   the ordering of the two.  We describe each non-option ARGV-element
-   as if it were the argument of an option with character code 1.
-   Using `-' as the first character of the list of option characters
-   selects this mode of operation.
-
-   The special argument `--' forces an end of option-scanning regardless
-   of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
-   `--' can cause `getopt' to return -1 with `optind' != ARGC.  */
-
-static enum
-{
-	REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
-}
-ordering;
-
-/* Value of POSIXLY_CORRECT environment variable.  */
-static char *posixly_correct;
-
-#ifdef	__GNU_LIBRARY__
-/* We want to avoid inclusion of string.h with non-GNU libraries
-   because there are many ways it can cause trouble.
-   On some systems, it contains special magic macros that don't work
-   in GCC.  */
-#include <string.h>
-#define	my_index	strchr
-#else
-
-/* Avoid depending on library functions or files
-   whose names are inconsistent.  */
-
-char *getenv();
-
-static char *
-     my_index(str, chr)
-     const char *str;
-     int chr;
-{
-	while (*str)
-	{
-		if (*str == chr)
-			return (char *) str;
-		str++;
-	}
-	return 0;
-}
-
-/* If using GCC, we can safely declare strlen this way.
-   If not using GCC, it is ok not to declare it.  */
-#ifdef __GNUC__
-/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
-   That was relevant to code that was here before.  */
-#if !defined (__STDC__) || !__STDC__
-/* gcc with -traditional declares the built-in strlen to return int,
-   and has done so at least since version 2.4.5. -- rms.  */
-extern int strlen(const char *);
-
-#endif /* not __STDC__ */
-#endif /* __GNUC__ */
-
-#endif /* not __GNU_LIBRARY__ */
-
-/* Handle permutation of arguments.  */
-
-/* Describe the part of ARGV that contains non-options that have
-   been skipped.  `first_nonopt' is the index in ARGV of the first of them;
-   `last_nonopt' is the index after the last of them.  */
-
-static int first_nonopt;
-static int last_nonopt;
-
-#ifdef _LIBC
-/* Bash 2.0 gives us an environment variable containing flags
-   indicating ARGV elements that should not be considered arguments.  */
-
-static const char *nonoption_flags;
-static int nonoption_flags_len;
-
-static int original_argc;
-static char *const *original_argv;
-
-/* Make sure the environment variable bash 2.0 puts in the environment
-   is valid for the getopt call we must make sure that the ARGV passed
-   to getopt is that one passed to the process.  */
-static void store_args(int argc, char *const *argv) __attribute__((unused));
-     static void
-          store_args(int argc, char *const *argv)
-{
-	/* XXX This is no good solution.  We should rather copy the args so
-	   that we can compare them later.  But we must not use malloc(3).  */
-	original_argc = argc;
-	original_argv = argv;
-}
-text_set_element(__libc_subinit, store_args);
-#endif
-
-/* Exchange two adjacent subsequences of ARGV.
-   One subsequence is elements [first_nonopt,last_nonopt)
-   which contains all the non-options that have been skipped so far.
-   The other is elements [last_nonopt,optind), which contains all
-   the options processed since those non-options were skipped.
-
-   `first_nonopt' and `last_nonopt' are relocated so that they describe
-   the new indices of the non-options in ARGV after they are moved.  */
-
-#if defined (__STDC__) && __STDC__
-static void exchange(char **);
-
-#endif
-
-static void
-     exchange(argv)
-     char **argv;
-{
-	int bottom = first_nonopt;
-	int middle = last_nonopt;
-	int top = optind;
-	char *tem;
-
-	/* Exchange the shorter segment with the far end of the longer segment.
-	   That puts the shorter segment into the right place.
-	   It leaves the longer segment in the right place overall,
-	   but it consists of two parts that need to be swapped next.  */
-
-	while (top > middle && middle > bottom)
-	{
-		if (top - middle > middle - bottom)
-		{
-			/* Bottom segment is the short one.  */
-			int len = middle - bottom;
-			register int i;
-
-			/* Swap it with the top part of the top segment.  */
-			for (i = 0; i < len; i++)
-			{
-				tem = argv[bottom + i];
-				argv[bottom + i] = argv[top - (middle - bottom) + i];
-				argv[top - (middle - bottom) + i] = tem;
-			}
-			/* Exclude the moved bottom segment from further swapping.  */
-			top -= len;
-		}
-		else
-		{
-			/* Top segment is the short one.  */
-			int len = top - middle;
-			register int i;
-
-			/* Swap it with the bottom part of the bottom segment.  */
-			for (i = 0; i < len; i++)
-			{
-				tem = argv[bottom + i];
-				argv[bottom + i] = argv[middle + i];
-				argv[middle + i] = tem;
-			}
-			/* Exclude the moved top segment from further swapping.  */
-			bottom += len;
-		}
-	}
-
-	/* Update records for the slots the non-options now occupy.  */
-
-	first_nonopt += (optind - last_nonopt);
-	last_nonopt = optind;
-}
-
-/* Initialize the internal data when the first call is made.  */
-
-#if defined (__STDC__) && __STDC__
-static const char *_getopt_initialize(int, char *const *, const char *);
-
-#endif
-static const char *
-     _getopt_initialize(argc, argv, optstring)
-     int argc;
-     char *const *argv;
-     const char *optstring;
-{
-	/* Start processing options with ARGV-element 1 (since ARGV-element 0
-	   is the program name); the sequence of previously skipped
-	   non-option ARGV-elements is empty.  */
-
-	first_nonopt = last_nonopt = optind = 1;
-
-	nextchar = NULL;
-
-	posixly_correct = getenv("POSIXLY_CORRECT");
-
-	/* Determine how to handle the ordering of options and nonoptions.  */
-
-	if (optstring[0] == '-')
-	{
-		ordering = RETURN_IN_ORDER;
-		++optstring;
-	}
-	else if (optstring[0] == '+')
-	{
-		ordering = REQUIRE_ORDER;
-		++optstring;
-	}
-	else if (posixly_correct != NULL)
-		ordering = REQUIRE_ORDER;
-	else
-		ordering = PERMUTE;
-
-#ifdef _LIBC
-	if (posixly_correct == NULL
-	    && argc == original_argc && argv == original_argv)
-	{
-		/* Bash 2.0 puts a special variable in the environment for each
-		   command it runs, specifying which ARGV elements are the results of
-		   file name wildcard expansion and therefore should not be
-		   considered as options.  */
-		char var[100];
-
-		sprintf(var, "_%d_GNU_nonoption_argv_flags_", getpid());
-		nonoption_flags = getenv(var);
-		if (nonoption_flags == NULL)
-			nonoption_flags_len = 0;
-		else
-			nonoption_flags_len = strlen(nonoption_flags);
-	}
-	else
-		nonoption_flags_len = 0;
-#endif
-
-	return optstring;
-}
-
-/* Scan elements of ARGV (whose length is ARGC) for option characters
-   given in OPTSTRING.
-
-   If an element of ARGV starts with '-', and is not exactly "-" or "--",
-   then it is an option element.  The characters of this element
-   (aside from the initial '-') are option characters.  If `getopt'
-   is called repeatedly, it returns successively each of the option characters
-   from each of the option elements.
-
-   If `getopt' finds another option character, it returns that character,
-   updating `optind' and `nextchar' so that the next call to `getopt' can
-   resume the scan with the following option character or ARGV-element.
-
-   If there are no more option characters, `getopt' returns -1.
-   Then `optind' is the index in ARGV of the first ARGV-element
-   that is not an option.  (The ARGV-elements have been permuted
-   so that those that are not options now come last.)
-
-   OPTSTRING is a string containing the legitimate option characters.
-   If an option character is seen that is not listed in OPTSTRING,
-   return '?' after printing an error message.  If you set `opterr' to
-   zero, the error message is suppressed but we still return '?'.
-
-   If a char in OPTSTRING is followed by a colon, that means it wants an arg,
-   so the following text in the same ARGV-element, or the text of the following
-   ARGV-element, is returned in `optarg'.  Two colons mean an option that
-   wants an optional arg; if there is text in the current ARGV-element,
-   it is returned in `optarg', otherwise `optarg' is set to zero.
-
-   If OPTSTRING starts with `-' or `+', it requests different methods of
-   handling the non-option ARGV-elements.
-   See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
-
-   Long-named options begin with `--' instead of `-'.
-   Their names may be abbreviated as long as the abbreviation is unique
-   or is an exact match for some defined option.  If they have an
-   argument, it follows the option name in the same ARGV-element, separated
-   from the option name by a `=', or else the in next ARGV-element.
-   When `getopt' finds a long-named option, it returns 0 if that option's
-   `flag' field is nonzero, the value of the option's `val' field
-   if the `flag' field is zero.
-
-   The elements of ARGV aren't really const, because we permute them.
-   But we pretend they're const in the prototype to be compatible
-   with other systems.
-
-   LONGOPTS is a vector of `struct option' terminated by an
-   element containing a name which is zero.
-
-   LONGIND returns the index in LONGOPT of the long-named option found.
-   It is only valid when a long-named option has been found by the most
-   recent call.
-
-   If LONG_ONLY is nonzero, '-' as well as '--' can introduce
-   long-named options.  */
-
-int
-    _getopt_internal(argc, argv, optstring, longopts, longind, long_only)
-     int argc;
-     char *const *argv;
-     const char *optstring;
-     const struct option *longopts;
-     int *longind;
-     int long_only;
-{
-	optarg = NULL;
-
-	if (!__getopt_initialized || optind == 0)
-	{
-		optstring = _getopt_initialize(argc, argv, optstring);
-		optind = 1;	/* Don't scan ARGV[0], the program name.  */
-		__getopt_initialized = 1;
-	}
-
-	/* Test whether ARGV[optind] points to a non-option argument.
-	   Either it does not have option syntax, or there is an environment flag
-	   from the shell indicating it is not an option.  The later information
-	   is only used when the used in the GNU libc.  */
-#ifdef _LIBC
-#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0'	      \
-		     || (optind < nonoption_flags_len			      \
-			 && nonoption_flags[optind] == '1'))
-#else
-#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
-#endif
-
-	if (nextchar == NULL || *nextchar == '\0')
-	{
-		/* Advance to the next ARGV-element.  */
-
-		/* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been
-		   moved back by the user (who may also have changed the arguments).  */
-		if (last_nonopt > optind)
-			last_nonopt = optind;
-		if (first_nonopt > optind)
-			first_nonopt = optind;
-
-		if (ordering == PERMUTE)
-		{
-			/* If we have just processed some options following some non-options,
-			   exchange them so that the options come first.  */
-
-			if (first_nonopt != last_nonopt && last_nonopt != optind)
-				exchange((char **) argv);
-			else if (last_nonopt != optind)
-				first_nonopt = optind;
-
-			/* Skip any additional non-options
-			   and extend the range of non-options previously skipped.  */
-
-			while (optind < argc && NONOPTION_P)
-				optind++;
-			last_nonopt = optind;
-		}
-
-		/* The special ARGV-element `--' means premature end of options.
-		   Skip it like a null option,
-		   then exchange with previous non-options as if it were an option,
-		   then skip everything else like a non-option.  */
-
-		if (optind != argc && !strcmp(argv[optind], "--"))
-		{
-			optind++;
-
-			if (first_nonopt != last_nonopt && last_nonopt != optind)
-				exchange((char **) argv);
-			else if (first_nonopt == last_nonopt)
-				first_nonopt = optind;
-			last_nonopt = argc;
-
-			optind = argc;
-		}
-
-		/* If we have done all the ARGV-elements, stop the scan
-		   and back over any non-options that we skipped and permuted.  */
-
-		if (optind == argc)
-		{
-			/* Set the next-arg-index to point at the non-options
-			   that we previously skipped, so the caller will digest them.  */
-			if (first_nonopt != last_nonopt)
-				optind = first_nonopt;
-			return -1;
-		}
-
-		/* If we have come to a non-option and did not permute it,
-		   either stop the scan or describe it to the caller and pass it by.  */
-
-		if (NONOPTION_P)
-		{
-			if (ordering == REQUIRE_ORDER)
-				return -1;
-			optarg = argv[optind++];
-			return 1;
-		}
-
-		/* We have found another option-ARGV-element.
-		   Skip the initial punctuation.  */
-
-		nextchar = (argv[optind] + 1
-			    + (longopts != NULL && argv[optind][1] == '-'));
-	}
-
-	/* Decode the current option-ARGV-element.  */
-
-	/* Check whether the ARGV-element is a long option.
-
-	   If long_only and the ARGV-element has the form "-f", where f is
-	   a valid short option, don't consider it an abbreviated form of
-	   a long option that starts with f.  Otherwise there would be no
-	   way to give the -f short option.
-
-	   On the other hand, if there's a long option "fubar" and
-	   the ARGV-element is "-fu", do consider that an abbreviation of
-	   the long option, just like "--fu", and not "-f" with arg "u".
-
-	   This distinction seems to be the most useful approach.  */
-
-	if (longopts != NULL
-	    && (argv[optind][1] == '-'
-		|| (long_only && (argv[optind][2] || !my_index(optstring, argv[optind][1])))))
-	{
-		char *nameend;
-		const struct option *p;
-		const struct option *pfound = NULL;
-		int exact = 0;
-		int ambig = 0;
-		int indfound = -1;
-		int option_index;
-
-		for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
-			/* Do nothing.  */ ;
-
-		/* Test all long options for either exact match
-		   or abbreviated matches.  */
-		for (p = longopts, option_index = 0; p->name; p++, option_index++)
-			if (!strncmp(p->name, nextchar, nameend - nextchar))
-			{
-				if ((unsigned int) (nameend - nextchar)
-				    == (unsigned int) strlen(p->name))
-				{
-					/* Exact match found.  */
-					pfound = p;
-					indfound = option_index;
-					exact = 1;
-					break;
-				}
-				else if (pfound == NULL)
-				{
-					/* First nonexact match found.  */
-					pfound = p;
-					indfound = option_index;
-				}
-				else
-					/* Second or later nonexact match found.  */
-					ambig = 1;
-			}
-
-		if (ambig && !exact)
-		{
-			if (opterr)
-				fprintf(stderr, _("%s: option `%s' is ambiguous\n"),
-					argv[0], argv[optind]);
-			nextchar += strlen(nextchar);
-			optind++;
-			optopt = 0;
-			return '?';
-		}
-
-		if (pfound != NULL)
-		{
-			option_index = indfound;
-			optind++;
-			if (*nameend)
-			{
-				/* Don't test has_arg with >, because some C compilers don't
-				   allow it to be used on enums.  */
-				if (pfound->has_arg)
-					optarg = nameend + 1;
-				else
-				{
-					if (opterr)
-					{
-						if (argv[optind - 1][1] == '-')
-							/* --option */
-							fprintf(stderr,
-								_("%s: option `--%s' doesn't allow an argument\n"),
-								argv[0], pfound->name);
-						else
-							/* +option or -option */
-							fprintf(stderr,
-								_("%s: option `%c%s' doesn't allow an argument\n"),
-								argv[0], argv[optind - 1][0], pfound->name);
-					}
-
-					nextchar += strlen(nextchar);
-
-					optopt = pfound->val;
-					return '?';
-				}
-			}
-			else if (pfound->has_arg == 1)
-			{
-				if (optind < argc)
-					optarg = argv[optind++];
-				else
-				{
-					if (opterr)
-						fprintf(stderr,
-							_("%s: option `%s' requires an argument\n"),
-						 argv[0], argv[optind - 1]);
-					nextchar += strlen(nextchar);
-					optopt = pfound->val;
-					return optstring[0] == ':' ? ':' : '?';
-				}
-			}
-			nextchar += strlen(nextchar);
-			if (longind != NULL)
-				*longind = option_index;
-			if (pfound->flag)
-			{
-				*(pfound->flag) = pfound->val;
-				return 0;
-			}
-			return pfound->val;
-		}
-
-		/* Can't find it as a long option.  If this is not getopt_long_only,
-		   or the option starts with '--' or is not a valid short
-		   option, then it's an error.
-		   Otherwise interpret it as a short option.  */
-		if (!long_only || argv[optind][1] == '-'
-		    || my_index(optstring, *nextchar) == NULL)
-		{
-			if (opterr)
-			{
-				if (argv[optind][1] == '-')
-					/* --option */
-					fprintf(stderr, _("%s: unrecognized option `--%s'\n"),
-						argv[0], nextchar);
-				else
-					/* +option or -option */
-					fprintf(stderr, _("%s: unrecognized option `%c%s'\n"),
-					argv[0], argv[optind][0], nextchar);
-			}
-			nextchar = (char *) "";
-			optind++;
-			optopt = 0;
-			return '?';
-		}
-	}
-
-	/* Look at and handle the next short option-character.  */
-
-	{
-		char c = *nextchar++;
-		char *temp = my_index(optstring, c);
-
-		/* Increment `optind' when we start to process its last character.  */
-		if (*nextchar == '\0')
-			++optind;
-
-		if (temp == NULL || c == ':')
-		{
-			if (opterr)
-			{
-				if (posixly_correct)
-					/* 1003.2 specifies the format of this message.  */
-					fprintf(stderr, _("%s: illegal option -- %c\n"),
-						argv[0], c);
-				else
-					fprintf(stderr, _("%s: invalid option -- %c\n"),
-						argv[0], c);
-			}
-			optopt = c;
-			return '?';
-		}
-		/* Convenience. Treat POSIX -W foo same as long option --foo */
-		if (temp[0] == 'W' && temp[1] == ';')
-		{
-			char *nameend;
-			const struct option *p;
-			const struct option *pfound = NULL;
-			int exact = 0;
-			int ambig = 0;
-			int indfound = 0;
-			int option_index;
-
-			/* This is an option that requires an argument.  */
-			if (*nextchar != '\0')
-			{
-				optarg = nextchar;
-				/* If we end this ARGV-element by taking the rest as an arg,
-				   we must advance to the next element now.  */
-				optind++;
-			}
-			else if (optind == argc)
-			{
-				if (opterr)
-				{
-					/* 1003.2 specifies the format of this message.  */
-					fprintf(stderr, _("%s: option requires an argument -- %c\n"),
-						argv[0], c);
-				}
-				optopt = c;
-				if (optstring[0] == ':')
-					c = ':';
-				else
-					c = '?';
-				return c;
-			}
-			else
-				/* We already incremented `optind' once;
-				   increment it again when taking next ARGV-elt as argument.  */
-				optarg = argv[optind++];
-
-			/* optarg is now the argument, see if it's in the
-			   table of longopts.  */
-
-			for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++)
-				/* Do nothing.  */ ;
-
-			/* Test all long options for either exact match
-			   or abbreviated matches.  */
-			for (p = longopts, option_index = 0; p->name; p++, option_index++)
-				if (!strncmp(p->name, nextchar, nameend - nextchar))
-				{
-					if ((unsigned int) (nameend - nextchar) == strlen(p->name))
-					{
-						/* Exact match found.  */
-						pfound = p;
-						indfound = option_index;
-						exact = 1;
-						break;
-					}
-					else if (pfound == NULL)
-					{
-						/* First nonexact match found.  */
-						pfound = p;
-						indfound = option_index;
-					}
-					else
-						/* Second or later nonexact match found.  */
-						ambig = 1;
-				}
-			if (ambig && !exact)
-			{
-				if (opterr)
-					fprintf(stderr, _("%s: option `-W %s' is ambiguous\n"),
-						argv[0], argv[optind]);
-				nextchar += strlen(nextchar);
-				optind++;
-				return '?';
-			}
-			if (pfound != NULL)
-			{
-				option_index = indfound;
-				if (*nameend)
-				{
-					/* Don't test has_arg with >, because some C compilers don't
-					   allow it to be used on enums.  */
-					if (pfound->has_arg)
-						optarg = nameend + 1;
-					else
-					{
-						if (opterr)
-							fprintf(stderr, _("\
-%s: option `-W %s' doesn't allow an argument\n"),
-								argv[0], pfound->name);
-
-						nextchar += strlen(nextchar);
-						return '?';
-					}
-				}
-				else if (pfound->has_arg == 1)
-				{
-					if (optind < argc)
-						optarg = argv[optind++];
-					else
-					{
-						if (opterr)
-							fprintf(stderr,
-								_("%s: option `%s' requires an argument\n"),
-								argv[0], argv[optind - 1]);
-						nextchar += strlen(nextchar);
-						return optstring[0] == ':' ? ':' : '?';
-					}
-				}
-				nextchar += strlen(nextchar);
-				if (longind != NULL)
-					*longind = option_index;
-				if (pfound->flag)
-				{
-					*(pfound->flag) = pfound->val;
-					return 0;
-				}
-				return pfound->val;
-			}
-			nextchar = NULL;
-			return 'W';	/* Let the application handle it.   */
-		}
-		if (temp[1] == ':')
-		{
-			if (temp[2] == ':')
-			{
-				/* This is an option that accepts an argument optionally.  */
-				if (*nextchar != '\0')
-				{
-					optarg = nextchar;
-					optind++;
-				}
-				else
-					optarg = NULL;
-				nextchar = NULL;
-			}
-			else
-			{
-				/* This is an option that requires an argument.  */
-				if (*nextchar != '\0')
-				{
-					optarg = nextchar;
-					/* If we end this ARGV-element by taking the rest as an arg,
-					   we must advance to the next element now.  */
-					optind++;
-				}
-				else if (optind == argc)
-				{
-					if (opterr)
-					{
-						/* 1003.2 specifies the format of this message.  */
-						fprintf(stderr,
-							_("%s: option requires an argument -- %c\n"),
-							argv[0], c);
-					}
-					optopt = c;
-					if (optstring[0] == ':')
-						c = ':';
-					else
-						c = '?';
-				}
-				else
-					/* We already incremented `optind' once;
-					   increment it again when taking next ARGV-elt as argument.  */
-					optarg = argv[optind++];
-				nextchar = NULL;
-			}
-		}
-		return c;
-	}
-}
-
-int
-    getopt(argc, argv, optstring)
-     int argc;
-     char *const *argv;
-     const char *optstring;
-{
-	return _getopt_internal(argc, argv, optstring,
-				(const struct option *) 0,
-				(int *) 0,
-				0);
-}
-
-#endif /* Not ELIDE_CODE.  */
-
-#ifdef TEST
-
-/* Compile with -DTEST to make an executable for use in testing
-   the above definition of `getopt'.  */
-
-int
-    main(argc, argv)
-     int argc;
-     char **argv;
-{
-	int c;
-	int digit_optind = 0;
-
-	while (1)
-	{
-		int this_option_optind = optind ? optind : 1;
-
-		c = getopt(argc, argv, "abc:d:0123456789");
-		if (c == -1)
-			break;
-
-		switch (c)
-		{
-			case '0':
-			case '1':
-			case '2':
-			case '3':
-			case '4':
-			case '5':
-			case '6':
-			case '7':
-			case '8':
-			case '9':
-				if (digit_optind != 0 && digit_optind != this_option_optind)
-					printf("digits occur in two different argv-elements.\n");
-				digit_optind = this_option_optind;
-				printf("option %c\n", c);
-				break;
-
-			case 'a':
-				printf("option a\n");
-				break;
-
-			case 'b':
-				printf("option b\n");
-				break;
-
-			case 'c':
-				printf("option c with value `%s'\n", optarg);
-				break;
-
-			case '?':
-				break;
-
-			default:
-				printf("?? getopt returned character code 0%o ??\n", c);
-		}
-	}
-
-	if (optind < argc)
-	{
-		printf("non-option ARGV-elements: ");
-		while (optind < argc)
-			printf("%s ", argv[optind++]);
-		printf("\n");
-	}
-
-	exit(0);
-}
-
-#endif /* TEST */
diff --git a/lib/libdvd/libdvdread/msvc/contrib/timer/timer.c b/lib/libdvd/libdvdread/msvc/contrib/timer/timer.c
deleted file mode 100755
index f99a73b..0000000
--- a/lib/libdvd/libdvdread/msvc/contrib/timer/timer.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2000-2001 the xine project
- *
- * This file is part of xine, a unix video player.
- *
- * xine 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.
- *
- * xine is distributed in the hope that 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.
- *
- * WIN32 PORT,
- * by Matthew Grooms <elon at altavista.com>
- *
- * timer.c - Missing unix timer functions
- *
- */
-
-#include "stdio.h"
-#include "timer.h"
-
-/*
-	this function returns somewhat
-	accurate unix time with the data
-	accurate to the first call to get
-	of day and the resolution accurate
-	to ~ miliseconds.
-*/
-
-static time_t startseconds = 0;
-
-int gettimeofday( struct timeval *tp, struct timezone *tzp )
-{
-	MMTIME mmtime;
-
-	// clock() returns time in miliseconds
-
-	if( !startseconds )
-		startseconds = time( 0 );
-
-	timeGetSystemTime( &mmtime, sizeof( mmtime ) );
-
-	tp->tv_sec	= ( mmtime.u.ms / 1000 ) + startseconds;
-	tp->tv_usec	= ( mmtime.u.ms % 1000 ) * 1000;
-
-	return 0;
-};
-
-/*
-	These functions are designed to mimick
-	a subset of itimer for use with the
-	alarm signal on win32. This is just
-	enough for xine to work.
-*/
-
-static HANDLE sigalarm = 0;
-
-int setitimer( int which, struct itimerval * value, struct itimerval *ovalue )
-{
-	long int miliseconds;
-
-	if( !sigalarm )
-		sigalarm = CreateEvent( 0, FALSE, TRUE, "SIGALARM" );
-
-    miliseconds = value->it_value.tv_usec / 1000;
-
-	timeSetEvent( miliseconds, 0, ( LPTIMECALLBACK ) sigalarm, 0, TIME_PERIODIC | TIME_CALLBACK_EVENT_PULSE );
-
-	return 0;
-}
-
-/*
-	Wait for sigalarm to wake the thread
-*/
-
-int pause( void )
-{
-	WaitForSingleObject( sigalarm, INFINITE );
-
-	return 0;
-}
-
-int nanosleep( const struct timespec * rqtp, struct timespec * rmtp )
-{
-	Sleep( rqtp->tv_nsec / 1000000 );
-
-	return 0;
-}
-
-unsigned int sleep( unsigned int seconds )
-{
-	Sleep( seconds * 1000 );
-	return 0;
-}
\ No newline at end of file
diff --git a/lib/libdvd/libdvdread/msvc/contrib/timer/timer.h b/lib/libdvd/libdvdread/msvc/contrib/timer/timer.h
deleted file mode 100755
index efab6f4..0000000
--- a/lib/libdvd/libdvdread/msvc/contrib/timer/timer.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <time.h>
-#include <winsock.h>
-#include "pthread.h"
-
-#ifndef _ITIMER_
-#define _ITIMER_
-
-#define ITIMER_REAL		0
-#define ITIMER_VIRTUAL	1
-
-//	time reference
-//	----------------------------------
-//
-//	1,000			milliseconds / sec
-//	1,000,000		microseconds / sec
-//	1,000,000,000	nanoseconds  / sec
-//
-//  timeval.time_sec  = seconds
-//  timeval.time_usec = microseconds
-
-struct itimerval
-{
-	struct timeval it_interval;    /* timer interval */
-	struct timeval it_value;       /* current value */
-};
-
-struct timezone {
-    int     tz_minuteswest; /* minutes west of Greenwich */
-    int     tz_dsttime;     /* type of dst correction */
-};
-
-int gettimeofday( struct timeval *tp, struct timezone *tzp );
-int setitimer( int which, struct itimerval * value, struct itimerval *ovalue );
-int pause( void );
-
-unsigned int sleep( unsigned int seconds );
-int nanosleep( const struct timespec *rqtp, struct timespec *rmtp );
-
-#endif
\ No newline at end of file
diff --git a/lib/libdvd/libdvdread/msvc/ifo_dump.dsp b/lib/libdvd/libdvdread/msvc/ifo_dump.dsp
deleted file mode 100755
index fc39837..0000000
--- a/lib/libdvd/libdvdread/msvc/ifo_dump.dsp
+++ /dev/null
@@ -1,110 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ifo_dump" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=ifo_dump - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "ifo_dump.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "ifo_dump.mak" CFG="ifo_dump - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "ifo_dump - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "ifo_dump - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "ifo_dump - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-
-!ELSEIF  "$(CFG)" == "ifo_dump - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "ifo_dump___Win32_Debug"
-# PROP BASE Intermediate_Dir "ifo_dump___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug\ifo_dump"
-# PROP Intermediate_Dir "Debug\ifo_dump"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "include" /I "." /I "include/pthreads" /I "install/include" /I ".." /I "../src" /I "contrib/timer" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "DVDNAV_COMPILE" /FR /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"Debug/bin/ifo_dump.exe" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF 
-
-# Begin Target
-
-# Name "ifo_dump - Win32 Release"
-# Name "ifo_dump - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\src\ifo_dump.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\ifo_print.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\vmcmd.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/lib/libdvd/libdvdread/msvc/include/dlfcn.h b/lib/libdvd/libdvdread/msvc/include/dlfcn.h
deleted file mode 100755
index b5fe376..0000000
--- a/lib/libdvd/libdvdread/msvc/include/dlfcn.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef __DLFCN_H__
-# define __DLFCN_H__
-
-extern void *dlopen  (const char *file, int mode);
-extern int   dlclose (void *handle);
-extern void *dlsym   (void * handle, const char * name);
-extern char *dlerror (void);
-
-/* These don't mean anything on windows */
-#define RTLD_NEXT      ((void *) -1l)
-#define RTLD_DEFAULT   ((void *) 0)
-#define RTLD_LAZY					-1
-#define RTLD_NOW					-1
-#define RTLD_BINDING_MASK -1
-#define RTLD_NOLOAD				-1
-#define RTLD_GLOBAL				-1
-
-#endif /* __DLFCN_H__ */
diff --git a/lib/libdvd/libdvdread/msvc/include/dvdnav_internal.h b/lib/libdvd/libdvdread/msvc/include/dvdnav_internal.h
deleted file mode 100644
index 70ef3e6..0000000
--- a/lib/libdvd/libdvdread/msvc/include/dvdnav_internal.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/* !! DO NO EDIT THIS FILE, it is automatically generated */
-/*
- * Copyright (C) 2001 Rich Wareham <richwareham at users.sourceforge.net>
- *
- * This file is part of libdvdnav, a DVD navigation library.
- *
- * libdvdnav 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.
- *
- * libdvdnav is distributed in the hope that 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 libdvdnav; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef LIBDVDREAD_DVDNAV_INTERNAL_H
-#define LIBDVDREAD_DVDNAV_INTERNAL_H
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <limits.h>
-#include <string.h>
-#include <pthread.h>
-
-#undef WORDS_BIGENDIAN
-
-#include "dvd_reader.h"
-#include "ifo_read.h"
-#include "ifo_types.h"
-
-/* Uncomment for VM command tracing */
-/* #define TRACE */
-
-#include "decoder.h"
-#include "dvdnav.h"
-#include "vm.h"
-#include "vmcmd.h"
-
-/* where should libdvdnav write its messages (stdout/stderr) */
-#define MSG_OUT stdout
-
-/* Maximum length of an error string */
-#define MAX_ERR_LEN 255
-
-/* Use the POSIX PATH_MAX if available */
-#ifdef PATH_MAX
-#define MAX_PATH_LEN PATH_MAX
-#else
-#define MAX_PATH_LEN 255 /* Arbitrary */
-#endif
-
-#ifndef DVD_VIDEO_LB_LEN
-#define DVD_VIDEO_LB_LEN 2048
-#endif
-
-typedef struct read_cache_s read_cache_t;
-
-/*
- * These are defined here because they are
- * not in ifo_types.h, they maybe one day
- */
-
-#ifndef audio_status_t
-typedef struct {
-#ifdef WORDS_BIGENDIAN
-  unsigned int available     : 1;
-  unsigned int zero1         : 4;
-  unsigned int stream_number : 3;
-  uint8_t zero2;
-#else
-  uint8_t zero2;
-  unsigned int stream_number : 3;
-  unsigned int zero1         : 4;
-  unsigned int available     : 1;
-#endif
-} ATTRIBUTE_PACKED audio_status_t;
-#endif
-
-#ifndef spu_status_t
-typedef struct {
-#ifdef WORDS_BIGENDIAN
-  unsigned int available               : 1;
-  unsigned int zero1                   : 2;
-  unsigned int stream_number_4_3       : 5;
-  unsigned int zero2                   : 3;
-  unsigned int stream_number_wide      : 5;
-  unsigned int zero3                   : 3;
-  unsigned int stream_number_letterbox : 5;
-  unsigned int zero4                   : 3;
-  unsigned int stream_number_pan_scan  : 5;
-#else
-  unsigned int stream_number_pan_scan  : 5;
-  unsigned int zero4                   : 3;
-  unsigned int stream_number_letterbox : 5;
-  unsigned int zero3                   : 3;
-  unsigned int stream_number_wide      : 5;
-  unsigned int zero2                   : 3;
-  unsigned int stream_number_4_3       : 5;
-  unsigned int zero1                   : 2;
-  unsigned int available               : 1;
-#endif
-} ATTRIBUTE_PACKED spu_status_t;
-#endif
-
-typedef struct dvdnav_vobu_s {
-  int32_t vobu_start;  /* Logical Absolute. MAX needed is 0x300000 */
-  int32_t vobu_length;
-  int32_t blockN;      /* Relative offset */
-  int32_t vobu_next;   /* Relative offset */
-} dvdnav_vobu_t;
-
-/** The main DVDNAV type **/
-
-struct dvdnav_s {
-  /* General data */
-  char        path[MAX_PATH_LEN]; /* Path to DVD device/dir */
-  dvd_file_t *file;               /* Currently opened file */
-  int         open_vtsN;          /* The domain and number of the... */
-  int         open_domain;        /* ..currently opened VOB */
-
-  /* Position data */
-  vm_position_t position_next;
-  vm_position_t position_current;
-  dvdnav_vobu_t vobu;
-
-  /* NAV data */
-  pci_t pci;
-  dsi_t dsi;
-  uint32_t last_cmd_nav_lbn;      /* detects when a command is issued on an already left NAV */
-
-  /* Flags */
-  int skip_still;                 /* Set when skipping a still */
-  int sync_wait;                  /* applications should wait till they are in sync with us */
-  int sync_wait_skip;             /* Set when skipping wait state */
-  int spu_clut_changed;           /* The SPU CLUT changed */
-  int started;                    /* vm_start has been called? */
-  int use_read_ahead;             /* 1 - use read-ahead cache, 0 - don't */
-  int pgc_based;                  /* positioning works PGC based instead of PG based */
-
-  /* VM */
-  vm_t *vm;
-  pthread_mutex_t vm_lock;
-
-  /* Read-ahead cache */
-  read_cache_t *cache;
-
-  /* Errors */
-  char err_str[MAX_ERR_LEN];
-};
-
-/** USEFUL MACROS **/
-
-#ifdef __GNUC__
-#define printerrf(format, args...) snprintf(this->err_str, MAX_ERR_LEN, format, ## args);
-#else
-#ifdef _MSC_VER
-#define printerrf(str) snprintf(this->err_str, MAX_ERR_LEN, str);
-#else
-#define printerrf(...) snprintf(this->err_str, MAX_ERR_LEN, __VA_ARGS__);
-#endif /* WIN32 */
-#endif
-#define printerr(str) strncpy(this->err_str, str, MAX_ERR_LEN);
-
-/* Save my typing */
-#define S_ERR DVDNAV_STATUS_ERR
-
-#ifndef _MSC_VER
-#define S_OK  DVDNAV_STATUS_OK
-#endif /* MSC_VER */
-
-#endif /* LIBDVDREAD_DVDNAV_INTERNAL_H */
diff --git a/lib/libdvd/libdvdread/msvc/include/getopt.h b/lib/libdvd/libdvdread/msvc/include/getopt.h
deleted file mode 100755
index 5f4643a..0000000
--- a/lib/libdvd/libdvdread/msvc/include/getopt.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Declarations for getopt.
-   Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc.
-
-   This file is part of the GNU C Library.  Its master source is NOT part of
-   the C library, however.  The master source lives in /gd/gnu/lib.
-
-   The GNU C 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.
-
-   The GNU C Library is distributed in the hope that 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 the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
-   Floor, Boston, MA 02110-1301 USA.  */
-
-#ifndef _GETOPT_H
-#define _GETOPT_H 1
-
-#ifdef	__cplusplus
-extern "C"
-{
-#endif
-
-/* For communication from `getopt' to the caller.
-   When `getopt' finds an option that takes an argument,
-   the argument value is returned here.
-   Also, when `ordering' is RETURN_IN_ORDER,
-   each non-option ARGV-element is returned here.  */
-
-	extern char *optarg;
-
-/* Index in ARGV of the next element to be scanned.
-   This is used for communication to and from the caller
-   and for communication between successive calls to `getopt'.
-
-   On entry to `getopt', zero means this is the first call; initialize.
-
-   When `getopt' returns -1, this is the index of the first of the
-   non-option elements that the caller should itself scan.
-
-   Otherwise, `optind' communicates from one call to the next
-   how much of ARGV has been scanned so far.  */
-
-	extern int optind;
-
-/* Callers store zero here to inhibit the error message `getopt' prints
-   for unrecognized options.  */
-
-	extern int opterr;
-
-/* Set to an option character which was unrecognized.  */
-
-	extern int optopt;
-
-/* Describe the long-named options requested by the application.
-   The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
-   of `struct option' terminated by an element containing a name which is
-   zero.
-
-   The field `has_arg' is:
-   no_argument          (or 0) if the option does not take an argument,
-   required_argument    (or 1) if the option requires an argument,
-   optional_argument    (or 2) if the option takes an optional argument.
-
-   If the field `flag' is not NULL, it points to a variable that is set
-   to the value given in the field `val' when the option is found, but
-   left unchanged if the option is not found.
-
-   To have a long-named option do something other than set an `int' to
-   a compiled-in constant, such as set a value from `optarg', set the
-   option's `flag' field to zero and its `val' field to a nonzero
-   value (the equivalent single-letter option character, if there is
-   one).  For long options that have a zero `flag' field, `getopt'
-   returns the contents of the `val' field.  */
-
-	struct option
-	{
-#if defined (__STDC__) && __STDC__
-		const char *name;
-#else
-		char *name;
-#endif
-		/* has_arg can't be an enum because some compilers complain about
-		   type mismatches in all the code that assumes it is an int.  */
-		int has_arg;
-		int *flag;
-		int val;
-	};
-
-/* Names for the values of the `has_arg' field of `struct option'.  */
-
-#define	no_argument		0
-#define required_argument	1
-#define optional_argument	2
-
-#if defined (__STDC__) && __STDC__
-#ifdef __GNU_LIBRARY__
-/* Many other libraries have conflicting prototypes for getopt, with
-   differences in the consts, in stdlib.h.  To avoid compilation
-   errors, only prototype getopt for the GNU C library.  */
-	extern int getopt(int argc, char *const *argv, const char *shortopts);
-#else				/* not __GNU_LIBRARY__ */
-	extern int getopt();
-#endif				/* __GNU_LIBRARY__ */
-	extern int getopt_long(int argc, char *const *argv, const char *shortopts,
-			       const struct option *longopts, int *longind);
-	extern int getopt_long_only(int argc, char *const *argv,
-				    const char *shortopts,
-			       const struct option *longopts, int *longind);
-
-/* Internal only.  Users should not call this directly.  */
-	extern int _getopt_internal(int argc, char *const *argv,
-				    const char *shortopts,
-				const struct option *longopts, int *longind,
-				    int long_only);
-#else				/* not __STDC__ */
-	extern int getopt();
-	extern int getopt_long();
-	extern int getopt_long_only();
-
-	extern int _getopt_internal();
-#endif				/* __STDC__ */
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif				/* _GETOPT_H */
diff --git a/lib/libdvd/libdvdread/msvc/include/inttypes.h b/lib/libdvd/libdvdread/msvc/include/inttypes.h
deleted file mode 100755
index 4e1cbe1..0000000
--- a/lib/libdvd/libdvdread/msvc/include/inttypes.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2000-2001 the xine project
- *
- * This file is part of xine, a unix video player.
- *
- * xine 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.
- *
- * xine is distributed in the hope that 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.
- *
- * WIN32 PORT,
- * by Matthew Grooms <elon at altavista.com>
- *
- * inttypes.h - Standard integer definitions.
- *
- */
-
-#ifndef _SYS_INTTYPES_H_
-#define _SYS_INTTYPES_H_
-
-#include <config.h>
-
-#endif
diff --git a/lib/libdvd/libdvdread/msvc/include/os_types.h b/lib/libdvd/libdvdread/msvc/include/os_types.h
deleted file mode 100755
index 294847e..0000000
--- a/lib/libdvd/libdvdread/msvc/include/os_types.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef __OS_TYPES_H__
-#define __OS_TYPES_H__
-/*
- * win32 types
- * 04 Sept 2001 - Chris Wolf create.
- */
-
-typedef unsigned char			uint_8;
-typedef unsigned short		uint_16;
-typedef unsigned int			uint_32;
-typedef signed   char			sint_32;
-typedef signed   short		sint_16;
-typedef signed   int			sint_8;
-
-#define snprintf _snprintf
-#define M_PI            3.14159265358979323846  /* pi */
-#define DLLENTRY __declspec(dllexport)
-
-  // Temporarily hardcode this location
-#define AO_PLUGIN_PATH "c:\\Program Files\\Common Files\\Xiphophorus\\ao"
-
-#define SHARED_LIB_EXT ".dll"
-
-#endif /* __OS_TYPES_H__ */
diff --git a/lib/libdvd/libdvdread/msvc/include/pthreads/pthread.h b/lib/libdvd/libdvdread/msvc/include/pthreads/pthread.h
deleted file mode 100755
index 202bc00..0000000
--- a/lib/libdvd/libdvdread/msvc/include/pthreads/pthread.h
+++ /dev/null
@@ -1,1077 +0,0 @@
-/* This is the POSIX thread API (POSIX 1003).
- *
- * Pthreads-win32 - POSIX Threads Library for Win32
- * Copyright (C) 1998
- *
- * 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 02110-1301 USA.
- */
-
-#if !defined( PTHREAD_H )
-#define PTHREAD_H
-
-#ifdef _UWIN
-#   define HAVE_STRUCT_TIMESPEC 1
-#   define HAVE_SIGNAL_H        1
-#   undef HAVE_CONFIG_H
-#   pragma comment(lib, "pthread")
-#endif
-
-/*
- * -------------------------------------------------------------
- *
- *
- * Module: pthread.h
- *
- * Purpose:
- *      Provides an implementation of PThreads based upon the
- *      standard:
- *
- *              POSIX 1003.1c-1995      (POSIX.1c)
- *
- *	Parts of the implementation also comply with the
- *	Open Group Unix 98 specification in order to enhance
- *	code portability between Windows, various commercial
- *	Unix implementations, and Linux.
- *
- * Authors:
- *	There have been many contributors to this library.
- *	The initial implementation was contributed by
- *	John Bossom, and several others have provided major
- *	sections or revisions of parts of the implementation.
- *	Often significant effort has been contributed to
- *	find and fix important bugs and other problems to
- *	improve the reliability of the library, which sometimes
- *	is not reflected in the amount of code which changed as
- *	result.
- *	As much as possible, the contributors are acknowledged
- *	in the ChangeLog file in the source code distribution
- *	where their changes are noted in detail.
- *
- *      Contributors are listed in the MAINTAINERS file.
- *
- *	As usual, all bouquets go to the contributors, and all
- *	brickbats go to the project maintainer.
- *
- * Maintainer:
- *	The code base for this project is coordinated and
- *	eventually pre-tested, packaged, and made available by
- *
- *		Ross Johnson <rpj at ise.canberra.edu.au>
- *
- * QA Testers:
- *	Ultimately, the library is tested in the real world by
- *	a host of competent and demanding scientists and
- *	engineers who report bugs and/or provide solutions
- *	which are then fixed or incorporated into subsequent
- *	versions of the library. Each time a bug is fixed, a
- *	test case is written to prove the fix and ensure
- *	that later changes to the code don't reintroduce the
- *	same error. The number of test cases is slowly growing
- *	and therefore so is the code reliability.
- *
- * Compliance:
- *	See the file ANNOUNCE for the list of implemented
- *	and not-implemented routines and defined options.
- *	Of course, these are all defined is this file as well.
- *
- * Web site:
- *	The source code and other information about this library
- *	are available from
- *
- *		http://sources.redhat.com/pthreads-win32/
- *
- * -------------------------------------------------------------
- */
-
-/*
- * -----------------
- * autoconf switches
- * -----------------
- */
-
-#if HAVE_CONFIG_H
-#include "config.h"
-#endif /* HAVE_CONFIG_H */
-
-#include <windows.h>
-
-#ifndef NEED_FTIME
-#include <time.h>
-#else /* NEED_FTIME */
-/* use native WIN32 time API */
-#endif /* NEED_FTIME */
-
-#if HAVE_SIGNAL_H
-#include <signal.h>
-#endif /* HAVE_SIGNAL_H */
-
-#include <setjmp.h>
-
-#ifndef HAVE_STRUCT_TIMESPEC
-struct timespec {
-	long tv_sec;
-	long tv_nsec;
-};
-#endif /* HAVE_STRUCT_TIMESPEC */
-
-#ifndef SIG_BLOCK
-#define SIG_BLOCK 0
-#endif /* SIG_BLOCK */
-
-#ifndef SIG_UNBLOCK
-#define SIG_UNBLOCK 1
-#endif /* SIG_UNBLOCK */
-
-#ifndef SIG_SETMASK
-#define SIG_SETMASK 2
-#endif /* SIG_SETMASK */
-
-/*
- * note: ETIMEDOUT is correctly defined in winsock.h
- */
-#include <winsock.h>
-
-#ifdef NEED_ERRNO
-#  include "need_errno.h"
-#else
-#  include <errno.h>
-#endif
-
-#include <sched.h>
-
-/*
- * In case ETIMEDOUT hasn't been defined above somehow.
- */
-#ifndef ETIMEDOUT
-#  define ETIMEDOUT 10060     /* This is the value in winsock.h. */
-#endif
-
-/*
- * Several systems don't define ENOTSUP. If not, we use
- * the same value as Solaris.
- */
-#ifndef ENOTSUP
-#  define ENOTSUP 48
-#endif
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif				/* __cplusplus */
-
-/*
- * -------------------------------------------------------------
- *
- * POSIX 1003.1c-1995 Options
- * ===========================
- *
- * _POSIX_THREADS (set)
- *                      If set, you can use threads
- *
- * _POSIX_THREAD_ATTR_STACKSIZE (set)
- *                      If set, you can control the size of a thread's
- *                      stack
- *                              pthread_attr_getstacksize
- *                              pthread_attr_setstacksize
- *
- * _POSIX_THREAD_ATTR_STACKADDR (not set)
- *                      If set, you can allocate and control a thread's
- *                      stack. If not supported, the following functions
- *                      will return ENOSYS, indicating they are not
- *                      supported:
- *                              pthread_attr_getstackaddr
- *                              pthread_attr_setstackaddr
- *
- * _POSIX_THREAD_PRIORITY_SCHEDULING (set)
- *                      If set, you can use real-time scheduling.
- *                      Indicates the availability of:
- *                              pthread_attr_getinheritsched
- *                              pthread_attr_getschedparam
- *                              pthread_attr_getschedpolicy
- *                              pthread_attr_getscope
- *                              pthread_attr_setinheritsched
- *                              pthread_attr_setschedparam
- *                              pthread_attr_setschedpolicy
- *                              pthread_attr_setscope
- *                              pthread_getschedparam
- *                              pthread_setschedparam
- *                              sched_get_priority_max
- *                              sched_get_priority_min
- *                              sched_rr_set_interval
- *
- * _POSIX_THREAD_PRIO_INHERIT (not set)
- *                      If set, you can create priority inheritance
- *                      mutexes.
- *                              pthread_mutexattr_getprotocol +
- *                              pthread_mutexattr_setprotocol +
- *
- * _POSIX_THREAD_PRIO_PROTECT (not set)
- *                      If set, you can create priority ceiling mutexes
- *                      Indicates the availability of:
- *                              pthread_mutex_getprioceiling
- *                              pthread_mutex_setprioceiling
- *                              pthread_mutexattr_getprioceiling
- *                              pthread_mutexattr_getprotocol     +
- *                              pthread_mutexattr_setprioceiling
- *                              pthread_mutexattr_setprotocol     +
- *
- * _POSIX_THREAD_PROCESS_SHARED (not set)
- *                      If set, you can create mutexes and condition
- *                      variables that can be shared with another
- *                      process.If set, indicates the availability
- *                      of:
- *                              pthread_mutexattr_getpshared
- *                              pthread_mutexattr_setpshared
- *                              pthread_condattr_getpshared
- *                              pthread_condattr_setpshared
- *
- * _POSIX_THREAD_SAFE_FUNCTIONS (set)
- *                      If set you can use the special *_r library
- *                      functions that provide thread-safe behaviour
- *
- *      + These functions provide both 'inherit' and/or
- *        'protect' protocol, based upon these macro
- *        settings.
- *
- * POSIX 1003.1c-1995 Limits
- * ===========================
- *
- * PTHREAD_DESTRUCTOR_ITERATIONS
- *                      Maximum number of attempts to destroy
- *                      a thread's thread-specific data on
- *                      termination (must be at least 4)
- *
- * PTHREAD_KEYS_MAX
- *                      Maximum number of thread-specific data keys
- *                      available per process (must be at least 128)
- *
- * PTHREAD_STACK_MIN
- *                      Minimum supported stack size for a thread
- *
- * PTHREAD_THREADS_MAX
- *                      Maximum number of threads supported per
- *                      process (must be at least 64).
- *
- *
- * POSIX 1003.1j/D10-1999 Options
- * ==============================
- *
- * _POSIX_READER_WRITER_LOCKS (set)
- *                      If set, you can use read/write locks
- *
- * _POSIX_SPIN_LOCKS (set)
- *                      If set, you can use spin locks
- *
- * _POSIX_BARRIERS (set)
- *                      If set, you can use barriers
- *
- * -------------------------------------------------------------
- */
-
-/*
- * POSIX Options
- */
-#ifndef _POSIX_THREADS
-#define _POSIX_THREADS
-#endif
-
-#ifndef _POSIX_READER_WRITER_LOCKS
-#define _POSIX_READER_WRITER_LOCKS
-#endif
-
-#ifndef _POSIX_SPIN_LOCKS
-#define _POSIX_SPIN_LOCKS
-#endif
-
-#ifndef _POSIX_BARRIERS
-#define _POSIX_BARRIERS
-#endif
-
-#define _POSIX_THREAD_SAFE_FUNCTIONS
-#define _POSIX_THREAD_ATTR_STACKSIZE
-#define _POSIX_THREAD_PRIORITY_SCHEDULING
-
-#if defined( KLUDGE )
-/*
- * The following are not supported
- */
-#define _POSIX_THREAD_ATTR_STACKADDR
-#define _POSIX_THREAD_PRIO_INHERIT
-#define _POSIX_THREAD_PRIO_PROTECT
-#define _POSIX_THREAD_PROCESS_SHARED
-
-#endif				/* KLUDGE */
-
-/*
- * POSIX Limits
- *
- *      PTHREAD_DESTRUCTOR_ITERATIONS
- *              Standard states this must be at least
- *              4.
- *
- *      PTHREAD_KEYS_MAX
- *              WIN32 permits only 64 TLS keys per process.
- *              This limitation could be worked around by
- *              simply simulating keys.
- *
- *      PTHREADS_STACK_MIN
- *              POSIX specifies 0 which is also the value WIN32
- *              interprets as allowing the system to
- *              set the size to that of the main thread. The
- *              maximum stack size in Win32 is 1Meg. WIN32
- *              allocates more stack as required up to the 1Meg
- *              limit.
- *
- *      PTHREAD_THREADS_MAX
- *              Not documented by WIN32. Wrote a test program
- *              that kept creating threads until it failed
- *              revealed this approximate number.
- *
- */
-#define PTHREAD_DESTRUCTOR_ITERATIONS	                   4
-#define PTHREAD_KEYS_MAX				  64
-#define PTHREAD_STACK_MIN				   0
-#define PTHREAD_THREADS_MAX				2019
-
-
-#ifdef _UWIN
-#   include	<sys/types.h>
-#else
-typedef struct pthread_t_ *pthread_t;
-typedef struct pthread_attr_t_ *pthread_attr_t;
-typedef struct pthread_once_t_ pthread_once_t;
-typedef struct pthread_key_t_ *pthread_key_t;
-typedef struct pthread_mutex_t_ *pthread_mutex_t;
-typedef struct pthread_mutexattr_t_ *pthread_mutexattr_t;
-typedef struct pthread_cond_t_ *pthread_cond_t;
-typedef struct pthread_condattr_t_ *pthread_condattr_t;
-#endif
-typedef struct pthread_rwlock_t_ *pthread_rwlock_t;
-typedef struct pthread_rwlockattr_t_ *pthread_rwlockattr_t;
-typedef struct pthread_spinlock_t_ *pthread_spinlock_t;
-typedef struct pthread_barrier_t_ *pthread_barrier_t;
-typedef struct pthread_barrierattr_t_ *pthread_barrierattr_t;
-
-/*
- * ====================
- * ====================
- * POSIX Threads
- * ====================
- * ====================
- */
-
-enum {
-/*
- * pthread_attr_{get,set}detachstate
- */
-  PTHREAD_CREATE_JOINABLE	= 0,  /* Default */
-  PTHREAD_CREATE_DETACHED	= 1,
-
-/*
- * pthread_attr_{get,set}inheritsched
- */
-  PTHREAD_INHERIT_SCHED		= 0,
-  PTHREAD_EXPLICIT_SCHED	= 1,  /* Default */
-
-/*
- * pthread_{get,set}scope
- */
-  PTHREAD_SCOPE_PROCESS		= 0,
-  PTHREAD_SCOPE_SYSTEM		= 1,  /* Default */
-
-/*
- * pthread_setcancelstate parameters
- */
-  PTHREAD_CANCEL_ENABLE		= 0,  /* Default */
-  PTHREAD_CANCEL_DISABLE	= 1,
-
-/*
- * pthread_setcanceltype parameters
- */
-  PTHREAD_CANCEL_ASYNCHRONOUS	= 0,
-  PTHREAD_CANCEL_DEFERRED	= 1,  /* Default */
-
-/*
- * pthread_mutexattr_{get,set}pshared
- * pthread_condattr_{get,set}pshared
- */
-  PTHREAD_PROCESS_PRIVATE	= 0,
-  PTHREAD_PROCESS_SHARED	= 1,
-
-/*
- * pthread_barrier_wait
- */
-  PTHREAD_BARRIER_SERIAL_THREAD = -1
-};
-
-/*
- * ====================
- * ====================
- * Cancellation
- * ====================
- * ====================
- */
-#define PTHREAD_CANCELED       ((void *) -1)
-
-
-/*
- * ====================
- * ====================
- * Once Key
- * ====================
- * ====================
- */
-#define PTHREAD_ONCE_INIT       { FALSE, -1 }
-
-struct pthread_once_t_
-{
-  int done;                 /* indicates if user function executed  */
-  long started;             /* First thread to increment this value */
-                            /* to zero executes the user function   */
-};
-
-
-/*
- * ====================
- * ====================
- * Object initialisers
- * ====================
- * ====================
- */
-#define PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) -1)
-
-#define PTHREAD_COND_INITIALIZER ((pthread_cond_t) -1)
-
-#define PTHREAD_RWLOCK_INITIALIZER ((pthread_rwlock_t) -1)
-
-#define PTHREAD_SPINLOCK_INITIALIZER ((pthread_spinlock_t) -1)
-
-enum
-{
-  PTHREAD_MUTEX_FAST_NP,
-  PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_FAST_NP,
-  PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
-};
-
-
-/* There are three implementations of cancel cleanup.
- * Note that pthread.h is included in both application
- * compilation units and also internally for the library.
- * The code here and within the library aims to work
- * for all reasonable combinations of environments.
- *
- * The three implementations are:
- *
- *   WIN32 SEH
- *   C
- *   C++
- *
- * Please note that exiting a push/pop block via
- * "return", "exit", "break", or "continue" will
- * lead to different behaviour amongst applications
- * depending upon whether the library was built
- * using SEH, C++, or C. For example, a library built
- * with SEH will call the cleanup routine, while both
- * C++ and C built versions will not.
- */
-
-/*
- * define defaults for cleanup code
- */
-#if !defined( __CLEANUP_SEH ) && !defined( __CLEANUP_CXX ) && !defined( __CLEANUP_C )
-
-#if defined(_MSC_VER)
-#define __CLEANUP_SEH
-#elif defined(__cplusplus)
-#define __CLEANUP_CXX
-#else
-#define __CLEANUP_C
-#endif
-
-#endif
-
-#if defined( __CLEANUP_SEH ) && defined(__GNUC__)
-#error ERROR [__FILE__, line __LINE__]: GNUC does not support SEH.
-#endif
-
-typedef struct ptw32_cleanup_t ptw32_cleanup_t;
-typedef void (__cdecl *ptw32_cleanup_callback_t)(void *);
-
-struct ptw32_cleanup_t
-{
-  ptw32_cleanup_callback_t routine;
-  void *arg;
-  struct ptw32_cleanup_t *prev;
-};
-
-#ifdef __CLEANUP_SEH
-	/*
-	 * WIN32 SEH version of cancel cleanup.
-	 */
-
-#define pthread_cleanup_push( _rout, _arg ) \
-	{ \
-	    ptw32_cleanup_t	_cleanup; \
-	    \
-        _cleanup.routine	= (ptw32_cleanup_callback_t)(_rout); \
-	    _cleanup.arg	= (_arg); \
-	    __try \
-	      { \
-
-#define pthread_cleanup_pop( _execute ) \
-	      } \
-	    __finally \
-		{ \
-		    if( _execute || AbnormalTermination()) \
-		      { \
-			  (*(_cleanup.routine))( _cleanup.arg ); \
-		      } \
-		} \
-	}
-
-#else /* __CLEANUP_SEH */
-
-#ifdef __CLEANUP_C
-
-	/*
-	 * C implementation of PThreads cancel cleanup
-	 */
-
-#define pthread_cleanup_push( _rout, _arg ) \
-	{ \
-	    ptw32_cleanup_t	_cleanup; \
-            \
-	    ptw32_push_cleanup( &_cleanup, (ptw32_cleanup_callback_t) (_rout), (_arg) ); \
-
-#define pthread_cleanup_pop( _execute ) \
-	    (void) ptw32_pop_cleanup( _execute ); \
-	}
-
-#else /* __CLEANUP_C */
-
-#ifdef __CLEANUP_CXX
-
-	/*
-	 * C++ version of cancel cleanup.
-	 * - John E. Bossom.
-	 */
-
-	class PThreadCleanup {
-	  /*
-	   * PThreadCleanup
-	   *
-	   * Purpose
-	   *      This class is a C++ helper class that is
-	   *      used to implement pthread_cleanup_push/
-	   *      pthread_cleanup_pop.
-	   *      The destructor of this class automatically
-	   *      pops the pushed cleanup routine regardless
-	   *      of how the code exits the scope
-	   *      (i.e. such as by an exception)
-	   */
-      ptw32_cleanup_callback_t cleanUpRout;
-	  void    *       obj;
-	  int             executeIt;
-
-	public:
-	  PThreadCleanup() :
-	    cleanUpRout( NULL ),
-	    obj( NULL ),
-	    executeIt( 0 )
-	    /*
-	     * No cleanup performed
-	     */
-	    {
-	    }
-
-	  PThreadCleanup(
-             ptw32_cleanup_callback_t routine,
-			 void    *       arg ) :
-	    cleanUpRout( routine ),
-	    obj( arg ),
-	    executeIt( 1 )
-	    /*
-             * Registers a cleanup routine for 'arg'
-             */
-	    {
-	    }
-
-	  ~PThreadCleanup()
-	    {
-	      if ( executeIt && ((void *) cleanUpRout != NULL) )
-		{
-                  (void) (*cleanUpRout)( obj );
-		}
-	    }
-
-	  void execute( int exec )
-	    {
-	      executeIt = exec;
-	    }
-	};
-
-	/*
-	 * C++ implementation of PThreads cancel cleanup;
-	 * This implementation takes advantage of a helper
-	 * class who's destructor automatically calls the
-	 * cleanup routine if we exit our scope weirdly
-	 */
-#define pthread_cleanup_push( _rout, _arg ) \
-        { \
-	    PThreadCleanup  cleanup((ptw32_cleanup_callback_t)(_rout), \
-				    (void *) (_arg) );
-
-#define pthread_cleanup_pop( _execute ) \
-	    cleanup.execute( _execute ); \
-	}
-
-#else
-
-#error ERROR [__FILE__, line __LINE__]: Cleanup type undefined.
-
-#endif /* __CLEANUP_CXX */
-
-#endif /* __CLEANUP_C */
-
-#endif /* __CLEANUP_SEH */
-
-/*
- * ===============
- * ===============
- * Methods
- * ===============
- * ===============
- */
-
-/*
- * PThread Attribute Functions
- */
-int pthread_attr_init (pthread_attr_t * attr);
-
-int pthread_attr_destroy (pthread_attr_t * attr);
-
-int pthread_attr_getdetachstate (const pthread_attr_t * attr,
-				 int *detachstate);
-
-int pthread_attr_getstackaddr (const pthread_attr_t * attr,
-			       void **stackaddr);
-
-int pthread_attr_getstacksize (const pthread_attr_t * attr,
-			       size_t * stacksize);
-
-int pthread_attr_setdetachstate (pthread_attr_t * attr,
-				 int detachstate);
-
-int pthread_attr_setstackaddr (pthread_attr_t * attr,
-			       void *stackaddr);
-
-int pthread_attr_setstacksize (pthread_attr_t * attr,
-			       size_t stacksize);
-
-int pthread_attr_getschedparam (const pthread_attr_t *attr,
-                                struct sched_param *param);
-
-int pthread_attr_setschedparam (pthread_attr_t *attr,
-                                const struct sched_param *param);
-
-int pthread_attr_setschedpolicy (pthread_attr_t *,
-                                 int);
-
-int pthread_attr_getschedpolicy (pthread_attr_t *,
-                                 int *);
-
-int pthread_attr_setinheritsched(pthread_attr_t * attr,
-                                 int inheritsched);
-
-int pthread_attr_getinheritsched(pthread_attr_t * attr,
-                                 int * inheritsched);
-
-int pthread_attr_setscope (pthread_attr_t *,
-                           int);
-
-int pthread_attr_getscope (const pthread_attr_t *,
-                           int *);
-
-/*
- * PThread Functions
- */
-int pthread_create (pthread_t * tid,
-		    const pthread_attr_t * attr,
-		    void *(*start) (void *),
-		    void *arg);
-
-int pthread_detach (pthread_t tid);
-
-int pthread_equal (pthread_t t1,
-		   pthread_t t2);
-
-void pthread_exit (void *value_ptr);
-
-int pthread_join (pthread_t thread,
-		  void **value_ptr);
-
-pthread_t pthread_self (void);
-
-int pthread_cancel (pthread_t thread);
-
-int pthread_setcancelstate (int state,
-			    int *oldstate);
-
-int pthread_setcanceltype (int type,
-			   int *oldtype);
-
-void pthread_testcancel (void);
-
-int pthread_once (pthread_once_t * once_control,
-		  void (*init_routine) (void));
-
-ptw32_cleanup_t *ptw32_pop_cleanup (int execute);
-
-void ptw32_push_cleanup (ptw32_cleanup_t * cleanup,
-			   void (*routine) (void *),
-			   void *arg);
-
-/*
- * Thread Specific Data Functions
- */
-int pthread_key_create (pthread_key_t * key,
-			void (*destructor) (void *));
-
-int pthread_key_delete (pthread_key_t key);
-
-int pthread_setspecific (pthread_key_t key,
-			 const void *value);
-
-void *pthread_getspecific (pthread_key_t key);
-
-
-/*
- * Mutex Attribute Functions
- */
-int pthread_mutexattr_init (pthread_mutexattr_t * attr);
-
-int pthread_mutexattr_destroy (pthread_mutexattr_t * attr);
-
-int pthread_mutexattr_getpshared (const pthread_mutexattr_t
-				  * attr,
-				  int *pshared);
-
-int pthread_mutexattr_setpshared (pthread_mutexattr_t * attr,
-				  int pshared);
-
-int pthread_mutexattr_settype (pthread_mutexattr_t * attr, int kind);
-int pthread_mutexattr_gettype (pthread_mutexattr_t * attr, int *kind);
-
-/*
- * Barrier Attribute Functions
- */
-int pthread_barrierattr_init (pthread_barrierattr_t * attr);
-
-int pthread_barrierattr_destroy (pthread_barrierattr_t * attr);
-
-int pthread_barrierattr_getpshared (const pthread_barrierattr_t
-				    * attr,
-				    int *pshared);
-
-int pthread_barrierattr_setpshared (pthread_barrierattr_t * attr,
-				    int pshared);
-
-/*
- * Mutex Functions
- */
-int pthread_mutex_init (pthread_mutex_t * mutex,
-			const pthread_mutexattr_t * attr);
-
-int pthread_mutex_destroy (pthread_mutex_t * mutex);
-
-int pthread_mutex_lock (pthread_mutex_t * mutex);
-
-int pthread_mutex_trylock (pthread_mutex_t * mutex);
-
-int pthread_mutex_unlock (pthread_mutex_t * mutex);
-
-/*
- * Spinlock Functions
- */
-int pthread_spin_init (pthread_spinlock_t * lock, int pshared);
-
-int pthread_spin_destroy (pthread_spinlock_t * lock);
-
-int pthread_spin_lock (pthread_spinlock_t * lock);
-
-int pthread_spin_trylock (pthread_spinlock_t * lock);
-
-int pthread_spin_unlock (pthread_spinlock_t * lock);
-
-/*
- * Barrier Functions
- */
-int pthread_barrier_init (pthread_barrier_t * barrier,
-			  const pthread_barrierattr_t * attr,
-                          unsigned int count);
-
-int pthread_barrier_destroy (pthread_barrier_t * barrier);
-
-int pthread_barrier_wait (pthread_barrier_t * barrier);
-
-/*
- * Condition Variable Attribute Functions
- */
-int pthread_condattr_init (pthread_condattr_t * attr);
-
-int pthread_condattr_destroy (pthread_condattr_t * attr);
-
-int pthread_condattr_getpshared (const pthread_condattr_t * attr,
-				 int *pshared);
-
-int pthread_condattr_setpshared (pthread_condattr_t * attr,
-				 int pshared);
-
-/*
- * Condition Variable Functions
- */
-int pthread_cond_init (pthread_cond_t * cond,
-		       const pthread_condattr_t * attr);
-
-int pthread_cond_destroy (pthread_cond_t * cond);
-
-int pthread_cond_wait (pthread_cond_t * cond,
-		       pthread_mutex_t * mutex);
-
-int pthread_cond_timedwait (pthread_cond_t * cond,
-			    pthread_mutex_t * mutex,
-			    const struct timespec *abstime);
-
-int pthread_cond_signal (pthread_cond_t * cond);
-
-int pthread_cond_broadcast (pthread_cond_t * cond);
-
-/*
- * Scheduling
- */
-int pthread_setschedparam (pthread_t thread,
-			   int policy,
-			   const struct sched_param *param);
-
-int pthread_getschedparam (pthread_t thread,
-			   int *policy,
-			   struct sched_param *param);
-
-int pthread_setconcurrency (int);
-
-int pthread_getconcurrency (void);
-
-/*
- * Read-Write Lock Functions
- */
-int pthread_rwlock_init(pthread_rwlock_t *lock,
-                               const pthread_rwlockattr_t *attr);
-
-int pthread_rwlock_destroy(pthread_rwlock_t *lock);
-
-int pthread_rwlock_tryrdlock(pthread_rwlock_t *);
-
-int pthread_rwlock_trywrlock(pthread_rwlock_t *);
-
-int pthread_rwlock_rdlock(pthread_rwlock_t *lock);
-
-int pthread_rwlock_wrlock(pthread_rwlock_t *lock);
-
-int pthread_rwlock_unlock(pthread_rwlock_t *lock);
-
-
-/*
- * Non-portable functions
- */
-
-/*
- * Compatibility with Linux.
- */
-int pthread_mutexattr_setkind_np(pthread_mutexattr_t * attr, int kind);
-int pthread_mutexattr_getkind_np(pthread_mutexattr_t * attr, int *kind);
-
-/*
- * Possibly supported by other POSIX threads implementations
- */
-int pthread_delay_np (struct timespec * interval);
-
-/*
- * Returns the Win32 HANDLE for the POSIX thread.
- */
-HANDLE pthread_getw32threadhandle_np(pthread_t thread);
-
-/*
- * Returns the number of CPUs available to the process.
- */
-int pthread_getprocessors_np(int * count);
-
-/*
- * Useful if an application wants to statically link
- * the lib rather than load the DLL at run-time.
- */
-int pthread_win32_process_attach_np(void);
-int pthread_win32_process_detach_np(void);
-int pthread_win32_thread_attach_np(void);
-int pthread_win32_thread_detach_np(void);
-
-
-/*
- * Protected Methods
- *
- * This function blocks until the given WIN32 handle
- * is signaled or pthread_cancel had been called.
- * This function allows the caller to hook into the
- * PThreads cancel mechanism. It is implemented using
- *
- *              WaitForMultipleObjects
- *
- * on 'waitHandle' and a manually reset WIN32 Event
- * used to implement pthread_cancel. The 'timeout'
- * argument to TimedWait is simply passed to
- * WaitForMultipleObjects.
- */
-int pthreadCancelableWait (HANDLE waitHandle);
-int pthreadCancelableTimedWait (HANDLE waitHandle, DWORD timeout);
-
-/*
- * Thread-Safe C Runtime Library Mappings.
- */
-#ifndef _UWIN
-#if 1
-#if (! defined(HAVE_ERRNO)) && (! defined(_REENTRANT)) && (! defined(_MT))
-int * _errno( void );
-#endif
-#else
-#if (! defined(NEED_ERRNO)) || (! defined( _REENTRANT ) && (! defined( _MT ) || ! defined( _MD )))
-#if defined(PTW32_BUILD)
-__declspec( dllexport ) int * _errno( void );
-#else
-int * _errno( void );
-#endif
-#endif
-#endif
-#endif
-
-/*
- * WIN32 C runtime library had been made thread-safe
- * without affecting the user interface. Provide
- * mappings from the UNIX thread-safe versions to
- * the standard C runtime library calls.
- * Only provide function mappings for functions that
- * actually exist on WIN32.
- */
-
-#if !defined(__MINGW32__)
-#define strtok_r( _s, _sep, _lasts ) \
-	( *(_lasts) = strtok( (_s), (_sep) ) )
-#endif /* !__MINGW32__ */
-
-#define asctime_r( _tm, _buf ) \
-	( strcpy( (_buf), asctime( (_tm) ) ), \
-	  (_buf) )
-
-#define ctime_r( _clock, _buf ) \
-	( strcpy( (_buf), ctime( (_clock) ) ),  \
-          (_buf) )
-
-#define gmtime_r( _clock, _result ) \
-	( *(_result) = *gmtime( (_clock) ), \
-	  (_result) )
-
-#define localtime_r( _clock, _result ) \
-	( *(_result) = *localtime( (_clock) ), \
-	  (_result) )
-
-#define rand_r( _seed ) \
-	( _seed == _seed? rand() : rand() )
-
-
-#ifdef __cplusplus
-
-/*
- * Internal exceptions
- */
-class ptw32_exception {};
-class ptw32_exception_cancel : public ptw32_exception {};
-class ptw32_exception_exit   : public ptw32_exception {};
-
-#endif
-
-/* FIXME: This is only required if the library was built using SEH */
-/*
- * Get internal SEH tag
- */
-DWORD ptw32_get_exception_services_code(void);
-
-#ifndef PTW32_BUILD
-
-#ifdef __CLEANUP_SEH
-
-/*
- * Redefine the SEH __except keyword to ensure that applications
- * propagate our internal exceptions up to the library's internal handlers.
- */
-#define __except( E ) \
-        __except( ( GetExceptionCode() == ptw32_get_exception_services_code() ) \
-		 ? EXCEPTION_CONTINUE_SEARCH : ( E ) )
-
-#endif /* __CLEANUP_SEH */
-
-#ifdef __cplusplus
-
-/*
- * Redefine the C++ catch keyword to ensure that applications
- * propagate our internal exceptions up to the library's internal handlers.
- */
-#ifdef _MSC_VER
-        /*
-         * WARNING: Replace any 'catch( ... )' with 'PtW32CatchAll'
-         * if you want Pthread-Win32 cancelation and pthread_exit to work.
-         */
-
-#ifndef PtW32NoCatchWarn
-
-#pragma message("When compiling applications with MSVC++ and C++ exception handling:")
-#pragma message("  Replace any 'catch( ... )' with 'PtW32CatchAll' in POSIX threads")
-#pragma message("  if you want POSIX thread cancelation and pthread_exit to work.")
-
-#endif
-
-#define PtW32CatchAll \
-        catch( ptw32_exception & ) { throw; } \
-        catch( ... )
-
-#else /* _MSC_VER */
-
-#define catch( E ) \
-        catch( ptw32_exception & ) { throw; } \
-        catch( E )
-
-#endif /* _MSC_VER */
-
-#endif /* __cplusplus */
-
-#endif /* ! PTW32_BUILD */
-
-#ifdef __cplusplus
-}				/* End of extern "C" */
-#endif				/* __cplusplus */
-
-#endif /* PTHREAD_H */
diff --git a/lib/libdvd/libdvdread/msvc/include/pthreads/sched.h b/lib/libdvd/libdvdread/msvc/include/pthreads/sched.h
deleted file mode 100755
index d7596b2..0000000
--- a/lib/libdvd/libdvdread/msvc/include/pthreads/sched.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Module: sched.h
- *
- * Purpose:
- *      Provides an implementation of POSIX realtime extensions
- *      as defined in
- *
- *              POSIX 1003.1b-1993      (POSIX.1b)
- *
- * Pthreads-win32 - POSIX Threads Library for Win32
- * Copyright (C) 1998
- *
- * 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 02110-1301 USA.
- */
-#ifndef _SCHED_H
-#define _SCHED_H
-
-#if defined(__MINGW32__) || defined(_UWIN)
-/* For pid_t */
-#  include <sys/types.h>
-/* Required by Unix 98 */
-#  include <time.h>
-#else
-typedef int pid_t;
-#endif
-
-/* Thread scheduling policies */
-
-enum {
-  SCHED_OTHER = 0,
-  SCHED_FIFO,
-  SCHED_RR,
-  SCHED_MIN   = SCHED_OTHER,
-  SCHED_MAX   = SCHED_RR
-};
-
-struct sched_param {
-  int sched_priority;
-};
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif                          /* __cplusplus */
-
-int sched_yield (void);
-
-int sched_get_priority_min (int policy);
-
-int sched_get_priority_max (int policy);
-
-int sched_setscheduler (pid_t pid, int policy);
-
-int sched_getscheduler (pid_t pid);
-
-/*
- * Note that this macro returns ENOTSUP rather than
- * ENOSYS as might be expected. However, returning ENOSYS
- * should mean that sched_get_priority_{min,max} are
- * not implemented as well as sched_rr_get_interval.
- * This is not the case, since we just don't support
- * round-robin scheduling. Therefore I have chosen to
- * return the same value as sched_setscheduler when
- * SCHED_RR is passed to it.
- */
-#define sched_rr_get_interval(_pid, _interval) \
-  ( errno = ENOTSUP, (int) -1 )
-
-
-#ifdef __cplusplus
-}                               /* End of extern "C" */
-#endif                          /* __cplusplus */
-
-
-#endif                          /* !_SCHED_H */
-
diff --git a/lib/libdvd/libdvdread/msvc/include/sys/time.h b/lib/libdvd/libdvdread/msvc/include/sys/time.h
deleted file mode 100755
index fe7fd84..0000000
--- a/lib/libdvd/libdvdread/msvc/include/sys/time.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2000-2001 the xine project
- *
- * This file is part of xine, a unix video player.
- *
- * xine 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.
- *
- * xine is distributed in the hope that 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.
- *
- * WIN32 PORT,
- * by Matthew Grooms <elon at altavista.com>
- *
- * sys/time.h - There is no separate sys/time.h for win32 so we simply
- *              include the standard time header as well as our xine
- *				timer functions.
- */
-
-#include <time.h>
diff --git a/lib/libdvd/libdvdread/msvc/include/timer.h b/lib/libdvd/libdvdread/msvc/include/timer.h
deleted file mode 100755
index efab6f4..0000000
--- a/lib/libdvd/libdvdread/msvc/include/timer.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <time.h>
-#include <winsock.h>
-#include "pthread.h"
-
-#ifndef _ITIMER_
-#define _ITIMER_
-
-#define ITIMER_REAL		0
-#define ITIMER_VIRTUAL	1
-
-//	time reference
-//	----------------------------------
-//
-//	1,000			milliseconds / sec
-//	1,000,000		microseconds / sec
-//	1,000,000,000	nanoseconds  / sec
-//
-//  timeval.time_sec  = seconds
-//  timeval.time_usec = microseconds
-
-struct itimerval
-{
-	struct timeval it_interval;    /* timer interval */
-	struct timeval it_value;       /* current value */
-};
-
-struct timezone {
-    int     tz_minuteswest; /* minutes west of Greenwich */
-    int     tz_dsttime;     /* type of dst correction */
-};
-
-int gettimeofday( struct timeval *tp, struct timezone *tzp );
-int setitimer( int which, struct itimerval * value, struct itimerval *ovalue );
-int pause( void );
-
-unsigned int sleep( unsigned int seconds );
-int nanosleep( const struct timespec *rqtp, struct timespec *rmtp );
-
-#endif
\ No newline at end of file
diff --git a/lib/libdvd/libdvdread/msvc/include/unistd.h b/lib/libdvd/libdvdread/msvc/include/unistd.h
deleted file mode 100755
index 9292fee..0000000
--- a/lib/libdvd/libdvdread/msvc/include/unistd.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2000-2001 the xine project
- *
- * This file is part of xine, a unix video player.
- *
- * xine 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.
- *
- * xine is distributed in the hope that 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.
- *
- * WIN32 PORT,
- * by Matthew Grooms <elon at altavista.com>
- *
- * unistd.h - This is mostly a catch all header that maps standard unix
- *            libc calls to the equivalent win32 functions.
- *
- */
-
-#include <windows.h>
-#include <malloc.h>
-#include <errno.h>
-#include <direct.h>
-
-#include <config.h>
-
-#ifndef _SYS_UNISTD_H_
-#define _SYS_UNISTD_H_
-
-#define inline __inline
-
-#define mkdir( A, B )	_mkdir( A )
-#define lstat			stat
-
-#ifndef S_ISDIR
-#define S_ISDIR(A)		( S_IFDIR & A )
-#endif
-
-#define S_IXUSR			S_IEXEC
-#define S_IXGRP			S_IEXEC
-#define S_IXOTH			S_IEXEC
-
-#define  M_PI			3.14159265358979323846  /* pi */
-
-#define bzero( A, B ) memset( A, 0, B )
-
-#ifndef strcasecmp
-#define strcasecmp _stricmp
-#endif
-
-#ifndef strncasecmp
-#define strncasecmp _strnicmp
-#endif
-
-#define snprintf _snprintf
-#define vsnprintf _vsnprintf
-
-// FIXME : I don't remember why this is here
-#define readlink
-
-#endif
diff --git a/lib/libdvd/libdvdread/msvc/install/README b/lib/libdvd/libdvdread/msvc/install/README
deleted file mode 100755
index 5e6ba4a..0000000
--- a/lib/libdvd/libdvdread/msvc/install/README
+++ /dev/null
@@ -1,7 +0,0 @@
-MSVC Help
----------
-
-In order to build using any application that requires libdvdnav using MSVC the 
-following directories (lib and include) must be copied to the msvc directory of 
-the particular application. 
-
diff --git a/lib/libdvd/libdvdread/msvc/libdvdnav.def b/lib/libdvd/libdvdread/msvc/libdvdnav.def
deleted file mode 100755
index 7f633d1..0000000
--- a/lib/libdvd/libdvdread/msvc/libdvdnav.def
+++ /dev/null
@@ -1,82 +0,0 @@
-;------------------------------------------------------------
-; LIBDVDNAV DLL DEFINITIONS FILE
-
-EXPORTS
-
-DVDOpen
-DVDClose
-DVDOpenFile
-DVDCloseFile
-DVDReadBlocks
-
-navRead_DSI
-navRead_PCI
-
-ifoClose
-ifoRead_VOBU_ADMAP
-ifoRead_VTS_ATRT
-ifoRead_PTL_MAIT
-ifoRead_PGCI_UT
-ifoRead_TT_SRPT
-ifoRead_FP_PGC
-ifoOpenVMGI
-ifoRead_TITLE_VOBU_ADMAP
-ifoRead_PGCIT
-ifoRead_VTS_PTT_SRPT
-ifoOpenVTSI
-ifoPrint
-
-dvdnav_set_readahead_flag
-dvdnav_set_region_mask
-dvdnav_spu_language_select
-dvdnav_audio_language_select
-dvdnav_menu_language_select
-dvdnav_get_angle_info
-dvdnav_current_title_info
-dvdnav_title_play
-dvdnav_part_play
-dvdnav_get_number_of_titles
-dvdnav_get_title_string
-dvdnav_open
-dvdnav_close
-dvdnav_wait_skip
-dvdnav_get_video_scale_permission
-dvdnav_get_video_aspect
-dvdnav_still_skip
-dvdnav_err_to_string
-dvdnav_get_next_cache_block
-dvdnav_free_cache_block
-dvdnav_get_position
-dvdnav_sector_search
-dvdnav_get_current_highlight
-dvdnav_button_select_and_activate
-dvdnav_right_button_select
-dvdnav_left_button_select
-dvdnav_lower_button_select
-dvdnav_upper_button_select
-dvdnav_mouse_select
-dvdnav_button_select
-dvdnav_mouse_activate
-dvdnav_button_activate
-dvdnav_angle_change
-dvdnav_prev_pg_search
-dvdnav_next_pg_search
-dvdnav_menu_call
-dvdnav_spu_stream_to_lang
-dvdnav_get_spu_logical_stream
-dvdnav_audio_stream_to_lang
-dvdnav_get_audio_logical_stream
-dvdnav_is_domain_vts
-
-dvdnav_set_PGC_positioning_flag
-dvdnav_get_number_of_parts
-dvdnav_reset
-
-;------------------------------------------------------------
-; timer exports
-
-gettimeofday
-setitimer
-pause
-sleep
-nanosleep
diff --git a/lib/libdvd/libdvdread/msvc/libdvdnav.dsp b/lib/libdvd/libdvdread/msvc/libdvdnav.dsp
deleted file mode 100755
index d301b23..0000000
--- a/lib/libdvd/libdvdread/msvc/libdvdnav.dsp
+++ /dev/null
@@ -1,188 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libdvdnav" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=libdvdnav - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "libdvdnav.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "libdvdnav.mak" CFG="libdvdnav - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "libdvdnav - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "libdvdnav - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "libdvdnav - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-LINK32=link.exe
-# ADD BASE LINK32 /machine:IX86
-# ADD LINK32 /machine:IX86
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "..\..\libdvdcss\src" /I "." /I "include" /I "contrib/dirent" /I "include/pthreads" /I "../../libdvdcss" /I ".." /I "../src" /I "../src/dvdread" /I "../src/vm" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "DVDNAV_COMPILE" /D "HAVE_CONFIG_H" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"Release\libdvdnav\libdvdnav.lib"
-# Begin Special Build Tool
-SOURCE="$(InputPath)"
-PostBuild_Desc=Create libdvdnav Install Files
-PostBuild_Cmds=scripts\libdvdnav_install.bat Release
-# End Special Build Tool
-
-!ELSEIF  "$(CFG)" == "libdvdnav - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-LINK32=link.exe
-# ADD BASE LINK32 /machine:IX86
-# ADD LINK32 /debug /machine:IX86 /out:"Debug/libdvdnav.lib" /implib:"Debug/libdvdnav.lib"
-# SUBTRACT LINK32 /pdb:none /nodefaultlib
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "include" /I "contrib/dirent" /I "include/pthreads" /I "../../libdvdcss" /I "../src" /I "." /I ".." /I "../src/dvdread" /I "../src/vm" /D "WIN32" /D "_DEBUG" /D "_LIB" /D "DVDNAV_COMPILE" /D "HAVE_CONFIG_H" /FR"Debug/libdvdnav/" /Fp"Debug/libdvdnav/libdvdnav.pch" /YX /Fo"Debug/libdvdnav/" /Fd"Debug/libdvdnav/" /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 libwin32utils.lib /nologo /out:"Debug\libdvdnav\libdvdnav.lib"
-# Begin Special Build Tool
-SOURCE="$(InputPath)"
-PostBuild_Desc=Create libdvdnav Install Files
-PostBuild_Cmds=scripts\libdvdnav_install.bat Debug
-# End Special Build Tool
-
-!ENDIF 
-
-# Begin Target
-
-# Name "libdvdnav - Win32 Release"
-# Name "libdvdnav - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\src\vm\decoder.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\dvdread\dvd_input.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\dvdread\dvd_reader.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\dvdread\dvd_udf.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\dvdnav.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\highlight.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\dvdread\ifo_print.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\dvdread\ifo_read.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\dvdread\md5.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\dvdread\nav_print.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\dvdread\nav_read.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\navigation.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\read_cache.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\remap.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\searching.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\settings.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\vm\vm.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\vm\vmcmd.c
-# End Source File
-# End Group
-# Begin Group "DLL Defs"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\libdvdnav.def
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/lib/libdvd/libdvdread/msvc/libdvdnav.dsw b/lib/libdvd/libdvdread/msvc/libdvdnav.dsw
deleted file mode 100755
index 8974efb..0000000
--- a/lib/libdvd/libdvdread/msvc/libdvdnav.dsw
+++ /dev/null
@@ -1,101 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "ifo_dump"=.\ifo_dump.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libdvdnav
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "libdvdcss"=.\libdvdcss.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "libdvdnav"=.\libdvdnav.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libwin32utils
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "libwin32utils"=.\libwin32utils.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "play_title"=.\play_title.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libdvdnav
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "title_info"=.\title_info.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libdvdnav
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/lib/libdvd/libdvdread/msvc/libwin32utils.def b/lib/libdvd/libdvdread/msvc/libwin32utils.def
deleted file mode 100755
index 1277cc8..0000000
--- a/lib/libdvd/libdvdread/msvc/libwin32utils.def
+++ /dev/null
@@ -1,229 +0,0 @@
-;------------------------------------------------------------
-; LIBWIN32UTILS DLL DEFINITIONS FILE
-
-EXPORTS
-
-;------------------------------------------------------------
-; dirent exports
-
-opendir
-closedir
-readdir
-rewinddir
-
-;------------------------------------------------------------
-; pthread exports
-
-;pthread_atfork
-pthread_attr_destroy
-pthread_attr_getdetachstate
-pthread_attr_getinheritsched
-pthread_attr_getschedparam
-pthread_attr_getschedpolicy
-pthread_attr_getscope
-pthread_attr_getstackaddr
-pthread_attr_getstacksize
-pthread_attr_init
-pthread_attr_setdetachstate
-pthread_attr_setinheritsched
-pthread_attr_setschedparam
-pthread_attr_setschedpolicy
-pthread_attr_setscope
-pthread_attr_setstackaddr
-pthread_attr_setstacksize
-pthread_cancel
-;
-; These two are implemented as macros in pthread.h
-;
-;pthread_cleanup_pop
-;pthread_cleanup_push
-;
-pthread_condattr_destroy
-pthread_condattr_getpshared
-pthread_condattr_init
-pthread_condattr_setpshared
-pthread_cond_broadcast
-pthread_cond_destroy
-pthread_cond_init
-pthread_cond_signal
-pthread_cond_timedwait
-pthread_cond_wait
-pthread_create
-pthread_detach
-pthread_equal
-pthread_exit
-pthread_getconcurrency
-pthread_getschedparam
-pthread_getspecific
-pthread_join
-pthread_key_create
-pthread_key_delete
-;pthread_kill
-pthread_mutexattr_destroy
-;pthread_mutexattr_getprioceiling
-;pthread_mutexattr_getprotocol
-pthread_mutexattr_getpshared
-pthread_mutexattr_gettype
-pthread_mutexattr_init
-;pthread_mutexattr_setprioceiling
-;pthread_mutexattr_setprotocol
-pthread_mutexattr_setpshared
-pthread_mutexattr_settype
-pthread_mutexattr_destroy
-pthread_mutex_init
-pthread_mutex_destroy
-pthread_mutex_lock
-pthread_mutex_trylock
-pthread_mutex_unlock
-pthread_once
-pthread_self
-pthread_setcancelstate
-pthread_setcanceltype
-pthread_setconcurrency
-pthread_setschedparam
-pthread_setspecific
-;pthread_sigmask
-pthread_testcancel
-;
-; POSIX 1.b
-;
-sched_get_priority_min
-sched_get_priority_max
-sched_getscheduler
-sched_setscheduler
-sched_yield
-sem_init
-sem_destroy
-sem_trywait
-sem_wait
-sem_post
-sem_open
-sem_close
-sem_unlink
-sem_getvalue
-;
-; This next one is a macro
-;sched_rr_get_interval
-;
-;
-; Read/Write Locks
-;
-pthread_rwlock_init
-pthread_rwlock_destroy
-pthread_rwlock_tryrdlock
-pthread_rwlock_trywrlock
-pthread_rwlock_rdlock
-pthread_rwlock_wrlock
-pthread_rwlock_unlock
-;
-; Spin locks
-;
-pthread_spin_init
-pthread_spin_destroy
-pthread_spin_lock
-pthread_spin_unlock
-pthread_spin_trylock
-;
-; Barriers
-;
-pthread_barrier_init
-pthread_barrier_destroy
-pthread_barrier_wait
-pthread_barrierattr_init
-pthread_barrierattr_destroy
-pthread_barrierattr_getpshared
-pthread_barrierattr_setpshared
-;
-; Non-portable/compatibility with other implementations
-;
-pthread_delay_np
-pthread_mutexattr_getkind_np
-pthread_mutexattr_setkind_np
-;
-; Non-portable local implementation only
-;
-pthread_getw32threadhandle_np
-pthread_getprocessors_np
-pthreadCancelableWait
-pthreadCancelableTimedWait
-;
-; For use when linking statically
-;
-pthread_win32_process_attach_np
-pthread_win32_process_detach_np
-pthread_win32_thread_attach_np
-pthread_win32_thread_detach_np
-;
-; Needed if !defined(_MSC_VER) && !defined(__cplusplus)
-;
-ptw32_push_cleanup
-ptw32_pop_cleanup
-;
-; Not for use directly. Needed by macros in pthread.h
-; to return internal SEH code.
-;
-ptw32_get_exception_services_code
-
-;------------------------------------------------------------
-; timer exports
-
-adler32
-compress
-crc32
-deflate
-deflateCopy
-deflateEnd
-deflateInit2_
-deflateInit_
-deflateParams
-deflateReset
-deflateSetDictionary
-gzclose
-gzdopen
-gzerror
-gzflush
-gzopen
-gzread
-gzwrite
-inflate
-inflateEnd
-inflateInit2_
-inflateInit_
-inflateReset
-inflateSetDictionary
-inflateSync
-uncompress
-zlibVersion
-gzprintf
-gzputc
-gzgetc
-gzseek
-gzrewind
-gztell
-gzeof
-gzsetparams
-zError
-inflateSyncPoint
-get_crc_table
-compress2
-gzputs
-gzgets
-
-;------------------------------------------------------------
-; timer exports
-
-gettimeofday
-setitimer
-pause
-sleep
-nanosleep
-
-;------------------------------------------------------------
-; other exports
-bcopy
-dlclose
-dlsym
-dlopen
-dlerror
-
-optind
\ No newline at end of file
diff --git a/lib/libdvd/libdvdread/msvc/libwin32utils.dsp b/lib/libdvd/libdvdread/msvc/libwin32utils.dsp
deleted file mode 100755
index f94af8f..0000000
--- a/lib/libdvd/libdvdread/msvc/libwin32utils.dsp
+++ /dev/null
@@ -1,136 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libwin32utils" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=libwin32utils - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "libwin32utils.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "libwin32utils.mak" CFG="libwin32utils - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "libwin32utils - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "libwin32utils - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "libwin32utils - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release/libwin32utils"
-# PROP Intermediate_Dir "Release/libwin32utils"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /machine:I386
-# ADD LINK32 winmm.lib /nologo /machine:I386 /out:"Release/libwin32utils.lib"
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /D "LIBWIN32UTILS_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "include" /I "contrib/dirent" /I "include/pthreads" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /D "LIBWIN32UTILS_EXPORTS" /D "__CLEANUP_C" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD LIB32 /out:"libwin32utils.lib"
-
-!ELSEIF  "$(CFG)" == "libwin32utils - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug/libwin32utils"
-# PROP Intermediate_Dir "Debug/libwin32utils"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 winmm.lib /nologo /debug /machine:I386 /out:"Debug/libwin32utils.lib" /pdbtype:sept
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /D "LIBWIN32UTILS_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "include/pthreads" /I "include" /I "contrib/dirent" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /D "LIBWIN32UTILS_EXPORTS" /D "__CLEANUP_C" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD LIB32 winmm.lib /out:"libwin32utils.lib"
-
-!ENDIF 
-
-# Begin Target
-
-# Name "libwin32utils - Win32 Release"
-# Name "libwin32utils - Win32 Debug"
-# Begin Group "Source Files ( dirent )"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\contrib\dirent\dirent.c
-# End Source File
-# End Group
-# Begin Group "Source Files ( timer )"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\contrib\timer\timer.c
-# End Source File
-# End Group
-# Begin Group "DLL Defs"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\libwin32utils.def
-# End Source File
-# End Group
-# Begin Group "Source Files ( other )"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\contrib\bcopy.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\contrib\dlfcn.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\contrib\getopt.c
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/lib/libdvd/libdvdread/msvc/play_title.dsp b/lib/libdvd/libdvdread/msvc/play_title.dsp
deleted file mode 100755
index 8a3efdf..0000000
--- a/lib/libdvd/libdvdread/msvc/play_title.dsp
+++ /dev/null
@@ -1,101 +0,0 @@
-# Microsoft Developer Studio Project File - Name="play_title" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=play_title - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "play_title.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "play_title.mak" CFG="play_title - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "play_title - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "play_title - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "play_title - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-
-!ELSEIF  "$(CFG)" == "play_title - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "play_title___Win32_Debug"
-# PROP BASE Intermediate_Dir "play_title___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug\play_title"
-# PROP Intermediate_Dir "Debug\play_title"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "include" /I "contrib/dirent" /I "../../libdvdcss" /I "install/include" /I "." /I ".." /I "../src" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"Debug/bin/play_title.exe" /pdbtype:sept
-
-!ENDIF 
-
-# Begin Target
-
-# Name "play_title - Win32 Release"
-# Name "play_title - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\src\play_title.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/lib/libdvd/libdvdread/msvc/scripts/libdvdnav_install.bat b/lib/libdvd/libdvdread/msvc/scripts/libdvdnav_install.bat
deleted file mode 100755
index f49f2f2..0000000
--- a/lib/libdvd/libdvdread/msvc/scripts/libdvdnav_install.bat
+++ /dev/null
@@ -1,21 +0,0 @@
-
-ECHO mkdir install ...
-rmdir /s install\include
-rmdir /s install\lib
-mkdir install\include\dvdnav
-mkdir install\lib
-
-ECHO includes ...
-xcopy /Y ..\src\dvdnav.h install\include\dvdnav
-xcopy /Y ..\src\dvdnav_events.h install\include\dvdnav
-xcopy /Y ..\src\dvd_types.h install\include\dvdnav
-xcopy /Y ..\src\dvdread\dvd_reader.h install\include\dvdnav
-xcopy /Y ..\src\dvdread\nav_read.h install\include\dvdnav
-xcopy /Y ..\src\dvdread\ifo_read.h install\include\dvdnav
-xcopy /Y ..\src\dvdread\nav_print.h install\include\dvdnav
-xcopy /Y ..\src\dvdread\ifo_print.h install\include\dvdnav
-xcopy /Y ..\src\dvdread\ifo_types.h install\include\dvdnav
-xcopy /Y ..\src\dvdread\nav_types.h install\include\dvdnav
-
-ECHO lib ...
-xcopy /Y %1\libdvdnav\libdvdnav.lib install\lib
diff --git a/lib/libdvd/libdvdread/msvc/title_info.dsp b/lib/libdvd/libdvdread/msvc/title_info.dsp
deleted file mode 100755
index 39d3768..0000000
--- a/lib/libdvd/libdvdread/msvc/title_info.dsp
+++ /dev/null
@@ -1,101 +0,0 @@
-# Microsoft Developer Studio Project File - Name="title_info" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=title_info - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "title_info.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "title_info.mak" CFG="title_info - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "title_info - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "title_info - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "title_info - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-
-!ELSEIF  "$(CFG)" == "title_info - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "title_info___Win32_Debug"
-# PROP BASE Intermediate_Dir "title_info___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "title_info___Win32_Debug"
-# PROP Intermediate_Dir "title_info___Win32_Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "include" /I "contrib/dirent" /I "../../libdvdcss" /I "install/include" /I "." /I ".." /I "../src" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"Debug/title_info/title_info.pch" /YX /Fo"Debug/title_info/" /Fd"Debug/title_info/" /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"Debug/bin/title_info.exe" /pdbtype:sept
-
-!ENDIF 
-
-# Begin Target
-
-# Name "title_info - Win32 Release"
-# Name "title_info - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\src\title_info.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/lib/libdvd/patches/05-libdvdcss-fix-positioning-with-part-read.diff b/lib/libdvd/patches/05-libdvdcss-fix-positioning-with-part-read.diff
new file mode 100644
index 0000000..6dfc875
--- /dev/null
+++ b/lib/libdvd/patches/05-libdvdcss-fix-positioning-with-part-read.diff
@@ -0,0 +1,18 @@
+diff --git a/lib/libdvd/libdvdcss/src/device.c b/lib/libdvd/libdvdcss/src/device.c
+index 2395ab5..3de1879 100644
+--- a/lib/libdvd/libdvdcss/src/device.c
++++ b/lib/libdvd/libdvdcss/src/device.c
+@@ -828,10 +828,11 @@ static int libc_read ( dvdcss_t dvdcss, void *p_buffer, int i_blocks )
+     /* Handle partial reads */
+     if( i_ret != i_size )
+     {
+-        int i_seek;
++        int i_seek, i_set_pos;
+ 
++        i_set_pos = dvdcss->i_pos + i_ret / DVDCSS_BLOCK_SIZE;
+         dvdcss->i_pos = -1;
+-        i_seek = libc_seek( dvdcss, i_ret / DVDCSS_BLOCK_SIZE );
++        i_seek = libc_seek( dvdcss, i_set_pos );
+         if( i_seek < 0 )
+         {
+             return i_seek;
diff --git a/lib/libdvd/patches/06-libdvdcss-fix-part-read.diff b/lib/libdvd/patches/06-libdvdcss-fix-part-read.diff
new file mode 100644
index 0000000..318b7a4
--- /dev/null
+++ b/lib/libdvd/patches/06-libdvdcss-fix-part-read.diff
@@ -0,0 +1,32 @@
+diff --git a/lib/libdvd/libdvdcss/src/device.c b/lib/libdvd/libdvdcss/src/device.c
+index 3de1879..53d1fdf 100644
+--- a/lib/libdvd/libdvdcss/src/device.c
++++ b/lib/libdvd/libdvdcss/src/device.c
+@@ -816,13 +816,21 @@ static int libc_read ( dvdcss_t dvdcss, void *p_buffer, int i_blocks )
+     off_t i_size, i_ret;
+ 
+     i_size = (off_t)i_blocks * (off_t)DVDCSS_BLOCK_SIZE;
+-    i_ret = read( dvdcss->i_read_fd, p_buffer, i_size );
+-
+-    if( i_ret < 0 )
++    i_ret = 0;
++    while( i_ret < i_size )
+     {
+-        print_error( dvdcss, "read error" );
+-        dvdcss->i_pos = -1;
+-        return i_ret;
++        off_t i_r;
++        i_r = read( dvdcss->i_read_fd, ((char*)p_buffer) + i_ret, i_size - i_ret );
++        if( i_r < 0 )
++        {
++            print_error(dvdcss, "read error");
++            dvdcss->i_pos = -1;
++            return i_r;
++        }
++        if( i_r == 0 )
++            break;
++
++        i_ret += i_r;
+     }
+ 
+     /* Handle partial reads */
diff --git a/lib/libdvd/patches/libdvdcss.diff b/lib/libdvd/patches/libdvdcss.diff
new file mode 100644
index 0000000..4e18109
--- /dev/null
+++ b/lib/libdvd/patches/libdvdcss.diff
@@ -0,0 +1,204 @@
+Only in lib/libdvd/libdvdcss/: .libs
+diff -uwr ../libdvdcss-1.2.13/Makefile.am lib/libdvd/libdvdcss/Makefile.am
+--- ../libdvdcss-1.2.13/Makefile.am	Wed Feb 27 10:05:36 2013
++++ lib/libdvd/libdvdcss/Makefile.am	Sat Feb  1 22:41:19 2014
+@@ -4,13 +4,7 @@
+ 
+ dist_doc_DATA = AUTHORS COPYING NEWS README ChangeLog
+ 
+-DISTCLEANFILES = ChangeLog
+-
+-ChangeLog: $(wildcard $(srcdir)/.git/logs/HEAD)
+-	-cd $(srcdir) && git log > $(abs_builddir)/$(@)-tmp
+-	test -s $(@)-tmp && mv $(@)-tmp $(@)
+-	-rm -f $(@)-tmp
+-	test -e $(@) || touch $(@)
++DISTCLEANFILES = 
+ 
+ lib_LTLIBRARIES = libdvdcss.la
+ EXTRA_PROGRAMS = csstest dvd_region
+diff -uwr ../libdvdcss-1.2.13/src/device.c lib/libdvd/libdvdcss/src/device.c
+--- ../libdvdcss-1.2.13/src/device.c	Wed Feb 27 10:05:36 2013
++++ lib/libdvd/libdvdcss/src/device.c	Sat Feb  1 19:41:54 2014
+@@ -22,6 +22,10 @@
+  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+  *****************************************************************************/
+ 
++/*
++	Modifications for XBMC are all contained within WITH_CACHE
++*/
++
+ /*****************************************************************************
+  * Preamble
+  *****************************************************************************/
+@@ -509,17 +513,24 @@
+      * won't send back the right result).
+      * (See Microsoft Q241374: Read and Write Access Required for SCSI
+      * Pass Through Requests) */
++
++#ifdef WITH_CACHE
++    DWORD flags = FILE_FLAG_NO_BUFFERING; /* we handle buffering ourself */
++#else
++    DWORD flags = FILE_FLAG_RANDOM_ACCESS;
++#endif //!WITH_CACHE
++
+     dvdcss->i_fd = (int)
+                 CreateFile( psz_dvd, GENERIC_READ | GENERIC_WRITE,
+                             FILE_SHARE_READ | FILE_SHARE_WRITE,
+                             NULL, OPEN_EXISTING,
+-                            FILE_FLAG_RANDOM_ACCESS, NULL );
++                            flags, NULL );
+ 
+     if( (HANDLE) dvdcss->i_fd == INVALID_HANDLE_VALUE )
+         dvdcss->i_fd = (int)
+                     CreateFile( psz_dvd, GENERIC_READ, FILE_SHARE_READ,
+                                 NULL, OPEN_EXISTING,
+-                                FILE_FLAG_RANDOM_ACCESS, NULL );
++                                flags, NULL );
+ 
+     if( (HANDLE) dvdcss->i_fd == INVALID_HANDLE_VALUE )
+     {
+@@ -714,6 +725,9 @@
+ static int win2k_seek( dvdcss_t dvdcss, int i_blocks )
+ {
+     LARGE_INTEGER li_seek;
++#ifdef WITH_CACHE
++    int iBytesToSkip;
++#endif
+ 
+ #ifndef INVALID_SET_FILE_POINTER
+ #   define INVALID_SET_FILE_POINTER ((DWORD)-1)
+@@ -725,6 +739,28 @@
+         return i_blocks;
+     }
+ 
++#ifdef WITH_CACHE
++
++    // if our buffer contains the position which we want to seek too, we can
++    // just decrease dwCacheBufferSize
++    iBytesToSkip = (i_blocks - dvdcss->i_pos) * DVDCSS_BLOCK_SIZE;
++    if (iBytesToSkip > 0 && iBytesToSkip < dvdcss->buffer_size)
++    {
++      dvdcss->buffer_size -= iBytesToSkip;
++      dvdcss->i_pos = i_blocks;
++      return dvdcss->i_pos;
++    }
++    else if (iBytesToSkip < 0 && (DISC_CACHE_SIZE - dvdcss->buffer_size) >= -iBytesToSkip)
++    {
++      // we want to seek backwards, and we have enough old data in our buffer
++      dvdcss->buffer_size -= iBytesToSkip; // since iBytesToSkip is negative, dwCacheBufferSize will get bigger
++      dvdcss->i_pos = i_blocks;
++      return dvdcss->i_pos;
++    }
++    else dvdcss->buffer_size = 0;
++    
++#endif
++
+     li_seek.QuadPart = (LONGLONG)i_blocks * DVDCSS_BLOCK_SIZE;
+ 
+     li_seek.LowPart = SetFilePointer( (HANDLE) dvdcss->i_fd,
+@@ -814,6 +850,66 @@
+ {
+     int i_bytes;
+ 
++#ifdef WITH_CACHE
++
++  if (dvdcss->buffer_size < i_blocks * DVDCSS_BLOCK_SIZE)
++  {
++    // we don't have enough data in our buffer
++    int iRemaining = i_blocks * DVDCSS_BLOCK_SIZE;
++    int iCopied = 0;
++    // copy data we already have and read again into the cache
++	if (dvdcss->buffer_size > 0) memcpy(p_buffer, dvdcss->buffer + (DISC_CACHE_SIZE - dvdcss->buffer_size), dvdcss->buffer_size);
++    iCopied = dvdcss->buffer_size;
++    iRemaining -= dvdcss->buffer_size;
++    (BYTE*)p_buffer += iCopied;
++    dvdcss->buffer_size = 0;
++    
++    // if remaining size is bigger >= DISC_CACHE_SIZE, don't cache it. Just read
++    if (iRemaining >= DISC_CACHE_SIZE)
++    {
++      if (!ReadFile((HANDLE)dvdcss->i_fd, p_buffer, iRemaining, (LPDWORD)&i_bytes, NULL))
++      {
++        dvdcss->i_pos = -1;
++        return -1;
++      }
++      dvdcss->i_pos += (i_bytes + iCopied) / DVDCSS_BLOCK_SIZE;
++      return (i_bytes + iCopied) / DVDCSS_BLOCK_SIZE;
++    }
++    else
++    {
++      // read a chunk into the cache and copy the needed bytes into p_buffer
++      if (!ReadFile((HANDLE)dvdcss->i_fd, dvdcss->buffer, DISC_CACHE_SIZE, &dvdcss->buffer_size, NULL))
++      {
++         // read error, maybe we tried to read to much. Try again but now without cache
++        if (!ReadFile((HANDLE)dvdcss->i_fd, p_buffer, iRemaining, (LPDWORD)&i_bytes, NULL))
++        {
++          dvdcss->i_pos = -1;
++          return -1;
++        }
++        dvdcss->i_pos += (i_bytes + iCopied) / DVDCSS_BLOCK_SIZE;
++        return (i_bytes + iCopied) / DVDCSS_BLOCK_SIZE;
++      }
++      // copy bytes into the buffer
++      memcpy(p_buffer, dvdcss->buffer, iRemaining);
++      dvdcss->buffer_size -= iRemaining;
++      dvdcss->i_pos += (iRemaining + iCopied) / DVDCSS_BLOCK_SIZE;
++      return (iRemaining + iCopied) / DVDCSS_BLOCK_SIZE;
++    } 
++  }
++  else
++  {
++    // we have enough data in our cache, just copy it
++    memcpy(p_buffer, dvdcss->buffer + (DISC_CACHE_SIZE - dvdcss->buffer_size), i_blocks * DVDCSS_BLOCK_SIZE);
++    dvdcss->buffer_size -= i_blocks * DVDCSS_BLOCK_SIZE;
++    dvdcss->i_pos += i_blocks;
++    return i_blocks;
++  }
++
++  dvdcss->i_pos = -1;
++  return -1;
++  
++#else // WITH_CACHE
++
+     if( !ReadFile( (HANDLE) dvdcss->i_fd, p_buffer,
+               i_blocks * DVDCSS_BLOCK_SIZE,
+               (LPDWORD)&i_bytes, NULL ) )
+@@ -824,6 +920,7 @@
+ 
+     dvdcss->i_pos += i_bytes / DVDCSS_BLOCK_SIZE;
+     return i_bytes / DVDCSS_BLOCK_SIZE;
++#endif // WITH_CACHE	
+ }
+ 
+ static int aspi_read ( dvdcss_t dvdcss, void *p_buffer, int i_blocks )
+Only in lib/libdvd/libdvdcss/src: device.lo
+Only in lib/libdvd/libdvdcss/src: device.o
+Only in lib/libdvd/libdvdcss/src: error.lo
+Only in lib/libdvd/libdvdcss/src: error.o
+Only in lib/libdvd/libdvdcss/src: ioctl.lo
+Only in lib/libdvd/libdvdcss/src: ioctl.o
+diff -uwr ../libdvdcss-1.2.13/src/libdvdcss.c lib/libdvd/libdvdcss/src/libdvdcss.c
+--- ../libdvdcss-1.2.13/src/libdvdcss.c	Tue Feb 26 08:08:36 2013
++++ lib/libdvd/libdvdcss/src/libdvdcss.c	Sat Feb  1 18:37:25 2014
+@@ -195,6 +195,10 @@
+     dvdcss->b_debug = 0;
+     dvdcss->b_errors = 0;
+ 
++#ifdef WITH_CACHE
++    dvdcss->buffer_size = 0;
++#endif
++
+     /*
+      *  Find verbosity from DVDCSS_VERBOSE environment variable
+      */
+@@ -388,7 +392,7 @@
+             dvdcss->b_scrambled = i_ret;
+         }
+     }
+-
++    /* if wo don't have b_ioctls, we don't have a disk key, make sure area is nulled */
+     memset( dvdcss->css.p_disc_key, 0, KEY_SIZE );
+     /* If disc is CSS protected and the ioctls work, authenticate the drive */
+     if( dvdcss->b_scrambled && dvdcss->b_ioctls )
+
diff --git a/lib/libhts/Win32/include/getopt.h b/lib/libhts/Win32/include/getopt.h
deleted file mode 100644
index 6b6f643..0000000
--- a/lib/libhts/Win32/include/getopt.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 1987, 1993, 1994, 1996
- *  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. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *  This product includes software developed by the University of
- *  California, Berkeley and its contributors.
- * 4. 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.
- */
-
-#ifndef __GETOPT_H__
-#define __GETOPT_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int   opterr;      /* if error message should be printed */
-extern int   optind;      /* index into parent argv vector */
-extern int   optopt;      /* character checked for validity */
-extern int   optreset;    /* reset getopt */
-extern char *optarg;      /* argument associated with option */
-
-int getopt (int, char * const *, const char *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __GETOPT_H__ */
-
-#ifndef __UNISTD_GETOPT__
-#ifndef __GETOPT_LONG_H__
-#define __GETOPT_LONG_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct option {
-	const char *name;
-	int  has_arg;
-	int *flag;
-	int val;
-};
-
-int getopt_long (int, char *const *, const char *, const struct option *, int *);
-#ifndef HAVE_DECL_GETOPT
-#define HAVE_DECL_GETOPT 1
-#endif
-
-#define no_argument             0
-#define required_argument       1
-#define optional_argument       2
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __GETOPT_LONG_H__ */
-#endif /* __UNISTD_GETOPT__ */
diff --git a/lib/libhts/Win32/include/inttypes.h b/lib/libhts/Win32/include/inttypes.h
deleted file mode 100644
index 1475fbf..0000000
--- a/lib/libhts/Win32/include/inttypes.h
+++ /dev/null
@@ -1,306 +0,0 @@
-// ISO C9x  compliant inttypes.h for Microsoft Visual Studio
-// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
-//
-//  Copyright (c) 2006 Alexander Chemeris
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-//   1. Redistributions of source code must retain the above copyright notice,
-//      this list of conditions and the following disclaimer.
-//
-//   2. Redistributions in binary form must reproduce the above copyright
-//      notice, this list of conditions and the following disclaimer in the
-//      documentation and/or other materials provided with the distribution.
-//
-//   3. The name of the author may be used to endorse or promote products
-//      derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef _MSC_VER // [
-#error "Use this header only with Microsoft Visual C++ compilers!"
-#endif // _MSC_VER ]
-
-#ifndef _MSC_INTTYPES_H_ // [
-#define _MSC_INTTYPES_H_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif
-
-#include <stdint.h>
-
-// 7.8 Format conversion of integer types
-
-typedef struct {
-   intmax_t quot;
-   intmax_t rem;
-} imaxdiv_t;
-
-// 7.8.1 Macros for format specifiers
-
-#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) // [   See footnote 185 at page 198
-
-// The fprintf macros for signed integers are:
-#define PRId8       "d"
-#define PRIi8       "i"
-#define PRIdLEAST8  "d"
-#define PRIiLEAST8  "i"
-#define PRIdFAST8   "d"
-#define PRIiFAST8   "i"
-
-#define PRId16       "hd"
-#define PRIi16       "hi"
-#define PRIdLEAST16  "hd"
-#define PRIiLEAST16  "hi"
-#define PRIdFAST16   "hd"
-#define PRIiFAST16   "hi"
-
-#define PRId32       "I32d"
-#define PRIi32       "I32i"
-#define PRIdLEAST32  "I32d"
-#define PRIiLEAST32  "I32i"
-#define PRIdFAST32   "I32d"
-#define PRIiFAST32   "I32i"
-
-#define PRId64       "I64d"
-#define PRIi64       "I64i"
-#define PRIdLEAST64  "I64d"
-#define PRIiLEAST64  "I64i"
-#define PRIdFAST64   "I64d"
-#define PRIiFAST64   "I64i"
-
-#define PRIdMAX     "I64d"
-#define PRIiMAX     "I64i"
-
-#define PRIdPTR     "Id"
-#define PRIiPTR     "Ii"
-
-// The fprintf macros for unsigned integers are:
-#define PRIo8       "o"
-#define PRIu8       "u"
-#define PRIx8       "x"
-#define PRIX8       "X"
-#define PRIoLEAST8  "o"
-#define PRIuLEAST8  "u"
-#define PRIxLEAST8  "x"
-#define PRIXLEAST8  "X"
-#define PRIoFAST8   "o"
-#define PRIuFAST8   "u"
-#define PRIxFAST8   "x"
-#define PRIXFAST8   "X"
-
-#define PRIo16       "ho"
-#define PRIu16       "hu"
-#define PRIx16       "hx"
-#define PRIX16       "hX"
-#define PRIoLEAST16  "ho"
-#define PRIuLEAST16  "hu"
-#define PRIxLEAST16  "hx"
-#define PRIXLEAST16  "hX"
-#define PRIoFAST16   "ho"
-#define PRIuFAST16   "hu"
-#define PRIxFAST16   "hx"
-#define PRIXFAST16   "hX"
-
-#define PRIo32       "I32o"
-#define PRIu32       "I32u"
-#define PRIx32       "I32x"
-#define PRIX32       "I32X"
-#define PRIoLEAST32  "I32o"
-#define PRIuLEAST32  "I32u"
-#define PRIxLEAST32  "I32x"
-#define PRIXLEAST32  "I32X"
-#define PRIoFAST32   "I32o"
-#define PRIuFAST32   "I32u"
-#define PRIxFAST32   "I32x"
-#define PRIXFAST32   "I32X"
-
-#define PRIo64       "I64o"
-#define PRIu64       "I64u"
-#define PRIx64       "I64x"
-#define PRIX64       "I64X"
-#define PRIoLEAST64  "I64o"
-#define PRIuLEAST64  "I64u"
-#define PRIxLEAST64  "I64x"
-#define PRIXLEAST64  "I64X"
-#define PRIoFAST64   "I64o"
-#define PRIuFAST64   "I64u"
-#define PRIxFAST64   "I64x"
-#define PRIXFAST64   "I64X"
-
-#define PRIoMAX     "I64o"
-#define PRIuMAX     "I64u"
-#define PRIxMAX     "I64x"
-#define PRIXMAX     "I64X"
-
-#define PRIoPTR     "Io"
-#define PRIuPTR     "Iu"
-#define PRIxPTR     "Ix"
-#define PRIXPTR     "IX"
-
-// The fscanf macros for signed integers are:
-#define SCNd8       "d"
-#define SCNi8       "i"
-#define SCNdLEAST8  "d"
-#define SCNiLEAST8  "i"
-#define SCNdFAST8   "d"
-#define SCNiFAST8   "i"
-
-#define SCNd16       "hd"
-#define SCNi16       "hi"
-#define SCNdLEAST16  "hd"
-#define SCNiLEAST16  "hi"
-#define SCNdFAST16   "hd"
-#define SCNiFAST16   "hi"
-
-#define SCNd32       "ld"
-#define SCNi32       "li"
-#define SCNdLEAST32  "ld"
-#define SCNiLEAST32  "li"
-#define SCNdFAST32   "ld"
-#define SCNiFAST32   "li"
-
-#define SCNd64       "I64d"
-#define SCNi64       "I64i"
-#define SCNdLEAST64  "I64d"
-#define SCNiLEAST64  "I64i"
-#define SCNdFAST64   "I64d"
-#define SCNiFAST64   "I64i"
-
-#define SCNdMAX     "I64d"
-#define SCNiMAX     "I64i"
-
-#ifdef _WIN64 // [
-#  define SCNdPTR     "I64d"
-#  define SCNiPTR     "I64i"
-#else  // _WIN64 ][
-#  define SCNdPTR     "ld"
-#  define SCNiPTR     "li"
-#endif  // _WIN64 ]
-
-// The fscanf macros for unsigned integers are:
-#define SCNo8       "o"
-#define SCNu8       "u"
-#define SCNx8       "x"
-#define SCNX8       "X"
-#define SCNoLEAST8  "o"
-#define SCNuLEAST8  "u"
-#define SCNxLEAST8  "x"
-#define SCNXLEAST8  "X"
-#define SCNoFAST8   "o"
-#define SCNuFAST8   "u"
-#define SCNxFAST8   "x"
-#define SCNXFAST8   "X"
-
-#define SCNo16       "ho"
-#define SCNu16       "hu"
-#define SCNx16       "hx"
-#define SCNX16       "hX"
-#define SCNoLEAST16  "ho"
-#define SCNuLEAST16  "hu"
-#define SCNxLEAST16  "hx"
-#define SCNXLEAST16  "hX"
-#define SCNoFAST16   "ho"
-#define SCNuFAST16   "hu"
-#define SCNxFAST16   "hx"
-#define SCNXFAST16   "hX"
-
-#define SCNo32       "lo"
-#define SCNu32       "lu"
-#define SCNx32       "lx"
-#define SCNX32       "lX"
-#define SCNoLEAST32  "lo"
-#define SCNuLEAST32  "lu"
-#define SCNxLEAST32  "lx"
-#define SCNXLEAST32  "lX"
-#define SCNoFAST32   "lo"
-#define SCNuFAST32   "lu"
-#define SCNxFAST32   "lx"
-#define SCNXFAST32   "lX"
-
-#define SCNo64       "I64o"
-#define SCNu64       "I64u"
-#define SCNx64       "I64x"
-#define SCNX64       "I64X"
-#define SCNoLEAST64  "I64o"
-#define SCNuLEAST64  "I64u"
-#define SCNxLEAST64  "I64x"
-#define SCNXLEAST64  "I64X"
-#define SCNoFAST64   "I64o"
-#define SCNuFAST64   "I64u"
-#define SCNxFAST64   "I64x"
-#define SCNXFAST64   "I64X"
-
-#define SCNoMAX     "I64o"
-#define SCNuMAX     "I64u"
-#define SCNxMAX     "I64x"
-#define SCNXMAX     "I64X"
-
-#ifdef _WIN64 // [
-#  define SCNoPTR     "I64o"
-#  define SCNuPTR     "I64u"
-#  define SCNxPTR     "I64x"
-#  define SCNXPTR     "I64X"
-#else  // _WIN64 ][
-#  define SCNoPTR     "lo"
-#  define SCNuPTR     "lu"
-#  define SCNxPTR     "lx"
-#  define SCNXPTR     "lX"
-#endif  // _WIN64 ]
-
-#endif // __STDC_FORMAT_MACROS ]
-
-// 7.8.2 Functions for greatest-width integer types
-
-// 7.8.2.1 The imaxabs function
-#define imaxabs _abs64
-
-// 7.8.2.2 The imaxdiv function
-
-// This is modified version of div() function from Microsoft's div.c found
-// in %MSVC.NET%\crt\src\div.c
-#ifdef STATIC_IMAXDIV // [
-static
-#else // STATIC_IMAXDIV ][
-_inline
-#endif // STATIC_IMAXDIV ]
-imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom)
-{
-   imaxdiv_t result;
-
-   result.quot = numer / denom;
-   result.rem = numer % denom;
-
-   if (numer < 0 && result.rem > 0) {
-      // did division wrong; must fix up
-      ++result.quot;
-      result.rem -= denom;
-   }
-
-   return result;
-}
-
-// 7.8.2.3 The strtoimax and strtoumax functions
-#define strtoimax _strtoi64
-#define strtoumax _strtoui64
-
-// 7.8.2.4 The wcstoimax and wcstoumax functions
-#define wcstoimax _wcstoi64
-#define wcstoumax _wcstoui64
-
-#define ssize_t int
-
-#endif // _MSC_INTTYPES_H_ ]
diff --git a/lib/libhts/Win32/include/msvc.h b/lib/libhts/Win32/include/msvc.h
deleted file mode 100644
index 0a7ed2d..0000000
--- a/lib/libhts/Win32/include/msvc.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifdef WIN32
-
-#define strtoll(p, e, b) _strtoi64(p, e, b)
-#define snprintf _snprintf
-#define strcasecmp stricmp
-#define strncasecmp strnicmp
-#define strdup _strdup
-#if _MSC_VER < 1500
-#define vsnprintf _vsnprintf
-#endif
-
-static char * strndup(const char* str, size_t len)
-{
-  size_t i = 0;
-  char*  p = (char*)str;
-  while(*p != 0 && i < len)
-  {
-    p++;
-    i++;
-  }
-  p = malloc(len+1);
-  memcpy(p, str, len);
-  p[len] = 0;
-  return p;
-}
-
-#ifndef M_PI
-#define M_PI 3.1415926535897932384626433832795
-#endif
-
-#define S_IFREG  0100000
-#define S_ISREG(m)      (((m) & S_IFMT) == S_IFREG)
-
-#endif
diff --git a/lib/libhts/Win32/include/sys/queue.h b/lib/libhts/Win32/include/sys/queue.h
deleted file mode 100644
index 5661c71..0000000
--- a/lib/libhts/Win32/include/sys/queue.h
+++ /dev/null
@@ -1,574 +0,0 @@
-/*
- * Copyright (c) 1991, 1993
- *	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.
- *
- *	@(#)queue.h	8.5 (Berkeley) 8/20/94
- */
-
-#ifndef	_SYS_QUEUE_H_
-#define	_SYS_QUEUE_H_
-
-/*
- * This file defines five types of data structures: singly-linked lists,
- * lists, simple queues, tail queues, and circular queues.
- *
- * A singly-linked list is headed by a single forward pointer. The
- * elements are singly linked for minimum space and pointer manipulation
- * overhead at the expense of O(n) removal for arbitrary elements. New
- * elements can be added to the list after an existing element or at the
- * head of the list.  Elements being removed from the head of the list
- * should use the explicit macro for this purpose for optimum
- * efficiency. A singly-linked list may only be traversed in the forward
- * direction.  Singly-linked lists are ideal for applications with large
- * datasets and few or no removals or for implementing a LIFO queue.
- *
- * A list is headed by a single forward pointer (or an array of forward
- * pointers for a hash table header). The elements are doubly linked
- * so that an arbitrary element can be removed without a need to
- * traverse the list. New elements can be added to the list before
- * or after an existing element or at the head of the list. A list
- * may only be traversed in the forward direction.
- *
- * A simple queue is headed by a pair of pointers, one the head of the
- * list and the other to the tail of the list. The elements are singly
- * linked to save space, so elements can only be removed from the
- * head of the list. New elements can be added to the list after
- * an existing element, at the head of the list, or at the end of the
- * list. A simple queue may only be traversed in the forward direction.
- *
- * A tail queue is headed by a pair of pointers, one to the head of the
- * list and the other to the tail of the list. The elements are doubly
- * linked so that an arbitrary element can be removed without a need to
- * traverse the list. New elements can be added to the list before or
- * after an existing element, at the head of the list, or at the end of
- * the list. A tail queue may be traversed in either direction.
- *
- * A circle queue is headed by a pair of pointers, one to the head of the
- * list and the other to the tail of the list. The elements are doubly
- * linked so that an arbitrary element can be removed without a need to
- * traverse the list. New elements can be added to the list before or after
- * an existing element, at the head of the list, or at the end of the list.
- * A circle queue may be traversed in either direction, but has a more
- * complex end of list detection.
- *
- * For details on the use of these macros, see the queue(3) manual page.
- */
-
-/*
- * List definitions.
- */
-#define	LIST_HEAD(name, type)						\
-struct name {								\
-	struct type *lh_first;	/* first element */			\
-}
-
-#define	LIST_HEAD_INITIALIZER(head)					\
-	{ NULL }
-
-#define	LIST_ENTRY(type)						\
-struct {								\
-	struct type *le_next;	/* next element */			\
-	struct type **le_prev;	/* address of previous next element */	\
-}
-
-/*
- * List functions.
- */
-#define	LIST_INIT(head) do {						\
-	(head)->lh_first = NULL;					\
-} while (/*CONSTCOND*/0)
-
-#define	LIST_INSERT_AFTER(listelm, elm, field) do {			\
-	if (((elm)->field.le_next = (listelm)->field.le_next) != NULL)	\
-		(listelm)->field.le_next->field.le_prev =		\
-		    &(elm)->field.le_next;				\
-	(listelm)->field.le_next = (elm);				\
-	(elm)->field.le_prev = &(listelm)->field.le_next;		\
-} while (/*CONSTCOND*/0)
-
-#define	LIST_INSERT_BEFORE(listelm, elm, field) do {			\
-	(elm)->field.le_prev = (listelm)->field.le_prev;		\
-	(elm)->field.le_next = (listelm);				\
-	*(listelm)->field.le_prev = (elm);				\
-	(listelm)->field.le_prev = &(elm)->field.le_next;		\
-} while (/*CONSTCOND*/0)
-
-#define	LIST_INSERT_HEAD(head, elm, field) do {				\
-	if (((elm)->field.le_next = (head)->lh_first) != NULL)		\
-		(head)->lh_first->field.le_prev = &(elm)->field.le_next;\
-	(head)->lh_first = (elm);					\
-	(elm)->field.le_prev = &(head)->lh_first;			\
-} while (/*CONSTCOND*/0)
-
-#define	LIST_REMOVE(elm, field) do {					\
-	if ((elm)->field.le_next != NULL)				\
-		(elm)->field.le_next->field.le_prev = 			\
-		    (elm)->field.le_prev;				\
-	*(elm)->field.le_prev = (elm)->field.le_next;			\
-} while (/*CONSTCOND*/0)
-
-#define	LIST_FOREACH(var, head, field)					\
-	for ((var) = ((head)->lh_first);				\
-		(var);							\
-		(var) = ((var)->field.le_next))
-
-/*
- * List access methods.
- */
-#define	LIST_EMPTY(head)		((head)->lh_first == NULL)
-#define	LIST_FIRST(head)		((head)->lh_first)
-#define	LIST_NEXT(elm, field)		((elm)->field.le_next)
-
-
-/*
- * Singly-linked List definitions.
- */
-#define	SLIST_HEAD(name, type)						\
-struct name {								\
-	struct type *slh_first;	/* first element */			\
-}
-
-#define	SLIST_HEAD_INITIALIZER(head)					\
-	{ NULL }
-
-#define	SLIST_ENTRY(type)						\
-struct {								\
-	struct type *sle_next;	/* next element */			\
-}
-
-/*
- * Singly-linked List functions.
- */
-#define	SLIST_INIT(head) do {						\
-	(head)->slh_first = NULL;					\
-} while (/*CONSTCOND*/0)
-
-#define	SLIST_INSERT_AFTER(slistelm, elm, field) do {			\
-	(elm)->field.sle_next = (slistelm)->field.sle_next;		\
-	(slistelm)->field.sle_next = (elm);				\
-} while (/*CONSTCOND*/0)
-
-#define	SLIST_INSERT_HEAD(head, elm, field) do {			\
-	(elm)->field.sle_next = (head)->slh_first;			\
-	(head)->slh_first = (elm);					\
-} while (/*CONSTCOND*/0)
-
-#define	SLIST_REMOVE_HEAD(head, field) do {				\
-	(head)->slh_first = (head)->slh_first->field.sle_next;		\
-} while (/*CONSTCOND*/0)
-
-#define	SLIST_REMOVE(head, elm, type, field) do {			\
-	if ((head)->slh_first == (elm)) {				\
-		SLIST_REMOVE_HEAD((head), field);			\
-	}								\
-	else {								\
-		struct type *curelm = (head)->slh_first;		\
-		while(curelm->field.sle_next != (elm))			\
-			curelm = curelm->field.sle_next;		\
-		curelm->field.sle_next =				\
-		    curelm->field.sle_next->field.sle_next;		\
-	}								\
-} while (/*CONSTCOND*/0)
-
-#define	SLIST_FOREACH(var, head, field)					\
-	for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next)
-
-/*
- * Singly-linked List access methods.
- */
-#define	SLIST_EMPTY(head)	((head)->slh_first == NULL)
-#define	SLIST_FIRST(head)	((head)->slh_first)
-#define	SLIST_NEXT(elm, field)	((elm)->field.sle_next)
-
-
-/*
- * Singly-linked Tail queue declarations.
- */
-#define	STAILQ_HEAD(name, type)					\
-struct name {								\
-	struct type *stqh_first;	/* first element */			\
-	struct type **stqh_last;	/* addr of last next element */		\
-}
-
-#define	STAILQ_HEAD_INITIALIZER(head)					\
-	{ NULL, &(head).stqh_first }
-
-#define	STAILQ_ENTRY(type)						\
-struct {								\
-	struct type *stqe_next;	/* next element */			\
-}
-
-/*
- * Singly-linked Tail queue functions.
- */
-#define	STAILQ_INIT(head) do {						\
-	(head)->stqh_first = NULL;					\
-	(head)->stqh_last = &(head)->stqh_first;				\
-} while (/*CONSTCOND*/0)
-
-#define	STAILQ_INSERT_HEAD(head, elm, field) do {			\
-	if (((elm)->field.stqe_next = (head)->stqh_first) == NULL)	\
-		(head)->stqh_last = &(elm)->field.stqe_next;		\
-	(head)->stqh_first = (elm);					\
-} while (/*CONSTCOND*/0)
-
-#define	STAILQ_INSERT_TAIL(head, elm, field) do {			\
-	(elm)->field.stqe_next = NULL;					\
-	*(head)->stqh_last = (elm);					\
-	(head)->stqh_last = &(elm)->field.stqe_next;			\
-} while (/*CONSTCOND*/0)
-
-#define	STAILQ_INSERT_AFTER(head, listelm, elm, field) do {		\
-	if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\
-		(head)->stqh_last = &(elm)->field.stqe_next;		\
-	(listelm)->field.stqe_next = (elm);				\
-} while (/*CONSTCOND*/0)
-
-#define	STAILQ_REMOVE_HEAD(head, field) do {				\
-	if (((head)->stqh_first = (head)->stqh_first->field.stqe_next) == NULL) \
-		(head)->stqh_last = &(head)->stqh_first;			\
-} while (/*CONSTCOND*/0)
-
-#define	STAILQ_REMOVE(head, elm, type, field) do {			\
-	if ((head)->stqh_first == (elm)) {				\
-		STAILQ_REMOVE_HEAD((head), field);			\
-	} else {							\
-		struct type *curelm = (head)->stqh_first;		\
-		while (curelm->field.stqe_next != (elm))			\
-			curelm = curelm->field.stqe_next;		\
-		if ((curelm->field.stqe_next =				\
-			curelm->field.stqe_next->field.stqe_next) == NULL) \
-			    (head)->stqh_last = &(curelm)->field.stqe_next; \
-	}								\
-} while (/*CONSTCOND*/0)
-
-#define	STAILQ_FOREACH(var, head, field)				\
-	for ((var) = ((head)->stqh_first);				\
-		(var);							\
-		(var) = ((var)->field.stqe_next))
-
-#define	STAILQ_CONCAT(head1, head2) do {				\
-	if (!STAILQ_EMPTY((head2))) {					\
-		*(head1)->stqh_last = (head2)->stqh_first;		\
-		(head1)->stqh_last = (head2)->stqh_last;		\
-		STAILQ_INIT((head2));					\
-	}								\
-} while (/*CONSTCOND*/0)
-
-/*
- * Singly-linked Tail queue access methods.
- */
-#define	STAILQ_EMPTY(head)	((head)->stqh_first == NULL)
-#define	STAILQ_FIRST(head)	((head)->stqh_first)
-#define	STAILQ_NEXT(elm, field)	((elm)->field.stqe_next)
-
-
-/*
- * Simple queue definitions.
- */
-#define	SIMPLEQ_HEAD(name, type)					\
-struct name {								\
-	struct type *sqh_first;	/* first element */			\
-	struct type **sqh_last;	/* addr of last next element */		\
-}
-
-#define	SIMPLEQ_HEAD_INITIALIZER(head)					\
-	{ NULL, &(head).sqh_first }
-
-#define	SIMPLEQ_ENTRY(type)						\
-struct {								\
-	struct type *sqe_next;	/* next element */			\
-}
-
-/*
- * Simple queue functions.
- */
-#define	SIMPLEQ_INIT(head) do {						\
-	(head)->sqh_first = NULL;					\
-	(head)->sqh_last = &(head)->sqh_first;				\
-} while (/*CONSTCOND*/0)
-
-#define	SIMPLEQ_INSERT_HEAD(head, elm, field) do {			\
-	if (((elm)->field.sqe_next = (head)->sqh_first) == NULL)	\
-		(head)->sqh_last = &(elm)->field.sqe_next;		\
-	(head)->sqh_first = (elm);					\
-} while (/*CONSTCOND*/0)
-
-#define	SIMPLEQ_INSERT_TAIL(head, elm, field) do {			\
-	(elm)->field.sqe_next = NULL;					\
-	*(head)->sqh_last = (elm);					\
-	(head)->sqh_last = &(elm)->field.sqe_next;			\
-} while (/*CONSTCOND*/0)
-
-#define	SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do {		\
-	if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\
-		(head)->sqh_last = &(elm)->field.sqe_next;		\
-	(listelm)->field.sqe_next = (elm);				\
-} while (/*CONSTCOND*/0)
-
-#define	SIMPLEQ_REMOVE_HEAD(head, field) do {				\
-	if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \
-		(head)->sqh_last = &(head)->sqh_first;			\
-} while (/*CONSTCOND*/0)
-
-#define	SIMPLEQ_REMOVE(head, elm, type, field) do {			\
-	if ((head)->sqh_first == (elm)) {				\
-		SIMPLEQ_REMOVE_HEAD((head), field);			\
-	} else {							\
-		struct type *curelm = (head)->sqh_first;		\
-		while (curelm->field.sqe_next != (elm))			\
-			curelm = curelm->field.sqe_next;		\
-		if ((curelm->field.sqe_next =				\
-			curelm->field.sqe_next->field.sqe_next) == NULL) \
-			    (head)->sqh_last = &(curelm)->field.sqe_next; \
-	}								\
-} while (/*CONSTCOND*/0)
-
-#define	SIMPLEQ_FOREACH(var, head, field)				\
-	for ((var) = ((head)->sqh_first);				\
-		(var);							\
-		(var) = ((var)->field.sqe_next))
-
-/*
- * Simple queue access methods.
- */
-#define	SIMPLEQ_EMPTY(head)		((head)->sqh_first == NULL)
-#define	SIMPLEQ_FIRST(head)		((head)->sqh_first)
-#define	SIMPLEQ_NEXT(elm, field)	((elm)->field.sqe_next)
-
-
-/*
- * Tail queue definitions.
- */
-#define	_TAILQ_HEAD(name, type, qual)					\
-struct name {								\
-	qual type *tqh_first;		/* first element */		\
-	qual type *qual *tqh_last;	/* addr of last next element */	\
-}
-#define TAILQ_HEAD(name, type)	_TAILQ_HEAD(name, struct type,)
-
-#define	TAILQ_HEAD_INITIALIZER(head)					\
-	{ NULL, &(head).tqh_first }
-
-#define	_TAILQ_ENTRY(type, qual)					\
-struct {								\
-	qual type *tqe_next;		/* next element */		\
-	qual type *qual *tqe_prev;	/* address of previous next element */\
-}
-#define TAILQ_ENTRY(type)	_TAILQ_ENTRY(struct type,)
-
-/*
- * Tail queue functions.
- */
-#define	TAILQ_INIT(head) do {						\
-	(head)->tqh_first = NULL;					\
-	(head)->tqh_last = &(head)->tqh_first;				\
-} while (/*CONSTCOND*/0)
-
-#define	TAILQ_INSERT_HEAD(head, elm, field) do {			\
-	if (((elm)->field.tqe_next = (head)->tqh_first) != NULL)	\
-		(head)->tqh_first->field.tqe_prev =			\
-		    &(elm)->field.tqe_next;				\
-	else								\
-		(head)->tqh_last = &(elm)->field.tqe_next;		\
-	(head)->tqh_first = (elm);					\
-	(elm)->field.tqe_prev = &(head)->tqh_first;			\
-} while (/*CONSTCOND*/0)
-
-#define	TAILQ_INSERT_TAIL(head, elm, field) do {			\
-	(elm)->field.tqe_next = NULL;					\
-	(elm)->field.tqe_prev = (head)->tqh_last;			\
-	*(head)->tqh_last = (elm);					\
-	(head)->tqh_last = &(elm)->field.tqe_next;			\
-} while (/*CONSTCOND*/0)
-
-#define	TAILQ_INSERT_AFTER(head, listelm, elm, field) do {		\
-	if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\
-		(elm)->field.tqe_next->field.tqe_prev = 		\
-		    &(elm)->field.tqe_next;				\
-	else								\
-		(head)->tqh_last = &(elm)->field.tqe_next;		\
-	(listelm)->field.tqe_next = (elm);				\
-	(elm)->field.tqe_prev = &(listelm)->field.tqe_next;		\
-} while (/*CONSTCOND*/0)
-
-#define	TAILQ_INSERT_BEFORE(listelm, elm, field) do {			\
-	(elm)->field.tqe_prev = (listelm)->field.tqe_prev;		\
-	(elm)->field.tqe_next = (listelm);				\
-	*(listelm)->field.tqe_prev = (elm);				\
-	(listelm)->field.tqe_prev = &(elm)->field.tqe_next;		\
-} while (/*CONSTCOND*/0)
-
-#define	TAILQ_REMOVE(head, elm, field) do {				\
-	if (((elm)->field.tqe_next) != NULL)				\
-		(elm)->field.tqe_next->field.tqe_prev = 		\
-		    (elm)->field.tqe_prev;				\
-	else								\
-		(head)->tqh_last = (elm)->field.tqe_prev;		\
-	*(elm)->field.tqe_prev = (elm)->field.tqe_next;			\
-} while (/*CONSTCOND*/0)
-
-#define	TAILQ_FOREACH(var, head, field)					\
-	for ((var) = ((head)->tqh_first);				\
-		(var);							\
-		(var) = ((var)->field.tqe_next))
-
-#define	TAILQ_FOREACH_REVERSE(var, head, headname, field)		\
-	for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last));	\
-		(var);							\
-		(var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last)))
-
-#define	TAILQ_CONCAT(head1, head2, field) do {				\
-	if (!TAILQ_EMPTY(head2)) {					\
-		*(head1)->tqh_last = (head2)->tqh_first;		\
-		(head2)->tqh_first->field.tqe_prev = (head1)->tqh_last;	\
-		(head1)->tqh_last = (head2)->tqh_last;			\
-		TAILQ_INIT((head2));					\
-	}								\
-} while (/*CONSTCOND*/0)
-
-/*
- * Tail queue access methods.
- */
-#define	TAILQ_EMPTY(head)		((head)->tqh_first == NULL)
-#define	TAILQ_FIRST(head)		((head)->tqh_first)
-#define	TAILQ_NEXT(elm, field)		((elm)->field.tqe_next)
-
-#define	TAILQ_LAST(head, headname) \
-	(*(((struct headname *)((head)->tqh_last))->tqh_last))
-#define	TAILQ_PREV(elm, headname, field) \
-	(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
-
-
-/*
- * Circular queue definitions.
- */
-#define	CIRCLEQ_HEAD(name, type)					\
-struct name {								\
-	struct type *cqh_first;		/* first element */		\
-	struct type *cqh_last;		/* last element */		\
-}
-
-#define	CIRCLEQ_HEAD_INITIALIZER(head)					\
-	{ (void *)&head, (void *)&head }
-
-#define	CIRCLEQ_ENTRY(type)						\
-struct {								\
-	struct type *cqe_next;		/* next element */		\
-	struct type *cqe_prev;		/* previous element */		\
-}
-
-/*
- * Circular queue functions.
- */
-#define	CIRCLEQ_INIT(head) do {						\
-	(head)->cqh_first = (void *)(head);				\
-	(head)->cqh_last = (void *)(head);				\
-} while (/*CONSTCOND*/0)
-
-#define	CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do {		\
-	(elm)->field.cqe_next = (listelm)->field.cqe_next;		\
-	(elm)->field.cqe_prev = (listelm);				\
-	if ((listelm)->field.cqe_next == (void *)(head))		\
-		(head)->cqh_last = (elm);				\
-	else								\
-		(listelm)->field.cqe_next->field.cqe_prev = (elm);	\
-	(listelm)->field.cqe_next = (elm);				\
-} while (/*CONSTCOND*/0)
-
-#define	CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do {		\
-	(elm)->field.cqe_next = (listelm);				\
-	(elm)->field.cqe_prev = (listelm)->field.cqe_prev;		\
-	if ((listelm)->field.cqe_prev == (void *)(head))		\
-		(head)->cqh_first = (elm);				\
-	else								\
-		(listelm)->field.cqe_prev->field.cqe_next = (elm);	\
-	(listelm)->field.cqe_prev = (elm);				\
-} while (/*CONSTCOND*/0)
-
-#define	CIRCLEQ_INSERT_HEAD(head, elm, field) do {			\
-	(elm)->field.cqe_next = (head)->cqh_first;			\
-	(elm)->field.cqe_prev = (void *)(head);				\
-	if ((head)->cqh_last == (void *)(head))				\
-		(head)->cqh_last = (elm);				\
-	else								\
-		(head)->cqh_first->field.cqe_prev = (elm);		\
-	(head)->cqh_first = (elm);					\
-} while (/*CONSTCOND*/0)
-
-#define	CIRCLEQ_INSERT_TAIL(head, elm, field) do {			\
-	(elm)->field.cqe_next = (void *)(head);				\
-	(elm)->field.cqe_prev = (head)->cqh_last;			\
-	if ((head)->cqh_first == (void *)(head))			\
-		(head)->cqh_first = (elm);				\
-	else								\
-		(head)->cqh_last->field.cqe_next = (elm);		\
-	(head)->cqh_last = (elm);					\
-} while (/*CONSTCOND*/0)
-
-#define	CIRCLEQ_REMOVE(head, elm, field) do {				\
-	if ((elm)->field.cqe_next == (void *)(head))			\
-		(head)->cqh_last = (elm)->field.cqe_prev;		\
-	else								\
-		(elm)->field.cqe_next->field.cqe_prev =			\
-		    (elm)->field.cqe_prev;				\
-	if ((elm)->field.cqe_prev == (void *)(head))			\
-		(head)->cqh_first = (elm)->field.cqe_next;		\
-	else								\
-		(elm)->field.cqe_prev->field.cqe_next =			\
-		    (elm)->field.cqe_next;				\
-} while (/*CONSTCOND*/0)
-
-#define	CIRCLEQ_FOREACH(var, head, field)				\
-	for ((var) = ((head)->cqh_first);				\
-		(var) != (const void *)(head);				\
-		(var) = ((var)->field.cqe_next))
-
-#define	CIRCLEQ_FOREACH_REVERSE(var, head, field)			\
-	for ((var) = ((head)->cqh_last);				\
-		(var) != (const void *)(head);				\
-		(var) = ((var)->field.cqe_prev))
-
-/*
- * Circular queue access methods.
- */
-#define	CIRCLEQ_EMPTY(head)		((head)->cqh_first == (void *)(head))
-#define	CIRCLEQ_FIRST(head)		((head)->cqh_first)
-#define	CIRCLEQ_LAST(head)		((head)->cqh_last)
-#define	CIRCLEQ_NEXT(elm, field)	((elm)->field.cqe_next)
-#define	CIRCLEQ_PREV(elm, field)	((elm)->field.cqe_prev)
-
-#define CIRCLEQ_LOOP_NEXT(head, elm, field)				\
-	(((elm)->field.cqe_next == (void *)(head))			\
-	    ? ((head)->cqh_first)					\
-	    : (elm->field.cqe_next))
-#define CIRCLEQ_LOOP_PREV(head, elm, field)				\
-	(((elm)->field.cqe_prev == (void *)(head))			\
-	    ? ((head)->cqh_last)					\
-	    : (elm->field.cqe_prev))
-
-#endif	/* sys/queue.h */
\ No newline at end of file
diff --git a/lib/libhts/Win32/include/unistd.h b/lib/libhts/Win32/include/unistd.h
deleted file mode 100644
index 4799c2b..0000000
--- a/lib/libhts/Win32/include/unistd.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * This file is part of the Mingw32 package.
- *
- * unistd.h maps (roughly) to io.h
- */
-
-#ifndef _UNISTD_H
-#define _UNISTD_H
-
-#include <io.h>
-#include <process.h>
-
-#define __UNISTD_GETOPT__
-#include <getopt.h>
-#undef __UNISTD_GETOPT__
-
-/* These are also defined in stdio.h. */
-#ifndef	SEEK_SET
-#define SEEK_SET 0
-#endif
-
-#ifndef	SEEK_CUR
-#define SEEK_CUR 1
-#endif
-
-#ifndef SEEK_END
-#define SEEK_END 2
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* This is defined as a real library function to allow autoconf
-   to verify its existence. */
-//int ftruncate(int, off_t);
-//__CRT_INLINE int ftruncate(int __fd, off_t __length)
-//{
-//  return _chsize (__fd, __length);
-//}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _UNISTD_H */
diff --git a/lib/libhts/Win32/libhts_2010.vcxproj b/lib/libhts/Win32/libhts_2010.vcxproj
deleted file mode 100644
index 9efa555..0000000
--- a/lib/libhts/Win32/libhts_2010.vcxproj
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectName>libhts</ProjectName>
-    <ProjectGuid>{00700E12-A63B-4E54-B962-4011A90584BD}</ProjectGuid>
-    <RootNamespace>libhts</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-  </PropertyGroup>
-  <Import Project="$(SolutionDir)\XBMC.core-defaults.props" />
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)libs\$(TargetName)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)objs\$(TargetName)\$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)libs\$(TargetName)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)objs\$(TargetName)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <AdditionalIncludeDirectories>$(ProjectDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_SECURE_SCL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-    </ClCompile>
-    <Lib>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <AdditionalIncludeDirectories>$(ProjectDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ExceptionHandling>
-      </ExceptionHandling>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-    </ClCompile>
-    <Lib>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClInclude Include="..\hts_strtab.h" />
-    <ClInclude Include="..\htsatomic.h" />
-    <ClInclude Include="..\htsbuf.h" />
-    <ClInclude Include="..\htsmsg.h" />
-    <ClInclude Include="..\htsmsg_binary.h" />
-    <ClInclude Include="..\htsq.h" />
-    <ClInclude Include="..\htsstr.h" />
-    <ClInclude Include="include\msvc.h" />
-    <ClInclude Include="..\net.h" />
-    <ClInclude Include="..\sha1.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\htsatomic.c" />
-    <ClCompile Include="..\htsbuf.c" />
-    <ClCompile Include="..\htsmsg.c" />
-    <ClCompile Include="..\htsmsg_binary.c" />
-    <ClCompile Include="..\htsstr.c" />
-    <ClCompile Include="..\net_winsock.c" />
-    <ClCompile Include="..\sha1.c" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/lib/libhts/Win32/libhts_2010.vcxproj.filters b/lib/libhts/Win32/libhts_2010.vcxproj.filters
deleted file mode 100644
index a4be5ca..0000000
--- a/lib/libhts/Win32/libhts_2010.vcxproj.filters
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\hts_strtab.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\htsatomic.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\htsbuf.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\htsmsg.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\htsmsg_binary.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\htsq.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\htsstr.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="include\msvc.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\net.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\sha1.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\htsatomic.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\htsbuf.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\htsmsg.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\htsmsg_binary.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\htsstr.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\net_winsock.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\sha1.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/media/Splash.png b/media/Splash.png
index 25837ef..5e749fe 100644
Binary files a/media/Splash.png and b/media/Splash.png differ
diff --git a/media/weather.zip b/media/weather.zip
deleted file mode 100644
index a57be50..0000000
Binary files a/media/weather.zip and /dev/null differ
diff --git a/project/BuildDependencies/DownloadBuildDeps.bat b/project/BuildDependencies/DownloadBuildDeps.bat
deleted file mode 100644
index 81df45a..0000000
--- a/project/BuildDependencies/DownloadBuildDeps.bat
+++ /dev/null
@@ -1,47 +0,0 @@
- at ECHO OFF
-
-SETLOCAL
-
-SET CUR_PATH=%CD%
-SET APP_PATH=%CD%\..\..
-SET TMP_PATH=%CD%\scripts\tmp
-
-rem can't run rmdir and md back to back. access denied error otherwise.
-IF EXIST lib rmdir lib /S /Q
-IF EXIST include rmdir include /S /Q
-IF EXIST %TMP_PATH% rmdir %TMP_PATH% /S /Q
-
-IF $%1$ == $$ (
-  SET DL_PATH="%CD%\downloads"
-) ELSE (
-  SET DL_PATH="%1"
-)
-
-SET WGET=%CUR_PATH%\bin\wget
-SET ZIP=%CUR_PATH%\..\Win32BuildSetup\tools\7z\7za
-
-IF NOT EXIST %DL_PATH% md %DL_PATH%
-
-md lib
-md include
-md %TMP_PATH%
-
-cd scripts
-
-FOR /F "tokens=*" %%S IN ('dir /B "*_d.bat"') DO (
-  echo running %%S ...
-  CALL %%S
-)
-
-SET FORMED_OK_FLAG=%TMP_PATH%\got-all-formed-packages
-REM Trick to preserve console title
-start /b /wait cmd.exe /c get_formed.cmd
-IF NOT EXIST %FORMED_OK_FLAG% (
-  ECHO ERROR: Not all formed packages are ready!
-  EXIT /B 101
-)
-
-cd %CUR_PATH%
-
-rmdir %TMP_PATH% /S /Q
-EXIT /B 0
diff --git a/project/BuildDependencies/DownloadMingwBuildEnv.bat b/project/BuildDependencies/DownloadMingwBuildEnv.bat
deleted file mode 100644
index 793309f..0000000
--- a/project/BuildDependencies/DownloadMingwBuildEnv.bat
+++ /dev/null
@@ -1,57 +0,0 @@
- at ECHO OFF
-
-SETLOCAL
-
-SET MSYS_INSTALL_PATH="%CD%\msys"
-SET MINGW_INSTALL_PATH="%CD%\msys\mingw"
-
-SET CUR_PATH=%CD%
-SET APP_PATH=%CD%\..\..
-SET TMP_PATH=%CD%\scripts\tmp
-
-rem can't run rmdir and md back to back. access denied error otherwise.
-IF EXIST %MSYS_INSTALL_PATH% rmdir %MSYS_INSTALL_PATH% /S /Q
-IF EXIST %TMP_PATH% rmdir %TMP_PATH% /S /Q
-
-IF $%1$ == $$ (
-  SET DL_PATH="%CD%\downloads2"
-) ELSE (
-  SET DL_PATH="%1"
-)
-
-SET WGET=%CUR_PATH%\bin\wget
-SET ZIP=%CUR_PATH%\..\Win32BuildSetup\tools\7z\7za
-
-IF NOT EXIST %DL_PATH% md %DL_PATH%
-
-IF NOT EXIST %MSYS_INSTALL_PATH% md %MSYS_INSTALL_PATH%
-IF NOT EXIST %MINGW_INSTALL_PATH% md %MINGW_INSTALL_PATH%
-IF NOT EXIST %TMP_PATH% md %TMP_PATH%
-
-cd scripts
-
-CALL get_msys_env.bat
-IF EXIST %TMP_PATH% rmdir %TMP_PATH% /S /Q
-CALL get_mingw_env.bat
-
-cd %CUR_PATH%
-
-rem update fstab to install path
-SET FSTAB=%MINGW_INSTALL_PATH%
-SET FSTAB=%FSTAB:\=/%
-SET FSTAB=%FSTAB:"=%
-ECHO %FSTAB% /mingw>>"%MSYS_INSTALL_PATH%\etc\fstab"
-SET FSTAB=%APP_PATH%
-SET FSTAB=%FSTAB:\=/%
-SET FSTAB=%FSTAB:"=%
-ECHO %FSTAB% /xbmc>>"%MSYS_INSTALL_PATH%\etc\fstab"
-
-rem insert call to vsvars32.bat in msys.bat
-cd %MSYS_INSTALL_PATH%
-Move msys.bat msys.bat_dist
-ECHO CALL "%VS120COMNTOOLS%vsvars32.bat">>msys.bat
-TYPE msys.bat_dist>>msys.bat
-
-cd %CUR_PATH%
-
-IF EXIST %TMP_PATH% rmdir %TMP_PATH% /S /Q
diff --git a/project/BuildDependencies/scripts/0_package.list b/project/BuildDependencies/scripts/0_package.list
deleted file mode 100644
index 13d5c23..0000000
--- a/project/BuildDependencies/scripts/0_package.list
+++ /dev/null
@@ -1,29 +0,0 @@
-; package.list should contain all file names of packages which are already in the "new" package format (the package contains the paths to the libraries 
-; and headers relative to the XBMC root directory, stored in a zip container)
-; example sqlite-3.7.12.1-win32.7z:
-; -> (package name)\(relative path to file)
-; -> sqlite-3.7.12.1-win32\project\BuildDependencies\lib\sqlite3.lib
-; -> sqlite-3.7.12.1-win32\system\sqlite3.dll
-; -> ...
-boost-1.46.1-headers-win32.7z
-dnssd-541-win32.zip
-doxygen-1.8.2-win32.7z
-gnutls-3.2.3-win32.zip
-jsonschemabuilder-1.0.0-win32-3.7z
-libass-0.10.2-win32.7z
-libbluray-0.4.0-win32.zip
-libcec-2.2.0-win32-1.7z
-libiconv-1.14-win32-vc120.7z
-libjpeg-turbo-1.2.0-win32.7z
-libnfs-1.6.2-win32.7z
-libshairplay-41a66c9-win32.7z
-libssh-0.5.0-1-win32.zip
-libxml2-2.7.8_1-win32.7z
-libxslt-1.1.26_1-win32.7z
-mysqlclient-6.1.3-win32-vc120.7z
-pcre-8.34-win32-vc120.7z
-PIL-1.1.7p-win32.7z
-python-2.7.8-win32.7z
-sqlite-3.8.6-win32-vc120.7z
-taglib-1.9.1-win32-vc120.7z
-tinyxml-2.6.2_3-win32-vc120.7z
diff --git a/project/BuildDependencies/scripts/1_copy_deps_d.bat b/project/BuildDependencies/scripts/1_copy_deps_d.bat
deleted file mode 100644
index d52304f..0000000
--- a/project/BuildDependencies/scripts/1_copy_deps_d.bat
+++ /dev/null
@@ -1,12 +0,0 @@
- at ECHO OFF
-
-IF EXIST "%APP_PATH%\system\webserver" rmdir "%APP_PATH%\system\webserver" /S /Q
-IF EXIST "%APP_PATH%\system\airplay" rmdir "%APP_PATH%\system\airplay" /S /Q
-
-rem create directories
-IF NOT EXIST "%APP_PATH%\system\players\paplayer" md "%APP_PATH%\system\players\paplayer"
-IF NOT EXIST "%APP_PATH%\project\VS2010Express\Application\Debug" md "%APP_PATH%\project\VS2010Express\Application\Debug"
-IF NOT EXIST "%APP_PATH%\system\webserver" md "%APP_PATH%\system\webserver"
-IF NOT EXIST "%APP_PATH%\system\airplay" md "%APP_PATH%\system\airplay"
-IF NOT EXIST "%APP_PATH%\project\Win32BuildSetup\dependencies" md "%APP_PATH%\project\Win32BuildSetup\dependencies"
-IF NOT EXIST "%APP_PATH%\system\cdrip" md "%APP_PATH%\system\cdrip"
\ No newline at end of file
diff --git a/project/BuildDependencies/scripts/dlextract.bat b/project/BuildDependencies/scripts/dlextract.bat
deleted file mode 100644
index a9d7fe7..0000000
--- a/project/BuildDependencies/scripts/dlextract.bat
+++ /dev/null
@@ -1,30 +0,0 @@
- at ECHO OFF
-
-echo Downloading %1
-echo --------------
-
-cd %DL_PATH%
-
-FOR /F "eol=; tokens=1,2" %%f IN (%2) DO (
-echo %%f %%g
-  IF NOT EXIST %%f (
-    %WGET% "%%g/%%f"
-  ) ELSE (
-    echo Already have %%f
-  )
-
-  copy /b "%%f" "%TMP_PATH%"
-)
-
-echo Extracting...
-echo -------------
-
-cd %TMP_PATH%
-
-FOR /F "eol=; tokens=1,2" %%f IN (%2) DO (
-  %ZIP% x -y %%f
-)
-
-FOR /F "tokens=*" %%f IN ('dir /B "*.tar"') DO (
-  %ZIP% x -y %%f
-)
\ No newline at end of file
diff --git a/project/BuildDependencies/scripts/fontconfig_d.bat b/project/BuildDependencies/scripts/fontconfig_d.bat
deleted file mode 100644
index e8543f0..0000000
--- a/project/BuildDependencies/scripts/fontconfig_d.bat
+++ /dev/null
@@ -1,16 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\fontconfig_d.txt
-
-CALL dlextract.bat fontconfig %FILES%
-
-cd %TMP_PATH%
-
-xcopy include\fontconfig "%CUR_PATH%\include\fontconfig" /E /Q /I /Y
-copy lib\fontconfig.lib "%CUR_PATH%\lib\" /Y
-rem libfontconfig-1.dll requires libexpat-1.dll which is copied by libexpat_d.bat
-copy bin\libfontconfig-1.dll "%APP_PATH%\system\players\dvdplayer\"
-copy freetype-2.4.6-1-win32\bin\freetype6.dll "%APP_PATH%\system\players\dvdplayer\"
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/fontconfig_d.txt b/project/BuildDependencies/scripts/fontconfig_d.txt
deleted file mode 100644
index bf22b3e..0000000
--- a/project/BuildDependencies/scripts/fontconfig_d.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-; filename                        mirror                                            source of the file
-fontconfig-dev_2.8.0-2_win32.zip  http://mirrors.xbmc.org/build-deps/win32/         http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies
-fontconfig_2.8.0-2_win32.zip      http://mirrors.xbmc.org/build-deps/win32/         http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies
-freetype-2.4.6-1-win32.zip       http://mirrors.xbmc.org/build-deps/win32/         http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies
diff --git a/project/BuildDependencies/scripts/freetype_d.bat b/project/BuildDependencies/scripts/freetype_d.bat
deleted file mode 100644
index 92e62ca..0000000
--- a/project/BuildDependencies/scripts/freetype_d.bat
+++ /dev/null
@@ -1,13 +0,0 @@
- at ECHO ON
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\freetype_d.txt
-
-CALL dlextract.bat freetype %FILES%
-
-cd %TMP_PATH%
-
-xcopy freetype-2.4.6-win32-1\include\* "%CUR_PATH%\include\" /E /Q /I /Y
-copy freetype-2.4.6-win32-1\lib\freetype246MT.lib "%CUR_PATH%\lib\" /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/freetype_d.txt b/project/BuildDependencies/scripts/freetype_d.txt
deleted file mode 100644
index 219cc1e..0000000
--- a/project/BuildDependencies/scripts/freetype_d.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-; filename                   mirror of the file
-freetype-2.4.6-win32-2.7z    http://mirrors.xbmc.org/build-deps/win32/
diff --git a/project/BuildDependencies/scripts/get_formed.cmd b/project/BuildDependencies/scripts/get_formed.cmd
deleted file mode 100644
index ffe44c1..0000000
--- a/project/BuildDependencies/scripts/get_formed.cmd
+++ /dev/null
@@ -1,82 +0,0 @@
- at ECHO OFF
-
-SETLOCAL
-
-REM Check presence of required file
-dir 0_package.list >NUL 2>NUL || (
-ECHO 0_package.list not found!
-ECHO Aborting...
-EXIT /B 20
-)
-
-REM Clear succeed flag
-IF EXIST %FORMED_OK_FLAG% (
-  del /F /Q "%FORMED_OK_FLAG%" || EXIT /B 4
-)
-
-CALL :setStageName Starting downloads of formed packages...
-SET SCRIPT_PATH=%CD%
-CD %DL_PATH% || EXIT /B 10
-FOR /F "eol=; tokens=1" %%f IN (%SCRIPT_PATH%\0_package.list) DO (
-CALL :processFile %%f
-IF ERRORLEVEL 1 EXIT /B %ERRORLEVEL%
-)
-
-CALL :setStageName All formed packages ready.
-ECHO %DATE% %TIME% > "%FORMED_OK_FLAG%"
-EXIT /B 0
-REM End of main body
-
-
-:processFile
-CALL :setStageName Getting %1...
-IF EXIST %1 (
-  ECHO Using downloaded %1
-) ELSE (
-  CALL :setSubStageName Downloading %1...
-  %WGET% "http://mirrors.xbmc.org/build-deps/win32/%1" || EXIT /B 7
-  TITLE Getting %1
-)
-
-CALL :setSubStageName Extracting %1...
-copy /b "%1" "%TMP_PATH%" || EXIT /B 5
-PUSHD "%TMP_PATH%" || EXIT /B 10
-%ZIP% x %1 || exit /B 6
-
-dir /A:-D "%~n1\*.*" >NUL 2>NUL && (
-CALL :setSubStageName Pre-Cleaning %1...
-REM Remove any non-dir files in extracted ".\packagename\"
-FOR /F %%f IN ('dir /B /A:-D "%~n1\*.*"') DO (del "%~n1\%%f" /F /Q || EXIT /B 4)
-)
-
-CALL :setSubStageName Copying %1 to build tree...
-REM Copy only content of extracted ".\packagename\"
-XCOPY "%~n1\*" "%APP_PATH%\" /E /I /Y /F /R /H /K || EXIT /B 5
-
-dir /A:-D * >NUL 2>NUL && (
-CALL :setSubStageName Post-Cleaning %1...
-REM Delete package archive and possible garbage
-FOR /F %%f IN ('dir /B /A:-D') DO (del %%f /F /Q || EXIT /B 4)
-)
-
-ECHO.
-ECHO Done %1.
-POPD || EXIT /B 10
-
-EXIT /B 0
-REM end of :processFile
-
-:setStageName
-ECHO.
-ECHO ==================================================
-ECHO %*
-ECHO.
-TITLE %*
-EXIT /B 0
-
-:setSubStageName
-ECHO.
-ECHO --------------------------------------------------
-ECHO %*
-ECHO.
-EXIT /B 0
diff --git a/project/BuildDependencies/scripts/get_mingw_env.bat b/project/BuildDependencies/scripts/get_mingw_env.bat
deleted file mode 100644
index 9228100..0000000
--- a/project/BuildDependencies/scripts/get_mingw_env.bat
+++ /dev/null
@@ -1,30 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\get_mingw_env.txt
-
-IF NOT EXIST %TMP_PATH% md %TMP_PATH%
-
-CALL dlextract.bat mingw_env %FILES%
-
-cd %TMP_PATH%
-
-del lib\libexpat.dll.a
-del lib\libexpat.la
-del lib\libz.dll.a
-
-xcopy bin\* "%MINGW_INSTALL_PATH%\bin" /E /Q /I /Y
-xcopy doc\* "%MINGW_INSTALL_PATH%\doc" /E /Q /I /Y
-xcopy include\* "%MINGW_INSTALL_PATH%\include" /E /Q /I /Y
-xcopy lib\* "%MINGW_INSTALL_PATH%\lib" /E /Q /I /Y
-xcopy share\* "%MINGW_INSTALL_PATH%\share" /E /Q /I /Y
-xcopy libexec\* "%MINGW_INSTALL_PATH%\libexec" /E /Q /I /Y
-xcopy mingw32\* "%MINGW_INSTALL_PATH%\mingw32" /E /Q /I /Y
-copy yasm-1.2.0-win32.exe "%MINGW_INSTALL_PATH%\bin\yasm.exe" /Y
-copy xasm.exe "%MINGW_INSTALL_PATH%\bin\xasm.exe" /Y
-copy mads.exe "%MINGW_INSTALL_PATH%\bin\mads.exe" /Y
-rem copy "%MINGW_INSTALL_PATH%\bin\mingw32-make.exe" "%MINGW_INSTALL_PATH%\bin\make.exe" /Y
-rem xcopy curl-7.21.0-devel-mingw32\include\curl "%CUR_PATH%\include\curl" /E /Q /I /Y
-rem copy curl-7.21.0-devel-mingw32\bin\*.dll "%APP_PATH%\system\" /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/get_mingw_env.txt b/project/BuildDependencies/scripts/get_mingw_env.txt
deleted file mode 100644
index faac351..0000000
--- a/project/BuildDependencies/scripts/get_mingw_env.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-; filename                                  mirror                                                      source of the file
-mingwrt-4.0.3-1-mingw32-dev.tar.lzma        http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://sourceforge.net/projects/mingw/files/MinGW/Base/
-mingwrt-4.0.3-1-mingw32-dll.tar.lzma        http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://sourceforge.net/projects/mingw/files/MinGW/Base/
-w32api-4.0.3-1-mingw32-dev.tar.lzma         http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://sourceforge.net/projects/mingw/files/MinGW/Base/
-gcc-core-4.6.2-1-mingw32-bin.tar.lzma       http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/GCC/Version4/gcc-4.6.2-1/
-gcc-c++-4.6.2-1-mingw32-bin.tar.lzma        http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/GCC/Version4/gcc-4.6.2-1/
-libstdc++-4.6.2-1-mingw32-dll-6.tar.lzma    http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/GCC/Version4/gcc-4.6.2-1/
-libgcc-4.6.2-1-mingw32-dll-1.tar.lzma       http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/GCC/Version4/gcc-4.6.2-1/
-binutils-2.22-1-mingw32-bin.tar.lzma        http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/GNU-Binutils/binutils-2.22/
-yasm-1.2.0-win32.exe                        http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://www.tortall.net/projects/yasm/releases/
-dlfcn-win32-static-r19.tar.bz2              http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://code.google.com/p/dlfcn-win32/downloads/list
-libexpat-2.0.1-1-mingw32-dev.tar.gz         http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/expat/expat-2.0.1-1/
-libz-1.2.5-1-mingw32-dev.tar.lzma           http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/zlib/zlib-1.2.5-1-mingw32/
-libgmp-5.0.1-1-mingw32-dll-10.tar.lzma      http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/gmp/gmp-5.0.1-1/
-libmpc-0.8.1-1-mingw32-dll-2.tar.lzma       http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/mpc/mpc-0.8.1-1/
-libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma      http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/mpfr/mpfr-2.4.1-1/
-automake1.11-1.11.1-1-mingw32-bin.tar.lzma  http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/automake/automake1.11/automake1.11-1.11.1-1/
-libtool-2.4-1-mingw32-bin.tar.lzma          http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/libtool/libtool-2.4-1/
-mads_1.9.3.7z                               http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://mads.atari8.info/
-xasm-3.0.2-windows.zip                      http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://atariarea.krap.pl/x-asm/
-plibc-0.1.6.zip                             http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://sourceforge.net/projects/plibc/files/plibc/0.1.6/
-pthreads-w32-2.9.0-mingw32-pre-20110507-2-dev.tar.lzma   http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/pthreads-w32/pthreads-w32-2.9.0-pre-20110507-2/pthreads-w32-2.9.0-mingw32-pre-20110507-2-dev.tar.lzma
-libpthreadgc-2.9.0-mingw32-pre-20110507-2-dll-2.tar.lzma	http://mirrors.xbmc.org/build-deps/win32/mingw-msys/	http://downloads.sourceforge.net/project/mingw/MinGW/Base/pthreads-w32/pthreads-w32-2.9.0-pre-20110507-2/libpthreadgc-2.9.0-mingw32-pre-20110507-2-dll-2.tar.lzma
-gettext-0.17-1-mingw32-dev.tar.lzma         http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/gettext/gettext-0.17-1/gettext-0.17-1-mingw32-dev.tar.lzma
-libgettextpo-0.17-1-mingw32-dll-0.tar.lzma  http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://downloads.sourceforge.net/project/mingw/MinGW/gettext/gettext-0.17-1/libgettextpo-0.17-1-mingw32-dll-0.tar.lzma
-libintl-0.17-1-mingw32-dll-8.tar.lzma       http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://sourceforge.net/projects/mingw/files/MinGW/gettext/gettext-0.17-1/
-libiconv-1.13.1-1-mingw32-dll-2.tar.lzma    http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://sourceforge.net/projects/mingw/files/MinGW/libiconv/libiconv-1.13.1-1/
-libiconv-1.13.1-1-mingw32-dev.tar.lzma      http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://sourceforge.net/projects/mingw/files/MinGW/libiconv/libiconv-1.13.1-1/
-make-3.82-5-mingw32-bin.tar.lzma            http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        http://sourceforge.net/projects/mingw/files/MinGW/Extension/make/make-3.82-mingw32/
-pkg-config-lite-0.28-1_bin-win32.zip	    http://mirrors.xbmc.org/build-deps/win32/mingw-msys/	    http://sourceforge.net/projects/pkgconfiglite/files/http://sourceforge.net/projects/pkgconfiglite/files/
-gnutls-3.2.3-mingw32.zip                    http://mirrors.xbmc.org/build-deps/win32/mingw-msys/        ftp://ftp.gnutls.org/gcrypt/gnutls/w32/ 
diff --git a/project/BuildDependencies/scripts/get_msys_env.bat b/project/BuildDependencies/scripts/get_msys_env.bat
deleted file mode 100644
index 7ebb34d..0000000
--- a/project/BuildDependencies/scripts/get_msys_env.bat
+++ /dev/null
@@ -1,18 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\get_msys_env.txt
-
-CALL dlextract.bat msys_env %FILES%
-
-cd %TMP_PATH%
-
-xcopy bin\* "%MSYS_INSTALL_PATH%\bin" /E /Q /I /Y
-xcopy lib\* "%MSYS_INSTALL_PATH%\lib" /E /Q /I /Y
-xcopy etc\* "%MSYS_INSTALL_PATH%\etc" /E /Q /I /Y
-xcopy share\* "%MSYS_INSTALL_PATH%\share" /E /Q /I /Y
-copy *.ico "%MSYS_INSTALL_PATH%" /Y
-copy *.bat "%MSYS_INSTALL_PATH%" /Y
-copy coreutils-5.97\bin\pr.exe "%MSYS_INSTALL_PATH%\bin\" /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/get_msys_env.txt b/project/BuildDependencies/scripts/get_msys_env.txt
deleted file mode 100644
index 1be8257..0000000
--- a/project/BuildDependencies/scripts/get_msys_env.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-; filename                                              mirror                                                    source of the file
-msysCORE-1.0.17-1-msys-1.0.17-bin.tar.lzma              http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/msys-core/msys-1.0.17-1/
-msysCORE-1.0.17-1-msys-1.0.17-ext.tar.lzma              http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/msys-core/msys-1.0.17-1/
-libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma        http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/regex/regex-1.20090805-2/
-libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma    http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/termcap/termcap-0.20050421_1-2/
-gettext-0.17-2-msys-1.0.13-bin.tar.lzma                 http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/gettext/gettext-0.17-2/
-libintl-0.17-2-msys-dll-8.tar.lzma                      http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/gettext/gettext-0.17-2/
-libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma            http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/libiconv/libiconv-1.13.1-2/
-coreutils-5.97-3-msys-1.0.13-bin.tar.lzma               http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/coreutils/coreutils-5.97-3/
-bash-3.1.17-4-msys-1.0.16-bin.tar.lzma                  http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/bash/bash-3.1.17-4/
-rxvt-2.7.2-3-msys-1.0.14-bin.tar.lzma                   http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/rxvt/rxvt-2.7.2-3/
-make-3.81-3-msys-1.0.13-bin.tar.lzma                    http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/make/make-3.81-3/
-sed-4.2.1-2-msys-1.0.13-bin.tar.lzma                    http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/sed/sed-4.2.1-2/
-grep-2.5.4-2-msys-1.0.13-bin.tar.lzma                   http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/grep/grep-2.5.4-2/
-diffutils-2.8.7.20071206cvs-3-msys-1.0.13-bin.tar.lzma  http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/diffutils/diffutils-2.8.7.20071206cvs-3/
-tar-1.23-1-msys-1.0.13-bin.tar.lzma                     http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/tar/tar-1.23-1/
-gzip-1.3.12-2-msys-1.0.13-bin.tar.lzma                  http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/gzip/gzip-1.3.12-2/
-gawk-3.1.7-2-msys-1.0.13-bin.tar.lzma                   http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/gawk/gawk-3.1.7-2/
-xz-4.999.9beta_20100401-1-msys-1.0.13-bin.tar.gz        http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/xz/xz-4.999.9beta_20100401-1/
-patch-2.6.1-1-msys-1.0.13-bin.tar.lzma                  http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/patch/patch-2.6.1-1/
-perl-5.6.1_2-2-msys-1.0.13-bin.tar.lzma                 http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/perl/perl-5.6.1_2-2/
-libcrypt-1.1_1-3-msys-1.0.13-dll-0.tar.lzma             http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/crypt/crypt-1.1_1-3/
-autoconf-2.68-1-msys-1.0.17-bin.tar.lzma                http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/autoconf/autoconf-2.68-1/
-m4-1.4.14-1-msys-1.0.13-bin.tar.lzma                    http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/m4/m4-1.4.14-1/
-; to get pr.exe
-coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2             http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://www.finalmediaplayer.com/downloads/3rdparty/
-; for xargs.exe
-findutils-4.4.2-2-msys-1.0.13-bin.tar.lzma              http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/findutils/findutils-4.4.2-2/
-automake-1.11.1-1-msys-1.0.13-bin.tar.lzma              http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/automake/automake-1.11.1-1/
-mktemp-1.6-2-msys-1.0.13-bin.tar.lzma                   http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/mktemp/mktemp-1.6-2/
-texinfo-4.13a-2-msys-1.0.13-bin.tar.lzma				http://mirrors.xbmc.org/build-deps/win32/mingw-msys/	  http://downloads.sourceforge.net/project/mingw/MSYS/texinfo/texinfo-4.13a-2/
-libtool-2.4-1-msys-1.0.15-bin.tar.lzma                  http://mirrors.xbmc.org/build-deps/win32/mingw-msys/      http://downloads.sourceforge.net/project/mingw/MSYS/libtool/libtool-2.4-1/libtool-2.4-1-msys-1.0.15-bin.tar.lzma
\ No newline at end of file
diff --git a/project/BuildDependencies/scripts/libbzip2_d.bat b/project/BuildDependencies/scripts/libbzip2_d.bat
deleted file mode 100644
index db51924..0000000
--- a/project/BuildDependencies/scripts/libbzip2_d.bat
+++ /dev/null
@@ -1,13 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\libbzip2_d.txt
-
-CALL dlextract.bat libbzip2 %FILES%
-
-cd %TMP_PATH%
-
-copy include\* "%CUR_PATH%\include\" /Y
-copy lib\bzip2.lib "%CUR_PATH%\lib\" /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/libbzip2_d.txt b/project/BuildDependencies/scripts/libbzip2_d.txt
deleted file mode 100644
index 245d9eb..0000000
--- a/project/BuildDependencies/scripts/libbzip2_d.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-; filename                  mirror                                      source of the file
-bzip2-1.0.5-lib.zip         http://mirrors.xbmc.org/build-deps/win32/   http://downloads.sourceforge.net/project/gnuwin32/bzip2/1.0.5/
diff --git a/project/BuildDependencies/scripts/libcdio_d.bat b/project/BuildDependencies/scripts/libcdio_d.bat
deleted file mode 100644
index 5501507..0000000
--- a/project/BuildDependencies/scripts/libcdio_d.bat
+++ /dev/null
@@ -1,15 +0,0 @@
- at ECHO ON
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\libcdio_d.txt
-
-CALL dlextract.bat libcdio %FILES%
-
-cd %TMP_PATH%
-
-xcopy libcdio-0.83-win32\include\* "%CUR_PATH%\include\" /E /Q /I /Y
-copy libcdio-0.83-win32\lib\libcdio.dll.lib "%CUR_PATH%\lib\" /Y
-copy libcdio-0.83-win32\bin\libcdio-13.dll "%APP_PATH%\project\Win32BuildSetup\dependencies\" /Y
-copy libcdio-0.83-win32\bin\libiconv-2.dll "%APP_PATH%\project\Win32BuildSetup\dependencies\" /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/libcdio_d.txt b/project/BuildDependencies/scripts/libcdio_d.txt
deleted file mode 100644
index ab52618..0000000
--- a/project/BuildDependencies/scripts/libcdio_d.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-; filename                   	mirror of the file
-libcdio-0.83-win32.7z       	http://mirrors.xbmc.org/build-deps/win32/
diff --git a/project/BuildDependencies/scripts/libcec_d.txt b/project/BuildDependencies/scripts/libcec_d.txt
deleted file mode 100644
index 3d0265e..0000000
--- a/project/BuildDependencies/scripts/libcec_d.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-; filename                        source of the file
-
-libcec-2.2.0-win32.zip            http://mirrors.xbmc.org/build-deps/win32/
diff --git a/project/BuildDependencies/scripts/libcurl_d.bat b/project/BuildDependencies/scripts/libcurl_d.bat
deleted file mode 100644
index 5de849b..0000000
--- a/project/BuildDependencies/scripts/libcurl_d.bat
+++ /dev/null
@@ -1,17 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\libcurl_d.txt
-
-CALL dlextract.bat libcurl %FILES%
-
-cd %TMP_PATH%
-
-rem we are using zlib1.dll from the zlib package
-rem I found no reference to zlib1.dll in any curl dll
-del curl-7.21.6-devel-mingw32\bin\zlib1.dll
-
-xcopy curl-7.21.6-devel-mingw32\include\curl "%CUR_PATH%\include\curl" /E /Q /I /Y
-copy curl-7.21.6-devel-mingw32\bin\*.dll "%APP_PATH%\system\" /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/libcurl_d.txt b/project/BuildDependencies/scripts/libcurl_d.txt
deleted file mode 100644
index 371cf72..0000000
--- a/project/BuildDependencies/scripts/libcurl_d.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-; filename                        mirror                                      source of the file
-curl-7.21.6-devel-mingw32.zip     http://mirrors.xbmc.org/build-deps/win32/   http://www.gknw.de/mirror/curl/win32/old_releases/
diff --git a/project/BuildDependencies/scripts/libexpat_d.bat b/project/BuildDependencies/scripts/libexpat_d.bat
deleted file mode 100644
index 4d5cb61..0000000
--- a/project/BuildDependencies/scripts/libexpat_d.bat
+++ /dev/null
@@ -1,16 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\libexpat_d.txt
-
-CALL dlextract.bat libexpat %FILES%
-
-cd %TMP_PATH%
-
-copy include\* "%CUR_PATH%\include\" /Y
-copy lib\expat.lib "%CUR_PATH%\lib\libexpat.lib" /Y
-copy bin\libexpat-1.dll "%APP_PATH%\system\libexpat.dll"
-rem libexpat-1.dll for libfontconfig-1.dll which is needed for libass.dll
-copy bin\libexpat-1.dll "%APP_PATH%\system\players\dvdplayer\"
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/libexpat_d.txt b/project/BuildDependencies/scripts/libexpat_d.txt
deleted file mode 100644
index aea7fe6..0000000
--- a/project/BuildDependencies/scripts/libexpat_d.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-; filename                        mirror                                            source of the file
-expat_2.0.1-1_win32.zip           http://mirrors.xbmc.org/build-deps/win32/         http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies
-expat-dev_2.0.1-1_win32.zip       http://mirrors.xbmc.org/build-deps/win32/         http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies
diff --git a/project/BuildDependencies/scripts/libflac_d.bat b/project/BuildDependencies/scripts/libflac_d.bat
deleted file mode 100644
index 17ac8de..0000000
--- a/project/BuildDependencies/scripts/libflac_d.bat
+++ /dev/null
@@ -1,16 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\libflac_d.txt
-
-CALL dlextract.bat libflac %FILES%
-
-cd %TMP_PATH%
-
-xcopy include\FLAC "%CUR_PATH%\include\FLAC" /E /Q /I /Y
-copy lib\libFLAC.dll "%APP_PATH%\system\players\paplayer\" /Y
-
-IF EXIST "include\FLAC++" rmdir "include\FLAC++" /S /Q
-IF EXIST "include\ogg" rmdir "include\ogg" /S /Q
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/libflac_d.txt b/project/BuildDependencies/scripts/libflac_d.txt
deleted file mode 100644
index eae9a45..0000000
--- a/project/BuildDependencies/scripts/libflac_d.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-; filename                        mirror of the file								          source of the file
-flac-1.2.1-devel-win.zip          http://mirrors.xbmc.org/build-deps/win32/   http://sourceforge.net/projects/flac/files/flac-win/flac-1.2.1-win/
diff --git a/project/BuildDependencies/scripts/libfribidi_d.bat b/project/BuildDependencies/scripts/libfribidi_d.bat
deleted file mode 100644
index 52e9185..0000000
--- a/project/BuildDependencies/scripts/libfribidi_d.bat
+++ /dev/null
@@ -1,13 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\libfribidi_d.txt
-
-CALL dlextract.bat libfribidi %FILES%
-
-cd %TMP_PATH%
-
-xcopy fribidi-0.19.2-lib\include\fribidi "%CUR_PATH%\include\fribidi" /E /Q /I /Y
-copy fribidi-0.19.2-lib\lib\libfribidi.lib "%CUR_PATH%\lib\" /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/libfribidi_d.txt b/project/BuildDependencies/scripts/libfribidi_d.txt
deleted file mode 100644
index ae7613d..0000000
--- a/project/BuildDependencies/scripts/libfribidi_d.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-; filename                      mirror                                      source of the file
-fribidi-0.19.2-lib-1.zip          http://mirrors.xbmc.org/build-deps/win32/   http://xbmcwindeps.googlecode.com/files/
diff --git a/project/BuildDependencies/scripts/liblzo_d.bat b/project/BuildDependencies/scripts/liblzo_d.bat
deleted file mode 100644
index 4d1a029..0000000
--- a/project/BuildDependencies/scripts/liblzo_d.bat
+++ /dev/null
@@ -1,13 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\liblzo_d.txt
-
-CALL dlextract.bat liblzo %FILES%
-
-cd %TMP_PATH%
-
-xcopy lzo-2.04_win32\include\lzo "%CUR_PATH%\include\lzo" /E /Q /I /Y
-copy lzo-2.04_win32\lib\liblzo2.lib "%CUR_PATH%\lib\" /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/liblzo_d.txt b/project/BuildDependencies/scripts/liblzo_d.txt
deleted file mode 100644
index 12f6647..0000000
--- a/project/BuildDependencies/scripts/liblzo_d.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-; filename                  mirror of the file									source
-lzo-2.04_win32.7z    		http://mirrors.xbmc.org/build-deps/win32/			http://www.oberhumer.com/opensource/lzo/download/lzo-2.04.tar.gz
\ No newline at end of file
diff --git a/project/BuildDependencies/scripts/libmicrohttpd_d.bat b/project/BuildDependencies/scripts/libmicrohttpd_d.bat
deleted file mode 100644
index 7076c87..0000000
--- a/project/BuildDependencies/scripts/libmicrohttpd_d.bat
+++ /dev/null
@@ -1,14 +0,0 @@
- at ECHO ON
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\libmicrohttpd_d.txt
-
-CALL dlextract.bat libmicrohttpd %FILES%
-
-cd %TMP_PATH%
-
-xcopy libmicrohttpd-0.4.5-win32\include\* "%CUR_PATH%\include" /E /Q /I /Y
-xcopy libmicrohttpd-0.4.5-win32\bin\*.dll "%APP_PATH%\system\webserver" /E /Q /I /Y
-copy libmicrohttpd-0.4.5-win32\lib\libmicrohttpd.dll.lib "%CUR_PATH%\lib\" /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/libmicrohttpd_d.txt b/project/BuildDependencies/scripts/libmicrohttpd_d.txt
deleted file mode 100644
index 66fcdbc..0000000
--- a/project/BuildDependencies/scripts/libmicrohttpd_d.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-; filename                        source of the file
-libmicrohttpd-0.4.5-win32.7z                    http://mirrors.xbmc.org/build-deps/win32/
diff --git a/project/BuildDependencies/scripts/liboggvorbis_d.bat b/project/BuildDependencies/scripts/liboggvorbis_d.bat
deleted file mode 100644
index 0de2309..0000000
--- a/project/BuildDependencies/scripts/liboggvorbis_d.bat
+++ /dev/null
@@ -1,16 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\liboggvorbis_d.txt
-
-CALL dlextract.bat liboggvorbis %FILES%
-
-cd %TMP_PATH%
-
-xcopy include\ogg "%CUR_PATH%\include\ogg" /E /Q /I /Y
-xcopy include\vorbis "%CUR_PATH%\include\vorbis" /E /Q /I /Y
-copy bin\ogg.dll "%APP_PATH%\system\cdrip\" /Y
-copy bin\vorbis.dll "%APP_PATH%\system\cdrip\" /Y
-copy bin\vorbisfile.dll "%APP_PATH%\system\players\paplayer\" /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/liboggvorbis_d.txt b/project/BuildDependencies/scripts/liboggvorbis_d.txt
deleted file mode 100644
index 3270d64..0000000
--- a/project/BuildDependencies/scripts/liboggvorbis_d.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-; filename                          	mirror of the file									source of the file
-libogg-vc100-1.2.0-bin.tar.bz2   		http://mirrors.xbmc.org/build-deps/win32/			http://winkde.org/pub/kde/ports/win32/releases/stable/4.5.4/libogg-vc100-1.2.0-bin.tar.bz2
-libogg-vc100-1.2.0-lib.tar.bz2   		http://mirrors.xbmc.org/build-deps/win32/			http://winkde.org/pub/kde/ports/win32/releases/stable/4.5.4/libogg-vc100-1.2.0-lib.tar.bz2
-libvorbis-vc100-1.3.1-bin.tar.bz2		http://mirrors.xbmc.org/build-deps/win32/			http://winkde.org/pub/kde/ports/win32/releases/stable/4.5.4/libvorbis-vc100-1.3.1-bin.tar.bz2
-libvorbis-vc100-1.3.1-lib.tar.bz2		http://mirrors.xbmc.org/build-deps/win32/			http://winkde.org/pub/kde/ports/win32/releases/stable/4.5.4/libvorbis-vc100-1.3.1-lib.tar.bz2
\ No newline at end of file
diff --git a/project/BuildDependencies/scripts/libplist_d.bat b/project/BuildDependencies/scripts/libplist_d.bat
deleted file mode 100644
index 53e3c60..0000000
--- a/project/BuildDependencies/scripts/libplist_d.bat
+++ /dev/null
@@ -1,13 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\libplist_d.txt
-
-CALL dlextract.bat libplist %FILES%
-
-cd %TMP_PATH%
-
-xcopy libplist-1.7-win32-2\include\* "%CUR_PATH%\include\" /E /Q /I /Y
-xcopy libplist-1.7-win32-2\bin\* "%APP_PATH%\system\" /E /Q /I /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/libplist_d.txt b/project/BuildDependencies/scripts/libplist_d.txt
deleted file mode 100644
index affb546..0000000
--- a/project/BuildDependencies/scripts/libplist_d.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-; filename                          source of the file
-libplist-1.7-win32-2.7z               http://mirrors.xbmc.org/build-deps/win32/
diff --git a/project/BuildDependencies/scripts/librtmp_d.bat b/project/BuildDependencies/scripts/librtmp_d.bat
deleted file mode 100644
index c99e1d6..0000000
--- a/project/BuildDependencies/scripts/librtmp_d.bat
+++ /dev/null
@@ -1,13 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\librtmp_d.txt
-
-CALL dlextract.bat librtmp %FILES%
-
-cd %TMP_PATH%
-
-xcopy librtmp-20110723-git-b627335-win32\include\*.h "%CUR_PATH%\include\librtmp\" /E /Q /I /Y
-xcopy librtmp-20110723-git-b627335-win32\lib\*.dll "%APP_PATH%\system\players\dvdplayer\" /E /Q /I /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/librtmp_d.txt b/project/BuildDependencies/scripts/librtmp_d.txt
deleted file mode 100644
index 0b8eef1..0000000
--- a/project/BuildDependencies/scripts/librtmp_d.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-; filename                             mirror                                      source of the file
-librtmp-20110723-git-b627335-win32.7z  http://mirrors.xbmc.org/build-deps/win32/   http://rtmpdump.mplayerhq.hu/
diff --git a/project/BuildDependencies/scripts/libsdl_d.bat b/project/BuildDependencies/scripts/libsdl_d.bat
deleted file mode 100644
index 601a58e..0000000
--- a/project/BuildDependencies/scripts/libsdl_d.bat
+++ /dev/null
@@ -1,19 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\libsdl_d.txt
-
-CALL dlextract.bat libsdl %FILES%
-
-cd %TMP_PATH%
-
-xcopy SDL-1.2.14\include\* "%CUR_PATH%\include\SDL\" /E /Q /I /Y
-copy SDL-1.2.14\lib\SDL.lib "%CUR_PATH%\lib\SDL.lib" /Y
-
-copy SDL-1.2.14\lib\SDL.dll "%APP_PATH%\tools\TexturePacker\SDL.dll"
-copy SDL_image-1.2.10\include\SDL_image.h "%CUR_PATH%\include\SDL\"
-copy SDL_image-1.2.10\lib\*.dll "%APP_PATH%\tools\TexturePacker\"
-copy SDL_image-1.2.10\lib\SDL_image.lib "%CUR_PATH%\lib\SDL_image.lib" /Y
-
-
-cd %LOC_PATH%
\ No newline at end of file
diff --git a/project/BuildDependencies/scripts/libsdl_d.txt b/project/BuildDependencies/scripts/libsdl_d.txt
deleted file mode 100644
index 4bbfa31..0000000
--- a/project/BuildDependencies/scripts/libsdl_d.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-; filename                        mirror                                      source of the file
-SDL-devel-1.2.14-VC8.zip          http://mirrors.xbmc.org/build-deps/win32/   http://www.libsdl.org/release/
-SDL_image-devel-1.2.10-VC.zip     http://mirrors.xbmc.org/build-deps/win32/   http://www.libsdl.org/projects/SDL_image/release/
diff --git a/project/BuildDependencies/scripts/swig_d.bat b/project/BuildDependencies/scripts/swig_d.bat
deleted file mode 100644
index 0c17319..0000000
--- a/project/BuildDependencies/scripts/swig_d.bat
+++ /dev/null
@@ -1,12 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\swig_d.txt
-
-CALL dlextract.bat swig %FILES%
-
-cd %TMP_PATH%
-
-xcopy swig-2.0.7-win32\* "%CUR_PATH%\bin\swig" /E /Q /I /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/swig_d.txt b/project/BuildDependencies/scripts/swig_d.txt
deleted file mode 100644
index 58c2bdf..0000000
--- a/project/BuildDependencies/scripts/swig_d.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-; filename                          source of the file
-swig-2.0.7-win32.zip                http://mirrors.xbmc.org/build-deps/win32/
diff --git a/project/BuildDependencies/scripts/yajl_d.bat b/project/BuildDependencies/scripts/yajl_d.bat
deleted file mode 100644
index 946c986..0000000
--- a/project/BuildDependencies/scripts/yajl_d.bat
+++ /dev/null
@@ -1,13 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\yajl_d.txt
-
-CALL dlextract.bat yajl %FILES%
-
-cd %TMP_PATH%
-
-xcopy yajl_2.0.1_win32-lib\include\yajl "%CUR_PATH%\include\yajl" /E /Q /I /Y
-copy yajl_2.0.1_win32-lib\lib\yajl.lib "%CUR_PATH%\lib\" /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/yajl_d.txt b/project/BuildDependencies/scripts/yajl_d.txt
deleted file mode 100644
index b5b7723..0000000
--- a/project/BuildDependencies/scripts/yajl_d.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-; filename                          source of the file
-yajl_2.0.1_win32-lib.zip           http://mirrors.xbmc.org/build-deps/win32/
diff --git a/project/BuildDependencies/scripts/zlib_d.bat b/project/BuildDependencies/scripts/zlib_d.bat
deleted file mode 100644
index a472ff5..0000000
--- a/project/BuildDependencies/scripts/zlib_d.bat
+++ /dev/null
@@ -1,14 +0,0 @@
- at ECHO OFF
-
-SET LOC_PATH=%CD%
-SET FILES=%LOC_PATH%\zlib_d.txt
-
-CALL dlextract.bat zlib %FILES%
-
-cd %TMP_PATH%
-
-xcopy include\* "%CUR_PATH%\include\" /E /Q /I /Y
-copy lib\zlib.lib "%CUR_PATH%\lib\" /Y
-copy bin\zlib1.dll "%APP_PATH%\system\" /Y
-
-cd %LOC_PATH%
diff --git a/project/BuildDependencies/scripts/zlib_d.txt b/project/BuildDependencies/scripts/zlib_d.txt
deleted file mode 100644
index 9f466ab..0000000
--- a/project/BuildDependencies/scripts/zlib_d.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-; filename                          mirror of the file									source of the file
-zlib-vc100-1.2.5-bin.tar.bz2    	http://mirrors.xbmc.org/build-deps/win32/			http://winkde.org/pub/kde/ports/win32/releases/stable/4.5.4/zlib-vc100-1.2.5-bin.tar.bz2
-zlib-vc100-1.2.5-lib.tar.bz2		http://mirrors.xbmc.org/build-deps/win32/			http://winkde.org/pub/kde/ports/win32/releases/stable/4.5.4/zlib-vc100-1.2.5-lib.tar.bz2
\ No newline at end of file
diff --git a/project/VS2010Express/VC90.CRT.x86.manifest b/project/VS2010Express/VC90.CRT.x86.manifest
deleted file mode 100644
index 52026e4..0000000
--- a/project/VS2010Express/VC90.CRT.x86.manifest
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
-<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
-  <dependency>
-    <dependentAssembly>
-      <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.30729.1' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
-    </dependentAssembly>
-  </dependency>
-</assembly>
diff --git a/project/VS2010Express/XBMC for Windows.sln b/project/VS2010Express/XBMC for Windows.sln
deleted file mode 100644
index ef8a998..0000000
--- a/project/VS2010Express/XBMC for Windows.sln	
+++ /dev/null
@@ -1,316 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.30501.0
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XBMC", "XBMC.vcxproj", "{3A68081D-E8F9-4523-9436-530DE9E5530A}"
-	ProjectSection(ProjectDependencies) = postProject
-		{C8F6C172-56F2-4E76-B5FA-C3B423B31BE7} = {C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libPlatinum", "libPlatinum.vcxproj", "{B2975495-FBE4-4F94-AAC5-B21A9842BF50}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnrarXLib", "UnrarXLib.vcxproj", "{FE0A91C0-E30A-47CD-8A92-A508C9292452}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libhts", "..\..\lib\libhts\Win32\libhts_2010.vcxproj", "{00700E12-A63B-4E54-B962-4011A90584BD}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "visMilkdrop", "..\..\xbmc\visualizations\Milkdrop\Plugin.vcxproj", "{5E479372-4F34-426D-AA1E-9879E94C105D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcmyth_dll", "..\..\lib\cmyth\Win32\libcmyth.vcxproj", "{F9E6874D-60A8-49BA-9393-A2105E63ABCF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libXDAAP", "..\..\lib\libXDAAP\libXDAAP_win32\libXDAAP_win32.vcxproj", "{19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libenca", "..\..\lib\enca\libenca_win32\libenca_win32.vcxproj", "{22B25AEC-7223-46FC-8356-4418327EFDE1}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageLib_dll", "..\..\lib\cximage-6.0\ImageLib.vcxproj", "{3B424C94-2005-44CC-BFB1-4B6C89090732}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageLib_jasper", "..\..\lib\cximage-6.0\jasper\jasper.vcxproj", "{3843C3D4-E5A6-4030-87EC-E7EE57242106}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageLib_jbig", "..\..\lib\cximage-6.0\jbig\jbig.vcxproj", "{88E7E431-3752-4D58-BCD2-A7E6A1B74247}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageLib_jpeg", "..\..\lib\cximage-6.0\jpeg\Jpeg.vcxproj", "{145287C8-24EA-42FE-8D7D-C13D5E4B054C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageLib_libdcr", "..\..\lib\cximage-6.0\raw\libdcr.vcxproj", "{8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageLib_mng", "..\..\lib\cximage-6.0\mng\mng.vcxproj", "{783701E9-4A65-4505-97B0-39E580AA680D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageLib_png", "..\..\lib\cximage-6.0\png\png.vcxproj", "{44BF83C4-F73A-4093-A29A-11B9016318C4}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageLib_tiff", "..\..\lib\cximage-6.0\tiff\Tiff.vcxproj", "{8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageLib_zlib", "..\..\lib\cximage-6.0\zlib\zlib.vcxproj", "{96798038-06CE-4382-BD5B-F9C366724DEB}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libexif_dll", "..\..\lib\libexif\libexif.vcxproj", "{AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "visDirectxSpectrum", "..\..\xbmc\visualizations\DirectXSpectrum\directx_spectrum.vcxproj", "{0D91724A-E6F6-4708-AF47-9F88BBE2114C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmodplug_2010", "..\..\lib\libmodplug\libmodplug_2010.vcxproj", "{C15B374E-7126-48FF-B618-A375D7B17FCF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libRTV", "..\..\lib\libRTV\libRTV.vcxproj", "{DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "visWaveform", "..\..\xbmc\visualizations\WaveForm\Waveform.vcxproj", "{D450FE9A-CE56-4496-B4AB-379094E642F2}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "squish", "..\..\lib\libsquish\vs7\squish\squish_2010.vcxproj", "{6A8518C3-D81A-4428-BD7F-C37933088AC1}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libStSoundLibrary_dll", "..\..\lib\stsound\StSoundLibrary\StSoundLibrary.vcxproj", "{D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvgmstream_dll", "..\..\lib\vgmstream\win32\win32.vcxproj", "{3600E1C5-FECA-468C-83F3-FE467DBE2A66}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libNoseFartXBMC_dll", "..\..\lib\nosefart\NoseFartXBMC.vcxproj", "{17238C64-04D6-4B51-B205-4A5A84ADB9FA}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsidplay_dll", "..\..\lib\libsidplay2\libsidplay\win\VC\libsidplay.vcxproj", "{FB3AB83A-C37A-4636-87FD-827F8506A8FC}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpluff", "..\..\lib\cpluff\libcpluff\win32\cpluff.vcxproj", "{88968763-3D6B-48A8-B495-CC8C187FAC02}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libhdhomerun_dll", "..\..\lib\libhdhomerun\hdhomerun\hdhomerun.vcxproj", "{1E2FB608-3DD2-4021-A598-90008FA6DE85}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libXBMC_addon", "..\..\lib\addons\library.xbmc.addon\project\VS2010Express\libXBMC_addon.vcxproj", "{2DCEA60B-4EBC-4DB7-9FBD-297C1EFD95D7}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libXBMC_gui", "..\..\lib\addons\library.xbmc.gui\project\VS2010Express\libXBMC_gui.vcxproj", "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libXBMC_pvr", "..\..\lib\addons\library.xbmc.pvr\project\VS2010Express\libXBMC_pvr.vcxproj", "{6D8C91F8-992F-4C83-9DE3-485D64EF8420}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XbmcCommons", "XbmcCommons.vcxproj", "{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XbmcThreads", "XbmcThreads.vcxproj", "{034B1D02-CA92-455D-8866-DB95BEE49C10}"
-	ProjectSection(ProjectDependencies) = postProject
-		{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17} = {87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtest", "..\..\lib\gtest\msvc\gtest.vcxproj", "{C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libXBMC_codec", "..\..\lib\addons\library.xbmc.codec\project\VS2010Express\libXBMC_codec.vcxproj", "{F8F1290B-1188-4810-86C9-88178A31D2AF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "visVortex", "..\..\xbmc\visualizations\Vortex\Vortex\Vortex.vcxproj", "{AFF288D5-8A77-4817-8DD9-364E183CDBF8}"
-	ProjectSection(ProjectDependencies) = postProject
-		{034B1D02-CA92-455D-8866-DB95BEE49C10} = {034B1D02-CA92-455D-8866-DB95BEE49C10}
-	EndProjectSection
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug Testsuite|Win32 = Debug Testsuite|Win32
-		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{3A68081D-E8F9-4523-9436-530DE9E5530A}.Debug Testsuite|Win32.ActiveCfg = Debug Testsuite|Win32
-		{3A68081D-E8F9-4523-9436-530DE9E5530A}.Debug Testsuite|Win32.Build.0 = Debug Testsuite|Win32
-		{3A68081D-E8F9-4523-9436-530DE9E5530A}.Debug|Win32.ActiveCfg = Debug|Win32
-		{3A68081D-E8F9-4523-9436-530DE9E5530A}.Debug|Win32.Build.0 = Debug|Win32
-		{3A68081D-E8F9-4523-9436-530DE9E5530A}.Release|Win32.ActiveCfg = Release|Win32
-		{3A68081D-E8F9-4523-9436-530DE9E5530A}.Release|Win32.Build.0 = Release|Win32
-		{B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Debug|Win32.ActiveCfg = Debug|Win32
-		{B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Debug|Win32.Build.0 = Debug|Win32
-		{B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Release|Win32.ActiveCfg = Release|Win32
-		{B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Release|Win32.Build.0 = Release|Win32
-		{FE0A91C0-E30A-47CD-8A92-A508C9292452}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{FE0A91C0-E30A-47CD-8A92-A508C9292452}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{FE0A91C0-E30A-47CD-8A92-A508C9292452}.Debug|Win32.ActiveCfg = Debug|Win32
-		{FE0A91C0-E30A-47CD-8A92-A508C9292452}.Debug|Win32.Build.0 = Debug|Win32
-		{FE0A91C0-E30A-47CD-8A92-A508C9292452}.Release|Win32.ActiveCfg = Release|Win32
-		{FE0A91C0-E30A-47CD-8A92-A508C9292452}.Release|Win32.Build.0 = Release|Win32
-		{00700E12-A63B-4E54-B962-4011A90584BD}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{00700E12-A63B-4E54-B962-4011A90584BD}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{00700E12-A63B-4E54-B962-4011A90584BD}.Debug|Win32.ActiveCfg = Debug|Win32
-		{00700E12-A63B-4E54-B962-4011A90584BD}.Debug|Win32.Build.0 = Debug|Win32
-		{00700E12-A63B-4E54-B962-4011A90584BD}.Release|Win32.ActiveCfg = Release|Win32
-		{00700E12-A63B-4E54-B962-4011A90584BD}.Release|Win32.Build.0 = Release|Win32
-		{5E479372-4F34-426D-AA1E-9879E94C105D}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{5E479372-4F34-426D-AA1E-9879E94C105D}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{5E479372-4F34-426D-AA1E-9879E94C105D}.Debug|Win32.ActiveCfg = Debug|Win32
-		{5E479372-4F34-426D-AA1E-9879E94C105D}.Debug|Win32.Build.0 = Debug|Win32
-		{5E479372-4F34-426D-AA1E-9879E94C105D}.Release|Win32.ActiveCfg = Release|Win32
-		{5E479372-4F34-426D-AA1E-9879E94C105D}.Release|Win32.Build.0 = Release|Win32
-		{F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Debug|Win32.ActiveCfg = Debug|Win32
-		{F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Debug|Win32.Build.0 = Debug|Win32
-		{F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Release|Win32.ActiveCfg = Release|Win32
-		{F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Release|Win32.Build.0 = Release|Win32
-		{19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Debug|Win32.ActiveCfg = Debug|Win32
-		{19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Debug|Win32.Build.0 = Debug|Win32
-		{19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Release|Win32.ActiveCfg = Release|Win32
-		{19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Release|Win32.Build.0 = Release|Win32
-		{22B25AEC-7223-46FC-8356-4418327EFDE1}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{22B25AEC-7223-46FC-8356-4418327EFDE1}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{22B25AEC-7223-46FC-8356-4418327EFDE1}.Debug|Win32.ActiveCfg = Debug|Win32
-		{22B25AEC-7223-46FC-8356-4418327EFDE1}.Debug|Win32.Build.0 = Debug|Win32
-		{22B25AEC-7223-46FC-8356-4418327EFDE1}.Release|Win32.ActiveCfg = Release|Win32
-		{22B25AEC-7223-46FC-8356-4418327EFDE1}.Release|Win32.Build.0 = Release|Win32
-		{3B424C94-2005-44CC-BFB1-4B6C89090732}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{3B424C94-2005-44CC-BFB1-4B6C89090732}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{3B424C94-2005-44CC-BFB1-4B6C89090732}.Debug|Win32.ActiveCfg = Debug|Win32
-		{3B424C94-2005-44CC-BFB1-4B6C89090732}.Debug|Win32.Build.0 = Debug|Win32
-		{3B424C94-2005-44CC-BFB1-4B6C89090732}.Release|Win32.ActiveCfg = Release|Win32
-		{3B424C94-2005-44CC-BFB1-4B6C89090732}.Release|Win32.Build.0 = Release|Win32
-		{3843C3D4-E5A6-4030-87EC-E7EE57242106}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{3843C3D4-E5A6-4030-87EC-E7EE57242106}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{3843C3D4-E5A6-4030-87EC-E7EE57242106}.Debug|Win32.ActiveCfg = Debug|Win32
-		{3843C3D4-E5A6-4030-87EC-E7EE57242106}.Debug|Win32.Build.0 = Debug|Win32
-		{3843C3D4-E5A6-4030-87EC-E7EE57242106}.Release|Win32.ActiveCfg = Release|Win32
-		{3843C3D4-E5A6-4030-87EC-E7EE57242106}.Release|Win32.Build.0 = Release|Win32
-		{88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Debug|Win32.ActiveCfg = Debug|Win32
-		{88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Debug|Win32.Build.0 = Debug|Win32
-		{88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Release|Win32.ActiveCfg = Release|Win32
-		{88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Release|Win32.Build.0 = Release|Win32
-		{145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Debug|Win32.ActiveCfg = Debug|Win32
-		{145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Debug|Win32.Build.0 = Debug|Win32
-		{145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Release|Win32.ActiveCfg = Release|Win32
-		{145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Release|Win32.Build.0 = Release|Win32
-		{8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Debug|Win32.ActiveCfg = Debug|Win32
-		{8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Debug|Win32.Build.0 = Debug|Win32
-		{8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Release|Win32.ActiveCfg = Release|Win32
-		{8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Release|Win32.Build.0 = Release|Win32
-		{783701E9-4A65-4505-97B0-39E580AA680D}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{783701E9-4A65-4505-97B0-39E580AA680D}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{783701E9-4A65-4505-97B0-39E580AA680D}.Debug|Win32.ActiveCfg = Debug|Win32
-		{783701E9-4A65-4505-97B0-39E580AA680D}.Debug|Win32.Build.0 = Debug|Win32
-		{783701E9-4A65-4505-97B0-39E580AA680D}.Release|Win32.ActiveCfg = Release|Win32
-		{783701E9-4A65-4505-97B0-39E580AA680D}.Release|Win32.Build.0 = Release|Win32
-		{44BF83C4-F73A-4093-A29A-11B9016318C4}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{44BF83C4-F73A-4093-A29A-11B9016318C4}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{44BF83C4-F73A-4093-A29A-11B9016318C4}.Debug|Win32.ActiveCfg = Debug|Win32
-		{44BF83C4-F73A-4093-A29A-11B9016318C4}.Debug|Win32.Build.0 = Debug|Win32
-		{44BF83C4-F73A-4093-A29A-11B9016318C4}.Release|Win32.ActiveCfg = Release|Win32
-		{44BF83C4-F73A-4093-A29A-11B9016318C4}.Release|Win32.Build.0 = Release|Win32
-		{8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Debug|Win32.ActiveCfg = Debug|Win32
-		{8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Debug|Win32.Build.0 = Debug|Win32
-		{8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Release|Win32.ActiveCfg = Release|Win32
-		{8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Release|Win32.Build.0 = Release|Win32
-		{96798038-06CE-4382-BD5B-F9C366724DEB}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{96798038-06CE-4382-BD5B-F9C366724DEB}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{96798038-06CE-4382-BD5B-F9C366724DEB}.Debug|Win32.ActiveCfg = Debug|Win32
-		{96798038-06CE-4382-BD5B-F9C366724DEB}.Debug|Win32.Build.0 = Debug|Win32
-		{96798038-06CE-4382-BD5B-F9C366724DEB}.Release|Win32.ActiveCfg = Release|Win32
-		{96798038-06CE-4382-BD5B-F9C366724DEB}.Release|Win32.Build.0 = Release|Win32
-		{AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Debug Testsuite|Win32.ActiveCfg = Release (DLL)|Win32
-		{AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Debug Testsuite|Win32.Build.0 = Release (DLL)|Win32
-		{AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Debug|Win32.ActiveCfg = Debug (DLL)|Win32
-		{AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Debug|Win32.Build.0 = Debug (DLL)|Win32
-		{AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Release|Win32.ActiveCfg = Release (DLL)|Win32
-		{AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Release|Win32.Build.0 = Release (DLL)|Win32
-		{0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Debug|Win32.ActiveCfg = Debug|Win32
-		{0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Debug|Win32.Build.0 = Debug|Win32
-		{0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Release|Win32.ActiveCfg = Release|Win32
-		{0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Release|Win32.Build.0 = Release|Win32
-		{C15B374E-7126-48FF-B618-A375D7B17FCF}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{C15B374E-7126-48FF-B618-A375D7B17FCF}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{C15B374E-7126-48FF-B618-A375D7B17FCF}.Debug|Win32.ActiveCfg = Debug|Win32
-		{C15B374E-7126-48FF-B618-A375D7B17FCF}.Debug|Win32.Build.0 = Debug|Win32
-		{C15B374E-7126-48FF-B618-A375D7B17FCF}.Release|Win32.ActiveCfg = Release|Win32
-		{C15B374E-7126-48FF-B618-A375D7B17FCF}.Release|Win32.Build.0 = Release|Win32
-		{DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Debug|Win32.ActiveCfg = Debug|Win32
-		{DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Debug|Win32.Build.0 = Debug|Win32
-		{DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Release|Win32.ActiveCfg = Release|Win32
-		{DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Release|Win32.Build.0 = Release|Win32
-		{D450FE9A-CE56-4496-B4AB-379094E642F2}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{D450FE9A-CE56-4496-B4AB-379094E642F2}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{D450FE9A-CE56-4496-B4AB-379094E642F2}.Debug|Win32.ActiveCfg = Debug|Win32
-		{D450FE9A-CE56-4496-B4AB-379094E642F2}.Debug|Win32.Build.0 = Debug|Win32
-		{D450FE9A-CE56-4496-B4AB-379094E642F2}.Release|Win32.ActiveCfg = Release|Win32
-		{D450FE9A-CE56-4496-B4AB-379094E642F2}.Release|Win32.Build.0 = Release|Win32
-		{6A8518C3-D81A-4428-BD7F-C37933088AC1}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{6A8518C3-D81A-4428-BD7F-C37933088AC1}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{6A8518C3-D81A-4428-BD7F-C37933088AC1}.Debug|Win32.ActiveCfg = Debug|Win32
-		{6A8518C3-D81A-4428-BD7F-C37933088AC1}.Debug|Win32.Build.0 = Debug|Win32
-		{6A8518C3-D81A-4428-BD7F-C37933088AC1}.Release|Win32.ActiveCfg = Release|Win32
-		{6A8518C3-D81A-4428-BD7F-C37933088AC1}.Release|Win32.Build.0 = Release|Win32
-		{D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Debug|Win32.ActiveCfg = Debug|Win32
-		{D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Debug|Win32.Build.0 = Debug|Win32
-		{D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Release|Win32.ActiveCfg = Release|Win32
-		{D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Release|Win32.Build.0 = Release|Win32
-		{3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Debug|Win32.ActiveCfg = Debug|Win32
-		{3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Debug|Win32.Build.0 = Debug|Win32
-		{3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Release|Win32.ActiveCfg = Release|Win32
-		{3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Release|Win32.Build.0 = Release|Win32
-		{17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Debug|Win32.ActiveCfg = Debug|Win32
-		{17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Debug|Win32.Build.0 = Debug|Win32
-		{17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Release|Win32.ActiveCfg = Release|Win32
-		{17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Release|Win32.Build.0 = Release|Win32
-		{FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Debug|Win32.ActiveCfg = Debug|Win32
-		{FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Debug|Win32.Build.0 = Debug|Win32
-		{FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Release|Win32.ActiveCfg = Release|Win32
-		{FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Release|Win32.Build.0 = Release|Win32
-		{88968763-3D6B-48A8-B495-CC8C187FAC02}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{88968763-3D6B-48A8-B495-CC8C187FAC02}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{88968763-3D6B-48A8-B495-CC8C187FAC02}.Debug|Win32.ActiveCfg = Debug|Win32
-		{88968763-3D6B-48A8-B495-CC8C187FAC02}.Debug|Win32.Build.0 = Debug|Win32
-		{88968763-3D6B-48A8-B495-CC8C187FAC02}.Release|Win32.ActiveCfg = Release|Win32
-		{88968763-3D6B-48A8-B495-CC8C187FAC02}.Release|Win32.Build.0 = Release|Win32
-		{1E2FB608-3DD2-4021-A598-90008FA6DE85}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{1E2FB608-3DD2-4021-A598-90008FA6DE85}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{1E2FB608-3DD2-4021-A598-90008FA6DE85}.Debug|Win32.ActiveCfg = Debug|Win32
-		{1E2FB608-3DD2-4021-A598-90008FA6DE85}.Debug|Win32.Build.0 = Debug|Win32
-		{1E2FB608-3DD2-4021-A598-90008FA6DE85}.Release|Win32.ActiveCfg = Release|Win32
-		{1E2FB608-3DD2-4021-A598-90008FA6DE85}.Release|Win32.Build.0 = Release|Win32
-		{2DCEA60B-4EBC-4DB7-9FBD-297C1EFD95D7}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{2DCEA60B-4EBC-4DB7-9FBD-297C1EFD95D7}.Debug|Win32.ActiveCfg = Debug|Win32
-		{2DCEA60B-4EBC-4DB7-9FBD-297C1EFD95D7}.Debug|Win32.Build.0 = Debug|Win32
-		{2DCEA60B-4EBC-4DB7-9FBD-297C1EFD95D7}.Release|Win32.ActiveCfg = Release|Win32
-		{2DCEA60B-4EBC-4DB7-9FBD-297C1EFD95D7}.Release|Win32.Build.0 = Release|Win32
-		{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}.Debug|Win32.ActiveCfg = Debug|Win32
-		{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}.Debug|Win32.Build.0 = Debug|Win32
-		{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}.Release|Win32.ActiveCfg = Release|Win32
-		{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}.Release|Win32.Build.0 = Release|Win32
-		{6D8C91F8-992F-4C83-9DE3-485D64EF8420}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{6D8C91F8-992F-4C83-9DE3-485D64EF8420}.Debug|Win32.ActiveCfg = Debug|Win32
-		{6D8C91F8-992F-4C83-9DE3-485D64EF8420}.Debug|Win32.Build.0 = Debug|Win32
-		{6D8C91F8-992F-4C83-9DE3-485D64EF8420}.Release|Win32.ActiveCfg = Release|Win32
-		{6D8C91F8-992F-4C83-9DE3-485D64EF8420}.Release|Win32.Build.0 = Release|Win32
-		{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}.Debug|Win32.ActiveCfg = Debug|Win32
-		{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}.Debug|Win32.Build.0 = Debug|Win32
-		{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}.Release|Win32.ActiveCfg = Release|Win32
-		{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}.Release|Win32.Build.0 = Release|Win32
-		{034B1D02-CA92-455D-8866-DB95BEE49C10}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{034B1D02-CA92-455D-8866-DB95BEE49C10}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{034B1D02-CA92-455D-8866-DB95BEE49C10}.Debug|Win32.ActiveCfg = Debug|Win32
-		{034B1D02-CA92-455D-8866-DB95BEE49C10}.Debug|Win32.Build.0 = Debug|Win32
-		{034B1D02-CA92-455D-8866-DB95BEE49C10}.Release|Win32.ActiveCfg = Release|Win32
-		{034B1D02-CA92-455D-8866-DB95BEE49C10}.Release|Win32.Build.0 = Release|Win32
-		{C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Debug|Win32.ActiveCfg = Debug|Win32
-		{C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Release|Win32.ActiveCfg = Release|Win32
-		{F8F1290B-1188-4810-86C9-88178A31D2AF}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{F8F1290B-1188-4810-86C9-88178A31D2AF}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{F8F1290B-1188-4810-86C9-88178A31D2AF}.Debug|Win32.ActiveCfg = Debug|Win32
-		{F8F1290B-1188-4810-86C9-88178A31D2AF}.Debug|Win32.Build.0 = Debug|Win32
-		{F8F1290B-1188-4810-86C9-88178A31D2AF}.Release|Win32.ActiveCfg = Release|Win32
-		{F8F1290B-1188-4810-86C9-88178A31D2AF}.Release|Win32.Build.0 = Release|Win32
-		{AFF288D5-8A77-4817-8DD9-364E183CDBF8}.Debug Testsuite|Win32.ActiveCfg = Debug|Win32
-		{AFF288D5-8A77-4817-8DD9-364E183CDBF8}.Debug Testsuite|Win32.Build.0 = Debug|Win32
-		{AFF288D5-8A77-4817-8DD9-364E183CDBF8}.Debug|Win32.ActiveCfg = Debug|Win32
-		{AFF288D5-8A77-4817-8DD9-364E183CDBF8}.Debug|Win32.Build.0 = Debug|Win32
-		{AFF288D5-8A77-4817-8DD9-364E183CDBF8}.Release|Win32.ActiveCfg = Release|Win32
-		{AFF288D5-8A77-4817-8DD9-364E183CDBF8}.Release|Win32.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
diff --git a/project/VS2010Express/XBMC.core-defaults.props b/project/VS2010Express/XBMC.core-defaults.props
deleted file mode 100644
index eb154cf..0000000
--- a/project/VS2010Express/XBMC.core-defaults.props
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ImportGroup Label="PropertySheets" />
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Label="Configuration">
-    <UseOfMfc>false</UseOfMfc>
-    <UseOfAtl>false</UseOfAtl>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-</Project>
diff --git a/project/VS2010Express/XBMC.defaults.props b/project/VS2010Express/XBMC.defaults.props
deleted file mode 100644
index 6ba8a27..0000000
--- a/project/VS2010Express/XBMC.defaults.props
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ImportGroup Label="PropertySheets" />
-  <PropertyGroup Label="UserMacros" />
-
-  <!-- Common configuration settings -->
-  <PropertyGroup>
-    <IncludePath>$(SolutionDir)\..\BuildDependencies\include;$(SolutionDir)\..\BuildDependencies\include\python;$(IncludePath)</IncludePath>
-    <ExecutablePath>$(SolutionDir)\..\..\tools\win32buildtools;$(ExecutablePath)</ExecutablePath>
-    <LocalDebuggerEnvironment>KODI_HOME=$(SolutionDir)..\..&#xD;&#xA;PATH=$(SolutionDir)..\Win32BuildSetup\dependencies;%PATH%</LocalDebuggerEnvironment>
-  </PropertyGroup>
-  <ItemDefinitionGroup>
-    <ClCompile>
-      <MinimalRebuild>false</MinimalRebuild>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
-      <WarningLevel>Level3</WarningLevel>
-      <ShowIncludes>false</ShowIncludes>
-      <BrowseInformation>false</BrowseInformation>
-      <ErrorReporting>Queue</ErrorReporting>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <LargeAddressAware>true</LargeAddressAware>
-      <TargetMachine>MachineX86</TargetMachine>
-      <LinkErrorReporting>QueueForNextLogin</LinkErrorReporting>
-    </Link>
-  </ItemDefinitionGroup>
-
-  <!-- "Debug" specific settings -->
-  <PropertyGroup Condition="'$(UseDebugLibraries)'=='true'">
-    <LibraryPath>$(SolutionDir)\..\BuildDependencies\lib\Debug-vc120;$(SolutionDir)\..\BuildDependencies\lib;$(LibraryPath)</LibraryPath>
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(UseDebugLibraries)'=='true'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <OmitFramePointers>false</OmitFramePointers>
-      <PreprocessorDefinitions>_DEBUG;TARGET_WINDOWS;_WINDOWS;WIN32;_XBMC;_WIN32_WINNT=0x0600;NTDDI_VERSION=0x06000000;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary Condition="'$(ConfigurationType)'=='Application'">MultiThreadedDebug</RuntimeLibrary>
-      <RuntimeLibrary Condition="'$(ConfigurationType)'=='StaticLibrary'">MultiThreadedDebug</RuntimeLibrary>
-      <RuntimeLibrary Condition="'$(ConfigurationType)'=='DynamicLibrary'">MultiThreadedDebugDLL</RuntimeLibrary>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <BufferSecurityCheck>true</BufferSecurityCheck>
-    </ClCompile>
-    <Link>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </Link>
-  </ItemDefinitionGroup>
-
-  <!-- "Release" specific settings -->
-  <PropertyGroup Condition="'$(UseDebugLibraries)'!='true'">
-    <LibraryPath>$(SolutionDir)\..\BuildDependencies\lib\Release-vc120;$(SolutionDir)\..\BuildDependencies\lib;$(LibraryPath)</LibraryPath>
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(UseDebugLibraries)'!='true'">
-    <ClCompile>
-      <Optimization>Full</Optimization>
-      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <OmitFramePointers>true</OmitFramePointers>
-      <PreprocessorDefinitions>NDEBUG;TARGET_WINDOWS;_WINDOWS;WIN32;_XBMC;_WIN32_WINNT=0x0600;NTDDI_VERSION=0x06000000;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary Condition="'$(ConfigurationType)'=='Application'">MultiThreaded</RuntimeLibrary>
-      <RuntimeLibrary Condition="'$(ConfigurationType)'=='StaticLibrary'">MultiThreaded</RuntimeLibrary>
-      <RuntimeLibrary Condition="'$(ConfigurationType)'=='DynamicLibrary'">MultiThreadedDLL</RuntimeLibrary>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
-      <WholeProgramOptimization>true</WholeProgramOptimization>
-    </ClCompile>
-    <Link>
-      <OptimizeReferences>true</OptimizeReferences>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
-    </Link>
-    <Lib Condition="'$(ConfigurationType)'=='StaticLibrary'">
-      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemGroup />
-</Project>
diff --git a/project/VS2010Express/XBMC.vcxproj b/project/VS2010Express/XBMC.vcxproj
deleted file mode 100644
index aca7b82..0000000
--- a/project/VS2010Express/XBMC.vcxproj
+++ /dev/null
@@ -1,2555 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug Testsuite|Win32">
-      <Configuration>Debug Testsuite</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{3A68081D-E8F9-4523-9436-530DE9E5530A}</ProjectGuid>
-    <RootNamespace>XBMC_PC</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-    <ProjectName>Kodi</ProjectName>
-  </PropertyGroup>
-  <Import Project="$(SolutionDir)\XBMC.core-defaults.props" />
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>MultiByte</CharacterSet>
-    <CLRSupport>false</CLRSupport>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>MultiByte</CharacterSet>
-    <CLRSupport>false</CLRSupport>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">XBMC\$(Configuration)\</OutDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">XBMC\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">XBMC\$(Configuration)\objs\</IntDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">XBMC\$(Configuration)\objs\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">XBMC\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">XBMC\$(Configuration)\objs\</IntDir>
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
-    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(DXSDK_DIR)Lib\x86;$(LibraryPath)</LibraryPath>
-    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">$(DXSDK_DIR)Lib\x86;$(LibraryPath)</LibraryPath>
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
-    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(DXSDK_DIR)Lib\x86;$(LibraryPath)</LibraryPath>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">$(ProjectName)-test</TargetName>
-    <CustomBuildBeforeTargets Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    </CustomBuildBeforeTargets>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\cores\dvdplayer;..\..\xbmc\win32;..\..\lib;..\..\lib\win32\ffmpeg;..\..\lib\libUPnP;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Platinum\Source\Extras;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\win32\pcre;..\..\lib\win32;..\..\xbmc\cores\AudioEngine\;..\..\addons\library.xbmc.gui;..\..\addons\library.xbmc.addon;..\..\addons\library.xbmc.pvr;..\..\addons\library.xbmc.codec;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>NOMINMAX;_USE_32BIT_TIME_T;HAS_DX;D3D_DEBUG_INFO;__STDC_CONSTANT_MACROS;_SECURE_SCL=0;TAGLIB_STATIC;NPT_CONFIG_ENABLE_LOGGING;PLT_HTTP_DEFAULT_USER_AGENT="UPnP/1.0 DLNADOC/1.50 Kodi";PLT_HTTP_DEFAULT_SERVER="UPnP/1.0 DLNADOC/1.50 Kodi";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ExceptionHandling>Async</ExceptionHandling>
-      <PrecompiledHeader>Use</PrecompiledHeader>
-      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>pch.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-      <ObjectFileName>$(IntDir)\a\a\%(RelativeDir)</ObjectFileName>
-    </ClCompile>
-    <Link>
-      <AdditionalOptions>/IGNORE:4089 /ignore:4254 %(AdditionalOptions)</AdditionalOptions>
-      <AdditionalDependencies>D3dx9.lib;DInput8.lib;DSound.lib;winmm.lib;Mpr.lib;Iphlpapi.lib;PowrProf.lib;setupapi.lib;dwmapi.lib;yajl.lib;dxguid.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
-      <IgnoreSpecificDefaultLibraries>libcpmt;libc;msvcrt;libcmt;msvcrtd;msvcprtd;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <ModuleDefinitionFile>
-      </ModuleDefinitionFile>
-      <DelayLoadDLLs>libxslt.dll;dnssd.dll;dwmapi.dll;libmicrohttpd-5.dll;ssh.dll;sqlite3.dll;avcodec-56.dll;avfilter-5.dll;avformat-56.dll;avutil-54.dll;postproc-53.dll;swresample-1.dll;swscale-3.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
-      <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
-      <EntryPointSymbol>
-      </EntryPointSymbol>
-      <RandomizedBaseAddress>true</RandomizedBaseAddress>
-      <DataExecutionPrevention>true</DataExecutionPrevention>
-      <AdditionalLibraryDirectories>..\..\lib\win32\ffmpeg\.libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
-    </Link>
-    <Manifest>
-      <AdditionalManifestFiles>VC90.CRT.x86.manifest;win81.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
-      <EnableDPIAwareness>true</EnableDPIAwareness>
-    </Manifest>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">
-    <ClCompile>
-      <AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\cores\dvdplayer;..\..\xbmc\win32;..\..\lib;..\..\lib\win32\ffmpeg;..\..\lib\libUPnP;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Platinum\Source\Extras;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\win32\pcre;..\..\lib\win32;..\..\xbmc\cores\AudioEngine\;..\..\addons\library.xbmc.gui;..\..\addons\library.xbmc.addon;..\..\addons\library.xbmc.pvr;..\..\addons\library.xbmc.codec;..\..\lib\gtest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CONSOLE;NOMINMAX;_USE_32BIT_TIME_T;HAS_DX;D3D_DEBUG_INFO;__STDC_CONSTANT_MACROS;_SECURE_SCL=0;TAGLIB_STATIC;NPT_CONFIG_ENABLE_LOGGING;PLT_HTTP_DEFAULT_USER_AGENT="UPnP/1.0 DLNADOC/1.50 Kodi";PLT_HTTP_DEFAULT_SERVER="UPnP/1.0 DLNADOC/1.50 Kodi";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ExceptionHandling>Async</ExceptionHandling>
-      <PrecompiledHeader>Use</PrecompiledHeader>
-      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>pch.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-      <ObjectFileName>$(IntDir)\a\a\%(RelativeDir)</ObjectFileName>
-    </ClCompile>
-    <Link>
-      <AdditionalOptions>/IGNORE:4089 /ignore:4254 %(AdditionalOptions)</AdditionalOptions>
-      <AdditionalDependencies>D3dx9.lib;DInput8.lib;DSound.lib;winmm.lib;ws2_32.lib;Mpr.lib;Iphlpapi.lib;PowrProf.lib;setupapi.lib;dwmapi.lib;strmiids.lib;dxguid.lib;mfuuid.lib;comctl32.lib;yajl.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <OutputFile>$(OutDir)$(ProjectName)-test.exe</OutputFile>
-      <AdditionalLibraryDirectories>
-      </AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>libc;msvcrt;libcmt;msvcrtd;msvcprtd;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <ModuleDefinitionFile>
-      </ModuleDefinitionFile>
-      <DelayLoadDLLs>libxslt.dll;dnssd.dll;dwmapi.dll;libmicrohttpd-5.dll;ssh.dll;sqlite3.dll;avcodec-56.dll;avfilter-5.dll;avformat-56.dll;avutil-54.dll;postproc-53.dll;swresample-1.dll;swscale-3.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
-      <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
-      <SubSystem>Console</SubSystem>
-      <EntryPointSymbol>
-      </EntryPointSymbol>
-      <RandomizedBaseAddress>true</RandomizedBaseAddress>
-      <DataExecutionPrevention>true</DataExecutionPrevention>
-      <AdditionalLibraryDirectories>..\..\lib\win32\ffmpeg\.libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-    </Link>
-    <Manifest>
-      <AdditionalManifestFiles>VC90.CRT.x86.manifest;win81.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
-      <EnableDPIAwareness>true</EnableDPIAwareness>
-    </Manifest>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
-      <AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\cores\dvdplayer;..\..\xbmc\win32;..\..\lib;..\..\lib\win32\ffmpeg;..\..\lib\libUPnP;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Platinum\Source\Extras;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\win32\pcre;..\..\lib\win32;..\..\xbmc\cores\AudioEngine\;..\..\addons\library.xbmc.gui;..\..\addons\library.xbmc.addon;..\..\addons\library.xbmc.pvr;..\..\addons\library.xbmc.codec;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>NOMINMAX;_USE_32BIT_TIME_T;HAS_DX;__STDC_CONSTANT_MACROS;TAGLIB_STATIC;NPT_CONFIG_ENABLE_LOGGING;PLT_HTTP_DEFAULT_USER_AGENT="UPnP/1.0 DLNADOC/1.50 Kodi";PLT_HTTP_DEFAULT_SERVER="UPnP/1.0 DLNADOC/1.50 Kodi";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ExceptionHandling>Async</ExceptionHandling>
-      <PrecompiledHeader>Use</PrecompiledHeader>
-      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>pch.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-      <ObjectFileName>$(IntDir)\a\a\%(RelativeDir)</ObjectFileName>
-    </ClCompile>
-    <Link>
-      <AdditionalOptions>/IGNORE:4089 /ignore:4254 %(AdditionalOptions)</AdditionalOptions>
-      <AdditionalDependencies>D3dx9.lib;DInput8.lib;DSound.lib;winmm.lib;Mpr.lib;Iphlpapi.lib;PowrProf.lib;setupapi.lib;dwmapi.lib;yajl.lib;dxguid.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
-      <IgnoreSpecificDefaultLibraries>libc;msvcrt;libci;msvcprt;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <DelayLoadDLLs>libxslt.dll;dnssd.dll;dwmapi.dll;libmicrohttpd-5.dll;ssh.dll;sqlite3.dll;avcodec-56.dll;avfilter-5.dll;avformat-56.dll;avutil-54.dll;postproc-53.dll;swresample-1.dll;swscale-3.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
-      <RandomizedBaseAddress>true</RandomizedBaseAddress>
-      <DataExecutionPrevention>true</DataExecutionPrevention>
-      <AdditionalLibraryDirectories>..\..\lib\win32\ffmpeg\.libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
-    </Link>
-    <Manifest>
-      <AdditionalManifestFiles>VC90.CRT.x86.manifest;win81.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
-      <EnableDPIAwareness>true</EnableDPIAwareness>
-    </Manifest>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\lib\SlingboxLib\SlingboxLib.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\AddonCallbacks.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\AddonCallbacksAddon.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\AddonCallbacksCodec.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\AddonCallbacksGUI.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\AddonCallbacksPVR.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\AddonDatabase.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\AddonInstaller.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\AddonVersion.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\GUIDialogAddonInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\GUIDialogAddonSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\GUIViewStateAddonBrowser.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\GUIWindowAddonBrowser.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\PluginSource.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\Repository.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\Service.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\Skin.cpp" />
-    <ClCompile Include="..\..\xbmc\Application.cpp" />
-    <ClCompile Include="..\..\xbmc\ApplicationMessenger.cpp" />
-    <ClCompile Include="..\..\xbmc\ApplicationPlayer.cpp" />
-    <ClCompile Include="..\..\xbmc\AppParamParser.cpp" />
-    <ClCompile Include="..\..\xbmc\Autorun.cpp" />
-    <ClCompile Include="..\..\xbmc\AutoSwitch.cpp" />
-    <ClCompile Include="..\..\xbmc\BackgroundInfoLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\CompileInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\AEFactory.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\AEResampleFactory.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\AESinkFactory.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Encoders\AEEncoderFFmpeg.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAE.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAEBuffer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAEResampleFFMPEG.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAESink.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAESound.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAEStream.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Sinks\AESinkDirectSound.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Sinks\AESinkNULL.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Sinks\AESinkWASAPI.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEBitstreamPacker.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEBuffer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEChannelInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEDeviceInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AELimiter.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEPackIEC61937.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEStreamInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEUtil.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DataCacheCore.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Audio\DVDAudioCodecPassthrough.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoCodec.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxBXA.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxCDDA.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxPVRClient.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamBluray.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamPVRManager.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\FFmpeg.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\OverlayRendererGUI.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\RenderCapture.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\VideoShaders\WinVideoFilter.cpp" />
-    <ClCompile Include="..\..\xbmc\CueDocument.cpp" />
-    <ClCompile Include="..\..\xbmc\DbUrl.cpp" />
-    <ClCompile Include="..\..\xbmc\dbwrappers\Database.cpp" />
-    <ClCompile Include="..\..\xbmc\dbwrappers\DatabaseQuery.cpp" />
-    <ClCompile Include="..\..\xbmc\dbwrappers\dataset.cpp" />
-    <ClCompile Include="..\..\xbmc\dbwrappers\mysqldataset.cpp" />
-    <ClCompile Include="..\..\xbmc\dbwrappers\qry_dat.cpp" />
-    <ClCompile Include="..\..\xbmc\dbwrappers\sqlitedataset.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogBoxBase.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogBusy.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogButtonMenu.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogCache.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogContextMenu.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogExtendedProgressBar.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogFavourites.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogFileBrowser.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogGamepad.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogKaiToast.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogKeyboardGeneric.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogMediaFilter.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogMediaSource.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogMuteBug.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogNumeric.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogOK.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogPlayEject.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogPlayerControls.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogProgress.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogSeekBar.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogSelect.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogSlider.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogSmartPlaylistEditor.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogSmartPlaylistRule.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogSubMenu.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogTextViewer.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogVolumeBar.cpp" />
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogYesNo.cpp" />
-    <ClCompile Include="..\..\xbmc\DynamicDll.cpp" />
-    <ClCompile Include="..\..\xbmc\epg\Epg.cpp" />
-    <ClCompile Include="..\..\xbmc\epg\EpgContainer.cpp" />
-    <ClCompile Include="..\..\xbmc\epg\EpgDatabase.cpp" />
-    <ClCompile Include="..\..\xbmc\epg\EpgInfoTag.cpp" />
-    <ClCompile Include="..\..\xbmc\epg\EpgSearchFilter.cpp" />
-    <ClCompile Include="..\..\xbmc\epg\GUIEPGGridContainer.cpp" />
-    <ClCompile Include="..\..\xbmc\FileItem.cpp" />
-    <ClCompile Include="..\..\xbmc\FileItemListModification.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\AddonsDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\AFPDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\AFPFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\ASAPFileDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\BlurayDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\BlurayFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\CacheStrategy.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\CDDADirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\CDDAFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\CircularCache.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\CurlFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\DAAPDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\DAAPFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\DAVCommon.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\DAVDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\DAVFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\Directory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\DirectoryCache.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\DirectoryFactory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\DirectoryHistory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\DllLibCurl.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\File.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\FileCache.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\FavouritesDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\FileDirectoryFactory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\FileFactory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\FileReaderFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\FTPDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\FTPParse.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\HDHomeRunDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\HDHomeRunFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\HTSPDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\HTSPSession.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\HTTPDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\HTTPFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\IDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\IFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\ImageFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\iso9660.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\ISO9660Directory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\ISOFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\LibraryDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\MemBufferCache.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\MultiPathDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\MultiPathFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\MusicDatabaseDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\MusicDatabaseDirectory\DirectoryNodeGrouped.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\MusicDatabaseFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\MusicFileDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\MusicSearchDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\MythDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\MythFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\MythSession.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\NFSDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\NFSFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\NptXbmcFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\NSFFileDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\OGGFileDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\PipeFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\PVRDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\PVRFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\PipesManager.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\PlaylistDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\PlaylistFileDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\PluginDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\RarDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\RarFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\RarManager.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\RSSDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\RTVDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\RTVFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\SAPDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\SAPFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\SFTPDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\SFTPFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\ShoutcastFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\SIDFileDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\SlingboxDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\SlingboxFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\SmartPlaylistDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\SourcesDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\SpecialProtocol.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\SpecialProtocolDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\SpecialProtocolFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\StackDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\test\TestDirectory.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\test\TestFile.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\test\TestFileFactory.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\test\TestRarFile.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\test\TestZipFile.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\TuxBoxDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\TuxBoxFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\udf25.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\UDFDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\UDFFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\UPnPDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\UPnPFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\VideoDatabaseDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\VideoDatabaseDirectory\DirectoryNodeGrouped.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\win32\Win32Directory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\win32\Win32SMBDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\win32\Win32File.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\win32\Win32SMBFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\VirtualDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\VTPDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\VTPFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\VTPSession.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\ZeroconfDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\ZipDirectory.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\ZipFile.cpp" />
-    <ClCompile Include="..\..\xbmc\filesystem\ZipManager.cpp" />
-    <ClCompile Include="..\..\xbmc\GUIInfoManager.cpp" />
-    <ClCompile Include="..\..\xbmc\GUILargeTextureManager.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\AnimatedGif.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\cximage.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\D3DResource.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\DDSImage.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\DirectXGraphics.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\DirtyRegionSolvers.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\DirtyRegionTracker.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GraphicContext.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIAction.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIAudioManager.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIBaseContainer.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIBorderedImage.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIButtonControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUICheckMarkControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIColorManager.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIControlFactory.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIControlGroup.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIControlGroupList.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIControlProfiler.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIDialog.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIEditControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIFadeLabelControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIFixedListContainer.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIFont.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIFontManager.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIFontTTF.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIFontTTFDX.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIImage.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIIncludes.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIInfoTypes.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIKeyboardFactory.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUILabel.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUILabelControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIListContainer.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIListGroup.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIListItem.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIListItemLayout.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIListLabel.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIMessage.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIMoverControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIMultiImage.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIMultiSelectText.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIPanelContainer.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIProgressControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIRadioButtonControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIRenderingControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIResizeControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIRSSControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIScrollBarControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUISelectButtonControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUISettingsSliderControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIShader.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUISliderControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUISpinControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUISpinControlEx.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIStaticItem.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUITextBox.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUITextLayout.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUITexture.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUITextureD3D.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIToggleButtonControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIVideoControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIVisualisationControl.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIWindow.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIWindowManager.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\GUIWrappingListContainer.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\imagefactory.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\IWindowManagerCallback.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\JpegIO.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\Key.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\LocalizeStrings.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\MatrixGLES.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\StereoscopicsManager.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\Texture.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\TextureBundle.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\TextureBundleXBT.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\TextureBundleXPR.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\TextureDX.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\TextureManager.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\VisibleEffect.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\XBTF.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\XBTFReader.cpp" />
-    <ClCompile Include="..\..\xbmc\GUIPassword.cpp" />
-    <ClCompile Include="..\..\xbmc\input\ButtonTranslator.cpp" />
-    <ClCompile Include="..\..\xbmc\input\InertialScrollingHandler.cpp" />
-    <ClCompile Include="..\..\xbmc\input\KeyboardLayout.cpp" />
-    <ClCompile Include="..\..\xbmc\input\KeyboardLayoutConfiguration.cpp" />
-    <ClCompile Include="..\..\xbmc\input\KeyboardStat.cpp" />
-    <ClCompile Include="..\..\xbmc\input\MouseStat.cpp" />
-    <ClCompile Include="..\..\xbmc\input\touch\generic\GenericTouchActionHandler.cpp" />
-    <ClCompile Include="..\..\xbmc\input\touch\generic\GenericTouchSwipeDetector.cpp" />
-    <ClCompile Include="..\..\xbmc\input\touch\ITouchInputHandling.cpp" />
-    <ClCompile Include="..\..\xbmc\input\windows\IRServerSuite.cpp" />
-    <ClCompile Include="..\..\xbmc\input\windows\IrssMessage.cpp" />
-    <ClCompile Include="..\..\xbmc\input\windows\WINJoystick.cpp" />
-    <ClCompile Include="..\..\xbmc\input\XBMC_keytable.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\AnnouncementManager.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\Builtins.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\generic\LanguageInvokerThread.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\generic\ScriptInvocationManager.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\info\InfoBool.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\info\InfoExpression.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\info\SkinVariable.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\AddonsOperations.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\ApplicationOperations.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\AudioLibrary.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\FavouritesOperations.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\FileItemHandler.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\FileOperations.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\GUIOperations.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\InputOperations.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\JSONRPC.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\JSONServiceDescription.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\PlayerOperations.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\PlaylistOperations.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\ProfilesOperations.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\PVROperations.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\SettingsOperations.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\SystemOperations.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\VideoLibrary.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\XBMCOperations.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\TextureOperations.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\Addon.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\AddonCallback.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\AddonClass.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\AddonUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\CallbackFunction.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\CallbackHandler.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\Control.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\Dialog.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\File.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\InfoTagMusic.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\InfoTagVideo.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\Keyboard.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\LanguageHook.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\ListItem.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\ModuleXbmc.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\ModuleXbmcgui.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\ModuleXbmcplugin.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\ModuleXbmcvfs.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\Monitor.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\Player.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\PlayList.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\String.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\Window.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\WindowDialog.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\WindowDialogMixin.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\WindowXML.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\python\AddonPythonInvoker.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\python\CallbackHandler.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\python\generated\AddonModuleXbmc.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\python\generated\AddonModuleXbmcaddon.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\python\generated\AddonModuleXbmcgui.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\python\generated\AddonModuleXbmcplugin.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\python\generated\AddonModuleXbmcvfs.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\python\LanguageHook.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\python\PyContext.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\python\PythonInvoker.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\python\swig.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\python\test\TestSwig.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\python\XBPython.cpp" />
-    <ClCompile Include="..\..\xbmc\LangInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\listproviders\IListProvider.cpp" />
-    <ClCompile Include="..\..\xbmc\listproviders\DirectoryProvider.cpp" />
-    <ClCompile Include="..\..\xbmc\listproviders\StaticProvider.cpp" />
-    <ClCompile Include="..\..\xbmc\MediaSource.cpp" />
-    <ClCompile Include="..\..\xbmc\media\MediaType.cpp" />
-    <ClCompile Include="..\..\xbmc\music\Album.cpp" />
-    <ClCompile Include="..\..\xbmc\music\Artist.cpp" />
-    <ClCompile Include="..\..\xbmc\music\dialogs\GUIDialogMusicInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\music\dialogs\GUIDialogMusicOSD.cpp" />
-    <ClCompile Include="..\..\xbmc\music\dialogs\GUIDialogMusicOverlay.cpp" />
-    <ClCompile Include="..\..\xbmc\music\dialogs\GUIDialogSongInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\music\dialogs\GUIDialogVisualisationPresetList.cpp" />
-    <ClCompile Include="..\..\xbmc\music\GUIViewStateMusic.cpp" />
-    <ClCompile Include="..\..\xbmc\music\infoscanner\MusicAlbumInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\music\infoscanner\MusicArtistInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\music\infoscanner\MusicInfoScanner.cpp" />
-    <ClCompile Include="..\..\xbmc\music\infoscanner\MusicInfoScraper.cpp" />
-    <ClCompile Include="..\..\xbmc\music\karaoke\GUIDialogKaraokeSongSelector.cpp" />
-    <ClCompile Include="..\..\xbmc\music\karaoke\GUIWindowKaraokeLyrics.cpp" />
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyrics.cpp" />
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyricscdg.cpp" />
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyricsfactory.cpp" />
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyricsmanager.cpp" />
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyricstext.cpp" />
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyricstextkar.cpp" />
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyricstextlrc.cpp" />
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyricstextustar.cpp" />
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokewindowbackground.cpp" />
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokevideobackground.cpp" />
-    <ClCompile Include="..\..\xbmc\music\MusicDatabase.cpp" />
-    <ClCompile Include="..\..\xbmc\music\MusicDbUrl.cpp" />
-    <ClCompile Include="..\..\xbmc\music\MusicInfoLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\music\Song.cpp" />
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTag.cpp" />
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderASAP.cpp" />
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderCDDA.cpp" />
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderDatabase.cpp" />
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderFactory.cpp" />
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderMidi.cpp" />
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderNSF.cpp" />
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderShn.cpp" />
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderSPC.cpp" />
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderYM.cpp" />
-    <ClCompile Include="..\..\xbmc\music\tags\TagLibVFSStream.cpp" />
-    <ClCompile Include="..\..\xbmc\music\tags\TagLoaderTagLib.cpp" />
-    <ClCompile Include="..\..\xbmc\music\windows\GUIWindowMusicBase.cpp" />
-    <ClCompile Include="..\..\xbmc\music\windows\GUIWindowMusicNav.cpp" />
-    <ClCompile Include="..\..\xbmc\music\windows\GUIWindowMusicPlaylist.cpp" />
-    <ClCompile Include="..\..\xbmc\music\windows\GUIWindowMusicPlaylistEditor.cpp" />
-    <ClCompile Include="..\..\xbmc\music\windows\GUIWindowMusicSongs.cpp" />
-    <ClCompile Include="..\..\xbmc\music\windows\GUIWindowVisualisation.cpp" />
-    <ClCompile Include="..\..\xbmc\network\AirPlayServer.cpp" />
-    <ClCompile Include="..\..\xbmc\network\AirTunesServer.cpp" />
-    <ClCompile Include="..\..\xbmc\network\cddb.cpp" />
-    <ClCompile Include="..\..\xbmc\network\DNSNameCache.cpp" />
-    <ClCompile Include="..\..\xbmc\network\EventClient.cpp" />
-    <ClCompile Include="..\..\xbmc\network\EventPacket.cpp" />
-    <ClCompile Include="..\..\xbmc\network\EventServer.cpp" />
-    <ClCompile Include="..\..\xbmc\network\GUIDialogAccessPoints.cpp" />
-    <ClCompile Include="..\..\xbmc\network\GUIDialogNetworkSetup.cpp" />
-    <ClCompile Include="..\..\xbmc\network\httprequesthandler\HTTPImageHandler.cpp" />
-    <ClCompile Include="..\..\xbmc\network\httprequesthandler\HTTPJsonRpcHandler.cpp" />
-    <ClCompile Include="..\..\xbmc\network\httprequesthandler\HTTPVfsHandler.cpp" />
-    <ClCompile Include="..\..\xbmc\network\httprequesthandler\HTTPWebinterfaceAddonsHandler.cpp" />
-    <ClCompile Include="..\..\xbmc\network\httprequesthandler\HTTPWebinterfaceHandler.cpp" />
-    <ClCompile Include="..\..\xbmc\network\httprequesthandler\IHTTPRequestHandler.cpp" />
-    <ClCompile Include="..\..\xbmc\network\mdns\ZeroconfBrowserMDNS.cpp" />
-    <ClCompile Include="..\..\xbmc\network\mdns\ZeroconfMDNS.cpp" />
-    <ClCompile Include="..\..\xbmc\network\Network.cpp" />
-    <ClCompile Include="..\..\xbmc\network\NetworkServices.cpp" />
-    <ClCompile Include="..\..\xbmc\network\Socket.cpp" />
-    <ClCompile Include="..\..\xbmc\network\TCPServer.cpp" />
-    <ClCompile Include="..\..\xbmc\network\UdpClient.cpp" />
-    <ClCompile Include="..\..\xbmc\network\upnp\UPnP.cpp" />
-    <ClCompile Include="..\..\xbmc\network\upnp\UPnPInternal.cpp" />
-    <ClCompile Include="..\..\xbmc\network\upnp\UPnPPlayer.cpp" />
-    <ClCompile Include="..\..\xbmc\network\upnp\UPnPRenderer.cpp" />
-    <ClCompile Include="..\..\xbmc\network\upnp\UPnPServer.cpp" />
-    <ClCompile Include="..\..\xbmc\network\upnp\UPnPSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\network\WakeOnAccess.cpp" />
-    <ClCompile Include="..\..\xbmc\network\WebServer.cpp" />
-    <ClCompile Include="..\..\xbmc\network\websocket\WebSocket.cpp" />
-    <ClCompile Include="..\..\xbmc\network\websocket\WebSocketManager.cpp" />
-    <ClCompile Include="..\..\xbmc\network\websocket\WebSocketV13.cpp" />
-    <ClCompile Include="..\..\xbmc\network\websocket\WebSocketV8.cpp" />
-    <ClCompile Include="..\..\xbmc\network\windows\NetworkWin32.cpp" />
-    <ClCompile Include="..\..\xbmc\network\Zeroconf.cpp" />
-    <ClCompile Include="..\..\xbmc\network\ZeroconfBrowser.cpp" />
-    <ClCompile Include="..\..\xbmc\NfoFile.cpp" />
-    <ClCompile Include="..\..\xbmc\PartyModeManager.cpp" />
-    <ClCompile Include="..\..\xbmc\PasswordManager.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\bus\PeripheralBus.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\bus\virtual\PeripheralBusCEC.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\bus\win32\PeripheralBusUSB.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\devices\Peripheral.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralBluetooth.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralCecAdapter.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralDisk.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralHID.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralNIC.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralNyxboard.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralImon.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralTuner.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\dialogs\GUIDialogPeripheralManager.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\dialogs\GUIDialogPeripheralSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\peripherals\Peripherals.cpp" />
-    <ClCompile Include="..\..\xbmc\pictures\GUIDialogPictureInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\pictures\GUIViewStatePictures.cpp" />
-    <ClCompile Include="..\..\xbmc\pictures\GUIWindowPictures.cpp" />
-    <ClCompile Include="..\..\xbmc\pictures\GUIWindowSlideShow.cpp" />
-    <ClCompile Include="..\..\xbmc\pictures\Picture.cpp" />
-    <ClCompile Include="..\..\xbmc\pictures\PictureInfoLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\pictures\PictureInfoTag.cpp" />
-    <ClCompile Include="..\..\xbmc\pictures\PictureThumbLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\pictures\SlideShowPicture.cpp" />
-    <ClCompile Include="..\..\xbmc\PlayListPlayer.cpp" />
-    <ClCompile Include="..\..\xbmc\playlists\PlayList.cpp" />
-    <ClCompile Include="..\..\xbmc\playlists\PlayListB4S.cpp" />
-    <ClCompile Include="..\..\xbmc\playlists\PlayListFactory.cpp" />
-    <ClCompile Include="..\..\xbmc\playlists\PlayListM3U.cpp" />
-    <ClCompile Include="..\..\xbmc\playlists\PlayListPLS.cpp" />
-    <ClCompile Include="..\..\xbmc\playlists\PlayListURL.cpp" />
-    <ClCompile Include="..\..\xbmc\playlists\PlayListWPL.cpp" />
-    <ClCompile Include="..\..\xbmc\playlists\PlayListXML.cpp" />
-    <ClCompile Include="..\..\xbmc\playlists\SmartPlayList.cpp" />
-    <ClCompile Include="..\..\xbmc\playlists\SmartPlaylistFileItemListModifier.cpp" />
-    <ClCompile Include="..\..\xbmc\powermanagement\DPMSSupport.cpp" />
-    <ClCompile Include="..\..\xbmc\powermanagement\PowerManager.cpp" />
-    <ClCompile Include="..\..\xbmc\powermanagement\windows\Win32PowerSyscall.cpp" />
-    <ClCompile Include="..\..\xbmc\profiles\dialogs\GUIDialogLockSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\profiles\dialogs\GUIDialogProfileSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\profiles\Profile.cpp" />
-    <ClCompile Include="..\..\xbmc\profiles\ProfilesManager.cpp" />
-    <ClCompile Include="..\..\xbmc\profiles\windows\GUIWindowSettingsProfile.cpp" />
-    <ClCompile Include="..\..\xbmc\programs\GUIViewStatePrograms.cpp" />
-    <ClCompile Include="..\..\xbmc\programs\GUIWindowPrograms.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\addons\PVRClient.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\addons\PVRClients.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\channels\PVRChannel.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\channels\PVRChannelGroup.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\channels\PVRChannelGroupInternal.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\channels\PVRChannelGroups.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\channels\PVRChannelGroupsContainer.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRChannelManager.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRChannelsOSD.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRCutterOSD.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRDirectorOSD.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGroupManager.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGuideInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGuideOSD.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGuideSearch.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRRecordingInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRTimerSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\PVRDatabase.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\PVRGUIInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\PVRManager.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\recordings\PVRRecording.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\recordings\PVRRecordings.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\timers\PVRTimerInfoTag.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\timers\PVRTimers.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\windows\GUIViewStatePVR.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\windows\GUIWindowPVRBase.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\windows\GUIWindowPVRChannels.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\windows\GUIWindowPVRGuide.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\windows\GUIWindowPVRRecordings.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\windows\GUIWindowPVRSearch.cpp" />
-    <ClCompile Include="..\..\xbmc\pvr\windows\GUIWindowPVRTimers.cpp" />
-    <ClCompile Include="..\..\xbmc\rendering\dx\GUIWindowTestPatternDX.cpp" />
-    <ClCompile Include="..\..\xbmc\rendering\dx\RenderSystemDX.cpp" />
-    <ClCompile Include="..\..\xbmc\rendering\RenderSystem.cpp" />
-    <ClCompile Include="..\..\xbmc\SectionLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\AdvancedSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogContentSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogSettingsBase.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogSettingsManagerBase.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogSettingsManualBase.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\DisplaySettings.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\lib\ISetting.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\lib\ISettingControl.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\lib\Setting.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\lib\SettingCategoryAccess.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\lib\SettingConditions.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\lib\SettingDependency.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\lib\SettingRequirement.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\lib\SettingSection.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\lib\SettingsManager.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\lib\SettingUpdate.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\MediaSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\MediaSourceSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\SettingAddon.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\SettingConditions.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\SettingControl.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\SettingCreator.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\SettingPath.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\Settings.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\SettingUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\SkinSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\VideoSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\windows\GUIControlSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettingsCategory.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettingsScreenCalibration.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowTestPattern.cpp" />
-    <ClCompile Include="..\..\xbmc\storage\AutorunMediaJob.cpp" />
-    <ClCompile Include="..\..\xbmc\storage\cdioSupport.cpp" />
-    <ClCompile Include="..\..\xbmc\storage\IoSupport.cpp" />
-    <ClCompile Include="..\..\xbmc\storage\MediaManager.cpp" />
-    <ClCompile Include="..\..\xbmc\storage\windows\Win32StorageProvider.cpp" />
-    <ClCompile Include="..\..\xbmc\SystemGlobals.cpp" />
-    <ClCompile Include="..\..\xbmc\Temperature.cpp" />
-    <ClCompile Include="..\..\xbmc\test\TestBasicEnvironment.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\test\TestFileItem.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\test\TestTextureUtils.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\test\TestUtils.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\test\xbmc-test.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\TextureCache.cpp" />
-    <ClCompile Include="..\..\xbmc\TextureCacheJob.cpp" />
-    <ClCompile Include="..\..\xbmc\TextureDatabase.cpp" />
-    <ClCompile Include="..\..\xbmc\DatabaseManager.cpp" />
-    <ClInclude Include="..\..\xbmc\addons\AddonCallbacksCodec.h" />
-    <ClInclude Include="..\..\xbmc\ApplicationPlayer.h" />
-    <ClInclude Include="..\..\xbmc\AppParamParser.h" />
-    <ClInclude Include="..\..\xbmc\CompileInfo.h" />
-    <ClInclude Include="..\..\xbmc\cores\DataCacheCore.h" />
-    <CustomBuild Include="..\..\xbmc\GitRevision.h">
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CALL update_git_rev.bat</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\xbmc\win32\git_rev.h</Outputs>
-      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\.git\HEAD;..\..\xbmc\win32\git_rev.tmpl</AdditionalInputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Retrieving the git revision</Message>
-    </CustomBuild>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\AEAudioFormat.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\AEFactory.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\AEResampleFactory.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\AESinkFactory.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Encoders\AEEncoderFFmpeg.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAE.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAEBuffer.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAEResampleFFMPEG.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAESink.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAESound.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAEStream.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Interfaces\AE.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Interfaces\AEResample.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Interfaces\AEEncoder.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Interfaces\AESink.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Interfaces\AESound.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Interfaces\AEStream.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Interfaces\ThreadedAE.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Sinks\AESinkDirectSound.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Sinks\AESinkNULL.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Sinks\AESinkWASAPI.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEBitstreamPacker.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEBuffer.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEChannelInfo.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEDeviceInfo.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AELimiter.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEPackIEC61937.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEStreamInfo.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEUtil.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Audio\DVDAudioCodecPassthrough.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxBXA.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxCDDA.h" />
-    <ClInclude Include="..\..\xbmc\cores\FFmpeg.h" />
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\OverlayRendererGUI.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogKeyboardGeneric.h" />
-    <ClInclude Include="..\..\xbmc\DbUrl.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogMediaFilter.h" />
-    <ClInclude Include="..\..\xbmc\FileItemListModification.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\BlurayFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\HTTPFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\DAVCommon.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\DAVFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\ImageFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\MusicDatabaseDirectory\DirectoryNodeGrouped.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\VideoDatabaseDirectory\DirectoryNodeGrouped.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\win32\Win32Directory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\win32\Win32SMBDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\win32\Win32File.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\win32\Win32SMBFile.h" />
-    <ClInclude Include="..\..\xbmc\guilib\cximage.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIKeyboard.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIKeyboardFactory.h" />
-    <ClInclude Include="..\..\xbmc\guilib\iimage.h" />
-    <ClInclude Include="..\..\xbmc\guilib\imagefactory.h" />
-    <ClInclude Include="..\..\xbmc\guilib\ISliderCallback.h" />
-    <ClInclude Include="..\..\xbmc\IFileItemListModifier.h" />
-    <ClInclude Include="..\..\xbmc\input\touch\generic\GenericTouchActionHandler.h" />
-    <ClInclude Include="..\..\xbmc\input\touch\generic\GenericTouchSwipeDetector.h" />
-    <ClInclude Include="..\..\xbmc\input\touch\generic\IGenericTouchGestureDetector.h" />
-    <ClInclude Include="..\..\xbmc\input\touch\ITouchActionHandler.h" />
-    <ClInclude Include="..\..\xbmc\input\touch\ITouchInputHandler.h" />
-    <ClInclude Include="..\..\xbmc\input\touch\ITouchInputHandling.h" />
-    <ClInclude Include="..\..\xbmc\input\touch\TouchTypes.h" />
-    <ClInclude Include="..\..\xbmc\input\windows\WINJoystick.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\generic\ILanguageInvocationHandler.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\generic\ILanguageInvoker.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\generic\LanguageInvokerThread.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\generic\ScriptInvocationManager.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\FavouritesOperations.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\ProfilesOperations.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\PVROperations.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\SettingsOperations.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Addon.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\AddonCallback.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\AddonClass.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\AddonString.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\AddonUtils.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Alternative.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\aojsonrpc.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\CallbackFunction.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\CallbackHandler.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Control.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Dialog.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Dictionary.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Exception.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\File.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\InfoTagMusic.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\InfoTagVideo.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Keyboard.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\LanguageHook.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\List.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\ListItem.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\ModuleXbmc.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\ModuleXbmcgui.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\ModuleXbmcplugin.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\ModuleXbmcvfs.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Monitor.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Player.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\PlayList.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\RenderCapture.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\swighelper.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Tuple.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Window.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\WindowDialog.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\WindowDialogMixin.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\WindowException.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\WindowInterceptor.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\WindowXML.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\python\AddonPythonInvoker.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\python\CallbackHandler.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\python\LanguageHook.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\python\preamble.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\python\PyContext.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\python\PythonInvoker.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\python\pythreadstate.h" />
-    <ClInclude Include="..\..\xbmc\media\MediaType.h" />
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokevideobackground.h" />
-    <ClInclude Include="..\..\xbmc\network\NetworkServices.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\bus\virtual\PeripheralBusCEC.h" />
-    <ClInclude Include="..\..\xbmc\network\upnp\UPnPSettings.h" />
-    <ClInclude Include="..\..\xbmc\playlists\SmartPlaylistFileItemListModifier.h" />
-    <ClInclude Include="..\..\xbmc\profiles\dialogs\GUIDialogLockSettings.h" />
-    <ClInclude Include="..\..\xbmc\profiles\dialogs\GUIDialogProfileSettings.h" />
-    <ClInclude Include="..\..\xbmc\profiles\Profile.h" />
-    <ClInclude Include="..\..\xbmc\profiles\ProfilesManager.h" />
-    <ClInclude Include="..\..\xbmc\profiles\windows\GUIWindowSettingsProfile.h" />
-    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogContentSettings.h" />
-    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogSettingsBase.h" />
-    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogSettingsManagerBase.h" />
-    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogSettingsManualBase.h" />
-    <ClInclude Include="..\..\xbmc\settings\DiscSettings.h" />
-    <ClInclude Include="..\..\xbmc\settings\DisplaySettings.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\ISetting.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\ISettingCallback.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\ISettingControl.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\ISettingControlCreator.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\ISettingCreator.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\ISettingsHandler.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\ISubSettings.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\Setting.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingCategoryAccess.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingConditions.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingDefinitions.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingDependency.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingRequirement.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingSection.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingsManager.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingUpdate.h" />
-    <ClInclude Include="..\..\xbmc\settings\MediaSettings.h" />
-    <ClInclude Include="..\..\xbmc\settings\MediaSourceSettings.h" />
-    <ClInclude Include="..\..\xbmc\settings\SettingAddon.h" />
-    <ClInclude Include="..\..\xbmc\settings\SettingConditions.h" />
-    <ClInclude Include="..\..\xbmc\settings\SettingControl.h" />
-    <ClInclude Include="..\..\xbmc\settings\SettingCreator.h" />
-    <ClInclude Include="..\..\xbmc\settings\SettingPath.h" />
-    <ClInclude Include="..\..\xbmc\settings\SettingUtils.h" />
-    <ClInclude Include="..\..\xbmc\settings\SkinSettings.h" />
-    <ClInclude Include="..\..\xbmc\settings\windows\GUIControlSettings.h" />
-    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettings.h" />
-    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettingsCategory.h" />
-    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettingsScreenCalibration.h" />
-    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowTestPattern.h" />
-    <ClInclude Include="..\..\xbmc\utils\ActorProtocol.h" />
-    <ClInclude Include="..\..\xbmc\utils\auto_buffer.h" />
-    <ClInclude Include="..\..\xbmc\utils\BooleanLogic.h" />
-    <ClInclude Include="..\..\xbmc\utils\CharsetDetection.h" />
-    <ClInclude Include="..\..\xbmc\utils\IRssObserver.h" />
-    <ClInclude Include="..\..\xbmc\utils\IXmlDeserializable.h" />
-    <ClInclude Include="..\..\xbmc\utils\LegacyPathTranslation.h" />
-    <ClInclude Include="..\..\xbmc\utils\MarkWatchedJob.h" />
-    <ClInclude Include="..\..\xbmc\utils\params_check_macros.h" />
-    <ClInclude Include="..\..\xbmc\utils\RssManager.h" />
-    <ClInclude Include="..\..\xbmc\utils\StringValidation.h" />
-    <ClInclude Include="..\..\xbmc\utils\Utf8Utils.h" />
-    <ClInclude Include="..\..\xbmc\utils\uXstrings.h" />
-    <ClInclude Include="..\..\xbmc\utils\Vector.h" />
-    <ClInclude Include="..\..\xbmc\utils\win32\Win32InterfaceForCLog.h" />
-    <ClInclude Include="..\..\xbmc\utils\win32\Win32Log.h" />
-    <ClInclude Include="..\..\xbmc\utils\XSLTUtils.h" />
-    <ClInclude Include="..\..\xbmc\video\FFmpegVideoDecoder.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\python\swig.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\python\XBPython.h" />
-    <ClInclude Include="..\..\xbmc\music\MusicDbUrl.h" />
-    <ClInclude Include="..\..\xbmc\music\tags\TagLibVFSStream.h" />
-    <ClInclude Include="..\..\xbmc\music\tags\TagLoaderTagLib.h" />
-    <ClInclude Include="..\..\xbmc\network\httprequesthandler\HTTPImageHandler.h" />
-    <ClInclude Include="..\..\xbmc\network\AirTunesServer.h" />
-    <ClInclude Include="..\..\xbmc\network\DllLibShairplay.h" />
-    <ClInclude Include="..\..\xbmc\network\upnp\UPnP.h" />
-    <ClInclude Include="..\..\xbmc\network\upnp\UPnPInternal.h" />
-    <ClInclude Include="..\..\xbmc\network\upnp\UPnPPlayer.h" />
-    <ClInclude Include="..\..\xbmc\network\upnp\UPnPRenderer.h" />
-    <ClInclude Include="..\..\xbmc\network\upnp\UPnPServer.h" />
-    <ClInclude Include="..\..\xbmc\network\WakeOnAccess.h" />
-    <ClInclude Include="..\..\xbmc\network\websocket\WebSocket.h" />
-    <ClInclude Include="..\..\xbmc\network\websocket\WebSocketManager.h" />
-    <ClInclude Include="..\..\xbmc\network\websocket\WebSocketV13.h" />
-    <ClInclude Include="..\..\xbmc\network\websocket\WebSocketV8.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\IJSONRPCAnnouncer.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\JSONRPCUtils.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\GUIOperations.h" />
-    <ClInclude Include="..\..\xbmc\network\httprequesthandler\HTTPJsonRpcHandler.h" />
-    <ClInclude Include="..\..\xbmc\network\httprequesthandler\HTTPVfsHandler.h" />
-    <ClInclude Include="..\..\xbmc\network\httprequesthandler\HTTPWebinterfaceAddonsHandler.h" />
-    <ClInclude Include="..\..\xbmc\network\httprequesthandler\HTTPWebinterfaceHandler.h" />
-    <ClInclude Include="..\..\xbmc\network\httprequesthandler\IHTTPRequestHandler.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\CircularCache.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\DirectoryCache.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\FavouritesDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\FileCache.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\MemBufferCache.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\AddonsDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\AFPDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\AFPFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\ASAPFileDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\BlurayDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\CacheStrategy.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\CDDADirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\CDDAFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\CurlFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\DAAPDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\DAAPFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\DAVDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\Directory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\DirectoryFactory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\DirectoryHistory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\DllLibAfp.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\DllLibCMyth.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\DllLibCurl.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\DllLibNfs.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\File.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\FileDirectoryFactory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\FileFactory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\FileReaderFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\FTPDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\FTPParse.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\HDHomeRunDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\HDHomeRunFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\HTSPDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\HTSPSession.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\HTTPDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\IDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\IFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\IFileDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\ILiveTV.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\iso9660.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\ISO9660Directory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\ISOFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\LibraryDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\MultiPathDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\MultiPathFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\MusicDatabaseDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\MusicDatabaseFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\MusicFileDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\MusicSearchDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\MythDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\MythFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\MythSession.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\NFSDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\NFSFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\NSFFileDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\OGGFileDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\PipeFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\PipesManager.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\PlaylistDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\PlaylistFileDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\PluginDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\RarDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\RarFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\RarManager.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\RSSDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\RTVDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\RTVFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\SAPDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\SAPFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\SFTPDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\SFTPFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\ShoutcastFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\SIDFileDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\SlingboxDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\SlingboxFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\SmartPlaylistDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\SourcesDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\SpecialProtocol.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\SpecialProtocolDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\SpecialProtocolFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\StackDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\TuxBoxDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\TuxBoxFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\udf25.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\UDFDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\UDFFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\UPnPDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\UPnPFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\VideoDatabaseDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\VirtualDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\VTPDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\VTPFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\VTPSession.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\ZeroconfDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\ZipDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\ZipFile.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\ZipManager.h" />
-    <ClInclude Include="..\..\xbmc\network\mdns\ZeroconfBrowserMDNS.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralImon.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\AddonsOperations.h" />
-    <ClCompile Include="..\..\xbmc\ThumbLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\ActorProtocol.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\auto_buffer.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\BooleanLogic.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\CharsetDetection.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\LegacyPathTranslation.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\MarkWatchedJob.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\RssManager.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\StringValidation.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\test\TestUrlOptions.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Utf8Utils.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\Vector.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\win32\Win32InterfaceForCLog.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\win32\Win32Log.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\XSLTUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\video\PlayerController.cpp" />
-    <ClCompile Include="..\..\xbmc\video\videosync\VideoSyncD3D.cpp" />
-    <ClCompile Include="..\..\xbmc\video\VideoThumbLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\music\MusicThumbLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\ThumbnailCache.cpp" />
-    <ClCompile Include="..\..\xbmc\URL.cpp" />
-    <ClCompile Include="..\..\xbmc\Util.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\Screenshot.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\AlarmClock.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\AliasShortcutUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\Archive.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\AsyncFileCopy.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\AutoPtrHandle.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\Base64.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\BitstreamStats.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\CharsetConverter.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\CPUInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\Crc32.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\DatabaseUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\EdenVideoArtUpdater.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\EndianSwap.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\Fanart.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\fft.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\FileOperationJob.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\FileUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\fstrcmp.c">
-      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
-      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">CompileAsCpp</CompileAs>
-      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\GroupUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\HTMLTable.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\HTMLUtil.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\HttpHeader.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\HttpParser.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\HttpResponse.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\InfoLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\JobManager.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\JSONVariantParser.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\JSONVariantWriter.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\LabelFormatter.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\LangCodeExpander.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\log.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\md5.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\Observer.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\Mime.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\PerformanceSample.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\PerformanceStats.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\POUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\RecentlyAddedJob.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\RegExp.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\RingBuffer.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\RssReader.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\SaveFileStateJob.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\ScraperParser.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\ScraperUrl.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\SeekHandler.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\SortUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\Splash.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\Stopwatch.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\StreamDetails.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\StreamUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\StringUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\SystemInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\test\TestFileOperationJob.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestFileUtils.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\Testfstrcmp.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestGlobalsHandling.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestHTMLTable.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestHTMLUtil.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestHttpHeader.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestHttpParser.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestHttpResponse.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestJobManager.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestJSONVariantParser.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestJSONVariantWriter.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestLabelFormatter.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestLangCodeExpander.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\Testlog.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestMathUtils.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\Testmd5.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestMime.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestPerformanceSample.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestPOUtils.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestRegExp.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestRingBuffer.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestScraperParser.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestScraperUrl.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestSortUtils.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestStdString.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestStopwatch.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestStreamDetails.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestStreamUtils.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestStringUtils.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestSystemInfo.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestTimeSmoother.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestTimeUtils.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestURIUtils.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestVariant.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestXBMCTinyXML.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestXMLUtils.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\TextSearch.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\test\TestAlarmClock.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestAliasShortcutUtils.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestArchive.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestAsyncFileCopy.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestBase64.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestBitstreamStats.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestCharsetConverter.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestCPUInfo.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestCrc32.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestDatabaseUtils.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestEndianSwap.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\Testfastmemcpy.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\Testfft.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\TimeSmoother.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\TimeUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\TuxBoxUtil.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\URIUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\UrlOptions.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\Variant.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\Weather.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\Environment.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\XBMCTinyXML.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\XMLUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\video\Bookmark.cpp" />
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogAudioSubtitleSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogFileStacking.cpp" />
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogFullScreenInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogSubtitles.cpp" />
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogTeletext.cpp" />
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogVideoBookmarks.cpp" />
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogVideoInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogVideoOSD.cpp" />
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogVideoOverlay.cpp" />
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogVideoSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\video\FFmpegVideoDecoder.cpp" />
-    <ClCompile Include="..\..\xbmc\video\GUIViewStateVideo.cpp" />
-    <ClCompile Include="..\..\xbmc\video\Teletext.cpp" />
-    <ClCompile Include="..\..\xbmc\video\VideoDatabase.cpp" />
-    <ClCompile Include="..\..\xbmc\video\VideoDbUrl.cpp" />
-    <ClCompile Include="..\..\xbmc\video\VideoInfoDownloader.cpp" />
-    <ClCompile Include="..\..\xbmc\video\VideoInfoScanner.cpp" />
-    <ClCompile Include="..\..\xbmc\video\VideoInfoTag.cpp" />
-    <ClCompile Include="..\..\xbmc\video\VideoReferenceClock.cpp" />
-    <ClCompile Include="..\..\xbmc\video\windows\GUIWindowFullScreen.cpp" />
-    <ClCompile Include="..\..\xbmc\video\windows\GUIWindowVideoBase.cpp" />
-    <ClCompile Include="..\..\xbmc\video\windows\GUIWindowVideoNav.cpp" />
-    <ClCompile Include="..\..\xbmc\video\windows\GUIWindowVideoPlaylist.cpp" />
-    <ClCompile Include="..\..\xbmc\view\GUIViewControl.cpp" />
-    <ClCompile Include="..\..\xbmc\view\GUIViewState.cpp" />
-    <ClCompile Include="..\..\xbmc\view\ViewDatabase.cpp" />
-    <ClCompile Include="..\..\xbmc\view\ViewStateSettings.cpp" />
-    <ClCompile Include="..\..\xbmc\win32\pch.cpp">
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">Create</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\win32\stat_utf8.cpp" />
-    <ClCompile Include="..\..\xbmc\win32\stdio_utf8.cpp" />
-    <ClCompile Include="..\..\xbmc\win32\strverscmp.cpp" />
-    <ClCompile Include="..\..\xbmc\win32\Win32DelayedDllLoad.cpp" />
-    <ClCompile Include="..\..\xbmc\win32\WIN32Util.cpp" />
-    <ClCompile Include="..\..\xbmc\win32\WindowHelper.cpp" />
-    <ClCompile Include="..\..\xbmc\win32\XBMC_PC.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DummyVideoPlayer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDAudio.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDClock.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxSPU.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxVobsub.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDFileInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamTV.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDMessage.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDMessageQueue.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDOverlayContainer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDOverlayRenderer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDPlayer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDPlayerAudio.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDPlayerSubtitle.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDPlayerTeletext.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDPlayerVideo.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDStreamInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDTSCorrection.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\Edl.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\DVDCodecUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\DVDFactoryCodec.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Audio\DVDAudioCodecFFmpeg.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoCodecFFmpeg.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoCodecLibMpeg2.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoPPFFmpeg.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DXVA.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodec.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecCC.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecFFmpeg.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecSSA.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecText.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecTX3G.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\libspucc\cc_decoder.c">
-      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
-      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">CompileAsCpp</CompileAs>
-      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemux.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxFFmpeg.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxHTSP.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxShoutcast.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxUtils.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDFactoryDemuxer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDFactoryInputStream.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStream.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamFFmpeg.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamFile.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamHTSP.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamHttp.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamMemory.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamNavigator.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamRTMP.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDStateSerializer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDFactorySubtitle.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleLineCollection.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserMicroDVD.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserMPL2.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserSami.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserSSA.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserSubrip.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserVplayer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitlesLibass.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleStream.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleTagMicroDVD.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleTagSami.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\paplayer\ASAPCodec.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\paplayer\AudioDecoder.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\paplayer\CodecFactory.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\paplayer\DVDPlayerCodec.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\paplayer\ModplugCodec.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\paplayer\NSFCodec.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\paplayer\OggCallback.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\paplayer\OGGcodec.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\paplayer\PAPlayer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\paplayer\SIDCodec.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\paplayer\SPCCodec.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\paplayer\TimidityCodec.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\paplayer\VGMCodec.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\paplayer\YMCodec.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\coff.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\dll.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\dll_tracker.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\dll_tracker_file.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\dll_tracker_library.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\dll_util.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\DllLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\DllLoaderContainer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\LibraryLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\Win32DllLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\exports\emu_dummy.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\exports\emu_kernel32.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\exports\emu_msvcrt.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\exports\util\EmuFileWrapper.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\BaseRenderer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\OverlayRenderer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\OverlayRendererDX.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\OverlayRendererUtil.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\RenderFlags.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\RenderManager.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\WinRenderer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\DXVA.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\DXVAHD.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\VideoShaders\ConvolutionKernels.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\VideoShaders\YUV2RGBShader.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\ExternalPlayer\ExternalPlayer.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\playercorefactory\PlayerCoreFactory.cpp" />
-    <ClCompile Include="..\..\xbmc\cores\playercorefactory\PlayerSelectionRule.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNode.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbum.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumCompilations.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumCompilationsSongs.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyAdded.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyAddedSong.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyPlayed.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyPlayedSong.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumTop100.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumTop100Song.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeArtist.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeOverview.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeRoot.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeSingles.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeSong.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeSongTop100.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeTop100.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeYearAlbum.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeYearSong.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\QueryParams.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNode.cpp">
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeEpisodes.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeMoviesOverview.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeMusicVideosOverview.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeOverview.cpp">
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRecentlyAddedEpisodes.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRecentlyAddedMovies.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRecentlyAddedMusicVideos.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRoot.cpp">
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeSeasons.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTitleMovies.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTitleMusicVideos.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTitleTvShows.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTvShowsOverview.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\QueryParams.cpp">
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\Addon.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\AddonManager.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\AddonStatusHandler.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\AudioEncoder.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\Scraper.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\ScreenSaver.cpp" />
-    <ClCompile Include="..\..\xbmc\addons\Visualisation.cpp" />
-    <ClCompile Include="..\..\xbmc\cdrip\CDDARipJob.cpp" />
-    <ClCompile Include="..\..\xbmc\cdrip\CDDARipper.cpp" />
-    <ClCompile Include="..\..\xbmc\cdrip\Encoder.cpp" />
-    <ClCompile Include="..\..\xbmc\cdrip\EncoderFFmpeg.cpp" />
-    <ClCompile Include="..\..\xbmc\windowing\windows\WinEventsWin32.cpp" />
-    <ClCompile Include="..\..\xbmc\windowing\windows\WinSystemWin32.cpp" />
-    <ClCompile Include="..\..\xbmc\windowing\windows\WinSystemWin32DX.cpp" />
-    <ClCompile Include="..\..\xbmc\windowing\WinEvents.cpp" />
-    <ClCompile Include="..\..\xbmc\windowing\WinSystem.cpp" />
-    <ClCompile Include="..\..\xbmc\windows\GUIMediaWindow.cpp" />
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowDebugInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowFileManager.cpp" />
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowHome.cpp" />
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowLoginScreen.cpp" />
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowPointer.cpp" />
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowScreensaver.cpp" />
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowScreensaverDim.cpp" />
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowStartup.cpp" />
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowSystemInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowWeather.cpp" />
-    <ClCompile Include="..\..\xbmc\XBApplicationEx.cpp" />
-    <ClCompile Include="..\..\xbmc\XBDateTime.cpp" />
-    <ClCompile Include="..\..\xbmc\xbmc.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\XbmcContext.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\lib\DllAvFilter.h" />
-    <ClInclude Include="..\..\lib\ffmpeg\include-xbmc-win32\libavutil\avconfig.h" />
-    <ClInclude Include="..\..\lib\SlingboxLib\SlingboxLib.h" />
-    <ClInclude Include="..\..\xbmc\addons\AddonCallbacks.h" />
-    <ClInclude Include="..\..\xbmc\addons\AddonCallbacksAddon.h" />
-    <ClInclude Include="..\..\xbmc\addons\AddonCallbacksGUI.h" />
-    <ClInclude Include="..\..\xbmc\addons\AddonCallbacksPVR.h" />
-    <ClInclude Include="..\..\xbmc\addons\AddonDatabase.h" />
-    <ClInclude Include="..\..\xbmc\addons\AddonInstaller.h" />
-    <ClInclude Include="..\..\xbmc\addons\AddonVersion.h" />
-    <ClInclude Include="..\..\xbmc\addons\DllLibCPluff.h" />
-    <ClInclude Include="..\..\xbmc\addons\DllPVRClient.h" />
-    <ClInclude Include="..\..\xbmc\addons\GUIDialogAddonInfo.h" />
-    <ClInclude Include="..\..\xbmc\addons\GUIDialogAddonSettings.h" />
-    <ClInclude Include="..\..\xbmc\addons\GUIViewStateAddonBrowser.h" />
-    <ClInclude Include="..\..\xbmc\addons\GUIWindowAddonBrowser.h" />
-    <ClInclude Include="..\..\xbmc\addons\PluginSource.h" />
-    <ClInclude Include="..\..\xbmc\addons\Repository.h" />
-    <ClInclude Include="..\..\xbmc\addons\Service.h" />
-    <ClInclude Include="..\..\xbmc\addons\Skin.h" />
-    <ClInclude Include="..\..\xbmc\Application.h" />
-    <ClInclude Include="..\..\xbmc\ApplicationMessenger.h" />
-    <ClInclude Include="..\..\xbmc\Autorun.h" />
-    <ClInclude Include="..\..\xbmc\AutoSwitch.h" />
-    <ClInclude Include="..\..\xbmc\BackgroundInfoLoader.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxPVRClient.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamBluray.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamPVRManager.h" />
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\RenderCapture.h" />
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\VideoShaders\WinVideoFilter.h" />
-    <ClInclude Include="..\..\xbmc\CueDocument.h" />
-    <ClInclude Include="..\..\xbmc\dbwrappers\Database.h" />
-    <ClInclude Include="..\..\xbmc\dbwrappers\DatabaseQuery.h" />
-    <ClInclude Include="..\..\xbmc\dbwrappers\dataset.h" />
-    <ClInclude Include="..\..\xbmc\dbwrappers\mysqldataset.h" />
-    <ClInclude Include="..\..\xbmc\dbwrappers\qry_dat.h" />
-    <ClInclude Include="..\..\xbmc\dbwrappers\sqlitedataset.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogBoxBase.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogBusy.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogButtonMenu.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogCache.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogContextMenu.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogExtendedProgressBar.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogFavourites.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogFileBrowser.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogGamepad.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogKaiToast.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogMediaSource.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogMuteBug.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogNumeric.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogOK.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogPlayEject.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogPlayerControls.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogProgress.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogSeekBar.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogSelect.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogSlider.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogSmartPlaylistEditor.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogSmartPlaylistRule.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogSubMenu.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogTextViewer.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogVolumeBar.h" />
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogYesNo.h" />
-    <ClInclude Include="..\..\xbmc\DynamicDll.h" />
-    <ClInclude Include="..\..\xbmc\epg\Epg.h" />
-    <ClInclude Include="..\..\xbmc\epg\EpgContainer.h" />
-    <ClInclude Include="..\..\xbmc\epg\EpgDatabase.h" />
-    <ClInclude Include="..\..\xbmc\epg\EpgInfoTag.h" />
-    <ClInclude Include="..\..\xbmc\epg\EpgSearchFilter.h" />
-    <ClInclude Include="..\..\xbmc\epg\GUIEPGGridContainer.h" />
-    <ClInclude Include="..\..\xbmc\FileItem.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\PVRDirectory.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\PVRFile.h" />
-    <ClInclude Include="..\..\xbmc\GUIInfoManager.h" />
-    <ClInclude Include="..\..\xbmc\GUILargeTextureManager.h" />
-    <ClInclude Include="..\..\xbmc\guilib\AnimatedGif.h" />
-    <ClInclude Include="..\..\xbmc\guilib\D3DResource.h" />
-    <ClInclude Include="..\..\xbmc\guilib\DDSImage.h" />
-    <ClInclude Include="..\..\xbmc\guilib\DirectXGraphics.h" />
-    <ClInclude Include="..\..\xbmc\guilib\DirtyRegion.h" />
-    <ClInclude Include="..\..\xbmc\guilib\DirtyRegionSolvers.h" />
-    <ClInclude Include="..\..\xbmc\guilib\DirtyRegionTracker.h" />
-    <ClInclude Include="..\..\xbmc\guilib\Geometry.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GraphicContext.h" />
-    <ClInclude Include="..\..\xbmc\guilib\gui3d.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIAction.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIAudioManager.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIBaseContainer.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIBorderedImage.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIButtonControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUICallback.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUICheckMarkControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIColorManager.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIControlFactory.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIControlGroup.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIControlGroupList.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIControlProfiler.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIDialog.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIEditControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIFadeLabelControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIFixedListContainer.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIFont.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIFontManager.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIFontTTF.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIFontTTFDX.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIImage.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIIncludes.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIInfoTypes.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUILabel.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUILabelControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIListContainer.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIListGroup.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIListItem.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIListItemLayout.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIListLabel.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIMessage.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIMoverControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIMultiImage.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIMultiSelectText.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIPanelContainer.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIProgressControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIRadioButtonControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIRenderingControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIResizeControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIRSSControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIScrollBarControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUISelectButtonControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUISettingsSliderControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIShader.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUISliderControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUISpinControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUISpinControlEx.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIStaticItem.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUITextBox.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUITextLayout.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUITexture.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUITextureD3D.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIToggleButtonControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIVideoControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIVisualisationControl.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIWindow.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIWindowManager.h" />
-    <ClInclude Include="..\..\xbmc\guilib\GUIWrappingListContainer.h" />
-    <ClInclude Include="..\..\xbmc\guilib\IAudioDeviceChangedCallback.h" />
-    <ClInclude Include="..\..\xbmc\guilib\IMsgTargetCallback.h" />
-    <ClInclude Include="..\..\xbmc\guilib\IWindowManagerCallback.h" />
-    <ClInclude Include="..\..\xbmc\guilib\JpegIO.h" />
-    <ClInclude Include="..\..\xbmc\guilib\Key.h" />
-    <ClInclude Include="..\..\xbmc\guilib\LocalizeStrings.h" />
-    <ClInclude Include="..\..\xbmc\guilib\MatrixGLES.h" />
-    <ClInclude Include="..\..\xbmc\guilib\Resolution.h" />
-    <ClInclude Include="..\..\xbmc\guilib\StereoscopicsManager.h" />
-    <ClInclude Include="..\..\xbmc\guilib\Texture.h" />
-    <ClInclude Include="..\..\xbmc\guilib\TextureBundle.h" />
-    <ClInclude Include="..\..\xbmc\guilib\TextureBundleXBT.h" />
-    <ClInclude Include="..\..\xbmc\guilib\TextureBundleXPR.h" />
-    <ClInclude Include="..\..\xbmc\guilib\TextureDX.h" />
-    <ClInclude Include="..\..\xbmc\guilib\TextureManager.h" />
-    <ClInclude Include="..\..\xbmc\guilib\TransformMatrix.h" />
-    <ClInclude Include="..\..\xbmc\guilib\Tween.h" />
-    <ClInclude Include="..\..\xbmc\guilib\VisibleEffect.h" />
-    <ClInclude Include="..\..\xbmc\guilib\XBTF.h" />
-    <ClInclude Include="..\..\xbmc\guilib\XBTFReader.h" />
-    <ClInclude Include="..\..\xbmc\GUIPassword.h" />
-    <ClInclude Include="..\..\xbmc\GUIUserMessages.h" />
-    <ClInclude Include="..\..\xbmc\input\ButtonTranslator.h" />
-    <ClInclude Include="..\..\xbmc\input\InertialScrollingHandler.h" />
-    <ClInclude Include="..\..\xbmc\input\KeyboardLayout.h" />
-    <ClInclude Include="..\..\xbmc\input\KeyboardLayoutConfiguration.h" />
-    <ClInclude Include="..\..\xbmc\input\KeyboardStat.h" />
-    <ClInclude Include="..\..\xbmc\input\MouseStat.h" />
-    <ClInclude Include="..\..\xbmc\input\windows\IRServerSuite.h" />
-    <ClInclude Include="..\..\xbmc\input\windows\IrssMessage.h" />
-    <ClInclude Include="..\..\xbmc\input\XBIRRemote.h" />
-    <ClInclude Include="..\..\xbmc\input\XBMC_keyboard.h" />
-    <ClInclude Include="..\..\xbmc\input\XBMC_keysym.h" />
-    <ClInclude Include="..\..\xbmc\input\XBMC_keytable.h" />
-    <ClInclude Include="..\..\xbmc\input\XBMC_mouse.h" />
-    <ClInclude Include="..\..\xbmc\input\XBMC_vkeys.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\AnnouncementManager.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\Builtins.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\IAnnouncer.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\info\InfoBool.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\info\InfoExpression.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\info\SkinVariable.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\ApplicationOperations.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\AudioLibrary.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\FileItemHandler.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\FileOperations.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\IClient.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\InputOperations.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\ITransportLayer.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\JSONRPC.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\JSONServiceDescription.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\JSONUtils.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\PlayerOperations.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\PlaylistOperations.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\ServiceDescription.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\SystemOperations.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\VideoLibrary.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\XBMCOperations.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\TextureOperations.h" />
-    <ClInclude Include="..\..\xbmc\IProgressCallback.h" />
-    <ClInclude Include="..\..\xbmc\LangInfo.h" />
-    <ClInclude Include="..\..\xbmc\listproviders\IListProvider.h" />
-    <ClInclude Include="..\..\xbmc\listproviders\DirectoryProvider.h" />
-    <ClInclude Include="..\..\xbmc\listproviders\StaticProvider.h" />
-    <ClInclude Include="..\..\xbmc\MediaSource.h" />
-    <ClInclude Include="..\..\xbmc\music\Album.h" />
-    <ClInclude Include="..\..\xbmc\music\Artist.h" />
-    <ClInclude Include="..\..\xbmc\music\dialogs\GUIDialogMusicInfo.h" />
-    <ClInclude Include="..\..\xbmc\music\dialogs\GUIDialogMusicOSD.h" />
-    <ClInclude Include="..\..\xbmc\music\dialogs\GUIDialogMusicOverlay.h" />
-    <ClInclude Include="..\..\xbmc\music\dialogs\GUIDialogSongInfo.h" />
-    <ClInclude Include="..\..\xbmc\music\dialogs\GUIDialogVisualisationPresetList.h" />
-    <ClInclude Include="..\..\xbmc\music\GUIViewStateMusic.h" />
-    <ClInclude Include="..\..\xbmc\music\infoscanner\MusicAlbumInfo.h" />
-    <ClInclude Include="..\..\xbmc\music\infoscanner\MusicArtistInfo.h" />
-    <ClInclude Include="..\..\xbmc\music\infoscanner\MusicInfoScanner.h" />
-    <ClInclude Include="..\..\xbmc\music\infoscanner\MusicInfoScraper.h" />
-    <ClInclude Include="..\..\xbmc\music\karaoke\cdgdata.h" />
-    <ClInclude Include="..\..\xbmc\music\karaoke\GUIDialogKaraokeSongSelector.h" />
-    <ClInclude Include="..\..\xbmc\music\karaoke\GUIWindowKaraokeLyrics.h" />
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyrics.h" />
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyricscdg.h" />
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyricsfactory.h" />
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyricsmanager.h" />
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyricstext.h" />
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyricstextkar.h" />
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyricstextlrc.h" />
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyricstextustar.h" />
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokewindowbackground.h" />
-    <ClInclude Include="..\..\xbmc\music\MusicDatabase.h" />
-    <ClInclude Include="..\..\xbmc\music\MusicInfoLoader.h" />
-    <ClInclude Include="..\..\xbmc\music\Song.h" />
-    <ClInclude Include="..\..\xbmc\music\tags\ImusicInfoTagLoader.h" />
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTag.h" />
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderASAP.h" />
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderCDDA.h" />
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderDatabase.h" />
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderFactory.h" />
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderMidi.h" />
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderNSF.h" />
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderShn.h" />
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderSPC.h" />
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderYM.h" />
-    <ClInclude Include="..\..\xbmc\music\windows\GUIWindowMusicBase.h" />
-    <ClInclude Include="..\..\xbmc\music\windows\GUIWindowMusicNav.h" />
-    <ClInclude Include="..\..\xbmc\music\windows\GUIWindowMusicPlaylist.h" />
-    <ClInclude Include="..\..\xbmc\music\windows\GUIWindowMusicPlaylistEditor.h" />
-    <ClInclude Include="..\..\xbmc\music\windows\GUIWindowMusicSongs.h" />
-    <ClInclude Include="..\..\xbmc\music\windows\GUIWindowVisualisation.h" />
-    <ClInclude Include="..\..\xbmc\network\AirPlayServer.h" />
-    <ClInclude Include="..\..\xbmc\network\cddb.h" />
-    <ClInclude Include="..\..\xbmc\network\DllLibPlist.h" />
-    <ClInclude Include="..\..\xbmc\network\DNSNameCache.h" />
-    <ClInclude Include="..\..\xbmc\network\EventClient.h" />
-    <ClInclude Include="..\..\xbmc\network\EventPacket.h" />
-    <ClInclude Include="..\..\xbmc\network\EventServer.h" />
-    <ClInclude Include="..\..\xbmc\network\GUIDialogAccessPoints.h" />
-    <ClInclude Include="..\..\xbmc\network\GUIDialogNetworkSetup.h" />
-    <ClInclude Include="..\..\xbmc\network\mdns\ZeroconfMDNS.h" />
-    <ClInclude Include="..\..\xbmc\network\Network.h" />
-    <ClInclude Include="..\..\xbmc\network\Socket.h" />
-    <ClInclude Include="..\..\xbmc\network\TCPServer.h" />
-    <ClInclude Include="..\..\xbmc\network\UdpClient.h" />
-    <ClInclude Include="..\..\xbmc\network\WebServer.h" />
-    <ClInclude Include="..\..\xbmc\network\windows\NetworkWin32.h" />
-    <ClInclude Include="..\..\xbmc\network\Zeroconf.h" />
-    <ClInclude Include="..\..\xbmc\network\ZeroconfBrowser.h" />
-    <ClInclude Include="..\..\xbmc\NfoFile.h" />
-    <ClInclude Include="..\..\xbmc\PartyModeManager.h" />
-    <ClInclude Include="..\..\xbmc\PasswordManager.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\bus\PeripheralBus.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\bus\win32\PeripheralBusUSB.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\devices\Peripheral.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralBluetooth.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralCecAdapter.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralDisk.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralHID.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralNIC.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralNyxboard.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralTuner.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\dialogs\GUIDialogPeripheralManager.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\dialogs\GUIDialogPeripheralSettings.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\Peripherals.h" />
-    <ClInclude Include="..\..\xbmc\peripherals\PeripheralTypes.h" />
-    <ClInclude Include="..\..\xbmc\pictures\DllImageLib.h" />
-    <ClInclude Include="..\..\xbmc\pictures\DllLibExif.h" />
-    <ClInclude Include="..\..\xbmc\pictures\GUIDialogPictureInfo.h" />
-    <ClInclude Include="..\..\xbmc\pictures\GUIViewStatePictures.h" />
-    <ClInclude Include="..\..\xbmc\pictures\GUIWindowPictures.h" />
-    <ClInclude Include="..\..\xbmc\pictures\GUIWindowSlideShow.h" />
-    <ClInclude Include="..\..\xbmc\pictures\Picture.h" />
-    <ClInclude Include="..\..\xbmc\pictures\PictureInfoLoader.h" />
-    <ClInclude Include="..\..\xbmc\pictures\PictureInfoTag.h" />
-    <ClInclude Include="..\..\xbmc\pictures\PictureThumbLoader.h" />
-    <ClInclude Include="..\..\xbmc\pictures\SlideShowPicture.h" />
-    <ClInclude Include="..\..\xbmc\PlayListPlayer.h" />
-    <ClInclude Include="..\..\xbmc\playlists\PlayList.h" />
-    <ClInclude Include="..\..\xbmc\playlists\PlayListB4S.h" />
-    <ClInclude Include="..\..\xbmc\playlists\PlayListFactory.h" />
-    <ClInclude Include="..\..\xbmc\playlists\PlayListM3U.h" />
-    <ClInclude Include="..\..\xbmc\playlists\PlayListPLS.h" />
-    <ClInclude Include="..\..\xbmc\playlists\PlayListURL.h" />
-    <ClInclude Include="..\..\xbmc\playlists\PlayListWPL.h" />
-    <ClInclude Include="..\..\xbmc\playlists\PlayListXML.h" />
-    <ClInclude Include="..\..\xbmc\playlists\SmartPlayList.h" />
-    <ClInclude Include="..\..\xbmc\powermanagement\DPMSSupport.h" />
-    <ClInclude Include="..\..\xbmc\powermanagement\IPowerSyscall.h" />
-    <ClInclude Include="..\..\xbmc\powermanagement\PowerManager.h" />
-    <ClInclude Include="..\..\xbmc\powermanagement\windows\Win32PowerSyscall.h" />
-    <ClInclude Include="..\..\xbmc\programs\GUIViewStatePrograms.h" />
-    <ClInclude Include="..\..\xbmc\programs\GUIWindowPrograms.h" />
-    <ClInclude Include="..\..\xbmc\pvr\addons\PVRClient.h" />
-    <ClInclude Include="..\..\xbmc\pvr\addons\PVRClients.h" />
-    <ClInclude Include="..\..\xbmc\pvr\channels\PVRChannel.h" />
-    <ClInclude Include="..\..\xbmc\pvr\channels\PVRChannelGroup.h" />
-    <ClInclude Include="..\..\xbmc\pvr\channels\PVRChannelGroupInternal.h" />
-    <ClInclude Include="..\..\xbmc\pvr\channels\PVRChannelGroups.h" />
-    <ClInclude Include="..\..\xbmc\pvr\channels\PVRChannelGroupsContainer.h" />
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRChannelManager.h" />
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRChannelsOSD.h" />
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRCutterOSD.h" />
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRDirectorOSD.h" />
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGroupManager.h" />
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGuideInfo.h" />
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGuideOSD.h" />
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGuideSearch.h" />
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRRecordingInfo.h" />
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRTimerSettings.h" />
-    <ClInclude Include="..\..\xbmc\pvr\PVRDatabase.h" />
-    <ClInclude Include="..\..\xbmc\pvr\PVRGUIInfo.h" />
-    <ClInclude Include="..\..\xbmc\pvr\PVRManager.h" />
-    <ClInclude Include="..\..\xbmc\pvr\recordings\PVRRecording.h" />
-    <ClInclude Include="..\..\xbmc\pvr\recordings\PVRRecordings.h" />
-    <ClInclude Include="..\..\xbmc\pvr\timers\PVRTimerInfoTag.h" />
-    <ClInclude Include="..\..\xbmc\pvr\timers\PVRTimers.h" />
-    <ClInclude Include="..\..\xbmc\pvr\windows\GUIViewStatePVR.h" />
-    <ClInclude Include="..\..\xbmc\pvr\windows\GUIWindowPVRBase.h" />
-    <ClInclude Include="..\..\xbmc\pvr\windows\GUIWindowPVRChannels.h" />
-    <ClInclude Include="..\..\xbmc\pvr\windows\GUIWindowPVRGuide.h" />
-    <ClInclude Include="..\..\xbmc\pvr\windows\GUIWindowPVRRecordings.h" />
-    <ClInclude Include="..\..\xbmc\pvr\windows\GUIWindowPVRSearch.h" />
-    <ClInclude Include="..\..\xbmc\pvr\windows\GUIWindowPVRTimers.h" />
-    <ClInclude Include="..\..\xbmc\rendering\dx\GUIWindowTestPatternDX.h" />
-    <ClInclude Include="..\..\xbmc\rendering\dx\RenderSystemDX.h" />
-    <ClInclude Include="..\..\xbmc\rendering\RenderSystem.h" />
-    <ClInclude Include="..\..\xbmc\SectionLoader.h" />
-    <ClInclude Include="..\..\xbmc\settings\AdvancedSettings.h" />
-    <ClInclude Include="..\..\xbmc\settings\Settings.h" />
-    <ClInclude Include="..\..\xbmc\settings\VideoSettings.h" />
-    <ClInclude Include="..\..\xbmc\SortFileItem.h" />
-    <ClInclude Include="..\..\xbmc\storage\AutorunMediaJob.h" />
-    <ClInclude Include="..\..\xbmc\storage\cdioSupport.h" />
-    <ClInclude Include="..\..\xbmc\storage\IoSupport.h" />
-    <ClInclude Include="..\..\xbmc\storage\IStorageProvider.h" />
-    <ClInclude Include="..\..\xbmc\storage\MediaManager.h" />
-    <ClInclude Include="..\..\xbmc\storage\windows\Win32StorageProvider.h" />
-    <ClInclude Include="..\..\xbmc\system.h" />
-    <ClInclude Include="..\..\xbmc\Temperature.h" />
-    <ClInclude Include="..\..\xbmc\test\TestBasicEnvironment.h">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\test\TestUtils.h">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\TextureCache.h" />
-    <ClInclude Include="..\..\xbmc\TextureCacheJob.h" />
-    <ClInclude Include="..\..\xbmc\TextureDatabase.h" />
-    <ClInclude Include="..\..\xbmc\DatabaseManager.h" />
-    <ClInclude Include="..\..\xbmc\ThumbLoader.h" />
-    <ClInclude Include="..\..\xbmc\video\PlayerController.h" />
-    <ClInclude Include="..\..\xbmc\video\videosync\VideoSync.h" />
-    <ClInclude Include="..\..\xbmc\video\videosync\VideoSyncD3D.h" />
-    <ClInclude Include="..\..\xbmc\video\VideoThumbLoader.h" />
-    <ClInclude Include="..\..\xbmc\music\MusicThumbLoader.h" />
-    <ClInclude Include="..\..\xbmc\ThumbnailCache.h" />
-    <ClInclude Include="..\..\xbmc\URL.h" />
-    <ClInclude Include="..\..\xbmc\Util.h" />
-    <ClInclude Include="..\..\xbmc\utils\Screenshot.h" />
-    <ClInclude Include="..\..\xbmc\utils\AlarmClock.h" />
-    <ClInclude Include="..\..\xbmc\utils\AliasShortcutUtils.h" />
-    <ClInclude Include="..\..\xbmc\utils\Archive.h" />
-    <ClInclude Include="..\..\xbmc\utils\AsyncFileCopy.h" />
-    <ClInclude Include="..\..\xbmc\utils\AutoPtrHandle.h" />
-    <ClInclude Include="..\..\xbmc\utils\Base64.h" />
-    <ClInclude Include="..\..\xbmc\utils\BitstreamStats.h" />
-    <ClInclude Include="..\..\xbmc\utils\CharsetConverter.h" />
-    <ClInclude Include="..\..\xbmc\utils\CPUInfo.h" />
-    <ClInclude Include="..\..\xbmc\utils\Crc32.h" />
-    <ClInclude Include="..\..\xbmc\utils\DatabaseUtils.h" />
-    <ClInclude Include="..\..\xbmc\utils\EdenVideoArtUpdater.h" />
-    <ClInclude Include="..\..\xbmc\utils\EndianSwap.h" />
-    <ClInclude Include="..\..\xbmc\utils\Fanart.h" />
-    <ClInclude Include="..\..\xbmc\utils\fft.h" />
-    <ClInclude Include="..\..\xbmc\utils\FileOperationJob.h" />
-    <ClInclude Include="..\..\xbmc\utils\FileUtils.h" />
-    <ClInclude Include="..\..\xbmc\utils\fstrcmp.h" />
-    <ClInclude Include="..\..\xbmc\utils\GlobalsHandling.h" />
-    <ClInclude Include="..\..\xbmc\utils\GroupUtils.h" />
-    <ClInclude Include="..\..\xbmc\utils\HTMLTable.h" />
-    <ClInclude Include="..\..\xbmc\utils\HTMLUtil.h" />
-    <ClInclude Include="..\..\xbmc\utils\HttpHeader.h" />
-    <ClInclude Include="..\..\xbmc\utils\HttpParser.h" />
-    <ClInclude Include="..\..\xbmc\utils\HttpResponse.h" />
-    <ClInclude Include="..\..\xbmc\utils\InfoLoader.h" />
-    <ClInclude Include="..\..\xbmc\utils\ISerializable.h" />
-    <ClInclude Include="..\..\xbmc\utils\ISortable.h" />
-    <ClInclude Include="..\..\xbmc\utils\Job.h" />
-    <ClInclude Include="..\..\xbmc\utils\JobManager.h" />
-    <ClInclude Include="..\..\xbmc\utils\JSONVariantParser.h" />
-    <ClInclude Include="..\..\xbmc\utils\JSONVariantWriter.h" />
-    <ClInclude Include="..\..\xbmc\utils\LabelFormatter.h" />
-    <ClInclude Include="..\..\xbmc\utils\LangCodeExpander.h" />
-    <ClInclude Include="..\..\xbmc\utils\log.h" />
-    <ClInclude Include="..\..\xbmc\utils\MathUtils.h" />
-    <ClInclude Include="..\..\xbmc\utils\md5.h" />
-    <ClInclude Include="..\..\xbmc\utils\Observer.h" />
-    <ClInclude Include="..\..\xbmc\utils\Mime.h" />
-    <ClInclude Include="..\..\xbmc\utils\PerformanceSample.h" />
-    <ClInclude Include="..\..\xbmc\utils\PerformanceStats.h" />
-    <ClInclude Include="..\..\xbmc\utils\POUtils.h" />
-    <ClInclude Include="..\..\xbmc\utils\RecentlyAddedJob.h" />
-    <ClInclude Include="..\..\xbmc\utils\RegExp.h" />
-    <ClInclude Include="..\..\xbmc\utils\RingBuffer.h" />
-    <ClInclude Include="..\..\xbmc\utils\RssReader.h" />
-    <ClInclude Include="..\..\xbmc\utils\SaveFileStateJob.h" />
-    <ClInclude Include="..\..\xbmc\utils\ScraperParser.h" />
-    <ClInclude Include="..\..\xbmc\utils\ScraperUrl.h" />
-    <ClInclude Include="..\..\xbmc\utils\SeekHandler.h" />
-    <ClInclude Include="..\..\xbmc\utils\SortUtils.h" />
-    <ClInclude Include="..\..\xbmc\utils\Splash.h" />
-    <ClInclude Include="..\..\xbmc\utils\StdString.h" />
-    <ClInclude Include="..\..\xbmc\utils\Stopwatch.h" />
-    <ClInclude Include="..\..\xbmc\utils\StreamDetails.h" />
-    <ClInclude Include="..\..\xbmc\utils\StreamUtils.h" />
-    <ClInclude Include="..\..\xbmc\utils\StringUtils.h" />
-    <ClInclude Include="..\..\xbmc\utils\SystemInfo.h" />
-    <ClCompile Include="..\..\xbmc\utils\test\TestGlobalsHandlingPattern1.h">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClInclude Include="..\..\xbmc\utils\TextSearch.h" />
-    <ClInclude Include="..\..\xbmc\utils\TimeSmoother.h" />
-    <ClInclude Include="..\..\xbmc\utils\TimeUtils.h" />
-    <ClInclude Include="..\..\xbmc\utils\TuxBoxUtil.h" />
-    <ClInclude Include="..\..\xbmc\utils\URIUtils.h" />
-    <ClInclude Include="..\..\xbmc\utils\UrlOptions.h" />
-    <ClInclude Include="..\..\xbmc\utils\Variant.h" />
-    <ClInclude Include="..\..\xbmc\utils\Weather.h" />
-    <ClInclude Include="..\..\xbmc\utils\Environment.h" />
-    <ClInclude Include="..\..\xbmc\utils\XBMCTinyXML.h" />
-    <ClInclude Include="..\..\xbmc\utils\XMLUtils.h" />
-    <ClInclude Include="..\..\xbmc\video\Bookmark.h" />
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogAudioSubtitleSettings.h" />
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogFileStacking.h" />
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogFullScreenInfo.h" />
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogSubtitles.h" />
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogTeletext.h" />
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogVideoBookmarks.h" />
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogVideoInfo.h" />
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogVideoOSD.h" />
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogVideoOverlay.h" />
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogVideoSettings.h" />
-    <ClInclude Include="..\..\xbmc\video\GUIViewStateVideo.h" />
-    <ClInclude Include="..\..\xbmc\video\Teletext.h" />
-    <ClInclude Include="..\..\xbmc\video\TeletextDefines.h" />
-    <ClInclude Include="..\..\xbmc\video\VideoDatabase.h" />
-    <ClInclude Include="..\..\xbmc\video\VideoDbUrl.h" />
-    <ClInclude Include="..\..\xbmc\video\VideoInfoDownloader.h" />
-    <ClInclude Include="..\..\xbmc\video\VideoInfoScanner.h" />
-    <ClInclude Include="..\..\xbmc\video\VideoInfoTag.h" />
-    <ClInclude Include="..\..\xbmc\video\VideoReferenceClock.h" />
-    <ClInclude Include="..\..\xbmc\video\windows\GUIWindowFullScreen.h" />
-    <ClInclude Include="..\..\xbmc\video\windows\GUIWindowVideoBase.h" />
-    <ClInclude Include="..\..\xbmc\video\windows\GUIWindowVideoNav.h" />
-    <ClInclude Include="..\..\xbmc\video\windows\GUIWindowVideoPlaylist.h" />
-    <ClInclude Include="..\..\xbmc\view\GUIViewControl.h" />
-    <ClInclude Include="..\..\xbmc\view\GUIViewState.h" />
-    <ClInclude Include="..\..\xbmc\view\ViewDatabase.h" />
-    <ClInclude Include="..\..\xbmc\view\ViewState.h" />
-    <ClInclude Include="..\..\xbmc\view\ViewStateSettings.h" />
-    <ClInclude Include="..\..\xbmc\win32\IMMNotificationClient.h" />
-    <ClInclude Include="..\..\xbmc\win32\pch.h" />
-    <ClInclude Include="..\..\xbmc\win32\PlatformDefs.h" />
-    <ClInclude Include="..\..\xbmc\XBDateTime.h" />
-    <ClInclude Include="..\..\xbmc\XbmcContext.h" />
-    <ClInclude Include="..\..\xbmc\win32\PlatformInclude.h" />
-    <ClInclude Include="..\..\xbmc\win32\stat_utf8.h" />
-    <ClInclude Include="..\..\xbmc\win32\stdio_utf8.h" />
-    <ClInclude Include="..\..\xbmc\win32\WIN32Util.h" />
-    <ClInclude Include="..\..\xbmc\win32\WindowHelper.h" />
-    <ClInclude Include="..\..\xbmc\cores\DummyVideoPlayer.h" />
-    <ClInclude Include="..\..\xbmc\cores\IPlayer.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDAudio.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDClock.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxSPU.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxVobsub.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDFileInfo.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamTV.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDMessage.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDMessageQueue.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDOverlayContainer.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDOverlayRenderer.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDPlayer.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDPlayerAudio.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDPlayerSubtitle.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDPlayerTeletext.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDPlayerVideo.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDStreamInfo.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDTSCorrection.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\Edl.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\IDVDPlayer.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\DVDCodecs.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\DVDCodecUtils.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\DVDFactoryCodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Audio\DVDAudioCodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Audio\DVDAudioCodecFFmpeg.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DllLibMpeg2.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoCodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoCodecFFmpeg.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoCodecLibMpeg2.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoPPFFmpeg.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DXVA.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlay.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecCC.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecFFmpeg.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecSSA.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecText.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecTX3G.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayImage.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlaySpu.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlaySSA.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayText.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\libspucc\cc_decoder.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemux.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxFFmpeg.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxHTSP.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxShoutcast.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxUtils.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDFactoryDemuxer.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DllDvdNav.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDFactoryInputStream.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStream.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamFFmpeg.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamFile.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamHTSP.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamHttp.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamMemory.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamNavigator.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamRTMP.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDStateSerializer.h" />
-    <ClInclude Include="..\..\lib\DllAvCodec.h" />
-    <ClInclude Include="..\..\lib\DllAvFormat.h" />
-    <ClInclude Include="..\..\lib\DllPostProc.h" />
-    <ClInclude Include="..\..\lib\DllSwScale.h" />
-    <ClInclude Include="..\..\lib\ffmpeg\libavformat\avformat.h" />
-    <ClInclude Include="..\..\lib\ffmpeg\libavformat\avio.h" />
-    <ClInclude Include="..\..\lib\ffmpeg\libavutil\common.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\dvd_types.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\dvdnav.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\dvdnav_events.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\dvdnav_internal.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\ifo_types.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\nav_types.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\remap.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\vm.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\vmcmd.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DllLibass.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDFactorySubtitle.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleLineCollection.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParser.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserMicroDVD.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserMPL2.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserSami.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserSSA.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserSubrip.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserVplayer.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitlesLibass.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleStream.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleTagMicroDVD.h" />
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleTagSami.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\ASAPCodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\AudioDecoder.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\CodecFactory.h" />
-    <ClInclude Include="..\..\lib\DllAdpcm.h" />
-    <ClInclude Include="..\..\lib\DllASAP.h" />
-    <ClInclude Include="..\..\lib\DllNosefart.h" />
-    <ClInclude Include="..\..\lib\DllSidplay2.h" />
-    <ClInclude Include="..\..\lib\DllStSound.h" />
-    <ClInclude Include="..\..\lib\DllTimidity.h" />
-    <ClInclude Include="..\..\lib\DllVorbisfile.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\DVDPlayerCodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\ICodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\ModplugCodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\NSFCodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\OggCallback.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\OGGcodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\PAPlayer.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\SIDCodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\SPCCodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\TimidityCodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\VGMCodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\paplayer\YMCodec.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\coff.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\coffldr.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\dll.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\dll_tracker.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\dll_tracker_file.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\dll_tracker_library.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\dll_util.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\DllLoader.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\DllLoaderContainer.h" />
-    <ClInclude Include="..\..\xbmc\DllPaths.h" />
-    <ClInclude Include="..\..\xbmc\DllPaths_win32.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\LibraryLoader.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\Win32DllLoader.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\exports\emu_dummy.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\exports\emu_kernel32.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\exports\emu_msvcrt.h" />
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\exports\util\EmuFileWrapper.h" />
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\BaseRenderer.h" />
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\OverlayRenderer.h" />
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\OverlayRendererDX.h" />
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\OverlayRendererUtil.h" />
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\RenderFlags.h" />
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\RenderManager.h" />
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\WinRenderer.h" />
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\DXVA.h" />
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\DXVAHD.h" />
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\VideoShaders\ConvolutionKernels.h" />
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\VideoShaders\YUV2RGBShader.h" />
-    <ClInclude Include="..\..\xbmc\cores\ExternalPlayer\ExternalPlayer.h" />
-    <ClInclude Include="..\..\xbmc\cores\playercorefactory\PlayerCoreConfig.h" />
-    <ClInclude Include="..\..\xbmc\cores\playercorefactory\PlayerCoreFactory.h" />
-    <ClInclude Include="..\..\xbmc\cores\playercorefactory\PlayerSelectionRule.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNode.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbum.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumCompilations.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumCompilationsSongs.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyAdded.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyAddedSong.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyPlayed.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyPlayedSong.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumTop100.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumTop100Song.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeArtist.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeOverview.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeRoot.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeSingles.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeSong.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeSongTop100.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeTop100.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeYearAlbum.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeYearSong.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\QueryParams.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNode.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeEpisodes.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeMoviesOverview.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeMusicVideosOverview.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeOverview.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRecentlyAddedEpisodes.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRecentlyAddedMovies.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRecentlyAddedMusicVideos.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRoot.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeSeasons.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTitleMovies.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTitleMusicVideos.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTitleTvShows.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTvShowsOverview.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\QueryParams.h" />
-    <ClInclude Include="..\..\xbmc\addons\Addon.h" />
-    <ClInclude Include="..\..\xbmc\addons\AddonDll.h" />
-    <ClInclude Include="..\..\xbmc\addons\AddonManager.h" />
-    <ClInclude Include="..\..\xbmc\addons\AddonStatusHandler.h" />
-    <ClInclude Include="..\..\xbmc\addons\AudioEncoder.h" />
-    <ClInclude Include="..\..\xbmc\addons\DllAddon.h" />
-    <ClInclude Include="..\..\xbmc\addons\IAddon.h" />
-    <ClInclude Include="..\..\xbmc\addons\Scraper.h" />
-    <ClInclude Include="..\..\xbmc\addons\ScreenSaver.h" />
-    <ClInclude Include="..\..\xbmc\addons\Visualisation.h" />
-    <ClInclude Include="..\..\xbmc\cdrip\CDDARipJob.h" />
-    <ClInclude Include="..\..\xbmc\cdrip\CDDARipper.h" />
-    <ClInclude Include="..\..\xbmc\cdrip\Encoder.h" />
-    <ClInclude Include="..\..\xbmc\cdrip\EncoderFFmpeg.h" />
-    <ClInclude Include="..\..\xbmc\windowing\WindowingFactory.h" />
-    <ClInclude Include="..\..\xbmc\windowing\windows\WinEventsWin32.h" />
-    <ClInclude Include="..\..\xbmc\windowing\windows\WinSystemWin32.h" />
-    <ClInclude Include="..\..\xbmc\windowing\windows\WinSystemWin32DX.h" />
-    <ClInclude Include="..\..\xbmc\windowing\WinEvents.h" />
-    <ClInclude Include="..\..\xbmc\windowing\WinSystem.h" />
-    <ClInclude Include="..\..\xbmc\windowing\XBMC_events.h" />
-    <ClInclude Include="..\..\xbmc\windows\GUIMediaWindow.h" />
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowDebugInfo.h" />
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowFileManager.h" />
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowHome.h" />
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowLoginScreen.h" />
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowPointer.h" />
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowScreensaver.h" />
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowScreensaverDim.h" />
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowStartup.h" />
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowSystemInfo.h" />
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowWeather.h" />
-    <ClInclude Include="..\..\xbmc\XBApplicationEx.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\xbmc\win32\XBMC_PC.rc">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">true</ExcludedFromBuild>
-      <AdditionalIncludeDirectories>..\..\tools\windows\packaging\media;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\lib\gtest\msvc\gtest.vcxproj" Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">
-      <Project>{c8f6c172-56f2-4e76-b5fa-c3b423b31be7}</Project>
-    </ProjectReference>
-    <ProjectReference Include="..\..\lib\libhts\Win32\libhts_2010.vcxproj">
-      <Project>{00700e12-a63b-4e54-b962-4011a90584bd}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="..\..\lib\libRTV\libRTV.vcxproj">
-      <Project>{dd4818ae-7e35-40b7-a6a0-0ff83aa1c916}</Project>
-      <Private>true</Private>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
-      <LinkLibraryDependencies>true</LinkLibraryDependencies>
-      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
-    </ProjectReference>
-    <ProjectReference Include="..\..\lib\libsquish\vs7\squish\squish_2010.vcxproj">
-      <Project>{6a8518c3-d81a-4428-bd7f-c37933088ac1}</Project>
-      <Private>true</Private>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
-      <LinkLibraryDependencies>true</LinkLibraryDependencies>
-      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
-    </ProjectReference>
-    <ProjectReference Include="..\..\lib\libXDAAP\libXDAAP_win32\libXDAAP_win32.vcxproj">
-      <Project>{19b16cd0-3b47-47b7-ab0e-81ef2bf1b187}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="libPlatinum.vcxproj">
-      <Project>{b2975495-fbe4-4f94-aac5-b21a9842bf50}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="UnrarXLib.vcxproj">
-      <Project>{fe0a91c0-e30a-47cd-8a92-a508c9292452}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-    <ProjectReference Include="XbmcCommons.vcxproj">
-      <Project>{87da0a1e-3f33-4927-a5e5-2d58f2c58e17}</Project>
-    </ProjectReference>
-    <ProjectReference Include="XbmcThreads.vcxproj">
-      <Project>{034b1d02-ca92-455d-8866-db95bee49c10}</Project>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="..\..\xbmc\interfaces\swig\AddonModuleXbmc.i">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\swig\AddonModuleXbmcaddon.i">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\swig\AddonModuleXbmcgui.i">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\swig\AddonModuleXbmcplugin.i">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\swig\AddonModuleXbmcvfs.i">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">CALL ..\..\tools\codegenerator\GenerateSWIGBindings.bat %(RelativeDir) %(Filename)</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">Generating SWIG bindings</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">%(RelativeDir)..\python\generated\%(Filename).cpp</Outputs>
-    </CustomBuild>
-  </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="..\..\xbmc\interfaces\json-rpc\schema\license.txt">
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\json-rpc\schema\methods.json">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\json-rpc\schema\notifications.json">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\json-rpc\schema\types.json">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\json-rpc\schema\version.txt">
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">Generating ServiceDescription.h for JSON-RPC API</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">CALL ..\..\tools\windows\JsonSchemaBuilder.bat</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RelativeDir)..\ServiceDescription.h</Outputs>
-    </CustomBuild>
-    <None Include="..\..\xbmc\interfaces\swig\ControlListAddItemMethods.i" />
-  </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="..\..\version.txt">
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CALL ..\..\tools\windows\CompileInfo.bat</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating CompileInfo.cpp</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\xbmc\CompileInfo.cpp;..\..\xbmc\win32\XBMC_PC.rc</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CALL ..\..\tools\windows\CompileInfo.bat</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating CompileInfo.cpp</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\xbmc\CompileInfo.cpp</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">CALL ..\..\tools\windows\CompileInfo.bat</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">Generating CompileInfo.cpp</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">..\..\xbmc\CompileInfo.cpp</Outputs>
-    </CustomBuild>
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-  <ProjectExtensions>
-    <VisualStudio>
-      <UserProperties RESOURCE_FILE="XBMC_PC.rc" />
-    </VisualStudio>
-  </ProjectExtensions>
-  <Import Project="$(SolutionDir)\$(ProjectFileName).targets.user" Condition="Exists('$(SolutionDir)\$(ProjectFileName).targets.user')" />
-</Project>
\ No newline at end of file
diff --git a/project/VS2010Express/XBMC.vcxproj.filters b/project/VS2010Express/XBMC.vcxproj.filters
deleted file mode 100644
index 7603447..0000000
--- a/project/VS2010Express/XBMC.vcxproj.filters
+++ /dev/null
@@ -1,6076 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="win32">
-      <UniqueIdentifier>{42ffe691-237e-4fe8-bd06-667936c26238}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores">
-      <UniqueIdentifier>{d9048f15-4226-45a0-bd7d-c4f326b8c232}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\dvdplayer">
-      <UniqueIdentifier>{b7e0c19a-163b-43a8-bc50-47f0f220c225}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\dvdplayer\DVDCodecs">
-      <UniqueIdentifier>{f72e399a-b2f5-4f77-a680-797306b37afe}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\dvdplayer\DVDCodecs\Audio">
-      <UniqueIdentifier>{5bee29f5-b152-4416-9413-0bed2a669575}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\dvdplayer\DVDCodecs\Video">
-      <UniqueIdentifier>{09e9057e-7017-4f3d-b5d3-2f5e9a23a53c}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\dvdplayer\DVDCodecs\Overlay">
-      <UniqueIdentifier>{cc80e830-cd3b-4790-9d73-b727b997efdc}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\dvdplayer\DVDCodecs\Overlay\libspucc">
-      <UniqueIdentifier>{43526341-7b96-462d-9f71-685e426251ec}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\dvdplayer\DVDDemuxers">
-      <UniqueIdentifier>{59ff29b6-c2b5-4ed8-a80c-e5dd130802a7}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\dvdplayer\DVDInputStreams">
-      <UniqueIdentifier>{15bea9e8-7473-4e72-93b1-c403d491160d}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\dvdplayer\DVDHeaders">
-      <UniqueIdentifier>{9b9c3d13-56db-4db5-98a3-4402ee3b4ff9}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\dvdplayer\DVDSubtitles">
-      <UniqueIdentifier>{83ae8e22-c3a0-45c6-bbc2-29d0bb180e2d}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\paplayer">
-      <UniqueIdentifier>{ef82a765-fb92-4244-b2dd-212704a98407}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\DllLoader">
-      <UniqueIdentifier>{4a0ca8db-d3a3-4360-93bd-0b1fe4cbd203}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\DllLoader\exports">
-      <UniqueIdentifier>{aa32e9d0-5753-42d5-889b-3938ce6703a0}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\DllLoader\exports\util">
-      <UniqueIdentifier>{111c81df-dc5e-4b93-a21f-c2171434952b}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\VideoRenderers">
-      <UniqueIdentifier>{09e513b1-adc6-4af0-b0f3-966b8240fad5}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\VideoRenderers\Shaders">
-      <UniqueIdentifier>{041be182-9ec3-4c1b-abfc-d92f6802e7ca}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\ExternalPlayer">
-      <UniqueIdentifier>{f98cb00a-d64b-4af9-a386-78bb2be8213d}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\PlayerCoreFactory">
-      <UniqueIdentifier>{a775e258-5cbc-44fb-b992-05b29699294c}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="addons">
-      <UniqueIdentifier>{0cf03ec7-412f-48ac-827d-358c57245edd}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="dialogs">
-      <UniqueIdentifier>{69dd6304-c5d7-46f5-a804-516c9efb79ca}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="filesystem">
-      <UniqueIdentifier>{3b63bf0d-cec2-4324-93ea-4e4d78ba283b}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="filesystem\MusicDatabaseDirectory">
-      <UniqueIdentifier>{51f1b8f6-22ea-4263-b307-4ac9dfceb268}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="filesystem\VideoDatabaseDirectory">
-      <UniqueIdentifier>{a9c70632-dcfa-4019-b785-da8ba68d998a}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="guilib">
-      <UniqueIdentifier>{8da246b5-f33b-491d-9bb9-e583b98bd9d9}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="input">
-      <UniqueIdentifier>{8b243e7b-4820-4d54-81e3-f9b054e6140a}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="interfaces">
-      <UniqueIdentifier>{d35cec4c-8037-4683-a2e4-4afc8e76ddca}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="music">
-      <UniqueIdentifier>{1e9d72b2-5215-4129-9014-deb5eda51301}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="network">
-      <UniqueIdentifier>{99523ad3-0ba1-449b-bf55-92c04e7b59aa}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="playlists">
-      <UniqueIdentifier>{084b5eb0-c9c9-444b-a2ee-dcb4f9537d35}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="powermanagement">
-      <UniqueIdentifier>{b203de13-ce8c-4b43-9a87-a05e68fbad13}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="rendering">
-      <UniqueIdentifier>{8ad88d4a-bb19-46fa-ac8a-80d928f1f175}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="settings">
-      <UniqueIdentifier>{8cd0e706-bd9f-4e99-afa2-34307239cb3e}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="storage">
-      <UniqueIdentifier>{2500f45e-2a56-4434-87bd-727050d0d1aa}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="utils">
-      <UniqueIdentifier>{acd585b0-c319-43f0-9149-b3b5dddf5122}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="video">
-      <UniqueIdentifier>{827f3a57-ac74-4ad0-a438-3a780039871c}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="windowing">
-      <UniqueIdentifier>{dbf79aa0-53a6-4bec-855b-e8d2cbb73689}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="music\karaoke">
-      <UniqueIdentifier>{9d2be696-b6dd-4be1-aa8c-260816b48c12}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cdrip">
-      <UniqueIdentifier>{d0d6c121-8cef-4bf9-aba5-bff57ae46e26}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="input\windows">
-      <UniqueIdentifier>{2f7a07e4-ac48-4e30-beb3-550e50b59c09}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="interfaces\json-rpc">
-      <UniqueIdentifier>{15fc3844-6b50-4424-ba2c-ac9bd85d3ab0}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="music\dialogs">
-      <UniqueIdentifier>{aa9c8fdb-ad2f-4323-9766-3accd596a480}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="music\infoscanner">
-      <UniqueIdentifier>{a320eb2c-1b68-4842-a9bd-34e1c810dace}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="music\tags">
-      <UniqueIdentifier>{f046be52-4abe-4a66-8a57-1753d47a7f36}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="music\windows">
-      <UniqueIdentifier>{6589445b-fe8f-4083-ba15-3d0d45b8cd2d}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="network\windows">
-      <UniqueIdentifier>{3d43220c-4ea4-4da7-8ede-ef159da2cd25}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="pictures">
-      <UniqueIdentifier>{801139f1-5f6a-4720-a4eb-508c578b1183}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="powermanagement\windows">
-      <UniqueIdentifier>{8d05ad81-2113-4732-ba2f-311d48251340}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="programs">
-      <UniqueIdentifier>{b095b471-cde0-4ee5-930e-c58ebe63c4aa}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="rendering\dx">
-      <UniqueIdentifier>{266c0d5e-8d84-4809-b060-f5968049f11a}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="storage\windows">
-      <UniqueIdentifier>{04b51f60-cfb4-43fd-8f23-40a7d0ac5c31}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="video\dialogs">
-      <UniqueIdentifier>{0dec7f48-a12d-4afa-b60d-4a2b50ca9975}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="video\windows">
-      <UniqueIdentifier>{b6a3d415-f44f-490c-9240-0fa3f4379212}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="windowing\windows">
-      <UniqueIdentifier>{7db3d8e6-a261-4732-84e8-21bf2d3b0eb9}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="libs">
-      <UniqueIdentifier>{4a09e4cc-709d-43b8-86cf-d83ca38d41ce}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="windows">
-      <UniqueIdentifier>{910f98b6-acfa-4b29-a589-21fd2544d142}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="pvr">
-      <UniqueIdentifier>{5d07f015-2e93-4085-bda3-2be566fb07a8}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="pvr\dialogs">
-      <UniqueIdentifier>{5fb53298-e501-4f23-bf84-fc61acf9b814}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="epg">
-      <UniqueIdentifier>{ef8e21c9-b588-4255-ba38-57c6ae82d0aa}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="pvr\windows">
-      <UniqueIdentifier>{43455925-2158-4eff-97ce-1fa3f6597a3a}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="pvr\timers">
-      <UniqueIdentifier>{14af7c50-6457-48ec-87b2-4efb3986bdd8}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="pvr\recordings">
-      <UniqueIdentifier>{eab084ef-b5b5-4a61-b2a5-eac88bbcc73a}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="pvr\channels">
-      <UniqueIdentifier>{7be58f63-0e53-4a26-9894-e52c2bd78709}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="pvr\addons">
-      <UniqueIdentifier>{dbfd4898-7df3-4393-8b04-ab0cc1265c33}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="libs\SlingboxLib">
-      <UniqueIdentifier>{dfa70c36-927b-4540-b505-35919e64eb3d}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="interfaces\info">
-      <UniqueIdentifier>{cea579fc-bdd7-499e-a6a6-07d681d1ab24}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="peripherals">
-      <UniqueIdentifier>{43fa1d09-88f3-4c03-92f4-27ce109a0b1f}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="peripherals\bus">
-      <UniqueIdentifier>{387fb53b-4497-4e2b-a37d-2efa9db0fce8}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="peripherals\devices">
-      <UniqueIdentifier>{a3fe63d5-92eb-47e6-90f6-40b6e25d11d2}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="peripherals\dialogs">
-      <UniqueIdentifier>{9571e2bc-891d-4496-bcba-2ec3eed45704}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="network\websocket">
-      <UniqueIdentifier>{88e84682-dede-4bdf-9e33-a8023dd5ac78}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="network\httprequesthandler">
-      <UniqueIdentifier>{9029e610-aa5a-4414-9e96-1d69f03b3bd8}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\AudioEngine">
-      <UniqueIdentifier>{19314641-c5c4-49ff-ae42-6ebcc1a6a038}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\AudioEngine\Encoders">
-      <UniqueIdentifier>{0aad3f05-0330-4d6f-9407-388b56c9aa24}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\AudioEngine\Engines">
-      <UniqueIdentifier>{1354dfbc-8fa8-4621-8fd1-f4a01fdc1c51}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\AudioEngine\Interfaces">
-      <UniqueIdentifier>{7382f639-6a03-4343-87cd-5745a838b687}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\AudioEngine\Sinks">
-      <UniqueIdentifier>{b71a9c57-2640-4506-b99e-58a9a73dd0e1}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\AudioEngine\Utils">
-      <UniqueIdentifier>{775154f3-9284-488f-8f2f-26597f264d0e}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="dbwrappers">
-      <UniqueIdentifier>{5c7ad2df-b46d-4a29-ae17-3406fe73edde}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="test">
-      <UniqueIdentifier>{18ab66ab-877f-4d79-a963-c3b0865781e0}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="utils\test">
-      <UniqueIdentifier>{216a634b-e689-418c-aca8-a3abbd2c0387}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="filesystem\test">
-      <UniqueIdentifier>{6a33362b-e68d-45ec-8bcc-057d8caf5de6}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="network\upnp">
-      <UniqueIdentifier>{89c1ccdb-5d9b-447c-91e9-7c61e5cee042}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="interfaces\swig">
-      <UniqueIdentifier>{3447ad7c-23a6-4586-856a-62fc75c2f3aa}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="interfaces\legacy">
-      <UniqueIdentifier>{9e178535-1590-42cd-a325-302f6bd8c28a}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="interfaces\python">
-      <UniqueIdentifier>{4d489407-c145-44ce-ab0a-a8da78067533}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="interfaces\python\generated">
-      <UniqueIdentifier>{4cc89394-6b5b-44db-86a2-8b71b65e85a8}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="interfaces\python\test">
-      <UniqueIdentifier>{0a84b5ee-2ad4-4ae2-9a8d-fc585c6d8aae}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="view">
-      <UniqueIdentifier>{90f512bb-8cda-4f04-b938-4f48d29bc82a}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="settings\dialogs">
-      <UniqueIdentifier>{38264422-e35f-427f-8d3d-27bc075b9bdd}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="settings\windows">
-      <UniqueIdentifier>{1a1eb956-43d1-4709-9467-ce471d54941d}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="profiles">
-      <UniqueIdentifier>{e0e6a2e7-683d-442f-bbd1-bc4e0ecd140a}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="profiles\dialogs">
-      <UniqueIdentifier>{e658a9f4-98f8-4403-aa85-a5ed7ec67868}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="profiles\windows">
-      <UniqueIdentifier>{b5a6d872-7e56-4976-81c5-47baad252337}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="input\touch">
-      <UniqueIdentifier>{4e236b17-3720-4ed8-89af-90cb86bf9b03}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="input\touch\generic">
-      <UniqueIdentifier>{d062c356-66f2-49e7-9510-b216701d2298}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="network\mdns">
-      <UniqueIdentifier>{4deb3d70-7772-42be-8884-4a550c1ff666}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="interfaces\generic">
-      <UniqueIdentifier>{4286258a-45d7-45e8-9e56-ebf18fea53ec}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="cores\AudioEngine\Engines\ActiveAE">
-      <UniqueIdentifier>{27f2c647-7b5f-4c49-b2e7-22bf360e58ab}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="listproviders">
-      <UniqueIdentifier>{1dfaf73b-2e8d-49d2-87c1-07b1ac203ba0}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="settings\lib">
-      <UniqueIdentifier>{4de9ae04-448d-4ebe-bde5-5ec2a61270c0}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="interfaces\json-rpc\schema">
-      <UniqueIdentifier>{e04e47ca-d34d-41e7-aaea-5f18cd802cd9}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="media">
-      <UniqueIdentifier>{fe89da97-8cd1-4ba3-8ef2-ae4ae5498d59}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="filesystem\win32">
-      <UniqueIdentifier>{901e970d-b3b4-463a-93ab-9af30c6a1139}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="utils\win32">
-      <UniqueIdentifier>{3adbba6a-6fbf-4192-b215-108d94bde1e0}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="video\videosync">
-      <UniqueIdentifier>{9775d5c0-c640-4606-a625-e6cdcf9f959e}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\xbmc\win32\pch.cpp">
-      <Filter>win32</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\win32\strverscmp.cpp">
-      <Filter>win32</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\win32\WIN32Util.cpp">
-      <Filter>win32</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\win32\WindowHelper.cpp">
-      <Filter>win32</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\win32\XBMC_PC.cpp">
-      <Filter>win32</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DummyVideoPlayer.cpp">
-      <Filter>cores</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDAudio.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDClock.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxSPU.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxVobsub.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDFileInfo.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamTV.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDMessage.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDMessageQueue.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDOverlayContainer.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDOverlayRenderer.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDPlayer.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDPlayerAudio.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDPlayerSubtitle.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDPlayerTeletext.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDPlayerVideo.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDStreamInfo.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDTSCorrection.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\Edl.cpp">
-      <Filter>cores\dvdplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\DVDCodecUtils.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\DVDFactoryCodec.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Audio\DVDAudioCodecFFmpeg.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs\Audio</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoCodecFFmpeg.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs\Video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoCodecLibMpeg2.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs\Video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoPPFFmpeg.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs\Video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DXVA.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs\Video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodec.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecCC.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecFFmpeg.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecSSA.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecText.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecTX3G.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\libspucc\cc_decoder.c">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay\libspucc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemux.cpp">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxFFmpeg.cpp">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxHTSP.cpp">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxShoutcast.cpp">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxUtils.cpp">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDFactoryDemuxer.cpp">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDFactoryInputStream.cpp">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStream.cpp">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamFFmpeg.cpp">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamFile.cpp">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamHTSP.cpp">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamHttp.cpp">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamMemory.cpp">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamNavigator.cpp">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamRTMP.cpp">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDStateSerializer.cpp">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDFactorySubtitle.cpp">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleLineCollection.cpp">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserMicroDVD.cpp">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserMPL2.cpp">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserSami.cpp">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserSSA.cpp">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserSubrip.cpp">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserVplayer.cpp">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitlesLibass.cpp">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleStream.cpp">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\paplayer\ASAPCodec.cpp">
-      <Filter>cores\paplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\paplayer\AudioDecoder.cpp">
-      <Filter>cores\paplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\paplayer\CodecFactory.cpp">
-      <Filter>cores\paplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\paplayer\DVDPlayerCodec.cpp">
-      <Filter>cores\paplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\paplayer\ModplugCodec.cpp">
-      <Filter>cores\paplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\paplayer\NSFCodec.cpp">
-      <Filter>cores\paplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\paplayer\OggCallback.cpp">
-      <Filter>cores\paplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\paplayer\OGGcodec.cpp">
-      <Filter>cores\paplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\paplayer\PAPlayer.cpp">
-      <Filter>cores\paplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\paplayer\SIDCodec.cpp">
-      <Filter>cores\paplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\paplayer\SPCCodec.cpp">
-      <Filter>cores\paplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\paplayer\TimidityCodec.cpp">
-      <Filter>cores\paplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\paplayer\VGMCodec.cpp">
-      <Filter>cores\paplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\paplayer\YMCodec.cpp">
-      <Filter>cores\paplayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\coff.cpp">
-      <Filter>cores\DllLoader</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\dll.cpp">
-      <Filter>cores\DllLoader</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\dll_tracker.cpp">
-      <Filter>cores\DllLoader</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\dll_tracker_file.cpp">
-      <Filter>cores\DllLoader</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\dll_tracker_library.cpp">
-      <Filter>cores\DllLoader</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\dll_util.cpp">
-      <Filter>cores\DllLoader</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\DllLoader.cpp">
-      <Filter>cores\DllLoader</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\DllLoaderContainer.cpp">
-      <Filter>cores\DllLoader</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\LibraryLoader.cpp">
-      <Filter>cores\DllLoader</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\Win32DllLoader.cpp">
-      <Filter>cores\DllLoader</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\exports\emu_dummy.cpp">
-      <Filter>cores\DllLoader\exports</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\exports\emu_kernel32.cpp">
-      <Filter>cores\DllLoader\exports</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\exports\emu_msvcrt.cpp">
-      <Filter>cores\DllLoader\exports</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DllLoader\exports\util\EmuFileWrapper.cpp">
-      <Filter>cores\DllLoader\exports\util</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\BaseRenderer.cpp">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\OverlayRenderer.cpp">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\OverlayRendererDX.cpp">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\OverlayRendererUtil.cpp">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\RenderFlags.cpp">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\RenderManager.cpp">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\WinRenderer.cpp">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\DXVA.cpp">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\DXVAHD.cpp">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\VideoShaders\ConvolutionKernels.cpp">
-      <Filter>cores\VideoRenderers\Shaders</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\VideoShaders\YUV2RGBShader.cpp">
-      <Filter>cores\VideoRenderers\Shaders</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\ExternalPlayer\ExternalPlayer.cpp">
-      <Filter>cores\ExternalPlayer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\playercorefactory\PlayerCoreFactory.cpp">
-      <Filter>cores\PlayerCoreFactory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\playercorefactory\PlayerSelectionRule.cpp">
-      <Filter>cores\PlayerCoreFactory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNode.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbum.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumCompilations.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumCompilationsSongs.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyAdded.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyAddedSong.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyPlayed.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyPlayedSong.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumTop100.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumTop100Song.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeArtist.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeOverview.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeRoot.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeSingles.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeSong.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeSongTop100.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeTop100.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeYearAlbum.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeYearSong.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\QueryParams.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNode.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeEpisodes.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeMoviesOverview.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeMusicVideosOverview.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeOverview.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRecentlyAddedEpisodes.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRecentlyAddedMovies.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRecentlyAddedMusicVideos.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRoot.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeSeasons.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTitleMovies.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTitleMusicVideos.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTitleTvShows.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTvShowsOverview.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\QueryParams.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\Addon.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\AddonManager.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\AddonStatusHandler.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\AudioEncoder.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\Scraper.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\ScreenSaver.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\Visualisation.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\Repository.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\Skin.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\PluginSource.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\VideoShaders\WinVideoFilter.cpp">
-      <Filter>cores\VideoRenderers\Shaders</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleTagMicroDVD.cpp">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleTagSami.cpp">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamBluray.cpp">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\Service.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIDialog.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\MediaSource.cpp" />
-    <ClCompile Include="..\..\xbmc\MediaSource.cpp" />
-    <ClCompile Include="..\..\xbmc\MediaSource.cpp" />
-    <ClCompile Include="..\..\xbmc\music\karaoke\GUIDialogKaraokeSongSelector.cpp">
-      <Filter>music\karaoke</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\karaoke\GUIWindowKaraokeLyrics.cpp">
-      <Filter>music\karaoke</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyrics.cpp">
-      <Filter>music\karaoke</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyricscdg.cpp">
-      <Filter>music\karaoke</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyricsfactory.cpp">
-      <Filter>music\karaoke</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyricsmanager.cpp">
-      <Filter>music\karaoke</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyricstext.cpp">
-      <Filter>music\karaoke</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyricstextkar.cpp">
-      <Filter>music\karaoke</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyricstextlrc.cpp">
-      <Filter>music\karaoke</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokelyricstextustar.cpp">
-      <Filter>music\karaoke</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokewindowbackground.cpp">
-      <Filter>music\karaoke</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\Album.cpp">
-      <Filter>music</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\Artist.cpp">
-      <Filter>music</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\GUIViewStateMusic.cpp">
-      <Filter>music</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\MusicInfoLoader.cpp">
-      <Filter>music</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\Song.cpp">
-      <Filter>music</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cdrip\CDDARipper.cpp">
-      <Filter>cdrip</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cdrip\CDDARipJob.cpp">
-      <Filter>cdrip</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cdrip\Encoder.cpp">
-      <Filter>cdrip</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cdrip\EncoderFFmpeg.cpp">
-      <Filter>cdrip</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\GUIDialogAddonInfo.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\GUIDialogAddonSettings.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogBoxBase.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogBusy.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogButtonMenu.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogContextMenu.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogFavourites.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogFileBrowser.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogGamepad.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogKaiToast.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogMediaSource.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogMuteBug.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogNumeric.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogOK.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogPlayerControls.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogProgress.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogSeekBar.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogSelect.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogSlider.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogSmartPlaylistEditor.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogSmartPlaylistRule.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogSubMenu.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogTextViewer.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogVolumeBar.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogYesNo.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\Application.cpp" />
-    <ClCompile Include="..\..\xbmc\MediaSource.cpp" />
-    <ClCompile Include="..\..\xbmc\SystemGlobals.cpp" />
-    <ClCompile Include="..\..\xbmc\xbmc.cpp" />
-    <ClCompile Include="..\..\xbmc\guilib\AnimatedGif.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\D3DResource.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\DDSImage.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\DirectXGraphics.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIAudioManager.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIBaseContainer.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIBorderedImage.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIButtonControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUICheckMarkControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIColorManager.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIControlFactory.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIControlGroup.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIControlGroupList.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIControlProfiler.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIEditControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIFadeLabelControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIFixedListContainer.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIFont.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIFontManager.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIImage.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIIncludes.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIInfoTypes.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUILabel.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUILabelControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIListContainer.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIListGroup.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIListItem.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIListItemLayout.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIListLabel.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIMessage.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIMoverControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIMultiImage.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIMultiSelectText.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIPanelContainer.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIProgressControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIRadioButtonControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIRenderingControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIResizeControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIRSSControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIScrollBarControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUISelectButtonControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUISettingsSliderControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIShader.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUISliderControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUISpinControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUISpinControlEx.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIStaticItem.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUITextBox.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUITextLayout.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIToggleButtonControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIVideoControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIVisualisationControl.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIWindow.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIWindowManager.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIWrappingListContainer.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\IWindowManagerCallback.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\Key.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\LocalizeStrings.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\MatrixGLES.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\TextureBundle.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\TextureBundleXBT.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\TextureBundleXPR.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\VisibleEffect.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\XBTF.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\XBTFReader.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\input\ButtonTranslator.cpp">
-      <Filter>input</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\input\KeyboardLayout.cpp">
-      <Filter>input</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\input\KeyboardLayoutConfiguration.cpp">
-      <Filter>input</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\input\KeyboardStat.cpp">
-      <Filter>input</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\input\MouseStat.cpp">
-      <Filter>input</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\input\windows\IRServerSuite.cpp">
-      <Filter>input\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\input\windows\IrssMessage.cpp">
-      <Filter>input\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\AudioLibrary.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\FileItemHandler.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\FileOperations.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\JSONRPC.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\PlayerOperations.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\PlaylistOperations.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\SystemOperations.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\VideoLibrary.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\XBMCOperations.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\TextureOperations.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\dialogs\GUIDialogMusicInfo.cpp">
-      <Filter>music\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\dialogs\GUIDialogMusicOSD.cpp">
-      <Filter>music\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\dialogs\GUIDialogMusicOverlay.cpp">
-      <Filter>music\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\dialogs\GUIDialogSongInfo.cpp">
-      <Filter>music\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\dialogs\GUIDialogVisualisationPresetList.cpp">
-      <Filter>music\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\infoscanner\MusicAlbumInfo.cpp">
-      <Filter>music\infoscanner</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\infoscanner\MusicArtistInfo.cpp">
-      <Filter>music\infoscanner</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\infoscanner\MusicInfoScanner.cpp">
-      <Filter>music\infoscanner</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\infoscanner\MusicInfoScraper.cpp">
-      <Filter>music\infoscanner</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\windows\GUIWindowMusicBase.cpp">
-      <Filter>music\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\windows\GUIWindowMusicNav.cpp">
-      <Filter>music\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\windows\GUIWindowMusicPlaylist.cpp">
-      <Filter>music\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\windows\GUIWindowMusicPlaylistEditor.cpp">
-      <Filter>music\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\windows\GUIWindowMusicSongs.cpp">
-      <Filter>music\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\windows\GUIWindowVisualisation.cpp">
-      <Filter>music\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTag.cpp">
-      <Filter>music\tags</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderASAP.cpp">
-      <Filter>music\tags</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderCDDA.cpp">
-      <Filter>music\tags</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderDatabase.cpp">
-      <Filter>music\tags</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderFactory.cpp">
-      <Filter>music\tags</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderMidi.cpp">
-      <Filter>music\tags</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderNSF.cpp">
-      <Filter>music\tags</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderShn.cpp">
-      <Filter>music\tags</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderSPC.cpp">
-      <Filter>music\tags</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\tags\MusicInfoTagLoaderYM.cpp">
-      <Filter>music\tags</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\cddb.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\DNSNameCache.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\EventClient.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\EventPacket.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\EventServer.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\GUIDialogAccessPoints.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\GUIDialogNetworkSetup.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\Network.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\Socket.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\TCPServer.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\UdpClient.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\WakeOnAccess.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\WebServer.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\Zeroconf.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\windows\NetworkWin32.cpp">
-      <Filter>network\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pictures\GUIDialogPictureInfo.cpp">
-      <Filter>pictures</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pictures\GUIViewStatePictures.cpp">
-      <Filter>pictures</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pictures\GUIWindowPictures.cpp">
-      <Filter>pictures</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pictures\GUIWindowSlideShow.cpp">
-      <Filter>pictures</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pictures\Picture.cpp">
-      <Filter>pictures</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pictures\PictureInfoLoader.cpp">
-      <Filter>pictures</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pictures\PictureInfoTag.cpp">
-      <Filter>pictures</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pictures\SlideShowPicture.cpp">
-      <Filter>pictures</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\playlists\PlayList.cpp">
-      <Filter>playlists</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\playlists\PlayListB4S.cpp">
-      <Filter>playlists</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\playlists\PlayListFactory.cpp">
-      <Filter>playlists</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\playlists\PlayListM3U.cpp">
-      <Filter>playlists</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\playlists\PlayListPLS.cpp">
-      <Filter>playlists</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\playlists\PlayListURL.cpp">
-      <Filter>playlists</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\playlists\PlayListWPL.cpp">
-      <Filter>playlists</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\playlists\PlayListXML.cpp">
-      <Filter>playlists</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\playlists\SmartPlayList.cpp">
-      <Filter>playlists</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\powermanagement\PowerManager.cpp">
-      <Filter>powermanagement</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\powermanagement\windows\Win32PowerSyscall.cpp">
-      <Filter>powermanagement\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\programs\GUIViewStatePrograms.cpp">
-      <Filter>programs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\programs\GUIWindowPrograms.cpp">
-      <Filter>programs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\rendering\RenderSystem.cpp">
-      <Filter>rendering</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\rendering\dx\GUIWindowTestPatternDX.cpp">
-      <Filter>rendering\dx</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\rendering\dx\RenderSystemDX.cpp">
-      <Filter>rendering\dx</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\AdvancedSettings.cpp">
-      <Filter>settings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\Settings.cpp">
-      <Filter>settings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\VideoSettings.cpp">
-      <Filter>settings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\storage\AutorunMediaJob.cpp">
-      <Filter>storage</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\storage\cdioSupport.cpp">
-      <Filter>storage</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\storage\IoSupport.cpp">
-      <Filter>storage</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\storage\MediaManager.cpp">
-      <Filter>storage</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\storage\windows\Win32StorageProvider.cpp">
-      <Filter>storage\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\AlarmClock.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\AliasShortcutUtils.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Archive.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\AsyncFileCopy.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\AutoPtrHandle.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\BitstreamStats.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\CharsetConverter.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\CPUInfo.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Crc32.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Fanart.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\fft.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\FileOperationJob.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\FileUtils.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\fstrcmp.c">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\HTMLTable.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\HTMLUtil.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\HttpHeader.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\InfoLoader.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\JobManager.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\LabelFormatter.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\log.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\md5.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\PerformanceSample.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\PerformanceStats.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\RegExp.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\RingBuffer.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\RssReader.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\SaveFileStateJob.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\ScraperParser.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\ScraperUrl.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Splash.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Stopwatch.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\StreamDetails.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\StreamUtils.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\StringUtils.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\SystemInfo.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\TimeSmoother.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\TimeUtils.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\TuxBoxUtil.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\URIUtils.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Variant.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Weather.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\XMLUtils.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\Bookmark.cpp">
-      <Filter>video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\GUIViewStateVideo.cpp">
-      <Filter>video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\Teletext.cpp">
-      <Filter>video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\VideoInfoDownloader.cpp">
-      <Filter>video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\VideoInfoScanner.cpp">
-      <Filter>video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\VideoInfoTag.cpp">
-      <Filter>video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\VideoReferenceClock.cpp">
-      <Filter>video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogAudioSubtitleSettings.cpp">
-      <Filter>video\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogFileStacking.cpp">
-      <Filter>video\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogFullScreenInfo.cpp">
-      <Filter>video\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogSubtitles.cpp">
-      <Filter>video\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogTeletext.cpp">
-      <Filter>video\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogVideoBookmarks.cpp">
-      <Filter>video\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogVideoInfo.cpp">
-      <Filter>video\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogVideoOSD.cpp">
-      <Filter>video\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogVideoOverlay.cpp">
-      <Filter>video\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\dialogs\GUIDialogVideoSettings.cpp">
-      <Filter>video\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\windows\GUIWindowFullScreen.cpp">
-      <Filter>video\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\windows\GUIWindowVideoBase.cpp">
-      <Filter>video\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\windows\GUIWindowVideoNav.cpp">
-      <Filter>video\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\windows\GUIWindowVideoPlaylist.cpp">
-      <Filter>video\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windowing\WinSystem.cpp">
-      <Filter>windowing</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windowing\windows\WinEventsWin32.cpp">
-      <Filter>windowing\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windowing\windows\WinSystemWin32.cpp">
-      <Filter>windowing\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windowing\windows\WinSystemWin32DX.cpp">
-      <Filter>windowing\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\GUIViewStateAddonBrowser.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\GUIWindowAddonBrowser.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogCache.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\Builtins.cpp">
-      <Filter>interfaces</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\AnnouncementManager.cpp">
-      <Filter>interfaces</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\powermanagement\DPMSSupport.cpp">
-      <Filter>powermanagement</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windows\GUIMediaWindow.cpp">
-      <Filter>windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowDebugInfo.cpp">
-      <Filter>windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowFileManager.cpp">
-      <Filter>windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowHome.cpp">
-      <Filter>windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowLoginScreen.cpp">
-      <Filter>windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowPointer.cpp">
-      <Filter>windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowScreensaver.cpp">
-      <Filter>windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowScreensaverDim.cpp">
-      <Filter>windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowStartup.cpp">
-      <Filter>windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowSystemInfo.cpp">
-      <Filter>windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windows\GUIWindowWeather.cpp">
-      <Filter>windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\LangCodeExpander.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\MediaSource.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\AddonInstaller.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\epg\Epg.cpp">
-      <Filter>epg</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\epg\EpgContainer.cpp">
-      <Filter>epg</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\epg\EpgDatabase.cpp">
-      <Filter>epg</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\epg\EpgInfoTag.cpp">
-      <Filter>epg</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\epg\EpgSearchFilter.cpp">
-      <Filter>epg</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\PVRDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\PVRFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Observer.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamPVRManager.cpp">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxPVRClient.cpp">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\TextSearch.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\win32\stdio_utf8.cpp">
-      <Filter>win32</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\win32\stat_utf8.cpp">
-      <Filter>win32</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\windows\GUIWindowPVRBase.cpp">
-      <Filter>pvr\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\timers\PVRTimerInfoTag.cpp">
-      <Filter>pvr\timers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\timers\PVRTimers.cpp">
-      <Filter>pvr\timers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\recordings\PVRRecording.cpp">
-      <Filter>pvr\recordings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\recordings\PVRRecordings.cpp">
-      <Filter>pvr\recordings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRChannelManager.cpp">
-      <Filter>pvr\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRChannelsOSD.cpp">
-      <Filter>pvr\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRCutterOSD.cpp">
-      <Filter>pvr\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRDirectorOSD.cpp">
-      <Filter>pvr\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGroupManager.cpp">
-      <Filter>pvr\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGuideInfo.cpp">
-      <Filter>pvr\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGuideOSD.cpp">
-      <Filter>pvr\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGuideSearch.cpp">
-      <Filter>pvr\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRRecordingInfo.cpp">
-      <Filter>pvr\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRTimerSettings.cpp">
-      <Filter>pvr\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\channels\PVRChannel.cpp">
-      <Filter>pvr\channels</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\channels\PVRChannelGroup.cpp">
-      <Filter>pvr\channels</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\channels\PVRChannelGroupInternal.cpp">
-      <Filter>pvr\channels</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\channels\PVRChannelGroups.cpp">
-      <Filter>pvr\channels</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\channels\PVRChannelGroupsContainer.cpp">
-      <Filter>pvr\channels</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\addons\PVRClient.cpp">
-      <Filter>pvr\addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogExtendedProgressBar.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\PVRDatabase.cpp">
-      <Filter>pvr</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\PVRManager.cpp">
-      <Filter>pvr</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\RenderCapture.cpp">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\windows\GUIViewStatePVR.cpp">
-      <Filter>pvr\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\windows\GUIWindowPVRChannels.cpp">
-      <Filter>pvr\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\windows\GUIWindowPVRGuide.cpp">
-      <Filter>pvr\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\windows\GUIWindowPVRRecordings.cpp">
-      <Filter>pvr\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\windows\GUIWindowPVRSearch.cpp">
-      <Filter>pvr\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\windows\GUIWindowPVRTimers.cpp">
-      <Filter>pvr\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\addons\PVRClients.cpp">
-      <Filter>pvr\addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\AddonCallbacks.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\AddonCallbacksAddon.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\AddonCallbacksGUI.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\AddonCallbacksPVR.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\SlingboxLib\SlingboxLib.cpp">
-      <Filter>libs\SlingboxLib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogPlayEject.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\pvr\PVRGUIInfo.cpp">
-      <Filter>pvr</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\JSONServiceDescription.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\win32\Win32DelayedDllLoad.cpp">
-      <Filter>win32</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\InputOperations.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\epg\GUIEPGGridContainer.cpp">
-      <Filter>epg</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\input\XBMC_keytable.cpp">
-      <Filter>input</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\JSONVariantParser.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\JSONVariantWriter.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\AddonVersion.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\DirtyRegionSolvers.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\DirtyRegionTracker.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\input\InertialScrollingHandler.cpp">
-      <Filter>input</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\info\InfoBool.cpp">
-      <Filter>interfaces\info</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\info\InfoExpression.cpp">
-      <Filter>interfaces\info</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIAction.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\ApplicationOperations.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\JpegIO.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\info\SkinVariable.cpp">
-      <Filter>interfaces\info</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\AirPlayServer.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\HttpParser.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\mdns\ZeroconfMDNS.cpp">
-      <Filter>network\mdns</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\Peripherals.cpp">
-      <Filter>peripherals</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\bus\PeripheralBus.cpp">
-      <Filter>peripherals\bus</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\devices\Peripheral.cpp">
-      <Filter>peripherals\devices</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralCecAdapter.cpp">
-      <Filter>peripherals\devices</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralDisk.cpp">
-      <Filter>peripherals\devices</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralHID.cpp">
-      <Filter>peripherals\devices</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralNIC.cpp">
-      <Filter>peripherals\devices</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralNyxboard.cpp">
-      <Filter>peripherals\devices</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\bus\win32\PeripheralBusUSB.cpp">
-      <Filter>peripherals\bus</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralBluetooth.cpp">
-      <Filter>peripherals\devices</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralTuner.cpp">
-      <Filter>peripherals\devices</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\dialogs\GUIDialogPeripheralManager.cpp">
-      <Filter>peripherals\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\dialogs\GUIDialogPeripheralSettings.cpp">
-      <Filter>peripherals\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\AddonsDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\AFPDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\httprequesthandler\HTTPVfsHandler.cpp">
-      <Filter>network\httprequesthandler</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\XBMCTinyXML.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Base64.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\HttpResponse.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\websocket\WebSocket.cpp">
-      <Filter>network\websocket</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\websocket\WebSocketV8.cpp">
-      <Filter>network\websocket</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\websocket\WebSocketManager.cpp">
-      <Filter>network\websocket</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\websocket\WebSocketV13.cpp">
-      <Filter>network\websocket</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\GUIOperations.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Mime.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\httprequesthandler\HTTPWebinterfaceHandler.cpp">
-      <Filter>network\httprequesthandler</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\httprequesthandler\HTTPWebinterfaceAddonsHandler.cpp">
-      <Filter>network\httprequesthandler</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\httprequesthandler\HTTPJsonRpcHandler.cpp">
-      <Filter>network\httprequesthandler</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\httprequesthandler\IHTTPRequestHandler.cpp">
-      <Filter>network\httprequesthandler</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\AFPFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\ASAPFileDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\BlurayDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\CacheStrategy.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\CDDADirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\CDDAFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\CurlFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\DAAPDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\DAAPFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\DAVDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\Directory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\DirectoryFactory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\DirectoryHistory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\DllLibCurl.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\File.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\FileDirectoryFactory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\FileFactory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\FileReaderFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\FTPDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\FTPParse.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\HDHomeRunDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\HDHomeRunFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\HTSPDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\HTSPSession.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\HTTPDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\IDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\IFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\iso9660.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\ISO9660Directory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\ISOFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\LibraryDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\MultiPathDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\MultiPathFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\MusicDatabaseDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\MusicDatabaseFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\MusicFileDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\MusicSearchDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\MythDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\MythFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\MythSession.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\NFSDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\NFSFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\NptXbmcFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\NSFFileDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\OGGFileDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\PipeFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\PipesManager.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\PlaylistDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\PlaylistFileDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\PluginDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\RarDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\RarFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\RarManager.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\RSSDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\RTVDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\RTVFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\SAPDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\SAPFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\SFTPDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\SFTPFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\ShoutcastFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\SIDFileDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\SlingboxDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\SlingboxFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\SmartPlaylistDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\SourcesDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\SpecialProtocol.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\SpecialProtocolDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\SpecialProtocolFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\StackDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\TuxBoxDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\TuxBoxFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\udf25.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\UDFDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\UDFFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\UPnPDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\UPnPFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\VideoDatabaseDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\VirtualDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\VTPDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\VTPFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\VTPSession.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\ZeroconfDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\ZipDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\ZipFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\ZipManager.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\CircularCache.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\DirectoryCache.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\FavouritesDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\FileCache.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\MemBufferCache.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\MediaSource.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\XbmcContext.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\POUtils.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\XbmcContext.cpp" />
-    <ClCompile Include="..\..\xbmc\network\ZeroconfBrowser.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\mdns\ZeroconfBrowserMDNS.cpp">
-      <Filter>network\mdns</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Encoders\AEEncoderFFmpeg.cpp">
-      <Filter>cores\AudioEngine\Encoders</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\AEFactory.cpp">
-      <Filter>cores\AudioEngine</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\AEResampleFactory.cpp">
-      <Filter>cores\AudioEngine</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\AESinkFactory.cpp">
-      <Filter>cores\AudioEngine</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Sinks\AESinkDirectSound.cpp">
-      <Filter>cores\AudioEngine\Sinks</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Sinks\AESinkNULL.cpp">
-      <Filter>cores\AudioEngine\Sinks</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Sinks\AESinkWASAPI.cpp">
-      <Filter>cores\AudioEngine\Sinks</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEBitstreamPacker.cpp">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEBuffer.cpp">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEChannelInfo.cpp">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEPackIEC61937.cpp">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEStreamInfo.cpp">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEUtil.cpp">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEDeviceInfo.cpp">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Audio\DVDAudioCodecPassthrough.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs\Audio</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GraphicContext.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIFontTTF.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUITexture.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\StereoscopicsManager.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\Texture.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\TextureManager.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIFontTTFDX.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUITextureD3D.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\TextureDX.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\AddonDatabase.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\MusicDatabase.cpp">
-      <Filter>music</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\VideoDatabase.cpp">
-      <Filter>video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Screenshot.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\ApplicationMessenger.cpp" />
-    <ClCompile Include="..\..\xbmc\Autorun.cpp" />
-    <ClCompile Include="..\..\xbmc\AutoSwitch.cpp" />
-    <ClCompile Include="..\..\xbmc\DynamicDll.cpp" />
-    <ClCompile Include="..\..\xbmc\CueDocument.cpp" />
-    <ClCompile Include="..\..\xbmc\FileItem.cpp" />
-    <ClCompile Include="..\..\xbmc\GUIInfoManager.cpp" />
-    <ClCompile Include="..\..\xbmc\GUIPassword.cpp" />
-    <ClCompile Include="..\..\xbmc\LangInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\NfoFile.cpp" />
-    <ClCompile Include="..\..\xbmc\PartyModeManager.cpp" />
-    <ClCompile Include="..\..\xbmc\PasswordManager.cpp" />
-    <ClCompile Include="..\..\xbmc\SectionLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\Temperature.cpp" />
-    <ClCompile Include="..\..\xbmc\TextureCache.cpp" />
-    <ClCompile Include="..\..\xbmc\TextureCacheJob.cpp" />
-    <ClCompile Include="..\..\xbmc\TextureDatabase.cpp" />
-    <ClCompile Include="..\..\xbmc\DatabaseManager.cpp" />
-    <ClCompile Include="..\..\xbmc\ThumbnailCache.cpp" />
-    <ClCompile Include="..\..\xbmc\URL.cpp" />
-    <ClCompile Include="..\..\xbmc\Util.cpp" />
-    <ClCompile Include="..\..\xbmc\XBApplicationEx.cpp" />
-    <ClCompile Include="..\..\xbmc\XBDateTime.cpp" />
-    <ClCompile Include="..\..\xbmc\GUILargeTextureManager.cpp" />
-    <ClCompile Include="..\..\xbmc\ThumbLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\BackgroundInfoLoader.cpp" />
-    <ClCompile Include="..\..\xbmc\pictures\PictureThumbLoader.cpp">
-      <Filter>pictures</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\MusicThumbLoader.cpp">
-      <Filter>music</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\VideoThumbLoader.cpp">
-      <Filter>video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dbwrappers\Database.cpp">
-      <Filter>dbwrappers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dbwrappers\DatabaseQuery.cpp">
-      <Filter>dbwrappers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dbwrappers\dataset.cpp">
-      <Filter>dbwrappers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dbwrappers\qry_dat.cpp">
-      <Filter>dbwrappers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dbwrappers\mysqldataset.cpp">
-      <Filter>dbwrappers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dbwrappers\sqlitedataset.cpp">
-      <Filter>dbwrappers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\PlayListPlayer.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\RecentlyAddedJob.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\input\windows\WINJoystick.cpp">
-      <Filter>input\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\ImageFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\httprequesthandler\HTTPImageHandler.cpp">
-      <Filter>network\httprequesthandler</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\AirTunesServer.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\SeekHandler.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\SortUtils.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\DatabaseUtils.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\karaoke\karaokevideobackground.cpp">
-      <Filter>music\karaoke</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\EdenVideoArtUpdater.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\EndianSwap.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\GUIKeyboardFactory.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogKeyboardGeneric.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralImon.cpp">
-      <Filter>peripherals\devices</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\VideoDbUrl.cpp">
-      <Filter>video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\DbUrl.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\UrlOptions.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\MusicDbUrl.cpp">
-      <Filter>music</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\test\TestBasicEnvironment.cpp">
-      <Filter>test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\test\TestUtils.cpp">
-      <Filter>test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\test\xbmc-test.cpp">
-      <Filter>test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestAlarmClock.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestAliasShortcutUtils.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestArchive.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestAsyncFileCopy.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestBase64.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestBitstreamStats.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestCharsetConverter.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestCPUInfo.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestCrc32.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestDatabaseUtils.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestEndianSwap.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\Testfastmemcpy.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\Testfft.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestFileOperationJob.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestFileUtils.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\Testfstrcmp.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestGlobalsHandling.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestHTMLTable.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestHTMLUtil.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestHttpHeader.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestHttpParser.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestHttpResponse.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestJobManager.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestJSONVariantParser.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestJSONVariantWriter.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestLabelFormatter.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestLangCodeExpander.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\Testlog.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestMathUtils.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\Testmd5.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestMime.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestPerformanceSample.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestPOUtils.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestRegExp.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestRingBuffer.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestScraperParser.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestScraperUrl.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestSortUtils.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestStdString.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestStopwatch.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestStreamDetails.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestStreamUtils.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestStringUtils.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestSystemInfo.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestTimeSmoother.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestTimeUtils.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestURIUtils.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestVariant.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestXMLUtils.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestXBMCTinyXML.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestGlobalsHandlingPattern1.h">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\test\TestDirectory.cpp">
-      <Filter>filesystem\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\test\TestFile.cpp">
-      <Filter>filesystem\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\test\TestFileFactory.cpp">
-      <Filter>filesystem\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\test\TestRarFile.cpp">
-      <Filter>filesystem\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\test\TestZipFile.cpp">
-      <Filter>filesystem\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\upnp\UPnP.cpp">
-      <Filter>network\upnp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\upnp\UPnPInternal.cpp">
-      <Filter>network\upnp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\upnp\UPnPPlayer.cpp">
-      <Filter>network\upnp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\upnp\UPnPRenderer.cpp">
-      <Filter>network\upnp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\upnp\UPnPServer.cpp">
-      <Filter>network\upnp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\Addon.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\AddonCallback.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\AddonClass.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\AddonUtils.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\CallbackFunction.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\CallbackHandler.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\Control.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\Dialog.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\File.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\InfoTagMusic.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\InfoTagVideo.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\Keyboard.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\LanguageHook.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\ListItem.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\ModuleXbmc.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\ModuleXbmcgui.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\ModuleXbmcplugin.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\ModuleXbmcvfs.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\Monitor.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\Player.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\PlayList.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\String.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\Window.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\WindowDialog.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\WindowDialogMixin.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\legacy\WindowXML.cpp">
-      <Filter>interfaces\legacy</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\python\CallbackHandler.cpp">
-      <Filter>interfaces\python</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\python\LanguageHook.cpp">
-      <Filter>interfaces\python</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\python\swig.cpp">
-      <Filter>interfaces\python</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\python\XBPython.cpp">
-      <Filter>interfaces\python</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\python\generated\AddonModuleXbmc.cpp">
-      <Filter>interfaces\python\generated</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\python\generated\AddonModuleXbmcaddon.cpp">
-      <Filter>interfaces\python\generated</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\python\generated\AddonModuleXbmcgui.cpp">
-      <Filter>interfaces\python\generated</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\python\generated\AddonModuleXbmcplugin.cpp">
-      <Filter>interfaces\python\generated</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\python\generated\AddonModuleXbmcvfs.cpp">
-      <Filter>interfaces\python\generated</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\tags\TagLibVFSStream.cpp">
-      <Filter>music\tags</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\music\tags\TagLoaderTagLib.cpp">
-      <Filter>music\tags</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\python\test\TestSwig.cpp">
-      <Filter>interfaces\python\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\AddonsOperations.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxBXA.cpp">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\dialogs\GUIDialogMediaFilter.cpp">
-      <Filter>dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\test\TestFileItem.cpp">
-      <Filter>test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\test\TestTextureUtils.cpp">
-      <Filter>test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\PVROperations.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\HTTPFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\GroupUtils.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AELimiter.cpp">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\test\TestUrlOptions.cpp">
-      <Filter>utils\test</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\python\PyContext.cpp">
-      <Filter>interfaces\python</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\FFmpegVideoDecoder.cpp">
-      <Filter>video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\view\GUIViewControl.cpp">
-      <Filter>view</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\view\GUIViewState.cpp">
-      <Filter>view</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\view\ViewDatabase.cpp">
-      <Filter>view</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\imagefactory.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\guilib\cximage.cpp">
-      <Filter>guilib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\DAVFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\DAVCommon.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\peripherals\bus\virtual\PeripheralBusCEC.cpp">
-      <Filter>peripherals\bus</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\upnp\UPnPSettings.cpp">
-      <Filter>network\upnp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\AppParamParser.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogContentSettings.cpp">
-      <Filter>settings\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettings.cpp">
-      <Filter>settings\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettingsCategory.cpp">
-      <Filter>settings\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettingsScreenCalibration.cpp">
-      <Filter>settings\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowTestPattern.cpp">
-      <Filter>settings\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\RssManager.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\SkinSettings.cpp">
-      <Filter>settings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\MediaSourceSettings.cpp">
-      <Filter>settings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\view\ViewStateSettings.cpp">
-      <Filter>view</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\MediaSettings.cpp">
-      <Filter>settings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\DisplaySettings.cpp">
-      <Filter>settings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\profiles\dialogs\GUIDialogLockSettings.cpp">
-      <Filter>profiles\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\profiles\dialogs\GUIDialogProfileSettings.cpp">
-      <Filter>profiles\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\profiles\windows\GUIWindowSettingsProfile.cpp">
-      <Filter>profiles\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\profiles\Profile.cpp">
-      <Filter>profiles</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\profiles\ProfilesManager.cpp">
-      <Filter>profiles</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\input\touch\generic\GenericTouchActionHandler.cpp">
-      <Filter>input\touch\generic</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\input\touch\generic\GenericTouchSwipeDetector.cpp">
-      <Filter>input\touch\generic</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\input\touch\ITouchInputHandling.cpp">
-      <Filter>input\touch</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Vector.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\PlayerController.cpp">
-      <Filter>video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\VideoDatabaseDirectory\DirectoryNodeGrouped.cpp">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\MusicDatabaseDirectory\DirectoryNodeGrouped.cpp">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\windows\GUIControlSettings.cpp">
-      <Filter>settings\windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\SettingControl.cpp">
-      <Filter>settings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\network\NetworkServices.cpp">
-      <Filter>network</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\BooleanLogic.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\SettingAddon.cpp">
-      <Filter>settings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\SettingPath.cpp">
-      <Filter>settings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\FavouritesOperations.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxCDDA.cpp">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Environment.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\LegacyPathTranslation.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\generic\LanguageInvokerThread.cpp">
-      <Filter>interfaces\generic</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\generic\ScriptInvocationManager.cpp">
-      <Filter>interfaces\generic</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\python\PythonInvoker.cpp">
-      <Filter>interfaces\python</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\addons\AddonCallbacksCodec.cpp">
-      <Filter>addons</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\ProfilesOperations.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAE.cpp">
-      <Filter>cores\AudioEngine\Engines\ActiveAE</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAEBuffer.cpp">
-      <Filter>cores\AudioEngine\Engines\ActiveAE</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAEResampleFFMPEG.cpp">
-      <Filter>cores\AudioEngine\Engines\ActiveAE</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAESink.cpp">
-      <Filter>cores\AudioEngine\Engines\ActiveAE</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAESound.cpp">
-      <Filter>cores\AudioEngine\Engines\ActiveAE</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAEStream.cpp">
-      <Filter>cores\AudioEngine\Engines\ActiveAE</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\ActorProtocol.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\ApplicationPlayer.cpp" />
-    <ClCompile Include="..\..\xbmc\interfaces\python\AddonPythonInvoker.cpp">
-      <Filter>interfaces\python</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\StringValidation.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\windowing\WinEvents.cpp">
-      <Filter>windowing</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\playlists\SmartPlaylistFileItemListModifier.cpp">
-      <Filter>playlists</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileItemListModification.cpp" />
-    <ClCompile Include="..\..\xbmc\settings\lib\ISettingControl.cpp">
-      <Filter>settings\lib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\lib\ISetting.cpp">
-      <Filter>settings\lib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\lib\Setting.cpp">
-      <Filter>settings\lib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\lib\SettingCategoryAccess.cpp">
-      <Filter>settings\lib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\lib\SettingConditions.cpp">
-      <Filter>settings\lib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\lib\SettingDependency.cpp">
-      <Filter>settings\lib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\lib\SettingRequirement.cpp">
-      <Filter>settings\lib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\lib\SettingSection.cpp">
-      <Filter>settings\lib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\lib\SettingsManager.cpp">
-      <Filter>settings\lib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\lib\SettingUpdate.cpp">
-      <Filter>settings\lib</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\CharsetDetection.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\OverlayRendererGUI.cpp">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\interfaces\json-rpc\SettingsOperations.cpp">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\listproviders\IListProvider.cpp">
-      <Filter>listproviders</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\listproviders\DirectoryProvider.cpp">
-      <Filter>listproviders</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\listproviders\StaticProvider.cpp">
-      <Filter>listproviders</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\Utf8Utils.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\XSLTUtils.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoCodec.cpp">
-      <Filter>cores\dvdplayer\DVDCodecs\Video</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\FFmpeg.cpp">
-      <Filter>cores</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\media\MediaType.cpp">
-      <Filter>media</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogSettingsBase.cpp">
-      <Filter>settings\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogSettingsManagerBase.cpp">
-      <Filter>settings\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\SettingCreator.cpp">
-      <Filter>settings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\SettingConditions.cpp">
-      <Filter>settings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogSettingsManualBase.cpp">
-      <Filter>settings\dialogs</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\settings\SettingUtils.cpp">
-      <Filter>settings</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\win32\Win32Directory.cpp">
-      <Filter>filesystem\win32</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\CompileInfo.cpp" />
-    <ClCompile Include="..\..\xbmc\utils\auto_buffer.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\win32\Win32SMBDirectory.cpp">
-      <Filter>filesystem\win32</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\win32\Win32InterfaceForCLog.cpp">
-      <Filter>utils\win32</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\win32\Win32Log.cpp">
-      <Filter>utils\win32</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\win32\Win32File.cpp">
-      <Filter>filesystem\win32</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\win32\Win32SMBFile.cpp">
-      <Filter>filesystem\win32</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\utils\MarkWatchedJob.cpp">
-      <Filter>utils</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\filesystem\BlurayFile.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\video\videosync\VideoSyncD3D.cpp">
-      <Filter>video\videosync</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\cores\DataCacheCore.cpp">
-      <Filter>cores</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\xbmc\win32\pch.h">
-      <Filter>win32</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\win32\PlatformDefs.h">
-      <Filter>win32</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\win32\WIN32Util.h">
-      <Filter>win32</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\win32\WindowHelper.h">
-      <Filter>win32</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DummyVideoPlayer.h">
-      <Filter>cores</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\IPlayer.h">
-      <Filter>cores</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDAudio.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDClock.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxSPU.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxVobsub.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDFileInfo.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamTV.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDMessage.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDMessageQueue.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDOverlayContainer.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDOverlayRenderer.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDPlayer.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDPlayerAudio.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDPlayerSubtitle.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDPlayerTeletext.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDPlayerVideo.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDStreamInfo.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDTSCorrection.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\Edl.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\IDVDPlayer.h">
-      <Filter>cores\dvdplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\DVDCodecs.h">
-      <Filter>cores\dvdplayer\DVDCodecs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\DVDCodecUtils.h">
-      <Filter>cores\dvdplayer\DVDCodecs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\DVDFactoryCodec.h">
-      <Filter>cores\dvdplayer\DVDCodecs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Audio\DVDAudioCodec.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Audio</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Audio\DVDAudioCodecFFmpeg.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Audio</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DllLibMpeg2.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoCodec.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoCodecFFmpeg.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoCodecLibMpeg2.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoPPFFmpeg.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DXVA.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlay.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodec.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecCC.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecFFmpeg.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecSSA.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecText.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayCodecTX3G.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayImage.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlaySpu.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlaySSA.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\DVDOverlayText.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Overlay\libspucc\cc_decoder.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Overlay\libspucc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemux.h">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxFFmpeg.h">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxHTSP.h">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxShoutcast.h">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxUtils.h">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDFactoryDemuxer.h">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DllDvdNav.h">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDFactoryInputStream.h">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStream.h">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamFFmpeg.h">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamFile.h">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamHTSP.h">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamHttp.h">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamMemory.h">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamNavigator.h">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamRTMP.h">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDStateSerializer.h">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\DllAvCodec.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\DllAvFormat.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\DllPostProc.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\DllSwScale.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\ffmpeg\libavformat\avformat.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\ffmpeg\libavutil\common.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\ffmpeg\libavformat\avio.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\dvd_types.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\dvdnav.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\dvdnav_events.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\dvdnav_internal.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\ifo_types.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\nav_types.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\remap.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\vm.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\dvdnav\vmcmd.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DllLibass.h">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDFactorySubtitle.h">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleLineCollection.h">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParser.h">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserMicroDVD.h">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserMPL2.h">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserSami.h">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserSSA.h">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserSubrip.h">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleParserVplayer.h">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitlesLibass.h">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleStream.h">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\ASAPCodec.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\AudioDecoder.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\CodecFactory.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\DllAdpcm.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\DllASAP.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\DllNosefart.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\DllSidplay2.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\DllStSound.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\DllTimidity.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\DllVorbisfile.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\DVDPlayerCodec.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\ICodec.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\ModplugCodec.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\NSFCodec.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\OggCallback.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\OGGcodec.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\PAPlayer.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\SIDCodec.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\SPCCodec.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\TimidityCodec.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\VGMCodec.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\paplayer\YMCodec.h">
-      <Filter>cores\paplayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\coff.h">
-      <Filter>cores\DllLoader</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\coffldr.h">
-      <Filter>cores\DllLoader</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\dll.h">
-      <Filter>cores\DllLoader</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\dll_tracker.h">
-      <Filter>cores\DllLoader</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\dll_tracker_file.h">
-      <Filter>cores\DllLoader</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\dll_tracker_library.h">
-      <Filter>cores\DllLoader</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\dll_util.h">
-      <Filter>cores\DllLoader</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\DllLoader.h">
-      <Filter>cores\DllLoader</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\DllLoaderContainer.h">
-      <Filter>cores\DllLoader</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\DllPaths.h">
-      <Filter>cores\DllLoader</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\DllPaths_win32.h">
-      <Filter>cores\DllLoader</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\LibraryLoader.h">
-      <Filter>cores\DllLoader</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\Win32DllLoader.h">
-      <Filter>cores\DllLoader</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\exports\emu_dummy.h">
-      <Filter>cores\DllLoader\exports</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\exports\emu_kernel32.h">
-      <Filter>cores\DllLoader\exports</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\exports\emu_msvcrt.h">
-      <Filter>cores\DllLoader\exports</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DllLoader\exports\util\EmuFileWrapper.h">
-      <Filter>cores\DllLoader\exports\util</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\BaseRenderer.h">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\OverlayRenderer.h">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\OverlayRendererDX.h">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\OverlayRendererUtil.h">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\RenderFlags.h">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\RenderManager.h">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\WinRenderer.h">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\DXVA.h">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\DXVAHD.h">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\VideoShaders\ConvolutionKernels.h">
-      <Filter>cores\VideoRenderers\Shaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\VideoShaders\YUV2RGBShader.h">
-      <Filter>cores\VideoRenderers\Shaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\ExternalPlayer\ExternalPlayer.h">
-      <Filter>cores\ExternalPlayer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\playercorefactory\PlayerCoreConfig.h">
-      <Filter>cores\PlayerCoreFactory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\playercorefactory\PlayerCoreFactory.h">
-      <Filter>cores\PlayerCoreFactory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\playercorefactory\PlayerSelectionRule.h">
-      <Filter>cores\PlayerCoreFactory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNode.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbum.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumCompilations.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumCompilationsSongs.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyAdded.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyAddedSong.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyPlayed.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumRecentlyPlayedSong.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumTop100.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeAlbumTop100Song.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeArtist.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeOverview.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeRoot.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeSingles.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeSong.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeSongTop100.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeTop100.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeYearAlbum.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNodeYearSong.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\QueryParams.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNode.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeEpisodes.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeMoviesOverview.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeMusicVideosOverview.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeOverview.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRecentlyAddedEpisodes.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRecentlyAddedMovies.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRecentlyAddedMusicVideos.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeRoot.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeSeasons.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTitleMovies.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTitleMusicVideos.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTitleTvShows.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\DirectoryNodeTvShowsOverview.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\VideoDatabaseDirectory\QueryParams.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\Addon.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\AddonDll.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\AddonManager.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\AddonStatusHandler.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\AudioEncoder.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\DllAddon.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\IAddon.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\Scraper.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\ScreenSaver.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\Visualisation.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\Repository.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\Skin.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\PluginSource.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\VideoShaders\WinVideoFilter.h">
-      <Filter>cores\VideoRenderers\Shaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleTagMicroDVD.h">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDSubtitles\DVDSubtitleTagSami.h">
-      <Filter>cores\dvdplayer\DVDSubtitles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamBluray.h">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\Service.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIDialog.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\karaoke\cdgdata.h">
-      <Filter>music\karaoke</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\karaoke\GUIDialogKaraokeSongSelector.h">
-      <Filter>music\karaoke</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\karaoke\GUIWindowKaraokeLyrics.h">
-      <Filter>music\karaoke</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyrics.h">
-      <Filter>music\karaoke</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyricscdg.h">
-      <Filter>music\karaoke</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyricsfactory.h">
-      <Filter>music\karaoke</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyricsmanager.h">
-      <Filter>music\karaoke</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyricstext.h">
-      <Filter>music\karaoke</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyricstextkar.h">
-      <Filter>music\karaoke</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyricstextlrc.h">
-      <Filter>music\karaoke</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokelyricstextustar.h">
-      <Filter>music\karaoke</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokewindowbackground.h">
-      <Filter>music\karaoke</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\Album.h">
-      <Filter>music</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\Artist.h">
-      <Filter>music</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\GUIViewStateMusic.h">
-      <Filter>music</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\MusicInfoLoader.h">
-      <Filter>music</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\Song.h">
-      <Filter>music</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cdrip\CDDARipJob.h">
-      <Filter>cdrip</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cdrip\CDDARipper.h">
-      <Filter>cdrip</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cdrip\Encoder.h">
-      <Filter>cdrip</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cdrip\EncoderFFmpeg.h">
-      <Filter>cdrip</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\DllLibCPluff.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\GUIDialogAddonInfo.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\GUIDialogAddonSettings.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogBoxBase.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogBusy.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogButtonMenu.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogContextMenu.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogFavourites.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogFileBrowser.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogGamepad.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogKaiToast.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogMediaSource.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogMuteBug.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogNumeric.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogOK.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogPlayerControls.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogProgress.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogSeekBar.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogSelect.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogSlider.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogSmartPlaylistEditor.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogSmartPlaylistRule.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogSubMenu.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogTextViewer.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogVolumeBar.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogYesNo.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\Application.h" />
-    <ClInclude Include="..\..\xbmc\system.h" />
-    <ClInclude Include="..\..\xbmc\guilib\AnimatedGif.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\D3DResource.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\DDSImage.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\DirectXGraphics.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\Geometry.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\gui3d.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIAudioManager.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIBaseContainer.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIBorderedImage.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIButtonControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUICallback.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUICheckMarkControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIColorManager.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIControlFactory.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIControlGroup.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIControlGroupList.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIControlProfiler.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIEditControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIFadeLabelControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIFixedListContainer.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIFont.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIFontManager.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIImage.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIIncludes.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIInfoTypes.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUILabel.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUILabelControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIListContainer.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIListGroup.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIListItem.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIListItemLayout.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIListLabel.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIMessage.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIMoverControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIMultiImage.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIMultiSelectText.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIPanelContainer.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIProgressControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIRadioButtonControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIRenderingControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIResizeControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIRSSControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIScrollBarControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUISelectButtonControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUISettingsSliderControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIShader.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUISliderControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUISpinControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUISpinControlEx.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIStaticItem.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUITextBox.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUITextLayout.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIToggleButtonControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIVideoControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIVisualisationControl.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIWindow.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIWindowManager.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIWrappingListContainer.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\IAudioDeviceChangedCallback.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\IMsgTargetCallback.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\IWindowManagerCallback.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\Key.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\LocalizeStrings.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\MatrixGLES.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\Resolution.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\TextureBundle.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\TextureBundleXBT.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\TextureBundleXPR.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\TransformMatrix.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\Tween.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\VisibleEffect.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\XBTF.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\XBTFReader.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\ButtonTranslator.h">
-      <Filter>input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\KeyboardLayout.h">
-      <Filter>input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\KeyboardLayoutConfiguration.h">
-      <Filter>input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\KeyboardStat.h">
-      <Filter>input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\MouseStat.h">
-      <Filter>input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\XBIRRemote.h">
-      <Filter>input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\XBMC_keyboard.h">
-      <Filter>input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\XBMC_keysym.h">
-      <Filter>input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\XBMC_mouse.h">
-      <Filter>input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\XBMC_vkeys.h">
-      <Filter>input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\windows\IRServerSuite.h">
-      <Filter>input\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\windows\IrssMessage.h">
-      <Filter>input\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\AudioLibrary.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\FileItemHandler.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\FileOperations.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\IClient.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\ITransportLayer.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\JSONRPC.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\JSONUtils.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\PlayerOperations.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\PlaylistOperations.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\SystemOperations.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\VideoLibrary.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\XBMCOperations.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\TextureOperations.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\dialogs\GUIDialogMusicInfo.h">
-      <Filter>music\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\dialogs\GUIDialogMusicOSD.h">
-      <Filter>music\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\dialogs\GUIDialogMusicOverlay.h">
-      <Filter>music\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\dialogs\GUIDialogSongInfo.h">
-      <Filter>music\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\dialogs\GUIDialogVisualisationPresetList.h">
-      <Filter>music\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\infoscanner\MusicAlbumInfo.h">
-      <Filter>music\infoscanner</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\infoscanner\MusicArtistInfo.h">
-      <Filter>music\infoscanner</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\infoscanner\MusicInfoScanner.h">
-      <Filter>music\infoscanner</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\infoscanner\MusicInfoScraper.h">
-      <Filter>music\infoscanner</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\windows\GUIWindowMusicBase.h">
-      <Filter>music\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\windows\GUIWindowMusicNav.h">
-      <Filter>music\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\windows\GUIWindowMusicPlaylist.h">
-      <Filter>music\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\windows\GUIWindowMusicPlaylistEditor.h">
-      <Filter>music\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\windows\GUIWindowMusicSongs.h">
-      <Filter>music\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\windows\GUIWindowVisualisation.h">
-      <Filter>music\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\tags\ImusicInfoTagLoader.h">
-      <Filter>music\tags</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTag.h">
-      <Filter>music\tags</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderASAP.h">
-      <Filter>music\tags</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderCDDA.h">
-      <Filter>music\tags</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderDatabase.h">
-      <Filter>music\tags</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderFactory.h">
-      <Filter>music\tags</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderMidi.h">
-      <Filter>music\tags</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderNSF.h">
-      <Filter>music\tags</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderShn.h">
-      <Filter>music\tags</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderSPC.h">
-      <Filter>music\tags</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\tags\MusicInfoTagLoaderYM.h">
-      <Filter>music\tags</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\cddb.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\DNSNameCache.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\EventClient.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\EventPacket.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\EventServer.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\GUIDialogAccessPoints.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\GUIDialogNetworkSetup.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\Network.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\Socket.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\TCPServer.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\UdpClient.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\WakeOnAccess.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\WebServer.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\Zeroconf.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\windows\NetworkWin32.h">
-      <Filter>network\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pictures\DllImageLib.h">
-      <Filter>pictures</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pictures\DllLibExif.h">
-      <Filter>pictures</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pictures\GUIDialogPictureInfo.h">
-      <Filter>pictures</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pictures\GUIViewStatePictures.h">
-      <Filter>pictures</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pictures\GUIWindowPictures.h">
-      <Filter>pictures</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pictures\GUIWindowSlideShow.h">
-      <Filter>pictures</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pictures\Picture.h">
-      <Filter>pictures</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pictures\PictureInfoLoader.h">
-      <Filter>pictures</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pictures\PictureInfoTag.h">
-      <Filter>pictures</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pictures\SlideShowPicture.h">
-      <Filter>pictures</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\playlists\PlayList.h">
-      <Filter>playlists</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\playlists\PlayListB4S.h">
-      <Filter>playlists</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\playlists\PlayListFactory.h">
-      <Filter>playlists</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\playlists\PlayListM3U.h">
-      <Filter>playlists</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\playlists\PlayListPLS.h">
-      <Filter>playlists</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\playlists\PlayListURL.h">
-      <Filter>playlists</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\playlists\PlayListWPL.h">
-      <Filter>playlists</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\playlists\PlayListXML.h">
-      <Filter>playlists</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\playlists\SmartPlayList.h">
-      <Filter>playlists</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\powermanagement\IPowerSyscall.h">
-      <Filter>powermanagement</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\powermanagement\PowerManager.h">
-      <Filter>powermanagement</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\powermanagement\windows\Win32PowerSyscall.h">
-      <Filter>powermanagement\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\programs\GUIViewStatePrograms.h">
-      <Filter>programs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\programs\GUIWindowPrograms.h">
-      <Filter>programs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\rendering\RenderSystem.h">
-      <Filter>rendering</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\rendering\dx\GUIWindowTestPatternDX.h">
-      <Filter>rendering\dx</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\rendering\dx\RenderSystemDX.h">
-      <Filter>rendering\dx</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\AdvancedSettings.h">
-      <Filter>settings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\Settings.h">
-      <Filter>settings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\VideoSettings.h">
-      <Filter>settings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\storage\AutorunMediaJob.h">
-      <Filter>storage</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\storage\cdioSupport.h">
-      <Filter>storage</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\storage\IoSupport.h">
-      <Filter>storage</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\storage\IStorageProvider.h">
-      <Filter>storage</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\storage\MediaManager.h">
-      <Filter>storage</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\storage\windows\Win32StorageProvider.h">
-      <Filter>storage\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\AlarmClock.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\AliasShortcutUtils.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Archive.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\AsyncFileCopy.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\AutoPtrHandle.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\BitstreamStats.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\CharsetConverter.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\CPUInfo.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Crc32.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\EdenVideoArtUpdater.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\EndianSwap.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Fanart.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\fft.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\FileOperationJob.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\FileUtils.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\fstrcmp.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\HTMLTable.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\HTMLUtil.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\HttpHeader.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\InfoLoader.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\ISerializable.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Job.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\JobManager.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\LabelFormatter.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\log.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\MathUtils.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\md5.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\PerformanceSample.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\PerformanceStats.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\RegExp.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\RingBuffer.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\RssReader.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\SaveFileStateJob.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\ScraperParser.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\ScraperUrl.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Splash.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\StdString.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Stopwatch.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\StreamDetails.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\StreamUtils.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\StringUtils.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\SystemInfo.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\TimeSmoother.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\TimeUtils.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\TuxBoxUtil.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\URIUtils.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Variant.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Weather.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\XMLUtils.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\Bookmark.h">
-      <Filter>video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\GUIViewStateVideo.h">
-      <Filter>video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\Teletext.h">
-      <Filter>video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\TeletextDefines.h">
-      <Filter>video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\VideoInfoDownloader.h">
-      <Filter>video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\VideoInfoScanner.h">
-      <Filter>video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\VideoInfoTag.h">
-      <Filter>video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\VideoReferenceClock.h">
-      <Filter>video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogAudioSubtitleSettings.h">
-      <Filter>video\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogFileStacking.h">
-      <Filter>video\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogFullScreenInfo.h">
-      <Filter>video\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogSubtitles.h">
-      <Filter>video\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogTeletext.h">
-      <Filter>video\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogVideoBookmarks.h">
-      <Filter>video\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogVideoInfo.h">
-      <Filter>video\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogVideoOSD.h">
-      <Filter>video\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogVideoOverlay.h">
-      <Filter>video\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\dialogs\GUIDialogVideoSettings.h">
-      <Filter>video\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\windows\GUIWindowFullScreen.h">
-      <Filter>video\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\windows\GUIWindowVideoBase.h">
-      <Filter>video\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\windows\GUIWindowVideoNav.h">
-      <Filter>video\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\windows\GUIWindowVideoPlaylist.h">
-      <Filter>video\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windowing\WindowingFactory.h">
-      <Filter>windowing</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windowing\WinEvents.h">
-      <Filter>windowing</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windowing\WinSystem.h">
-      <Filter>windowing</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windowing\XBMC_events.h">
-      <Filter>windowing</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windowing\windows\WinEventsWin32.h">
-      <Filter>windowing\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windowing\windows\WinSystemWin32.h">
-      <Filter>windowing\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windowing\windows\WinSystemWin32DX.h">
-      <Filter>windowing\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\GUIViewStateAddonBrowser.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\GUIWindowAddonBrowser.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogCache.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\Builtins.h">
-      <Filter>interfaces</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\IAnnouncer.h">
-      <Filter>interfaces</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\AnnouncementManager.h">
-      <Filter>interfaces</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\powermanagement\DPMSSupport.h">
-      <Filter>powermanagement</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windows\GUIMediaWindow.h">
-      <Filter>windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowDebugInfo.h">
-      <Filter>windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowFileManager.h">
-      <Filter>windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowHome.h">
-      <Filter>windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowLoginScreen.h">
-      <Filter>windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowPointer.h">
-      <Filter>windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowScreensaver.h">
-      <Filter>windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowScreensaverDim.h">
-      <Filter>windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowStartup.h">
-      <Filter>windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowSystemInfo.h">
-      <Filter>windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\windows\GUIWindowWeather.h">
-      <Filter>windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\LangCodeExpander.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\AddonInstaller.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\epg\EpgSearchFilter.h">
-      <Filter>epg</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\epg\Epg.h">
-      <Filter>epg</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\epg\EpgContainer.h">
-      <Filter>epg</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\epg\EpgDatabase.h">
-      <Filter>epg</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\epg\EpgInfoTag.h">
-      <Filter>epg</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\PVRFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\PVRDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\DllPVRClient.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Observer.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDInputStreams\DVDInputStreamPVRManager.h">
-      <Filter>cores\dvdplayer\DVDInputStreams</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxPVRClient.h">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\TextSearch.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\win32\stdio_utf8.h">
-      <Filter>win32</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\win32\stat_utf8.h">
-      <Filter>win32</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\ffmpeg\include-xbmc-win32\libavutil\avconfig.h" />
-    <ClInclude Include="..\..\xbmc\pvr\windows\GUIWindowPVRBase.h">
-      <Filter>pvr\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\timers\PVRTimers.h">
-      <Filter>pvr\timers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\timers\PVRTimerInfoTag.h">
-      <Filter>pvr\timers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\recordings\PVRRecordings.h">
-      <Filter>pvr\recordings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\recordings\PVRRecording.h">
-      <Filter>pvr\recordings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRTimerSettings.h">
-      <Filter>pvr\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRChannelManager.h">
-      <Filter>pvr\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRChannelsOSD.h">
-      <Filter>pvr\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRCutterOSD.h">
-      <Filter>pvr\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRDirectorOSD.h">
-      <Filter>pvr\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGroupManager.h">
-      <Filter>pvr\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGuideInfo.h">
-      <Filter>pvr\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGuideOSD.h">
-      <Filter>pvr\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRGuideSearch.h">
-      <Filter>pvr\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\dialogs\GUIDialogPVRRecordingInfo.h">
-      <Filter>pvr\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\channels\PVRChannelGroupsContainer.h">
-      <Filter>pvr\channels</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\channels\PVRChannel.h">
-      <Filter>pvr\channels</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\channels\PVRChannelGroup.h">
-      <Filter>pvr\channels</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\channels\PVRChannelGroupInternal.h">
-      <Filter>pvr\channels</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\channels\PVRChannelGroups.h">
-      <Filter>pvr\channels</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\addons\PVRClient.h">
-      <Filter>pvr\addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogExtendedProgressBar.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\PVRDatabase.h">
-      <Filter>pvr</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\PVRManager.h">
-      <Filter>pvr</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\RenderCapture.h">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\windows\GUIWindowPVRTimers.h">
-      <Filter>pvr\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\windows\GUIViewStatePVR.h">
-      <Filter>pvr\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\windows\GUIWindowPVRChannels.h">
-      <Filter>pvr\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\windows\GUIWindowPVRGuide.h">
-      <Filter>pvr\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\windows\GUIWindowPVRRecordings.h">
-      <Filter>pvr\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\windows\GUIWindowPVRSearch.h">
-      <Filter>pvr\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\GlobalsHandling.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\addons\PVRClients.h">
-      <Filter>pvr\addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\AddonCallbacks.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\AddonCallbacksAddon.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\AddonCallbacksGUI.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\AddonCallbacksPVR.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\SlingboxLib\SlingboxLib.h">
-      <Filter>libs\SlingboxLib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogPlayEject.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\pvr\PVRGUIInfo.h">
-      <Filter>pvr</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\JSONServiceDescription.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\ServiceDescription.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\InputOperations.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\epg\GUIEPGGridContainer.h">
-      <Filter>epg</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\XBMC_keytable.h">
-      <Filter>input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\JSONVariantParser.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\JSONVariantWriter.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\AddonVersion.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\DllAvFilter.h">
-      <Filter>cores\dvdplayer\DVDHeaders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\DirtyRegionTracker.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\DirtyRegion.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\DirtyRegionSolvers.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\InertialScrollingHandler.h">
-      <Filter>input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\info\InfoBool.h">
-      <Filter>interfaces\info</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\info\InfoExpression.h">
-      <Filter>interfaces\info</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIAction.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\ApplicationOperations.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\JpegIO.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\info\SkinVariable.h">
-      <Filter>interfaces\info</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\AirPlayServer.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\HttpParser.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\mdns\ZeroconfMDNS.h">
-      <Filter>network\mdns</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\DllLibPlist.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\Peripherals.h">
-      <Filter>peripherals</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\bus\PeripheralBus.h">
-      <Filter>peripherals\bus</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\devices\Peripheral.h">
-      <Filter>peripherals\devices</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralCecAdapter.h">
-      <Filter>peripherals\devices</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralDisk.h">
-      <Filter>peripherals\devices</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralHID.h">
-      <Filter>peripherals\devices</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralNIC.h">
-      <Filter>peripherals\devices</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralNyxboard.h">
-      <Filter>peripherals\devices</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\bus\win32\PeripheralBusUSB.h">
-      <Filter>peripherals\bus</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\PeripheralTypes.h">
-      <Filter>peripherals</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralBluetooth.h">
-      <Filter>peripherals\devices</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralTuner.h">
-      <Filter>peripherals\devices</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\dialogs\GUIDialogPeripheralManager.h">
-      <Filter>peripherals\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\dialogs\GUIDialogPeripheralSettings.h">
-      <Filter>peripherals\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\ZipManager.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\AddonsDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\AFPDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\AFPFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\ASAPFileDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\CacheStrategy.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\CDDADirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\CDDAFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\CurlFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\DAAPDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\DAAPFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\DAVDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\Directory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\DirectoryFactory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\DirectoryHistory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\DllLibAfp.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\DllLibCMyth.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\DllLibCurl.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\DllLibNfs.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\File.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\FileDirectoryFactory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\FileFactory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\FileReaderFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\FTPDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\FTPParse.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\HDHomeRunDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\HDHomeRunFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\HTSPDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\HTSPSession.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\HTTPDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\IDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\IFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\IFileDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\ILiveTV.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\iso9660.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\ISO9660Directory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\ISOFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\LibraryDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\MultiPathDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\MultiPathFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\MusicDatabaseDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\MusicDatabaseFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\MusicFileDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\MusicSearchDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\MythDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\MythFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\MythSession.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\NFSDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\NFSFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\NSFFileDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\OGGFileDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\PipeFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\PipesManager.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\PlaylistDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\PlaylistFileDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\PluginDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\RarDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\RarFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\RarManager.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\RSSDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\RTVDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\RTVFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\SAPDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\SAPFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\SFTPDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\SFTPFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\ShoutcastFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\SIDFileDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\SlingboxDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\SlingboxFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\SmartPlaylistDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\SourcesDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\SpecialProtocol.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\SpecialProtocolDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\SpecialProtocolFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\StackDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\TuxBoxDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\TuxBoxFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\udf25.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\UDFDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\UDFFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\UPnPDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\UPnPFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\VideoDatabaseDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\VirtualDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\VTPDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\VTPFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\VTPSession.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\ZeroconfDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\ZipDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\ZipFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\XbmcContext.h" />
-    <ClInclude Include="..\..\xbmc\filesystem\MemBufferCache.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\CircularCache.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\DirectoryCache.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\FavouritesDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\FileCache.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\XBMCTinyXML.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\BlurayDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Base64.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\HttpResponse.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\websocket\WebSocket.h">
-      <Filter>network\websocket</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\websocket\WebSocketV8.h">
-      <Filter>network\websocket</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\websocket\WebSocketManager.h">
-      <Filter>network\websocket</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\websocket\WebSocketV13.h">
-      <Filter>network\websocket</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\JSONRPCUtils.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\IJSONRPCAnnouncer.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\GUIOperations.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Mime.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\httprequesthandler\IHTTPRequestHandler.h">
-      <Filter>network\httprequesthandler</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\httprequesthandler\HTTPVfsHandler.h">
-      <Filter>network\httprequesthandler</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\httprequesthandler\HTTPWebinterfaceHandler.h">
-      <Filter>network\httprequesthandler</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\httprequesthandler\HTTPWebinterfaceAddonsHandler.h">
-      <Filter>network\httprequesthandler</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\httprequesthandler\HTTPJsonRpcHandler.h">
-      <Filter>network\httprequesthandler</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\POUtils.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\ZeroconfBrowser.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\mdns\ZeroconfBrowserMDNS.h">
-      <Filter>network\mdns</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Encoders\AEEncoderFFmpeg.h">
-      <Filter>cores\AudioEngine\Encoders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\AEAudioFormat.h">
-      <Filter>cores\AudioEngine</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\AEFactory.h">
-      <Filter>cores\AudioEngine</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\AEResampleFactory.h">
-      <Filter>cores\AudioEngine</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\AESinkFactory.h">
-      <Filter>cores\AudioEngine</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Interfaces\AE.h">
-      <Filter>cores\AudioEngine\Interfaces</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Interfaces\AEResample.h">
-      <Filter>cores\AudioEngine\Interfaces</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Interfaces\AEEncoder.h">
-      <Filter>cores\AudioEngine\Interfaces</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Interfaces\AESink.h">
-      <Filter>cores\AudioEngine\Interfaces</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Interfaces\AESound.h">
-      <Filter>cores\AudioEngine\Interfaces</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Interfaces\AEStream.h">
-      <Filter>cores\AudioEngine\Interfaces</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Interfaces\ThreadedAE.h">
-      <Filter>cores\AudioEngine\Interfaces</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Sinks\AESinkDirectSound.h">
-      <Filter>cores\AudioEngine\Sinks</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Sinks\AESinkNULL.h">
-      <Filter>cores\AudioEngine\Sinks</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Sinks\AESinkWASAPI.h">
-      <Filter>cores\AudioEngine\Sinks</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEBitstreamPacker.h">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEBuffer.h">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEChannelInfo.h">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEPackIEC61937.h">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEStreamInfo.h">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEUtil.h">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEDeviceInfo.h">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Audio\DVDAudioCodecPassthrough.h">
-      <Filter>cores\dvdplayer\DVDCodecs\Audio</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\TextureManager.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GraphicContext.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIFontTTF.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUITexture.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\StereoscopicsManager.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\Texture.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\TextureDX.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIFontTTFDX.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUITextureD3D.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\AddonDatabase.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\MusicDatabase.h">
-      <Filter>music</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\VideoDatabase.h">
-      <Filter>video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\ApplicationMessenger.h" />
-    <ClInclude Include="..\..\xbmc\Autorun.h" />
-    <ClInclude Include="..\..\xbmc\AutoSwitch.h" />
-    <ClInclude Include="..\..\xbmc\DynamicDll.h" />
-    <ClInclude Include="..\..\xbmc\CueDocument.h" />
-    <ClInclude Include="..\..\xbmc\FileItem.h" />
-    <ClInclude Include="..\..\xbmc\GUIInfoManager.h" />
-    <ClInclude Include="..\..\xbmc\GUIPassword.h" />
-    <ClInclude Include="..\..\xbmc\GUIUserMessages.h" />
-    <ClInclude Include="..\..\xbmc\IProgressCallback.h" />
-    <ClInclude Include="..\..\xbmc\LangInfo.h" />
-    <ClInclude Include="..\..\xbmc\MediaSource.h" />
-    <ClInclude Include="..\..\xbmc\NfoFile.h" />
-    <ClInclude Include="..\..\xbmc\PartyModeManager.h" />
-    <ClInclude Include="..\..\xbmc\PasswordManager.h" />
-    <ClInclude Include="..\..\xbmc\SortFileItem.h" />
-    <ClInclude Include="..\..\xbmc\SectionLoader.h" />
-    <ClInclude Include="..\..\xbmc\Temperature.h" />
-    <ClInclude Include="..\..\xbmc\TextureCache.h" />
-    <ClInclude Include="..\..\xbmc\TextureCacheJob.h" />
-    <ClInclude Include="..\..\xbmc\TextureDatabase.h" />
-    <ClInclude Include="..\..\xbmc\DatabaseManager.h" />
-    <ClInclude Include="..\..\xbmc\ThumbnailCache.h" />
-    <ClInclude Include="..\..\xbmc\URL.h" />
-    <ClInclude Include="..\..\xbmc\Util.h" />
-    <ClInclude Include="..\..\xbmc\XBApplicationEx.h" />
-    <ClInclude Include="..\..\xbmc\XBDateTime.h" />
-    <ClInclude Include="..\..\xbmc\GUILargeTextureManager.h" />
-    <ClInclude Include="..\..\xbmc\ThumbLoader.h" />
-    <ClInclude Include="..\..\xbmc\pictures\PictureThumbLoader.h">
-      <Filter>pictures</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\MusicThumbLoader.h">
-      <Filter>music</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\VideoThumbLoader.h">
-      <Filter>video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dbwrappers\Database.h">
-      <Filter>dbwrappers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dbwrappers\DatabaseQuery.h">
-      <Filter>dbwrappers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dbwrappers\dataset.h">
-      <Filter>dbwrappers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dbwrappers\qry_dat.h">
-      <Filter>dbwrappers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dbwrappers\mysqldataset.h">
-      <Filter>dbwrappers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dbwrappers\sqlitedataset.h">
-      <Filter>dbwrappers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\PlayListPlayer.h" />
-    <ClInclude Include="..\..\xbmc\BackgroundInfoLoader.h" />
-    <ClInclude Include="..\..\xbmc\utils\RecentlyAddedJob.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\windows\WINJoystick.h">
-      <Filter>input\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\ImageFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\httprequesthandler\HTTPImageHandler.h">
-      <Filter>network\httprequesthandler</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\AirTunesServer.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\DllLibShairplay.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\SeekHandler.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\SortUtils.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\DatabaseUtils.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\ISortable.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIKeyboard.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\GUIKeyboardFactory.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogKeyboardGeneric.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\devices\PeripheralImon.h">
-      <Filter>peripherals\devices</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\VideoDbUrl.h">
-      <Filter>video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\DbUrl.h" />
-    <ClInclude Include="..\..\xbmc\utils\UrlOptions.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\MusicDbUrl.h">
-      <Filter>music</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\test\TestBasicEnvironment.h">
-      <Filter>test</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\test\TestUtils.h">
-      <Filter>test</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\upnp\UPnP.h">
-      <Filter>network\upnp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\upnp\UPnPInternal.h">
-      <Filter>network\upnp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\upnp\UPnPPlayer.h">
-      <Filter>network\upnp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\upnp\UPnPRenderer.h">
-      <Filter>network\upnp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\upnp\UPnPServer.h">
-      <Filter>network\upnp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Addon.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\AddonCallback.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\AddonClass.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\AddonString.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\AddonUtils.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Alternative.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\aojsonrpc.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\CallbackFunction.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\CallbackHandler.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Control.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Dialog.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Dictionary.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Exception.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\File.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\InfoTagMusic.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\InfoTagVideo.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Keyboard.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\LanguageHook.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\List.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\ListItem.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\ModuleXbmc.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\ModuleXbmcgui.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\ModuleXbmcplugin.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\ModuleXbmcvfs.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Monitor.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Player.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\PlayList.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\RenderCapture.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\swighelper.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Tuple.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\Window.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\WindowDialog.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\WindowDialogMixin.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\WindowException.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\WindowInterceptor.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\legacy\WindowXML.h">
-      <Filter>interfaces\legacy</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\python\CallbackHandler.h">
-      <Filter>interfaces\python</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\python\LanguageHook.h">
-      <Filter>interfaces\python</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\python\preamble.h">
-      <Filter>interfaces\python</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\python\pythreadstate.h">
-      <Filter>interfaces\python</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\python\swig.h">
-      <Filter>interfaces\python</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\python\XBPython.h">
-      <Filter>interfaces\python</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\tags\TagLibVFSStream.h">
-      <Filter>music\tags</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\tags\TagLoaderTagLib.h">
-      <Filter>music\tags</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\AddonsOperations.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxBXA.h">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Screenshot.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\dialogs\GUIDialogMediaFilter.h">
-      <Filter>dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\PVROperations.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\HTTPFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\GroupUtils.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AELimiter.h">
-      <Filter>cores\AudioEngine\Utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\python\PyContext.h">
-      <Filter>interfaces\python</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\iimage.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\imagefactory.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\cximage.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\music\karaoke\karaokevideobackground.h">
-      <Filter>music\karaoke</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\FFmpegVideoDecoder.h">
-      <Filter>video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\view\GUIViewControl.h">
-      <Filter>view</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\view\GUIViewState.h">
-      <Filter>view</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\view\ViewDatabase.h">
-      <Filter>view</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\view\ViewState.h">
-      <Filter>view</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\DAVFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\DAVCommon.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\peripherals\bus\virtual\PeripheralBusCEC.h">
-      <Filter>peripherals\bus</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\upnp\UPnPSettings.h">
-      <Filter>network\upnp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\AppParamParser.h" />
-    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogContentSettings.h">
-      <Filter>settings\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettings.h">
-      <Filter>settings\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettingsCategory.h">
-      <Filter>settings\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettingsScreenCalibration.h">
-      <Filter>settings\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowTestPattern.h">
-      <Filter>settings\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\IRssObserver.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\RssManager.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\SkinSettings.h">
-      <Filter>settings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\MediaSourceSettings.h">
-      <Filter>settings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\view\ViewStateSettings.h">
-      <Filter>view</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\MediaSettings.h">
-      <Filter>settings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\DisplaySettings.h">
-      <Filter>settings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\profiles\dialogs\GUIDialogLockSettings.h">
-      <Filter>profiles\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\profiles\dialogs\GUIDialogProfileSettings.h">
-      <Filter>profiles\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\profiles\windows\GUIWindowSettingsProfile.h">
-      <Filter>profiles\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\profiles\Profile.h">
-      <Filter>profiles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\profiles\ProfilesManager.h">
-      <Filter>profiles</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\touch\ITouchActionHandler.h">
-      <Filter>input\touch</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\touch\generic\GenericTouchActionHandler.h">
-      <Filter>input\touch\generic</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\touch\TouchTypes.h">
-      <Filter>input\touch</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\touch\generic\GenericTouchSwipeDetector.h">
-      <Filter>input\touch\generic</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\touch\generic\IGenericTouchGestureDetector.h">
-      <Filter>input\touch\generic</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\touch\ITouchInputHandler.h">
-      <Filter>input\touch</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\input\touch\ITouchInputHandling.h">
-      <Filter>input\touch</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Vector.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\PlayerController.h">
-      <Filter>video</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\VideoDatabaseDirectory\DirectoryNodeGrouped.h">
-      <Filter>filesystem\VideoDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\MusicDatabaseDirectory\DirectoryNodeGrouped.h">
-      <Filter>filesystem\MusicDatabaseDirectory</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\windows\GUIControlSettings.h">
-      <Filter>settings\windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\SettingControl.h">
-      <Filter>settings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\network\NetworkServices.h">
-      <Filter>network</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\BooleanLogic.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\IXmlDeserializable.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\SettingAddon.h">
-      <Filter>settings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\SettingPath.h">
-      <Filter>settings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\FavouritesOperations.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxCDDA.h">
-      <Filter>cores\dvdplayer\DVDDemuxers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Environment.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\LegacyPathTranslation.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\generic\ILanguageInvoker.h">
-      <Filter>interfaces\generic</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\generic\LanguageInvokerThread.h">
-      <Filter>interfaces\generic</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\generic\ScriptInvocationManager.h">
-      <Filter>interfaces\generic</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\python\PythonInvoker.h">
-      <Filter>interfaces\python</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\generic\ILanguageInvocationHandler.h">
-      <Filter>interfaces\generic</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\addons\AddonCallbacksCodec.h">
-      <Filter>addons</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\ProfilesOperations.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\win32\PlatformInclude.h" />
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAE.h">
-      <Filter>cores\AudioEngine\Engines\ActiveAE</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAEBuffer.h">
-      <Filter>cores\AudioEngine\Engines\ActiveAE</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAEResampleFFMPEG.h">
-      <Filter>cores\AudioEngine\Engines\ActiveAE</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAESink.h">
-      <Filter>cores\AudioEngine\Engines\ActiveAE</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAESound.h">
-      <Filter>cores\AudioEngine\Engines\ActiveAE</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\AudioEngine\Engines\ActiveAE\ActiveAEStream.h">
-      <Filter>cores\AudioEngine\Engines\ActiveAE</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\ActorProtocol.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\ApplicationPlayer.h" />
-    <ClInclude Include="..\..\xbmc\interfaces\python\AddonPythonInvoker.h">
-      <Filter>interfaces\python</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\StringValidation.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\uXstrings.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\IFileItemListModifier.h" />
-    <ClInclude Include="..\..\xbmc\playlists\SmartPlaylistFileItemListModifier.h">
-      <Filter>playlists</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileItemListModification.h" />
-    <ClInclude Include="..\..\xbmc\settings\lib\ISettingControl.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\ISetting.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\ISettingCallback.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\ISettingCreator.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\ISettingsHandler.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\ISubSettings.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\Setting.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingCategoryAccess.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingConditions.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingDependency.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingRequirement.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingSection.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingsManager.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingUpdate.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\SettingDefinitions.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\lib\ISettingControlCreator.h">
-      <Filter>settings\lib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\CharsetDetection.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\OverlayRendererGUI.h">
-      <Filter>cores\VideoRenderers</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\interfaces\json-rpc\SettingsOperations.h">
-      <Filter>interfaces\json-rpc</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\listproviders\IListProvider.h">
-      <Filter>listproviders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\listproviders\DirectoryProvider.h">
-      <Filter>listproviders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\listproviders\StaticProvider.h">
-      <Filter>listproviders</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\Utf8Utils.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\XSLTUtils.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\win32\IMMNotificationClient.h">
-      <Filter>win32</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\FFmpeg.h">
-      <Filter>cores</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\media\MediaType.h">
-      <Filter>media</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\guilib\ISliderCallback.h">
-      <Filter>guilib</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogSettingsBase.h">
-      <Filter>settings\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogSettingsManagerBase.h">
-      <Filter>settings\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\SettingCreator.h">
-      <Filter>settings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\SettingConditions.h">
-      <Filter>settings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogSettingsManualBase.h">
-      <Filter>settings\dialogs</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\SettingUtils.h">
-      <Filter>settings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\win32\Win32Directory.h">
-      <Filter>filesystem\win32</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\CompileInfo.h" />
-    <ClInclude Include="..\..\xbmc\utils\auto_buffer.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\win32\Win32SMBDirectory.h">
-      <Filter>filesystem\win32</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\params_check_macros.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\win32\Win32InterfaceForCLog.h">
-      <Filter>utils\win32</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\win32\Win32Log.h">
-      <Filter>utils\win32</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\win32\Win32File.h">
-      <Filter>filesystem\win32</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\win32\Win32SMBFile.h">
-      <Filter>filesystem\win32</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\utils\MarkWatchedJob.h">
-      <Filter>utils</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\settings\DiscSettings.h">
-      <Filter>settings</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\filesystem\BlurayFile.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\videosync\VideoSyncD3D.h">
-      <Filter>video\videosync</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\video\videosync\VideoSync.h">
-      <Filter>video\videosync</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\cores\DataCacheCore.h">
-      <Filter>cores</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\xbmc\win32\XBMC_PC.rc">
-      <Filter>win32</Filter>
-    </ResourceCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="..\..\xbmc\interfaces\swig\AddonModuleXbmcplugin.i">
-      <Filter>interfaces\swig</Filter>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\swig\AddonModuleXbmcgui.i">
-      <Filter>interfaces\swig</Filter>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\swig\AddonModuleXbmcaddon.i">
-      <Filter>interfaces\swig</Filter>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\swig\AddonModuleXbmcvfs.i">
-      <Filter>interfaces\swig</Filter>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\swig\AddonModuleXbmc.i">
-      <Filter>interfaces\swig</Filter>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\GitRevision.h" />
-    <CustomBuild Include="..\..\xbmc\interfaces\json-rpc\schema\types.json">
-      <Filter>interfaces\json-rpc\schema</Filter>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\json-rpc\schema\notifications.json">
-      <Filter>interfaces\json-rpc\schema</Filter>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\json-rpc\schema\methods.json">
-      <Filter>interfaces\json-rpc\schema</Filter>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\json-rpc\schema\version.txt">
-      <Filter>interfaces\json-rpc\schema</Filter>
-    </CustomBuild>
-    <CustomBuild Include="..\..\xbmc\interfaces\json-rpc\schema\license.txt">
-      <Filter>interfaces\json-rpc\schema</Filter>
-    </CustomBuild>
-    <CustomBuild Include="..\..\version.txt" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="..\..\xbmc\interfaces\swig\ControlListAddItemMethods.i">
-      <Filter>interfaces\swig</Filter>
-    </None>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/project/VS2010Express/Xbmc-Tests.sln b/project/VS2010Express/Xbmc-Tests.sln
deleted file mode 100644
index c8fddc9..0000000
--- a/project/VS2010Express/Xbmc-Tests.sln
+++ /dev/null
@@ -1,43 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Express 2013 for Windows Desktop
-VisualStudioVersion = 12.0.21005.1
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XbmcCommons", "XbmcCommons.vcxproj", "{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XbmcThreads", "XbmcThreads.vcxproj", "{034B1D02-CA92-455D-8866-DB95BEE49C10}"
-	ProjectSection(ProjectDependencies) = postProject
-		{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17} = {87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-XbmcThreads", "test-XbmcThreads.vcxproj", "{4D2E3EB3-6187-4357-97BB-DD8BE80CB981}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
-		Template|Win32 = Template|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}.Debug|Win32.ActiveCfg = Debug|Win32
-		{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}.Debug|Win32.Build.0 = Debug|Win32
-		{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}.Release|Win32.ActiveCfg = Release|Win32
-		{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}.Release|Win32.Build.0 = Release|Win32
-		{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}.Template|Win32.ActiveCfg = Release|Win32
-		{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}.Template|Win32.Build.0 = Release|Win32
-		{034B1D02-CA92-455D-8866-DB95BEE49C10}.Debug|Win32.ActiveCfg = Debug|Win32
-		{034B1D02-CA92-455D-8866-DB95BEE49C10}.Debug|Win32.Build.0 = Debug|Win32
-		{034B1D02-CA92-455D-8866-DB95BEE49C10}.Release|Win32.ActiveCfg = Release|Win32
-		{034B1D02-CA92-455D-8866-DB95BEE49C10}.Release|Win32.Build.0 = Release|Win32
-		{034B1D02-CA92-455D-8866-DB95BEE49C10}.Template|Win32.ActiveCfg = Debug|Win32
-		{034B1D02-CA92-455D-8866-DB95BEE49C10}.Template|Win32.Build.0 = Debug|Win32
-		{4D2E3EB3-6187-4357-97BB-DD8BE80CB981}.Debug|Win32.ActiveCfg = Debug|Win32
-		{4D2E3EB3-6187-4357-97BB-DD8BE80CB981}.Debug|Win32.Build.0 = Debug|Win32
-		{4D2E3EB3-6187-4357-97BB-DD8BE80CB981}.Release|Win32.ActiveCfg = Release|Win32
-		{4D2E3EB3-6187-4357-97BB-DD8BE80CB981}.Release|Win32.Build.0 = Release|Win32
-		{4D2E3EB3-6187-4357-97BB-DD8BE80CB981}.Template|Win32.ActiveCfg = Template|Win32
-		{4D2E3EB3-6187-4357-97BB-DD8BE80CB981}.Template|Win32.Build.0 = Template|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
diff --git a/project/VS2010Express/XbmcCommons.vcxproj b/project/VS2010Express/XbmcCommons.vcxproj
deleted file mode 100644
index 18af62a..0000000
--- a/project/VS2010Express/XbmcCommons.vcxproj
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\xbmc\commons\Exception.cpp" />
-    <ClCompile Include="..\..\xbmc\commons\ilog.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\xbmc\commons\Buffer.h" />
-    <ClInclude Include="..\..\xbmc\commons\Exception.h" />
-    <ClInclude Include="..\..\xbmc\commons\ilog.h" />
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{87DA0A1E-3F33-4927-A5E5-2D58F2C58E17}</ProjectGuid>
-    <RootNamespace>XbmcCommons</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-  </PropertyGroup>
-  <Import Project="$(SolutionDir)\XBMC.core-defaults.props" />
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-  </PropertyGroup>
-  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug (DirectX)|Win32'">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-  </PropertyGroup>
-  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release (DirectX)|Win32'">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)libs\$(TargetName)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)objs\$(TargetName)\$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)libs\$(TargetName)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)objs\$(TargetName)\$(Configuration)\</IntDir>
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
-    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(DXSDK_DIR)Lib\x86;$(LibraryPath)</LibraryPath>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">XbmcCommonsd</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">XbmcCommons</TargetName>
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
-    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(DXSDK_DIR)Lib\x86;$(LibraryPath)</LibraryPath>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <AdditionalIncludeDirectories>..\..\xbmc;..\..\xbmc\win32</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>NOMINMAX;_LIB;_USE_32BIT_TIME_T;HAS_DX;_SECURE_SCL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <DisableSpecificWarnings>4800;4018;4146;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-    <Lib />
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
-      <AdditionalIncludeDirectories>..\..\xbmc;..\..\xbmc\win32</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>NOMINMAX;_LIB;_USE_32BIT_TIME_T;HAS_DX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <PrecompiledHeaderFile>commons.hpp</PrecompiledHeaderFile>
-      <DebugInformationFormat>
-      </DebugInformationFormat>
-      <DisableSpecificWarnings>4800;4018;4146;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-    <Lib />
-    <Lib />
-  </ItemDefinitionGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/project/VS2010Express/XbmcCommons.vcxproj.filters b/project/VS2010Express/XbmcCommons.vcxproj.filters
deleted file mode 100644
index e91146b..0000000
--- a/project/VS2010Express/XbmcCommons.vcxproj.filters
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <ClCompile Include="..\..\xbmc\commons\ilog.cpp" />
-    <ClCompile Include="..\..\xbmc\commons\Exception.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\xbmc\commons\ilog.h" />
-    <ClInclude Include="..\..\xbmc\commons\Exception.h" />
-    <ClInclude Include="..\..\xbmc\commons\Buffer.h" />
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/project/VS2010Express/XbmcThreads.vcxproj b/project/VS2010Express/XbmcThreads.vcxproj
deleted file mode 100644
index 8ce0f50..0000000
--- a/project/VS2010Express/XbmcThreads.vcxproj
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\xbmc\threads\Atomics.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\Event.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\LockFree.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\Timer.cpp" />
-    <ClInclude Include="..\..\xbmc\threads\platform\ThreadImpl.h" />
-    <ClInclude Include="..\..\xbmc\threads\platform\win\ThreadImpl.cpp" />
-    <ClInclude Include="..\..\xbmc\threads\platform\ThreadImpl.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\platform\Implementation.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\platform\win\Win32Exception.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\SystemClock.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\Thread.cpp" />
-    <ClInclude Include="..\..\xbmc\threads\Timer.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\xbmc\threads\Atomics.h" />
-    <ClInclude Include="..\..\xbmc\threads\Condition.h" />
-    <ClInclude Include="..\..\xbmc\threads\CriticalSection.h" />
-    <ClInclude Include="..\..\xbmc\threads\Event.h" />
-    <ClInclude Include="..\..\xbmc\threads\Helpers.h" />
-    <ClInclude Include="..\..\xbmc\threads\Lockables.h" />
-    <ClInclude Include="..\..\xbmc\threads\LockFree.h" />
-    <ClInclude Include="..\..\xbmc\threads\platform\Condition.h" />
-    <ClInclude Include="..\..\xbmc\threads\platform\CriticalSection.h" />
-    <ClInclude Include="..\..\xbmc\threads\platform\ThreadLocal.h" />
-    <ClInclude Include="..\..\xbmc\threads\platform\win\Condition.h" />
-    <ClInclude Include="..\..\xbmc\threads\platform\win\CriticalSection.h" />
-    <ClInclude Include="..\..\xbmc\threads\platform\win\ThreadImpl.h" />
-    <ClInclude Include="..\..\xbmc\threads\platform\win\ThreadLocal.h" />
-    <ClInclude Include="..\..\xbmc\threads\platform\win\Win32Exception.h" />
-    <ClInclude Include="..\..\xbmc\threads\SharedSection.h" />
-    <ClInclude Include="..\..\xbmc\threads\SingleLock.h" />
-    <ClInclude Include="..\..\xbmc\threads\SystemClock.h" />
-    <ClInclude Include="..\..\xbmc\threads\Thread.h" />
-    <ClInclude Include="..\..\xbmc\threads\ThreadImpl.h" />
-    <ClInclude Include="..\..\xbmc\threads\ThreadLocal.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="XbmcCommons.vcxproj">
-      <Project>{87da0a1e-3f33-4927-a5e5-2d58f2c58e17}</Project>
-    </ProjectReference>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{034B1D02-CA92-455D-8866-DB95BEE49C10}</ProjectGuid>
-    <RootNamespace>XbmcCommons</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-  </PropertyGroup>
-  <Import Project="$(SolutionDir)\XBMC.core-defaults.props" />
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-  </PropertyGroup>
-  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug (DirectX)|Win32'">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-  </PropertyGroup>
-  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release (DirectX)|Win32'">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)libs\$(TargetName)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)objs\$(TargetName)\$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)libs\$(TargetName)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)objs\$(TargetName)\$(Configuration)\</IntDir>
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
-    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(DXSDK_DIR)Lib\x86;$(LibraryPath)</LibraryPath>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">XbmcThreadsd</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">XbmcThreads</TargetName>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <AdditionalIncludeDirectories>..\..\xbmc;..\..\xbmc\win32</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>NOMINMAX;_LIB;_XBMC;_USE_32BIT_TIME_T;_SECURE_SCL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <DisableSpecificWarnings>4800;4018;4146;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ExceptionHandling>Async</ExceptionHandling>
-    </ClCompile>
-    <Lib>
-      <OutputFile>$(TargetPath)</OutputFile>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
-      <AdditionalIncludeDirectories>..\..\xbmc;..\..\xbmc\win32</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>NOMINMAX;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <PrecompiledHeaderFile>commons.hpp</PrecompiledHeaderFile>
-      <DebugInformationFormat>
-      </DebugInformationFormat>
-      <DisableSpecificWarnings>4800;4018;4146;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ExceptionHandling>Async</ExceptionHandling>
-    </ClCompile>
-    <Lib>
-      <OutputFile>$(OutDir)$(ProjectName).lib</OutputFile>
-    </Lib>
-  </ItemDefinitionGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/project/VS2010Express/XbmcThreads.vcxproj.filters b/project/VS2010Express/XbmcThreads.vcxproj.filters
deleted file mode 100644
index ba61706..0000000
--- a/project/VS2010Express/XbmcThreads.vcxproj.filters
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <ClCompile Include="..\..\xbmc\threads\Atomics.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\Event.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\LockFree.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\Thread.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\SystemClock.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\platform\Implementation.cpp">
-      <Filter>platform</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\threads\platform\win\Win32Exception.cpp">
-      <Filter>platform\win</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\xbmc\threads\Timer.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\xbmc\threads\Atomics.h" />
-    <ClInclude Include="..\..\xbmc\threads\Condition.h" />
-    <ClInclude Include="..\..\xbmc\threads\CriticalSection.h" />
-    <ClInclude Include="..\..\xbmc\threads\Event.h" />
-    <ClInclude Include="..\..\xbmc\threads\Helpers.h" />
-    <ClInclude Include="..\..\xbmc\threads\Lockables.h" />
-    <ClInclude Include="..\..\xbmc\threads\LockFree.h" />
-    <ClInclude Include="..\..\xbmc\threads\SharedSection.h" />
-    <ClInclude Include="..\..\xbmc\threads\SingleLock.h" />
-    <ClInclude Include="..\..\xbmc\threads\Thread.h" />
-    <ClInclude Include="..\..\xbmc\threads\ThreadImpl.h" />
-    <ClInclude Include="..\..\xbmc\threads\ThreadLocal.h" />
-    <ClInclude Include="..\..\xbmc\threads\platform\Condition.h">
-      <Filter>platform</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\threads\platform\CriticalSection.h">
-      <Filter>platform</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\threads\platform\ThreadLocal.h">
-      <Filter>platform</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\threads\platform\win\Condition.h">
-      <Filter>platform\win</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\threads\platform\win\CriticalSection.h">
-      <Filter>platform\win</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\threads\platform\win\ThreadLocal.h">
-      <Filter>platform\win</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\threads\SystemClock.h" />
-    <ClInclude Include="..\..\xbmc\threads\platform\win\ThreadImpl.h">
-      <Filter>platform\win</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\threads\platform\win\ThreadImpl.cpp">
-      <Filter>platform\win</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\threads\platform\ThreadImpl.h">
-      <Filter>platform</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\threads\platform\ThreadImpl.cpp">
-      <Filter>platform</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\threads\platform\win\Win32Exception.h">
-      <Filter>platform\win</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\xbmc\threads\Timer.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <Filter Include="platform">
-      <UniqueIdentifier>{9ceef07b-633f-4f74-a45f-1a53ec0b1ab4}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="platform\win">
-      <UniqueIdentifier>{260ff9eb-2873-4bb8-8694-81aad4e2fedc}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/project/VS2010Express/libPlatinum.vcxproj b/project/VS2010Express/libPlatinum.vcxproj
deleted file mode 100644
index 403ab0c..0000000
--- a/project/VS2010Express/libPlatinum.vcxproj
+++ /dev/null
@@ -1,281 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{B2975495-FBE4-4F94-AAC5-B21A9842BF50}</ProjectGuid>
-    <RootNamespace>libPlatinum</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-  </PropertyGroup>
-  <Import Project="$(SolutionDir)\XBMC.core-defaults.props" />
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)libs\$(TargetName)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)objs\$(TargetName)\$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)libs\$(TargetName)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)objs\$(TargetName)\$(Configuration)\</IntDir>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">libPlatinumd</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">libPlatinum</TargetName>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <AdditionalIncludeDirectories>..\..\lib\libUPnP;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Platinum\Source\Extras;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_LIB;NPT_CONFIG_ENABLE_LOGGING;PLT_HTTP_DEFAULT_USER_AGENT="UPnP/1.0 DLNADOC/1.50 Kodi";PLT_HTTP_DEFAULT_SERVER="UPnP/1.0 DLNADOC/1.50 Kodi";_SECURE_SCL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-    <Lib>
-      <OutputFile>$(OutDir)libPlatinumd.lib</OutputFile>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\lib\libUPnP;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Platinum\Source\Extras;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;NPT_CONFIG_ENABLE_LOGGING;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MinimalRebuild>true</MinimalRebuild>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-    <Lib>
-      <OutputFile>$(OutDir)libPlatinumd.lib</OutputFile>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <AdditionalIncludeDirectories>..\..\lib\libUPnP;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Platinum\Source\Extras;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_LIB;NPT_CONFIG_ENABLE_LOGGING;PLT_HTTP_DEFAULT_USER_AGENT="UPnP/1.0 DLNADOC/1.50 Kodi";PLT_HTTP_DEFAULT_SERVER="UPnP/1.0 DLNADOC/1.50 Kodi";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-    <Lib>
-      <OutputFile>$(OutDir)libPlatinum.lib</OutputFile>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptAutomaticCleaner.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptAutoreleasePool.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptCrypto.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDigest.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptHash.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptJson.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptTlsDefaultTrustAnchorsBase.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptTlsDefaultTrustAnchorsExtended.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltMimeType.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltProtocolInfo.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltUtilities.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Platinum\Platinum.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltAction.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltArgument.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltConstants.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltCtrlPoint.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltCtrlPointTask.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltDatagramStream.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltDeviceData.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltDeviceHost.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltEvent.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttp.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttpClientTask.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttpServer.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttpServerListener.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttpServerTask.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltService.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltSsdp.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltSsdpListener.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltStateVariable.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Platinum\PltSvnVersion.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltTaskManager.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltThreadTask.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltUPnP.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltUPnPHelper.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Platinum\PltVersion.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltXmlHelper.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltDidl.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltFileMediaServer.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaBrowser.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaCache.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaItem.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaServer.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltSyncMediaBrowser.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer\PltMediaController.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer\PltMediaRenderer.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect\PltMediaConnect.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\Neptune.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptArray.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptBase64.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptBufferedStreams.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptCommon.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptConfig.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptConsole.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptConstants.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDataBuffer.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDebug.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDefs.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDynamicCast.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDynamicLibraries.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptFile.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptHttp.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptInterfaces.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptList.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptLogging.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptMap.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptMessaging.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptNetwork.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptQueue.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptReferences.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptResults.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptRingBuffer.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSelectableMessageQueue.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSerialPort.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSimpleMessageQueue.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSockets.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptStack.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptStreams.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptStrings.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSystem.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptThreads.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptTime.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptTls.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptTypes.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptUri.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptUtils.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptVersion.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptXml.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptZip.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32MessageQueue.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Network.h" />
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Threads.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptAutomaticCleaner.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptCrypto.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDigest.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptHash.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptJson.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Bsd\NptBsdResolver.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Posix\NptPosixEnvironment.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Console.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32SerialPort.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Time.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltAction.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltArgument.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltConstants.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltCtrlPoint.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltCtrlPointTask.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltDatagramStream.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltDeviceData.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltDeviceHost.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltEvent.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttp.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttpClientTask.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttpServer.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttpServerTask.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltIconsData.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltMimeType.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltProtocolInfo.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltService.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltSsdp.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltStateVariable.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltTaskManager.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltThreadTask.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltUPnP.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\ConnectionManagerSCPD.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\ContentDirectorySCPD.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\ContentDirectorywSearchSCPD.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltDidl.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltFileMediaServer.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaBrowser.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaCache.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaItem.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaServer.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltSyncMediaBrowser.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer\AVTransportSCPD.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer\PltMediaController.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer\PltMediaRenderer.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer\RdrConnectionManagerSCPD.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer\RenderingControlSCPD.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect\PltMediaConnect.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect\X_MS_MediaReceiverRegistrarSCPD.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\Neptune.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptBase64.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptBufferedStreams.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptCommon.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptConsole.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDataBuffer.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDebug.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDynamicLibraries.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptFile.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptHttp.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptList.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptLogging.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptMessaging.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptNetwork.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptQueue.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptResults.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptRingBuffer.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSimpleMessageQueue.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSockets.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptStreams.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptStrings.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSystem.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptThreads.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptTime.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptTls.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptUri.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptUtils.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptXml.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptZip.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Bsd\NptBsdSockets.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\StdC\NptStdcEnvironment.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\StdC\NptStdcFile.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Debug.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32DynamicLibraries.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32File.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32MessageQueue.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Network.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Queue.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32System.cpp" />
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Threads.cpp" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/project/VS2010Express/libPlatinum.vcxproj.filters b/project/VS2010Express/libPlatinum.vcxproj.filters
deleted file mode 100644
index d2e1cf2..0000000
--- a/project/VS2010Express/libPlatinum.vcxproj.filters
+++ /dev/null
@@ -1,576 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Platinum">
-      <UniqueIdentifier>{539b10a5-3931-4f2f-88f8-1e11756f3f3e}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Platinum\Core">
-      <UniqueIdentifier>{589c6521-982a-41d8-90eb-53f876be4b53}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Platinum\MediaServer">
-      <UniqueIdentifier>{9f16499d-fcad-4ec6-8bcd-3f1742cc6166}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Platinum\MediaRenderer">
-      <UniqueIdentifier>{2edde722-7482-4a31-bb59-94d7ddaa5722}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Platinum\MediaConnect">
-      <UniqueIdentifier>{453a23c0-7590-4263-81bd-ac7b9ef7c5e7}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Neptune">
-      <UniqueIdentifier>{62130417-7000-4252-a2b4-4d69667e04ec}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Neptune\Core">
-      <UniqueIdentifier>{08668a49-fdf7-4d64-b995-a350d2d6e840}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Neptune\System">
-      <UniqueIdentifier>{13439c11-c8e5-4cc9-a335-e3b9ecb74c7a}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Platinum\Platinum.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltAction.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltArgument.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltConstants.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltCtrlPoint.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltCtrlPointTask.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltDatagramStream.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltDeviceData.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltDeviceHost.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltEvent.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttp.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttpClientTask.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttpServer.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttpServerListener.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttpServerTask.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltService.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltSsdp.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltSsdpListener.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltStateVariable.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Platinum\PltSvnVersion.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltTaskManager.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltThreadTask.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltUPnP.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltUPnPHelper.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Platinum\PltVersion.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltXmlHelper.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltDidl.h">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltFileMediaServer.h">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaBrowser.h">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaCache.h">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaItem.h">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaServer.h">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltSyncMediaBrowser.h">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer\PltMediaController.h">
-      <Filter>Platinum\MediaRenderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer\PltMediaRenderer.h">
-      <Filter>Platinum\MediaRenderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect\PltMediaConnect.h">
-      <Filter>Platinum\MediaConnect</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\Neptune.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptArray.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptBase64.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptBufferedStreams.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptCommon.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptConfig.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptConsole.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptConstants.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDataBuffer.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDebug.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDefs.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDynamicCast.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDynamicLibraries.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptFile.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptHttp.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptInterfaces.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptList.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptLogging.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptMap.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptMessaging.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptNetwork.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptQueue.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptReferences.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptResults.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptRingBuffer.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSelectableMessageQueue.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSerialPort.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSimpleMessageQueue.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSockets.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptStack.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptStreams.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptStrings.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSystem.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptThreads.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptTime.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptTls.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptTypes.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptUri.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptUtils.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptVersion.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptXml.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptZip.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32MessageQueue.h">
-      <Filter>Neptune\System</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Network.h">
-      <Filter>Neptune\System</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Threads.h">
-      <Filter>Neptune\System</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltMimeType.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltProtocolInfo.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptHash.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptAutomaticCleaner.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptJson.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptAutoreleasePool.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptCrypto.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptTlsDefaultTrustAnchorsBase.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptTlsDefaultTrustAnchorsExtended.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDigest.h">
-      <Filter>Neptune\Core</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\lib\libUPnP\Platinum\Source\Core\PltUtilities.h">
-      <Filter>Platinum\Core</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltAction.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltArgument.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltConstants.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltCtrlPoint.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltCtrlPointTask.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltDatagramStream.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltDeviceData.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltDeviceHost.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltEvent.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttp.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttpClientTask.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttpServer.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltHttpServerTask.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltIconsData.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltService.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltSsdp.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltStateVariable.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltTaskManager.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltThreadTask.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltUPnP.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\ConnectionManagerSCPD.cpp">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\ContentDirectorywSearchSCPD.cpp">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltDidl.cpp">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltFileMediaServer.cpp">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaBrowser.cpp">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaCache.cpp">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaItem.cpp">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltMediaServer.cpp">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\PltSyncMediaBrowser.cpp">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer\AVTransportSCPD.cpp">
-      <Filter>Platinum\MediaRenderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer\PltMediaController.cpp">
-      <Filter>Platinum\MediaRenderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer\PltMediaRenderer.cpp">
-      <Filter>Platinum\MediaRenderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer\RdrConnectionManagerSCPD.cpp">
-      <Filter>Platinum\MediaRenderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer\RenderingControlSCPD.cpp">
-      <Filter>Platinum\MediaRenderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect\PltMediaConnect.cpp">
-      <Filter>Platinum\MediaConnect</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect\X_MS_MediaReceiverRegistrarSCPD.cpp">
-      <Filter>Platinum\MediaConnect</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\Neptune.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptBase64.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptBufferedStreams.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptCommon.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptConsole.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDataBuffer.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDebug.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDynamicLibraries.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptFile.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptHttp.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptList.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptLogging.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptMessaging.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptNetwork.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptQueue.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptResults.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptRingBuffer.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSimpleMessageQueue.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSockets.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptStreams.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptStrings.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptSystem.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptThreads.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptTime.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptTls.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptUri.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptUtils.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptXml.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptZip.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Bsd\NptBsdSockets.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\StdC\NptStdcEnvironment.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\StdC\NptStdcFile.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Debug.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32DynamicLibraries.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32File.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32MessageQueue.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Network.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Queue.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32System.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Threads.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltMimeType.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Core\PltProtocolInfo.cpp">
-      <Filter>Platinum\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptHash.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Posix\NptPosixEnvironment.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer\ContentDirectorySCPD.cpp">
-      <Filter>Platinum\MediaServer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptAutomaticCleaner.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptJson.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptCrypto.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Bsd\NptBsdResolver.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Console.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32SerialPort.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\System\Win32\NptWin32Time.cpp">
-      <Filter>Neptune\System</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\lib\libUPnP\Neptune\Source\Core\NptDigest.cpp">
-      <Filter>Neptune\Core</Filter>
-    </ClCompile>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/project/VS2010Express/test-XbmcThreads.vcxproj b/project/VS2010Express/test-XbmcThreads.vcxproj
deleted file mode 100644
index 34025ad..0000000
--- a/project/VS2010Express/test-XbmcThreads.vcxproj
+++ /dev/null
@@ -1,184 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Template|Win32">
-      <Configuration>Template</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{4D2E3EB3-6187-4357-97BB-DD8BE80CB981}</ProjectGuid>
-    <Keyword>Win32Proj</Keyword>
-    <RootNamespace>testXbmcThreads</RootNamespace>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <CharacterSet>MultiByte</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <CharacterSet>MultiByte</CharacterSet>
-    <CLRSupport>false</CLRSupport>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Template|Win32'">
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\objs\</IntDir>
-    <IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</IgnoreImportLibrary>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">XBMC\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">XBMC\$(Configuration)\objs\</IntDir>
-    <IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</IgnoreImportLibrary>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
-    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(DXSDK_DIR)Lib\x86;$(LibraryPath)</LibraryPath>
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
-    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(DXSDK_DIR)Lib\x86;$(LibraryPath)</LibraryPath>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\xbmc\;..\..\lib\UnitTest++\src;..\BuildDependencies\include\UnitTest++\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>TARGET_WINDOWS;_WINDOWS;_MSVC;WIN32;_DEBUG;_WIN32_WINNT=0x0501;NTDDI_VERSION=0x05010300;NOMINMAX;_USE_32BIT_TIME_T;HAS_DX;D3D_DEBUG_INFO;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MinimalRebuild>false</MinimalRebuild>
-      <ExceptionHandling>Async</ExceptionHandling>
-      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-      <BufferSecurityCheck>true</BufferSecurityCheck>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-      <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>
-      </ForcedIncludeFiles>
-      <ShowIncludes>false</ShowIncludes>
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-    </ClCompile>
-    <Link>
-      <AdditionalOptions>/MACHINE:I386 /IGNORE:4089 /ignore:4254 %(AdditionalOptions)</AdditionalOptions>
-      <AdditionalDependencies>UnitTest++d.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <OutputFile>$(OutDir)test-XbmcThreads.exe</OutputFile>
-      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>libc;msvcrt;libcmt;msvcrtd;msvcprtd;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <ModuleDefinitionFile>
-      </ModuleDefinitionFile>
-      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <ProgramDatabaseFile>$(OutDir)XBMC.pdb</ProgramDatabaseFile>
-      <SubSystem>Console</SubSystem>
-      <LargeAddressAware>true</LargeAddressAware>
-      <EntryPointSymbol>
-      </EntryPointSymbol>
-      <RandomizedBaseAddress>true</RandomizedBaseAddress>
-      <DataExecutionPrevention>true</DataExecutionPrevention>
-      <TargetMachine>MachineX86</TargetMachine>
-      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
-    </Link>
-    <Manifest>
-      <AdditionalManifestFiles>VC90.CRT.x86.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
-      <EnableDPIAwareness>true</EnableDPIAwareness>
-    </Manifest>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
-      <Optimization>Full</Optimization>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-      <OmitFramePointers>true</OmitFramePointers>
-      <AdditionalIncludeDirectories>..\..\xbmc\;..\..\lib\UnitTest++\src;..\BuildDependencies\include\UnitTest++\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>TARGET_WINDOWS;_WINDOWS;_MSVC;WIN32;NDEBUG;_WIN32_WINNT=0x0501;NTDDI_VERSION=0x05010300;NOMINMAX;_USE_32BIT_TIME_T;HAS_DX;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <StringPooling>false</StringPooling>
-      <MinimalRebuild>false</MinimalRebuild>
-      <ExceptionHandling>Async</ExceptionHandling>
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <BufferSecurityCheck>true</BufferSecurityCheck>
-      <FunctionLevelLinking>false</FunctionLevelLinking>
-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>pch.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-      <ShowIncludes>false</ShowIncludes>
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-    </ClCompile>
-    <Link>
-      <AdditionalOptions>/MACHINE:I386 /IGNORE:4089 /ignore:4254 %(AdditionalOptions)</AdditionalOptions>
-      <AdditionalDependencies>UnitTest++.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <OutputFile>$(OutDir)XBMC.exe</OutputFile>
-      <AdditionalLibraryDirectories>..\..\lib\libSDL-WIN32\lib;..\..\xbmc\cores\DSPlayer\Libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>libc;msvcrt;libci;msvcprt;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <DelayLoadDLLs>dwmapi.dll;libmicrohttpd-5.dll;ssh.dll;sqlite3.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <ProgramDatabaseFile>$(OutDir)XBMC.pdb</ProgramDatabaseFile>
-      <SubSystem>Windows</SubSystem>
-      <LargeAddressAware>true</LargeAddressAware>
-      <OptimizeReferences>true</OptimizeReferences>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
-      <RandomizedBaseAddress>true</RandomizedBaseAddress>
-      <DataExecutionPrevention>true</DataExecutionPrevention>
-      <TargetMachine>MachineX86</TargetMachine>
-    </Link>
-    <Manifest>
-      <AdditionalManifestFiles>VC90.CRT.x86.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
-      <EnableDPIAwareness>true</EnableDPIAwareness>
-    </Manifest>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\xbmc\threads\test\TestAtomics.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\test\TestEvent.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\test\TestMain.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\test\TestSharedSection.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\test\TestThreadLocal.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\xbmc\threads\test\TestHelpers.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="XbmcCommons.vcxproj">
-      <Project>{87da0a1e-3f33-4927-a5e5-2d58f2c58e17}</Project>
-    </ProjectReference>
-    <ProjectReference Include="XbmcThreads.vcxproj">
-      <Project>{034b1d02-ca92-455d-8866-db95bee49c10}</Project>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-  <ProjectExtensions>
-    <VisualStudio>
-      <UserProperties RESOURCE_FILE="XBMC_PC.rc" />
-    </VisualStudio>
-  </ProjectExtensions>
-  <Import Project="$(SolutionDir)\$(ProjectFileName).targets.user" Condition="Exists('$(SolutionDir)\$(ProjectFileName).targets.user')" />
-</Project>
\ No newline at end of file
diff --git a/project/VS2010Express/test-XbmcThreads.vcxproj.filters b/project/VS2010Express/test-XbmcThreads.vcxproj.filters
deleted file mode 100644
index 1df9342..0000000
--- a/project/VS2010Express/test-XbmcThreads.vcxproj.filters
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <ClCompile Include="..\..\xbmc\threads\test\TestAtomics.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\test\TestEvent.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\test\TestMain.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\test\TestSharedSection.cpp" />
-    <ClCompile Include="..\..\xbmc\threads\test\TestThreadLocal.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\xbmc\threads\test\TestHelpers.h" />
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/project/VS2010Express/update_git_rev.bat b/project/VS2010Express/update_git_rev.bat
deleted file mode 100644
index db84f38..0000000
--- a/project/VS2010Express/update_git_rev.bat
+++ /dev/null
@@ -1,11 +0,0 @@
- at echo off
-
-SET REV_FILE=..\..\git_revision.h
-
-CALL ..\Win32BuildSetup\extract_git_rev.bat
-
-IF NOT [%GIT_REV%]==[] (
-  echo #define GIT_REV "%GIT_REV%" > "%REV_FILE%"
-) ELSE (
-  echo. > "%REV_FILE%"
-)
diff --git a/project/VS2010Express/win81.manifest b/project/VS2010Express/win81.manifest
deleted file mode 100644
index 61625f2..0000000
--- a/project/VS2010Express/win81.manifest
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
-<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
-    <description>XBMC</description>
-    <compatibility xmlns='urn:schemas-microsoft-com:compatibility.v1'> 
-        <application> 
-            <!-- Windows 8.1 -->
-            <supportedOS Id='{1f676c76-80e1-4239-95bb-83d0f6d0da78}'/>
-            <!-- Windows Vista -->
-            <supportedOS Id='{e2011457-1546-43c5-a5fe-008deee3d3f0}'/> 
-            <!-- Windows 7 -->
-            <supportedOS Id='{35138b9a-5d96-4fbd-8e2d-a2440225f93a}'/>
-            <!-- Windows 8 -->
-            <supportedOS Id='{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}'/>
-        </application> 
-    </compatibility>
-</assembly>
\ No newline at end of file
diff --git a/tools/EventClients/Clients/OSXRemote/HIDRemote/HIDRemote.h b/tools/EventClients/Clients/OSXRemote/HIDRemote/HIDRemote.h
deleted file mode 100644
index 8bbb54b..0000000
--- a/tools/EventClients/Clients/OSXRemote/HIDRemote/HIDRemote.h
+++ /dev/null
@@ -1,356 +0,0 @@
-//
-//  HIDRemote.h
-//  HIDRemote V1.1.1
-//
-//  Created by Felix Schwarz on 06.04.07.
-//  Copyright 2007-2009 IOSPIRIT GmbH. All rights reserved.
-//
-//  The latest version of this class is available at
-//     http://www.iospirit.com/developers/hidremote/
-//
-//  ** LICENSE *************************************************************************
-//
-//  Copyright (c) 2007-2009 IOSPIRIT GmbH (http://www.iospirit.com/)
-//  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 IOSPIRIT GmbH 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 HOLDER 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.
-//
-//  ************************************************************************************
-
-
-
-//  ************************************************************************************
-//  ********************************** DOCUMENTATION ***********************************
-//  ************************************************************************************
-//
-//  - a reference is available at http://www.iospirit.com/developers/hidremote/reference/
-//  - for a guide, please see http://www.iospirit.com/developers/hidremote/guide/
-//
-//  ************************************************************************************
-
-
-#import <Cocoa/Cocoa.h>
-
-#include <Carbon/Carbon.h>
-
-#include <unistd.h>
-#include <mach/mach.h>
-#include <sys/types.h>
-
-#include <IOKit/IOKitLib.h>
-#include <IOKit/IOCFPlugIn.h>
-#include <IOKit/IOMessage.h>
-#include <IOKit/hid/IOHIDKeys.h>
-#include <IOKit/hid/IOHIDLib.h>
-#include <IOKit/hid/IOHIDUsageTables.h>
-#include <IOKit/hidsystem/IOHIDLib.h>
-#include <IOKit/hidsystem/IOHIDParameter.h>
-#include <IOKit/hidsystem/IOHIDShared.h>
-
-#pragma mark -- Enums / Codes  --
-
-typedef enum
-{
-	kHIDRemoteModeNone = 0L,
-	kHIDRemoteModeShared,		// Share the remote with others - let's you listen to the remote control events as long as noone has an exclusive lock on it
-					// (RECOMMENDED ONLY FOR SPECIAL PURPOSES)
-
-	kHIDRemoteModeExclusive,	// Try to acquire an exclusive lock on the remote (NOT RECOMMENDED)
-
-	kHIDRemoteModeExclusiveAuto	// Try to acquire an exclusive lock on the remote whenever the application has focus. Temporarily release control over the
-					// remote when another application has focus (RECOMMENDED)
-} HIDRemoteMode;
-
-typedef enum
-{
-	/* A code reserved for "no button" (needed for tracking) */
-	kHIDRemoteButtonCodeNone	= 0L,
-
-	/* Standard codes - available for white plastic and aluminum remote */
-	kHIDRemoteButtonCodeUp,
-	kHIDRemoteButtonCodeDown,
-	kHIDRemoteButtonCodeLeft,
-	kHIDRemoteButtonCodeRight,
-	kHIDRemoteButtonCodeCenter,
-	kHIDRemoteButtonCodeMenu,
-
-	/* Extra codes - Only available for the new aluminum version of the remote */
-	kHIDRemoteButtonCodePlay,
-
-	/* Masks */
-	kHIDRemoteButtonCodeCodeMask      = 0xFFL,
-	kHIDRemoteButtonCodeHoldMask      = (1L << 16L),
-	kHIDRemoteButtonCodeSpecialMask   = (1L << 17L),
-	kHIDRemoteButtonCodeAluminumMask  = (1L << 21L), // PRIVATE - only used internally
-
-	/* Hold button standard codes - available for white plastic and aluminum remote */
-	kHIDRemoteButtonCodeUpHold       = (kHIDRemoteButtonCodeHoldMask|kHIDRemoteButtonCodeUp),
-	kHIDRemoteButtonCodeDownHold     = (kHIDRemoteButtonCodeHoldMask|kHIDRemoteButtonCodeDown),
-	kHIDRemoteButtonCodeLeftHold     = (kHIDRemoteButtonCodeHoldMask|kHIDRemoteButtonCodeLeft),
-	kHIDRemoteButtonCodeRightHold    = (kHIDRemoteButtonCodeHoldMask|kHIDRemoteButtonCodeRight),
-	kHIDRemoteButtonCodeCenterHold	 = (kHIDRemoteButtonCodeHoldMask|kHIDRemoteButtonCodeCenter),
-	kHIDRemoteButtonCodeMenuHold	 = (kHIDRemoteButtonCodeHoldMask|kHIDRemoteButtonCodeMenu),
-
-	/* Hold button extra codes - Only available for aluminum version of the remote */
-	kHIDRemoteButtonCodePlayHold	  = (kHIDRemoteButtonCodeHoldMask|kHIDRemoteButtonCodePlay),
-
-	/* DEPRECATED codes - compatibility with HIDRemote 1.0 */
-	kHIDRemoteButtonCodePlus	  = kHIDRemoteButtonCodeUp,
-	kHIDRemoteButtonCodePlusHold      = kHIDRemoteButtonCodeUpHold,
-	kHIDRemoteButtonCodeMinus	  = kHIDRemoteButtonCodeDown,
-	kHIDRemoteButtonCodeMinusHold     = kHIDRemoteButtonCodeDownHold,
-	kHIDRemoteButtonCodePlayPause	  = kHIDRemoteButtonCodeCenter,
-	kHIDRemoteButtonCodePlayPauseHold = kHIDRemoteButtonCodeCenterHold,
-
-	/* Special purpose codes */
-	kHIDRemoteButtonCodeIDChanged  = (kHIDRemoteButtonCodeSpecialMask|(1L << 18L)),	// (the ID of the connected remote has changed, you can safely ignore this)
-	#ifdef _HIDREMOTE_EXTENSIONS
-		#define _HIDREMOTE_EXTENSIONS_SECTION 1
-		#include "HIDRemoteAdditions.h"
-		#undef _HIDREMOTE_EXTENSIONS_SECTION
-	#endif /* _HIDREMOTE_EXTENSIONS */
-} HIDRemoteButtonCode;
-
-typedef enum
-{
-	kHIDRemoteModelUndetermined = 0L,				// Assume a white plastic remote
-	kHIDRemoteModelWhitePlastic,					// Signal *likely* to be coming from a white plastic remote
-	kHIDRemoteModelAluminum						// Signal *definitely* coming from an aluminum remote
-} HIDRemoteModel;
-
-typedef enum
-{
-	kHIDRemoteAluminumRemoteSupportLevelNone = 0L,			// This system has no support for the Aluminum Remote at all
-	kHIDRemoteAluminumRemoteSupportLevelEmulation,			// This system possibly has support for the Aluminum Remote (via emulation)
-	kHIDRemoteAluminumRemoteSupportLevelNative			// This system has native support for the Aluminum Remote
-} HIDRemoteAluminumRemoteSupportLevel;
-
- at class HIDRemote;
-
-#pragma mark -- Delegate protocol (mandatory) --
- at protocol HIDRemoteDelegate
-
-// Notification of button events
-- (void)hidRemote:(HIDRemote *)hidRemote				// The instance of HIDRemote sending this
-        eventWithButton:(HIDRemoteButtonCode)buttonCode			// Event for the button specified by code
-	isPressed:(BOOL)isPressed					// The button was pressed (YES) / released (NO)
-	fromHardwareWithAttributes:(NSMutableDictionary *)attributes;	// Information on the device this event comes from
-
- at optional
-
-// Notification of ID changes
-- (void)hidRemote:(HIDRemote *)hidRemote				// Invoked when the user switched to a remote control with a different ID
-	remoteIDChangedOldID:(SInt32)old
-	newID:(SInt32)newID
-	forHardwareWithAttributes:(NSMutableDictionary *)attributes;
-
-// Notification about hardware additions/removals 
-- (void)hidRemote:(HIDRemote *)hidRemote				// Invoked when new hardware was found / added to HIDRemote's pool
-	foundNewHardwareWithAttributes:(NSMutableDictionary *)attributes;
-
-- (void)hidRemote:(HIDRemote *)hidRemote				// Invoked when initialization of new hardware as requested failed
-	failedNewHardwareWithError:(NSError *)error;
-
-- (void)hidRemote:(HIDRemote *)hidRemote				// Invoked when hardware was removed from HIDRemote's pool
-	releasedHardwareWithAttributes:(NSMutableDictionary *)attributes;
-
-// ### WARNING: Unless you know VERY PRECISELY what you are doing, do not implement any of the delegate methods below. ###
-
-// Matching of newly found receiver hardware
-- (BOOL)hidRemote:(HIDRemote *)hidRemote				// Invoked when new hardware is inspected
-	inspectNewHardwareWithService:(io_service_t)service		// 
-	prematchResult:(BOOL)prematchResult;				// Return YES if HIDRemote should go on with this hardware and try
-									// to use it, or NO if it should not be persued further.
-
-// Exlusive lock lending
-- (BOOL)hidRemote:(HIDRemote *)hidRemote
-	lendExclusiveLockToApplicationWithInfo:(NSDictionary *)applicationInfo;
-
-- (void)hidRemote:(HIDRemote *)hidRemote
-	exclusiveLockReleasedByApplicationWithInfo:(NSDictionary *)applicationInfo;
-
-- (BOOL)hidRemote:(HIDRemote *)hidRemote
-	shouldRetryExclusiveLockWithInfo:(NSDictionary *)applicationInfo;
-
- at end 
-
-
-#pragma mark -- Actual header file for class  --
-
- at interface HIDRemote : NSObject
-{
-	// IOMasterPort
-	mach_port_t _masterPort;
-
-	// Notification ports
-	IONotificationPortRef _notifyPort;
-	CFRunLoopSourceRef _notifyRLSource;
-	
-	// Matching iterator
-	io_iterator_t _matchingServicesIterator;
-	
-	// SecureInput notification
-	io_object_t _secureInputNotification;
-	
-	// Service attributes
-	NSMutableDictionary *_serviceAttribMap;
-	
-	// Mode
-	HIDRemoteMode _mode;
-	BOOL _autoRecover;
-	NSTimer *_autoRecoveryTimer;
-	
-	// Delegate
-	NSObject <HIDRemoteDelegate> *_delegate;
-	
-	// Last seen ID and remote model
-	SInt32 _lastSeenRemoteID;
-	HIDRemoteModel _lastSeenModel;
-	SInt32 _lastSeenModelRemoteID;
-	
-	// Unused button codes
-	NSArray *_unusedButtonCodes;
-	
-	// Simulate Plus/Minus Hold
-	BOOL _simulateHoldEvents;
-	
-	// SecureEventInput workaround
-	BOOL _secureEventInputWorkAround;
-	UInt64 _lastSecureEventInputPIDSum;
-	uid_t _lastFrontUserSession;
-	
-	// Exclusive lock lending
-	BOOL _exclusiveLockLending;
-	NSNumber *_waitForReturnByPID;
-	NSNumber *_returnToPID;
-}
-
-#pragma mark -- PUBLIC: Shared HID Remote --
-+ (HIDRemote *)sharedHIDRemote;
-
-#pragma mark -- PUBLIC: System Information --
-+ (BOOL)isCandelairInstalled;
-+ (BOOL)isCandelairInstallationRequiredForRemoteMode:(HIDRemoteMode)remoteMode;
-- (HIDRemoteAluminumRemoteSupportLevel)aluminiumRemoteSystemSupportLevel;
-
-#pragma mark -- PUBLIC: Interface / API --
-- (BOOL)startRemoteControl:(HIDRemoteMode)hidRemoteMode;	
-- (void)stopRemoteControl;
-
-- (BOOL)isStarted;
-
-- (unsigned)activeRemoteControlCount;
-
-- (SInt32)lastSeenRemoteControlID;
-
-- (void)setLastSeenModel:(HIDRemoteModel)aModel;
-- (HIDRemoteModel)lastSeenModel;
-
-- (void)setDelegate:(NSObject <HIDRemoteDelegate> *)newDelegate;
-- (NSObject <HIDRemoteDelegate> *)delegate;
-
-- (void)setSimulateHoldEvents:(BOOL)newSimulateHoldEvents;
-- (BOOL)simulateHoldEvents;
-
-- (void)setUnusedButtonCodes:(NSArray *)newArrayWithUnusedButtonCodesAsNSNumbers;
-- (NSArray *)unusedButtonCodes;
-
-#pragma mark -- PUBLIC: Expert APIs --
-- (void)setEnableSecureEventInputWorkaround:(BOOL)newEnableSecureEventInputWorkaround;
-- (BOOL)enableSecureEventInputWorkaround;
-
-- (void)setExclusiveLockLendingEnabled:(BOOL)newExclusiveLockLendingEnabled;
-- (BOOL)exclusiveLockLendingEnabled;
-
-#pragma mark -- PRIVATE: HID Event handling --
-- (void)_handleButtonCode:(HIDRemoteButtonCode)buttonCode isPressed:(BOOL)isPressed hidAttribsDict:(NSMutableDictionary *)hidAttribsDict;
-- (void)_sendButtonCode:(HIDRemoteButtonCode)buttonCode isPressed:(BOOL)isPressed hidAttribsDict:(NSMutableDictionary *)hidAttribsDict;
-- (void)_hidEventFor:(io_service_t)hidDevice from:(IOHIDQueueInterface **)interface withResult:(IOReturn)result;
-
-#pragma mark -- PRIVATE: Service setup and destruction --
-- (BOOL)_prematchService:(io_object_t)service;
-- (HIDRemoteButtonCode)buttonCodeForUsage:(unsigned int)usage usagePage:(unsigned int)usagePage;
-- (BOOL)_setupService:(io_object_t)service;
-- (void)_destructService:(io_object_t)service;
-
-#pragma mark -- PRIVATE: Distributed notifiations handling --
-- (void)_postStatusWithAction:(NSString *)action;
-- (void)_handleNotifications:(NSNotification *)notification;
-
-#pragma mark -- PRIVATE: Application becomes active / inactive handling for kHIDRemoteModeExclusiveAuto --
-- (void)_appStatusChanged:(NSNotification *)notification;
-- (void)_delayedAutoRecovery:(NSTimer *)aTimer;
-
-#pragma mark -- PRIVATE: Notification handling --
-- (void)_serviceMatching:(io_iterator_t)iterator;
-- (void)_serviceNotificationFor:(io_service_t)service messageType:(natural_t)messageType messageArgument:(void *)messageArgument;
-- (void)_updateSessionInformation;
-- (void)_secureInputNotificationFor:(io_service_t)service messageType:(natural_t)messageType messageArgument:(void *)messageArgument;
-
- at end
-
-#pragma mark -- Information attribute keys --
-extern NSString *kHIDRemoteManufacturer;
-extern NSString *kHIDRemoteProduct;
-extern NSString *kHIDRemoteTransport;
-
-#pragma mark -- Internal/Expert attribute keys (AKA: don't touch these unless you really, really, REALLY know what you do) --
-extern NSString *kHIDRemoteCFPluginInterface;
-extern NSString *kHIDRemoteHIDDeviceInterface;
-extern NSString *kHIDRemoteCookieButtonCodeLUT;
-extern NSString *kHIDRemoteHIDQueueInterface;
-extern NSString *kHIDRemoteServiceNotification;
-extern NSString *kHIDRemoteCFRunLoopSource;
-extern NSString *kHIDRemoteLastButtonPressed;
-extern NSString *kHIDRemoteService;
-extern NSString *kHIDRemoteSimulateHoldEventsTimer;
-extern NSString *kHIDRemoteSimulateHoldEventsOriginButtonCode;
-extern NSString *kHIDRemoteAluminumRemoteSupportLevel;
-extern NSString *kHIDRemoteAluminumRemoteSupportOnDemand;
-
-#pragma mark -- Distributed notifications --
-extern NSString *kHIDRemoteDNHIDRemotePing;
-extern NSString *kHIDRemoteDNHIDRemoteRetry;
-extern NSString *kHIDRemoteDNHIDRemoteStatus;
-
-#pragma mark -- Distributed notifications userInfo keys and values --
-extern NSString *kHIDRemoteDNStatusHIDRemoteVersionKey;
-extern NSString *kHIDRemoteDNStatusPIDKey;
-extern NSString *kHIDRemoteDNStatusModeKey;
-extern NSString *kHIDRemoteDNStatusUnusedButtonCodesKey;
-extern NSString *kHIDRemoteDNStatusRemoteControlCountKey;
-extern NSString *kHIDRemoteDNStatusReturnToPIDKey;
-extern NSString *kHIDRemoteDNStatusActionKey;
-extern NSString *kHIDRemoteDNStatusActionStart;
-extern NSString *kHIDRemoteDNStatusActionStop;
-extern NSString *kHIDRemoteDNStatusActionUpdate;
-extern NSString *kHIDRemoteDNStatusActionNoNeed;
-
-#pragma mark -- Driver compatibility flags --
-typedef enum
-{
-	kHIDRemoteCompatibilityFlagsStandardHIDRemoteDevice = 1L,
-} HIDRemoteCompatibilityFlags;
diff --git a/tools/EventClients/Clients/OSXRemote/HIDRemote/HIDRemote.m b/tools/EventClients/Clients/OSXRemote/HIDRemote/HIDRemote.m
deleted file mode 100644
index 31ba3be..0000000
--- a/tools/EventClients/Clients/OSXRemote/HIDRemote/HIDRemote.m
+++ /dev/null
@@ -1,1900 +0,0 @@
-//
-//  HIDRemote.m
-//  HIDRemote V1.1.1 (14th December 2009)
-//
-//  Created by Felix Schwarz on 06.04.07.
-//  Copyright 2007-2009 IOSPIRIT GmbH. All rights reserved.
-//
-//  The latest version of this class is available at
-//     http://www.iospirit.com/developers/hidremote/
-//
-//  ** LICENSE *************************************************************************
-//
-//  Copyright (c) 2007-2009 IOSPIRIT GmbH (http://www.iospirit.com/)
-//  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 IOSPIRIT GmbH 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 HOLDER 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.
-//
-//  ************************************************************************************
-
-//  ************************************************************************************
-//  ********************************** DOCUMENTATION ***********************************
-//  ************************************************************************************
-//
-//  - a reference is available at http://www.iospirit.com/developers/hidremote/reference/
-//  - for a guide, please see http://www.iospirit.com/developers/hidremote/guide/
-//
-//  ************************************************************************************
-
-#import "HIDRemote.h"
-
-// Callback Prototypes
-static void HIDEventCallback(	void * target, 
-				IOReturn result,
-				void * refcon,
-				void * sender);
-
-static void ServiceMatchingCallback(	void *refCon,
-					io_iterator_t iterator);
-
-static void ServiceNotificationCallback(void *		refCon,
-					io_service_t 	service,
-					natural_t 	messageType,
-					void *		messageArgument);
-
-static void SecureInputNotificationCallback(	void *		refCon,
-						io_service_t 	service,
-						natural_t 	messageType,
-						void *		messageArgument);
-
-// Shared HIDRemote instance
-static HIDRemote *sHIDRemote = nil;
-
- at implementation HIDRemote
-
-#pragma mark -- Init, dealloc & shared instance --
-
-+ (HIDRemote *)sharedHIDRemote
-{
-	if (!sHIDRemote)
-	{
-		sHIDRemote = [[HIDRemote alloc] init];
-	}
-	
-	return (sHIDRemote);
-}
-
-- (id)init
-{
-	if ((self = [super init]) != nil)
-	{
-		// Detect application becoming active/inactive
-		[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_appStatusChanged:)	 name:NSApplicationDidBecomeActiveNotification	object:[NSApplication sharedApplication]];
-		[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_appStatusChanged:)	 name:NSApplicationWillResignActiveNotification object:[NSApplication sharedApplication]];
-		[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_appStatusChanged:)	 name:NSApplicationWillTerminateNotification	object:[NSApplication sharedApplication]];
-
-		// Handle distributed notifications
-		[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(_handleNotifications:) name:kHIDRemoteDNHIDRemotePing	object:nil];
-		[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(_handleNotifications:) name:kHIDRemoteDNHIDRemoteRetry	object:[NSString stringWithFormat:@"%d", getpid()]];
-
-		// Enabled by default: simulate hold events for plus/minus
-		_simulateHoldEvents = YES;
-		
-		// Enabled by default: work around for a locking issue introduced with Security Update 2008-004 / 10.4.9 and beyond (credit for finding this workaround goes to Martin Kahr)
-		_secureEventInputWorkAround = YES;
-		_secureInputNotification = 0;
-		
-		// Initialize instance variables
-		_lastSeenRemoteID = -1;
-		_lastSeenModel = kHIDRemoteModelUndetermined;
-		_unusedButtonCodes = [[NSMutableArray alloc] init];
-		_exclusiveLockLending = NO;
-	}
-
-	return (self);
-}
-
-- (void)dealloc
-{
-	[[NSNotificationCenter defaultCenter] removeObserver:self name:NSApplicationWillTerminateNotification object:[NSApplication sharedApplication]];
-	[[NSNotificationCenter defaultCenter] removeObserver:self name:NSApplicationWillResignActiveNotification object:[NSApplication sharedApplication]];
-	[[NSNotificationCenter defaultCenter] removeObserver:self name:NSApplicationDidBecomeActiveNotification object:[NSApplication sharedApplication]];
-
-	[[NSDistributedNotificationCenter defaultCenter] removeObserver:self name:kHIDRemoteDNHIDRemotePing object:nil];
-	[[NSDistributedNotificationCenter defaultCenter] removeObserver:self name:kHIDRemoteDNHIDRemoteRetry object:[NSString stringWithFormat:@"%d", getpid()]];
-
-	[self stopRemoteControl];
-	
-	[self setExclusiveLockLendingEnabled:NO];
-
-	[self setDelegate:nil];
-	
-	[_unusedButtonCodes release];
-	_unusedButtonCodes = nil;
-
-	[super dealloc];
-}
-
-#pragma mark -- PUBLIC: System Information --
-+ (BOOL)isCandelairInstalled
-{
-	mach_port_t	masterPort = 0;
-	kern_return_t	kernResult;
-	io_service_t	matchingService = 0;
-	BOOL isInstalled = NO;
-
-	kernResult = IOMasterPort(MACH_PORT_NULL, &masterPort);
-	if (kernResult || !masterPort) { return(NO); }
-
-	if ((matchingService = IOServiceGetMatchingService(masterPort, IOServiceMatching("IOSPIRITIRController"))) != 0)
-	{
-		isInstalled = YES;
-		IOObjectRelease((io_object_t) matchingService);
-	}
-
-	mach_port_deallocate(mach_task_self(), masterPort);
-
-	return (isInstalled);
-}
-
-+ (BOOL)isCandelairInstallationRequiredForRemoteMode:(HIDRemoteMode)remoteMode
-{
-	SInt32 systemVersion = 0;
-	
-	// Determine OS version
-	if (Gestalt(gestaltSystemVersion, &systemVersion) == noErr)
-	{
-		switch (systemVersion)
-		{
-			case 0x1060: // OS 10.6
-			case 0x1061: // OS 10.6.1
-				// OS X 10.6(.0) and OS X 10.6.1 require the Candelair driver for to be installed,
-				// so that third party apps can acquire an exclusive lock on the receiver HID Device
-				// via IOKit.
-
-				switch (remoteMode)
-				{
-					case kHIDRemoteModeExclusive:
-					case kHIDRemoteModeExclusiveAuto:
-						if (![self isCandelairInstalled])
-						{
-							return (YES);
-						}
-					break;
-				}
-			break;
-		}
-	}
-	
-	return (NO);
-}
-
-- (HIDRemoteAluminumRemoteSupportLevel)aluminiumRemoteSystemSupportLevel
-{
-	HIDRemoteAluminumRemoteSupportLevel supportLevel = kHIDRemoteAluminumRemoteSupportLevelNone;
-	NSEnumerator *attribDictsEnum;
-	NSDictionary *hidAttribsDict;
-	
-	attribDictsEnum = [_serviceAttribMap objectEnumerator];
-	
-	while ((hidAttribsDict = [attribDictsEnum nextObject]) != nil)
-	{
-		NSNumber *deviceSupportLevel;
-		
-		if ((deviceSupportLevel = [hidAttribsDict objectForKey:kHIDRemoteAluminumRemoteSupportLevel]) != nil)
-		{
-			if ([deviceSupportLevel intValue] > supportLevel)
-			{
-				supportLevel = [deviceSupportLevel intValue];
-			}
-		}
-	}
-	
-	return (supportLevel);
-}
-
-#pragma mark -- PUBLIC: Interface / API --
-- (BOOL)startRemoteControl:(HIDRemoteMode)hidRemoteMode
-{
-	if ((_mode == kHIDRemoteModeNone) && (hidRemoteMode != kHIDRemoteModeNone))
-	{
-		kern_return_t		kernReturn;
-		CFMutableDictionaryRef	matchDict=NULL;
-		io_service_t rootService;
-		
-		do
-		{
-			// Get IOKit master port
-			kernReturn = IOMasterPort(bootstrap_port, &_masterPort);
-			if ((kernReturn!=kIOReturnSuccess) || (_masterPort==0)) { break; }
-					
-			// Setup notification port
-			_notifyPort = IONotificationPortCreate(_masterPort);
-			
-			if ((_notifyRLSource = IONotificationPortGetRunLoopSource(_notifyPort)) != NULL)
-			{
-				CFRunLoopAddSource(	CFRunLoopGetCurrent(),
-							_notifyRLSource,
-							kCFRunLoopCommonModes);
-			}
-			else
-			{
-				break;
-			}
-			
-			// Setup SecureInput notification
-			if ((hidRemoteMode == kHIDRemoteModeExclusive) || (hidRemoteMode == kHIDRemoteModeExclusiveAuto))
-			{
-				if ((rootService = IORegistryEntryFromPath(_masterPort, kIOServicePlane ":/")) != 0)
-				{
-					kernReturn = IOServiceAddInterestNotification(	_notifyPort,
-											rootService,
-											kIOBusyInterest,
-											SecureInputNotificationCallback,
-											(void *)self,
-											&_secureInputNotification);
-					if (kernReturn != kIOReturnSuccess) { break; }
-					
-					[self _updateSessionInformation];
-				}
-				else
-				{
-					break;
-				}
-			}
-
-			// Setup notification matching dict
-			matchDict = IOServiceMatching(kIOHIDDeviceKey);
-			CFRetain(matchDict);
-
-			// Actually add notification
-			kernReturn = IOServiceAddMatchingNotification(	_notifyPort,
-									kIOFirstMatchNotification,
-									matchDict,			// one reference count consumed by this call
-									ServiceMatchingCallback,
-									(void *) self,
-									&_matchingServicesIterator);
-			if (kernReturn != kIOReturnSuccess) { break; }
-
-			// Setup serviceAttribMap 
-			_serviceAttribMap = [[NSMutableDictionary alloc] init];
-			if (!_serviceAttribMap) { break; }
-			
-			// Phew .. everything went well!
-			_mode = hidRemoteMode;
-			CFRelease(matchDict);
-			
-			[self _serviceMatching:_matchingServicesIterator];
-			
-			[self _postStatusWithAction:kHIDRemoteDNStatusActionStart];
-			
-			return (YES);
-
-		}while(0);
-		
-		// An error occured. Do necessary clean up.
-		if (matchDict)
-		{
-			CFRelease(matchDict);
-			matchDict = NULL;
-		}
-		
-		[self stopRemoteControl];
-	}
-		
-	return (NO);
-}
-
-- (void)stopRemoteControl
-{
-	_autoRecover = NO;
-	
-	if (_autoRecoveryTimer)
-	{
-		[_autoRecoveryTimer invalidate];
-		[_autoRecoveryTimer release];
-		_autoRecoveryTimer = nil;
-	}
-
-	if (_serviceAttribMap)
-	{
-		NSDictionary *cloneDict = [[NSDictionary alloc] initWithDictionary:_serviceAttribMap];
-	
-		if (cloneDict)
-		{
-			NSEnumerator *mapKeyEnum = [cloneDict keyEnumerator];
-			NSNumber *serviceValue;
-			
-			while ((serviceValue = [mapKeyEnum nextObject]) != nil)
-			{
-				[self _destructService:(io_object_t)[serviceValue unsignedIntValue]];
-			};
-			
-			[cloneDict release];
-			cloneDict = nil;
-		}
-	
-		[_serviceAttribMap release];
-		_serviceAttribMap = nil;
-	}
-
-	if (_matchingServicesIterator)
-	{
-		IOObjectRelease((io_object_t) _matchingServicesIterator);
-		_matchingServicesIterator = 0;
-	}
-	
-	if (_secureInputNotification)
-	{
-		IOObjectRelease((io_object_t) _secureInputNotification);
-		_secureInputNotification = 0;
-	}
-
-	if (_notifyRLSource)
-	{
-		CFRunLoopSourceInvalidate(_notifyRLSource);
-
-		_notifyRLSource = NULL;
-	}
-
-	if (_notifyPort)
-	{
-		IONotificationPortDestroy(_notifyPort);
-		_notifyPort = NULL;
-	}
-
-	if (_masterPort)
-	{
-		mach_port_deallocate(mach_task_self(), _masterPort);
-	}
-
-	[self _postStatusWithAction:kHIDRemoteDNStatusActionStop];
-
-	[_returnToPID release];
-	_returnToPID = nil;
-
-	_mode = kHIDRemoteModeNone;
-}
-
-- (BOOL)isStarted
-{
-	return (_mode != kHIDRemoteModeNone);
-}
-
-- (unsigned)activeRemoteControlCount
-{
-	return ([_serviceAttribMap count]);
-}
-
-- (SInt32)lastSeenRemoteControlID
-{
-	return (_lastSeenRemoteID);
-}
-
-- (HIDRemoteModel)lastSeenModel
-{
-	return (_lastSeenModel);
-}
-
-- (void)setLastSeenModel:(HIDRemoteModel)aModel
-{
-	_lastSeenModel = aModel;
-}
-
-- (void)setSimulateHoldEvents:(BOOL)newSimulateHoldEvents
-{
-	_simulateHoldEvents = newSimulateHoldEvents;
-}
-
-- (BOOL)simulateHoldEvents
-{
-	return (_simulateHoldEvents);
-}
-
-- (NSArray *)unusedButtonCodes
-{
-	return (_unusedButtonCodes);
-}
-
-- (void)setUnusedButtonCodes:(NSArray *)newArrayWithUnusedButtonCodesAsNSNumbers
-{
-	[newArrayWithUnusedButtonCodesAsNSNumbers retain];
-	[_unusedButtonCodes release];
-	
-	_unusedButtonCodes = newArrayWithUnusedButtonCodesAsNSNumbers;
-
-	[self _postStatusWithAction:kHIDRemoteDNStatusActionUpdate];
-}
-
-- (void)setDelegate:(NSObject <HIDRemoteDelegate> *)newDelegate
-{
-	_delegate = newDelegate;
-}
-
-- (NSObject <HIDRemoteDelegate> *)delegate
-{
-	return (_delegate);
-}
-
-#pragma mark -- PUBLIC: Expert APIs --
-- (void)setEnableSecureEventInputWorkaround:(BOOL)newEnableSecureEventInputWorkaround
-{
-	_secureEventInputWorkAround = newEnableSecureEventInputWorkaround;
-}
-
-- (BOOL)enableSecureEventInputWorkaround
-{
-	return (_secureEventInputWorkAround);
-}
-
-- (void)setExclusiveLockLendingEnabled:(BOOL)newExclusiveLockLendingEnabled
-{
-	if (newExclusiveLockLendingEnabled != _exclusiveLockLending)
-	{
-		_exclusiveLockLending = newExclusiveLockLendingEnabled;
-		
-		if (_exclusiveLockLending)
-		{
-			[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(_handleNotifications:) name:kHIDRemoteDNHIDRemoteStatus object:nil];
-		}
-		else
-		{
-			[[NSDistributedNotificationCenter defaultCenter] removeObserver:self name:kHIDRemoteDNHIDRemoteStatus object:nil];
-			
-			[_waitForReturnByPID release];
-			_waitForReturnByPID = nil;
-		}
-	}
-}
-
-- (BOOL)exclusiveLockLendingEnabled
-{
-	return (_exclusiveLockLending);
-}
-
-#pragma mark -- PRIVATE: Application becomes active / inactive handling for kHIDRemoteModeExclusiveAuto --
-- (void)_appStatusChanged:(NSNotification *)notification
-{
-	if (notification)
-	{
-		if (_autoRecoveryTimer)
-		{
-			[_autoRecoveryTimer invalidate];
-			[_autoRecoveryTimer release];
-			_autoRecoveryTimer = nil;
-		}
-
-		if ([[notification name] isEqual:NSApplicationDidBecomeActiveNotification])
-		{
-			if (_autoRecover)
-			{
-				// Delay autorecover by 0.1 to avoid race conditions
-				if ((_autoRecoveryTimer = [[NSTimer alloc] initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:0.1] interval:0.1 target:self selector:@selector(_delayedAutoRecovery:) userInfo:nil repeats:NO]) != nil)
-				{
-					// Using CFRunLoopAddTimer instead of [[NSRunLoop currentRunLoop] addTimer:.. for consistency with run loop modes.
-					// The kCFRunLoopCommonModes counterpart NSRunLoopCommonModes is only available in 10.5 and later, whereas this code
-					// is designed to be also compatible with 10.4. CFRunLoopTimerRef is "toll-free-bridged" with NSTimer since 10.0.
-					CFRunLoopAddTimer(CFRunLoopGetCurrent(), (CFRunLoopTimerRef)_autoRecoveryTimer, kCFRunLoopCommonModes);
-				}
-			}
-		}
-
-		if ([[notification name] isEqual:NSApplicationWillResignActiveNotification])
-		{
-			if (_mode == kHIDRemoteModeExclusiveAuto)
-			{
-				[self stopRemoteControl];
-				_autoRecover = YES;
-			}
-		}
-		
-		if ([[notification name] isEqual:NSApplicationWillTerminateNotification])
-		{
-			if ([self isStarted])
-			{
-				[self stopRemoteControl];
-			}
-		}
-	}
-}
-
-- (void)_delayedAutoRecovery:(NSTimer *)aTimer
-{
-	[_autoRecoveryTimer invalidate];
-	[_autoRecoveryTimer release];
-	_autoRecoveryTimer = nil;
-
-	if (_autoRecover)
-	{
-		[self startRemoteControl:kHIDRemoteModeExclusiveAuto];
-		_autoRecover = NO;
-	}
-}
-
-
-#pragma mark -- PRIVATE: Distributed notifiations handling --
-- (void)_postStatusWithAction:(NSString *)action
-{
-	[[NSDistributedNotificationCenter defaultCenter] postNotificationName:kHIDRemoteDNHIDRemoteStatus
-								       object:[NSString stringWithFormat:@"%d",getpid()]
-								     userInfo:[NSDictionary dictionaryWithObjectsAndKeys:
-											[NSNumber numberWithInt:1],							kHIDRemoteDNStatusHIDRemoteVersionKey,
-											[NSNumber numberWithUnsignedInt:(unsigned int)getpid()],			kHIDRemoteDNStatusPIDKey,
-											[NSNumber numberWithInt:(int)_mode],						kHIDRemoteDNStatusModeKey,
-											[NSNumber numberWithUnsignedInt:(unsigned int)[self activeRemoteControlCount]], kHIDRemoteDNStatusRemoteControlCountKey,
-											((_unusedButtonCodes!=nil) ? _unusedButtonCodes : [NSArray array]),		kHIDRemoteDNStatusUnusedButtonCodesKey,
-											action,										kHIDRemoteDNStatusActionKey,
-											[[NSBundle mainBundle] bundleIdentifier],					(NSString *)kCFBundleIdentifierKey,
-											_returnToPID,									kHIDRemoteDNStatusReturnToPIDKey,
-									      nil]
-							   deliverImmediately:YES
-	];
-}
-
-- (void)_handleNotifications:(NSNotification *)notification
-{
-	NSString *notificationName;
-
-	if ((notification!=nil) && ((notificationName = [notification name]) != nil))
-	{
-		if ([notificationName isEqual:kHIDRemoteDNHIDRemotePing])
-		{
-			[self _postStatusWithAction:kHIDRemoteDNStatusActionUpdate];
-		}
-
-		if ([notificationName isEqual:kHIDRemoteDNHIDRemoteRetry])
-		{
-			if ([self isStarted])
-			{
-				BOOL retry = YES;
-			
-				if (([self delegate] != nil) &&
-				    ([[self delegate] respondsToSelector:@selector(hidRemote:shouldRetryExclusiveLockWithInfo:)]))
-				{
-					retry = [[self delegate] hidRemote:self shouldRetryExclusiveLockWithInfo:[notification userInfo]];
-				}
-				
-				if (retry)
-				{
-					HIDRemoteMode restartInMode = _mode;
-					
-					if (restartInMode != kHIDRemoteModeNone)
-					{
-						[self stopRemoteControl];
-						
-						[_returnToPID release];
-						[self startRemoteControl:restartInMode];
-						
-						if (restartInMode != kHIDRemoteModeShared)
-						{
-							_returnToPID = [[[notification userInfo] objectForKey:kHIDRemoteDNStatusPIDKey] retain];
-						}
-					}
-				}
-				else
-				{
-					NSNumber *cacheReturnPID = _returnToPID;
-
-					_returnToPID = [[[notification userInfo] objectForKey:kHIDRemoteDNStatusPIDKey] retain];
-					[self _postStatusWithAction:kHIDRemoteDNStatusActionNoNeed];
-					[_returnToPID release];
-					
-					_returnToPID = cacheReturnPID;
-				}
-			}
-		}
-		
-		if (_exclusiveLockLending)
-		{
-			if ([notificationName isEqual:kHIDRemoteDNHIDRemoteStatus])
-			{
-				NSString *action;
-				
-				if ((action = [[notification userInfo] objectForKey:kHIDRemoteDNStatusActionKey]) != nil)
-				{
-					if ((_mode == kHIDRemoteModeNone) && _waitForReturnByPID)
-					{
-						NSNumber *pidNumber, *returnToPIDNumber;
-
-						if ((pidNumber		= [[notification userInfo] objectForKey:kHIDRemoteDNStatusPIDKey]) != nil)
-						{
-							returnToPIDNumber = [[notification userInfo] objectForKey:kHIDRemoteDNStatusReturnToPIDKey];
-						
-							if ([action isEqual:kHIDRemoteDNStatusActionStart])
-							{
-								if ([pidNumber isEqual:_waitForReturnByPID])
-								{
-									NSNumber *startMode;
-									
-									 if ((startMode = [[notification userInfo] objectForKey:kHIDRemoteDNStatusModeKey]) != nil)
-									 {
-										if ([startMode intValue] == kHIDRemoteModeShared)
-										{
-											returnToPIDNumber = [NSNumber numberWithInt:getpid()];
-											action = kHIDRemoteDNStatusActionNoNeed;
-										}
-									 }
-								}
-							}
-
-							if (returnToPIDNumber != nil)
-							{
-								if ([action isEqual:kHIDRemoteDNStatusActionStop] || [action isEqual:kHIDRemoteDNStatusActionNoNeed])
-								{
-									if ([pidNumber isEqual:_waitForReturnByPID] && ([returnToPIDNumber intValue] == getpid()))
-									{
-										[_waitForReturnByPID release];
-										_waitForReturnByPID = nil;
-									
-										if (([self delegate] != nil) &&
-										    ([[self delegate] respondsToSelector:@selector(hidRemote:exclusiveLockReleasedByApplicationWithInfo:)]))
-										{
-											[[self delegate] hidRemote:self exclusiveLockReleasedByApplicationWithInfo:[notification userInfo]];
-										}
-										else
-										{
-											[self startRemoteControl:kHIDRemoteModeExclusive];
-										}
-									}
-								}
-							}
-						}
-					}
-
-					if (_mode==kHIDRemoteModeExclusive)
-					{
-						if ([action isEqual:kHIDRemoteDNStatusActionStart])
-						{
-							NSNumber *originPID = [[notification userInfo] objectForKey:kHIDRemoteDNStatusPIDKey];
-							BOOL lendLock = YES;
-						
-							if ([originPID intValue] != getpid())
-							{
-								if (([self delegate] != nil) &&
-								    ([[self delegate] respondsToSelector:@selector(hidRemote:lendExclusiveLockToApplicationWithInfo:)]))
-								{
-									lendLock = [[self delegate] hidRemote:self lendExclusiveLockToApplicationWithInfo:[notification userInfo]];
-								}
-								
-								if (lendLock)
-								{
-									[_waitForReturnByPID release];
-									_waitForReturnByPID = [originPID retain];
-									
-									if (_waitForReturnByPID != nil)
-									{
-										[self stopRemoteControl];
-										
-										[[NSDistributedNotificationCenter defaultCenter] postNotificationName:kHIDRemoteDNHIDRemoteRetry
-																	       object:[NSString stringWithFormat:@"%d", [_waitForReturnByPID intValue]]
-																	     userInfo:[NSDictionary dictionaryWithObjectsAndKeys:
-																				[NSNumber numberWithUnsignedInt:(unsigned int)getpid()], kHIDRemoteDNStatusPIDKey,
-																				[[NSBundle mainBundle] bundleIdentifier],		 (NSString *)kCFBundleIdentifierKey,
-																		      nil]
-																   deliverImmediately:YES];
-									}
-								}
-							}
-						}
-					}
-				}
-			}
-		}
-	}
-}
-
-#pragma mark -- PRIVATE: Service setup and destruction --
-- (BOOL)_prematchService:(io_object_t)service
-{
-	BOOL serviceMatches = NO;
-	NSString *ioClass;
-	NSNumber *candelairHIDRemoteCompatibilityMask;
-	
-	if (service != 0)
-	{
-		// IOClass matching
-		if ((ioClass = (NSString *)IORegistryEntryCreateCFProperty((io_registry_entry_t)service,
-									   CFSTR(kIOClassKey),
-									   kCFAllocatorDefault,
-									   0)) != nil)
-		{
-			// Match on Apple's AppleIRController and old versions of the Remote Buddy IR Controller
-			if ([ioClass isEqual:@"AppleIRController"] || [ioClass isEqual:@"RBIOKitAIREmu"])
-			{
-				CFTypeRef candelairHIDRemoteCompatibilityDevice;
-
-				serviceMatches = YES;
-				
-				if ((candelairHIDRemoteCompatibilityDevice = IORegistryEntryCreateCFProperty((io_registry_entry_t)service, CFSTR("CandelairHIDRemoteCompatibilityDevice"), kCFAllocatorDefault, 0)) != NULL)
-				{
-					if (CFEqual(kCFBooleanTrue, candelairHIDRemoteCompatibilityDevice))
-					{
-						serviceMatches = NO;
-					}
-					
-					CFRelease (candelairHIDRemoteCompatibilityDevice);
-				}
-			}
-
-			// Match on the virtual IOSPIRIT IR Controller
-			if ([ioClass isEqual:@"IOSPIRITIRController"])
-			{
-				serviceMatches = YES;
-			}
-			
-			CFRelease((CFTypeRef)ioClass);
-		}
-
-		// Match on services that claim compatibility with the HID Remote class (Candelair or third-party) by having a property of CandelairHIDRemoteCompatibilityMask = 1 <Type: Number>
-		if ((candelairHIDRemoteCompatibilityMask = (NSNumber *)IORegistryEntryCreateCFProperty((io_registry_entry_t)service, CFSTR("CandelairHIDRemoteCompatibilityMask"), kCFAllocatorDefault, 0)) != nil)
-		{
-			if ([candelairHIDRemoteCompatibilityMask isKindOfClass:[NSNumber class]])
-			{
-				if ([candelairHIDRemoteCompatibilityMask unsignedIntValue] & kHIDRemoteCompatibilityFlagsStandardHIDRemoteDevice)
-				{
-					serviceMatches = YES;
-				}
-				else
-				{
-					serviceMatches = NO;
-				}
-			}
-			
-			CFRelease((CFTypeRef)candelairHIDRemoteCompatibilityMask);
-		}
-	}
-
-	if (([self delegate]!=nil) &&
-	    ([[self delegate] respondsToSelector:@selector(hidRemote:inspectNewHardwareWithService:prematchResult:)]))
-	{
-		serviceMatches = [((NSObject <HIDRemoteDelegate> *)[self delegate]) hidRemote:self inspectNewHardwareWithService:service prematchResult:serviceMatches];
-	}
-	
-	return (serviceMatches);
-}
-
-- (HIDRemoteButtonCode)buttonCodeForUsage:(unsigned int)usage usagePage:(unsigned int)usagePage
-{
-	HIDRemoteButtonCode buttonCode = kHIDRemoteButtonCodeNone;
-
-	switch (usagePage)
-	{
-		case kHIDPage_Consumer:
-			switch (usage)
-			{
-				case kHIDUsage_Csmr_MenuPick:
-					// Aluminum Remote: Center
-					buttonCode = (kHIDRemoteButtonCodeCenter|kHIDRemoteButtonCodeAluminumMask);
-				break;
-				
-				case kHIDUsage_Csmr_ModeStep:
-					// Aluminium Remote: Center Hold
-					buttonCode = (kHIDRemoteButtonCodeCenterHold|kHIDRemoteButtonCodeAluminumMask);
-				break;
-
-				case kHIDUsage_Csmr_PlayOrPause:
-					// Aluminum Remote: Play/Pause
-					buttonCode = (kHIDRemoteButtonCodePlay|kHIDRemoteButtonCodeAluminumMask);
-				break;
-			
-				case kHIDUsage_Csmr_Rewind:
-					buttonCode = kHIDRemoteButtonCodeLeftHold;
-				break;
-				
-				case kHIDUsage_Csmr_FastForward:
-					buttonCode = kHIDRemoteButtonCodeRightHold;
-				break;
-
-				case kHIDUsage_Csmr_Menu:
-					buttonCode = kHIDRemoteButtonCodeMenuHold;
-				break;
-			}
-		break;
-		
-		case kHIDPage_GenericDesktop:
-			switch (usage)
-			{
-				case kHIDUsage_GD_SystemAppMenu:
-					buttonCode = kHIDRemoteButtonCodeMenu;
-				break;
-
-				case kHIDUsage_GD_SystemMenu:
-					buttonCode = kHIDRemoteButtonCodeCenter;
-				break;
-
-				case kHIDUsage_GD_SystemMenuRight:
-					buttonCode = kHIDRemoteButtonCodeRight;
-				break;
-
-				case kHIDUsage_GD_SystemMenuLeft:
-					buttonCode = kHIDRemoteButtonCodeLeft;
-				break;
-
-				case kHIDUsage_GD_SystemMenuUp:
-					buttonCode = kHIDRemoteButtonCodeUp;
-				break;
-
-				case kHIDUsage_GD_SystemMenuDown:
-					buttonCode = kHIDRemoteButtonCodeDown;
-				break;
-			}
-		break;
-		
-		case 0x06: /* Reserved */
-			switch (usage)
-			{
-				case 0x22:
-					buttonCode = kHIDRemoteButtonCodeIDChanged;
-				break;
-			}
-		break;
-		
-		case 0xFF01: /* Vendor specific */
-			switch (usage)
-			{
-				case 0x23:
-					buttonCode = kHIDRemoteButtonCodeCenterHold;
-				break;
-
-				#ifdef _HIDREMOTE_EXTENSIONS
-					#define _HIDREMOTE_EXTENSIONS_SECTION 2
-					#include "HIDRemoteAdditions.h"
-					#undef _HIDREMOTE_EXTENSIONS_SECTION
-				#endif /* _HIDREMOTE_EXTENSIONS */
-			}
-		break;
-	}
-	
-	return (buttonCode);
-}
-
-- (BOOL)_setupService:(io_object_t)service
-{
-	kern_return_t		 kernResult;
-	IOReturn		 returnCode;
-	HRESULT			 hResult;
-	SInt32			 score;
-	BOOL			 opened = NO, queueStarted = NO;
-	IOHIDDeviceInterface122	 **hidDeviceInterface	= NULL;
-	IOCFPlugInInterface	 **cfPluginInterface	= NULL;
-	IOHIDQueueInterface	 **hidQueueInterface	= NULL;
-	io_object_t		 serviceNotification	= 0;
-	CFRunLoopSourceRef	 queueEventSource	= NULL;
-	NSMutableDictionary	 *hidAttribsDict	= nil;
-	CFArrayRef		 hidElements		= NULL;
-	NSError			 *error			= nil;
-	UInt32			 errorCode		= 0;
-
-	if (![self _prematchService:service])
-	{
-		return (NO);
-	}
-
-	do
-	{
-		// Create a plugin interface ..
-		kernResult = IOCreatePlugInInterfaceForService(	service,
-								kIOHIDDeviceUserClientTypeID,
-								kIOCFPlugInInterfaceID,
-								&cfPluginInterface,
-								&score);
-								
-		if (kernResult != kIOReturnSuccess)
-		{
-			error = [NSError errorWithDomain:NSMachErrorDomain code:kernResult userInfo:nil];
-			errorCode = 1;
-			break; 
-		}
-
-		
-		// .. use it to get the HID interface ..
-		hResult = (*cfPluginInterface)->QueryInterface(	cfPluginInterface, 
-								CFUUIDGetUUIDBytes(kIOHIDDeviceInterfaceID122),
-								(LPVOID)&hidDeviceInterface);
-									
-		if ((hResult!=S_OK) || (hidDeviceInterface==NULL))
-		{
-			error = [NSError errorWithDomain:NSMachErrorDomain code:hResult userInfo:nil];
-			errorCode = 2;
-			break; 
-		}
-
-		
-		// .. then open it ..
-		switch (_mode)
-		{
-			case kHIDRemoteModeShared:
-				hResult = (*hidDeviceInterface)->open(hidDeviceInterface, kIOHIDOptionsTypeNone);
-			break;
-			
-			case kHIDRemoteModeExclusive:
-			case kHIDRemoteModeExclusiveAuto:
-				hResult = (*hidDeviceInterface)->open(hidDeviceInterface, kIOHIDOptionsTypeSeizeDevice);
-			break;
-			
-			default:
-				goto cleanUp; // Ugh! But there are no "double breaks" available in C AFAIK ..
-			break;
-		}
-		
-		if (hResult!=S_OK)
-		{
-			error = [NSError errorWithDomain:NSMachErrorDomain code:hResult userInfo:nil];
-			errorCode = 3;
-			break;
-		}
-		
-		opened = YES;
-
-		// .. query the HID elements ..
-		returnCode = (*hidDeviceInterface)->copyMatchingElements(hidDeviceInterface,
-									 NULL,
-									 &hidElements);
-		if ((returnCode != kIOReturnSuccess) || (hidElements==NULL))
-		{
-			error = [NSError errorWithDomain:NSMachErrorDomain code:returnCode userInfo:nil];
-			errorCode = 4;
-			
-			break;
-		}
-
-		// Setup an event queue for HID events!
-		hidQueueInterface = (*hidDeviceInterface)->allocQueue(hidDeviceInterface);
-		if (hidQueueInterface == NULL)
-		{
-			error = [NSError errorWithDomain:NSMachErrorDomain code:kIOReturnError userInfo:nil];
-			errorCode = 5;
-
-			break;
-		}
-
-		returnCode = (*hidQueueInterface)->create(hidQueueInterface, 0, 32);
-		if ((returnCode != kIOReturnSuccess) || (hidElements==NULL))
-		{
-			error = [NSError errorWithDomain:NSMachErrorDomain code:returnCode userInfo:nil];
-			errorCode = 6;
-
-			break;
-		}
-
-
-		// Setup of attributes stored for this HID device
-		hidAttribsDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
-					[NSValue valueWithPointer:(const void *)cfPluginInterface],	kHIDRemoteCFPluginInterface,
-					[NSValue valueWithPointer:(const void *)hidDeviceInterface],	kHIDRemoteHIDDeviceInterface,
-					[NSValue valueWithPointer:(const void *)hidQueueInterface],	kHIDRemoteHIDQueueInterface,
-				 nil];
-
-		{
-			UInt32 i, hidElementCnt = CFArrayGetCount(hidElements);
-			NSMutableDictionary *cookieButtonCodeLUT = [[NSMutableDictionary alloc] init];
-			NSMutableDictionary *cookieCount	= [[NSMutableDictionary alloc] init];
-			
-			if ((cookieButtonCodeLUT==nil) || (cookieCount==nil))
-			{
-				[cookieButtonCodeLUT  release];
-				cookieButtonCodeLUT = nil;
-
-				[cookieCount	release];
-				cookieCount = nil;
-
-				error = [NSError errorWithDomain:NSMachErrorDomain code:kIOReturnError userInfo:nil];
-				errorCode = 7;
-
-				break;
-			}
-			
-			// Analyze the HID elements and find matching elements
-			for (i=0;i<hidElementCnt;i++)
-			{
-				CFDictionaryRef		hidDict;
-				NSNumber		*usage, *usagePage, *cookie;
-				HIDRemoteButtonCode	buttonCode = kHIDRemoteButtonCodeNone;
-				
-				hidDict = CFArrayGetValueAtIndex(hidElements, i);
-				
-				usage	  = (NSNumber *) CFDictionaryGetValue(hidDict, CFSTR(kIOHIDElementUsageKey));
-				usagePage = (NSNumber *) CFDictionaryGetValue(hidDict, CFSTR(kIOHIDElementUsagePageKey));
-				cookie    = (NSNumber *) CFDictionaryGetValue(hidDict, CFSTR(kIOHIDElementCookieKey));
-				
-				if (usage && usagePage && cookie)
-				{
-					// Find the button codes for the ID combos
-					buttonCode = [self buttonCodeForUsage:[usage unsignedIntValue] usagePage:[usagePage unsignedIntValue]];
-
-					#ifdef _HIDREMOTE_EXTENSIONS
-						// Debug logging code
-						#define _HIDREMOTE_EXTENSIONS_SECTION 3
-						#include "HIDRemoteAdditions.h"
-						#undef _HIDREMOTE_EXTENSIONS_SECTION
-					#endif /* _HIDREMOTE_EXTENSIONS */
-					
-					// Did record match?
-					if (buttonCode != kHIDRemoteButtonCodeNone)
-					{
-						NSString *pairString	    = [[NSString alloc] initWithFormat:@"%u_%u", [usagePage unsignedIntValue], [usage unsignedIntValue]];
-						NSNumber *buttonCodeNumber  = [[NSNumber alloc] initWithUnsignedInt:(unsigned int)buttonCode];
-						
-						#ifdef _HIDREMOTE_EXTENSIONS
-							// Debug logging code
-							#define _HIDREMOTE_EXTENSIONS_SECTION 4
-							#include "HIDRemoteAdditions.h"
-							#undef _HIDREMOTE_EXTENSIONS_SECTION
-						#endif /* _HIDREMOTE_EXTENSIONS */
-						
-						[cookieCount		setObject:buttonCodeNumber forKey:pairString];
-						[cookieButtonCodeLUT	setObject:buttonCodeNumber forKey:cookie];
-						
-						(*hidQueueInterface)->addElement(hidQueueInterface,
-										 (IOHIDElementCookie) [cookie unsignedIntValue],
-										 0);
-						
-						[buttonCodeNumber release];
-						[pairString release];
-					}
-				}
-			}
-			
-			// Compare number of *unique* matches (thus the cookieCount dictionary) with required minimum
-			if ([cookieCount count] < 10)
-			{
-				[cookieButtonCodeLUT  release];
-				cookieButtonCodeLUT = nil;
-
-				[cookieCount	release];
-				cookieCount = nil;
-
-				error = [NSError errorWithDomain:NSMachErrorDomain code:kIOReturnError userInfo:nil];
-				errorCode = 8;
-
-				break;
-			}
-
-			[hidAttribsDict setObject:cookieButtonCodeLUT forKey:kHIDRemoteCookieButtonCodeLUT];
-
-			[cookieButtonCodeLUT  release];
-			cookieButtonCodeLUT = nil;
-
-			[cookieCount	release];
-			cookieCount = nil;
-		}
-		
-		// Finish setup of IOHIDQueueInterface with CFRunLoop
-		returnCode = (*hidQueueInterface)->createAsyncEventSource(hidQueueInterface, &queueEventSource);
-		if ((returnCode != kIOReturnSuccess) || (queueEventSource == NULL))
-		{
-			error = [NSError errorWithDomain:NSMachErrorDomain code:returnCode userInfo:nil];
-			errorCode = 9;
-			break; 
-		}
-		
-		returnCode = (*hidQueueInterface)->setEventCallout(hidQueueInterface, HIDEventCallback, (void *)((intptr_t)service), (void *)self);
-		if (returnCode != kIOReturnSuccess)
-		{
-			error = [NSError errorWithDomain:NSMachErrorDomain code:returnCode userInfo:nil];
-			errorCode = 10;
-			break;
-		}
-		
-		CFRunLoopAddSource(	CFRunLoopGetCurrent(),
-					queueEventSource,
-					kCFRunLoopCommonModes);
-		[hidAttribsDict setObject:[NSValue valueWithPointer:(const void *)queueEventSource] forKey:kHIDRemoteCFRunLoopSource];
-		
-		returnCode = (*hidQueueInterface)->start(hidQueueInterface);
-		if (returnCode != kIOReturnSuccess)
-		{
-			error = [NSError errorWithDomain:NSMachErrorDomain code:returnCode userInfo:nil];
-			errorCode = 11;
-			break;
-		}
-		
-		queueStarted = YES;
-
-		// Setup device notifications
-		returnCode = IOServiceAddInterestNotification(	_notifyPort,
-								service,
-								kIOGeneralInterest,
-								ServiceNotificationCallback,
-								self,
-								&serviceNotification);
-		if ((returnCode != kIOReturnSuccess) || (serviceNotification==0))
-		{
-			error = [NSError errorWithDomain:NSMachErrorDomain code:returnCode userInfo:nil];
-			errorCode = 12;
-			break;
-		}
-
-		[hidAttribsDict setObject:[NSNumber numberWithUnsignedInt:(unsigned int)serviceNotification] forKey:kHIDRemoteServiceNotification];
-		
-		// Retain service
-		if (IOObjectRetain(service) != kIOReturnSuccess)
-		{
-			error = [NSError errorWithDomain:NSMachErrorDomain code:kIOReturnError userInfo:nil];
-			errorCode = 13;
-			break;
-		}
-		
-		[hidAttribsDict setObject:[NSNumber numberWithUnsignedInt:(unsigned int)service] forKey:kHIDRemoteService];
-		
-		// Get some (somewhat optional) infos on the device
-		{
-			CFStringRef product, manufacturer, transport;
-		
-			if ((product = IORegistryEntryCreateCFProperty(	(io_registry_entry_t)service,
-									(CFStringRef) @"Product",
-									kCFAllocatorDefault,
-									0)) != NULL)
-			{
-				if (CFGetTypeID(product) == CFStringGetTypeID())
-				{
-					[hidAttribsDict setObject:(NSString *)product forKey:kHIDRemoteProduct];
-				}
-				
-				CFRelease(product);
-			}
-
-			if ((manufacturer = IORegistryEntryCreateCFProperty(	(io_registry_entry_t)service,
-										(CFStringRef) @"Manufacturer",
-										kCFAllocatorDefault,
-										0)) != NULL)
-			{
-				if (CFGetTypeID(manufacturer) == CFStringGetTypeID())
-				{
-					[hidAttribsDict setObject:(NSString *)manufacturer forKey:kHIDRemoteManufacturer];
-				}
-				
-				CFRelease(manufacturer);
-			}
-
-			if ((transport = IORegistryEntryCreateCFProperty(	(io_registry_entry_t)service,
-										(CFStringRef) @"Transport",
-										kCFAllocatorDefault,
-										0)) != NULL)
-			{
-				if (CFGetTypeID(transport) == CFStringGetTypeID())
-				{
-					[hidAttribsDict setObject:(NSString *)transport forKey:kHIDRemoteTransport];
-				}
-				
-				CFRelease(transport);
-			}
-		}
-		
-		// Determine Aluminum Remote support
-		{
-			CFNumberRef aluSupport;
-			HIDRemoteAluminumRemoteSupportLevel supportLevel = kHIDRemoteAluminumRemoteSupportLevelNone;
-			
-			if ((_mode == kHIDRemoteModeExclusive) || (_mode == kHIDRemoteModeExclusiveAuto))
-			{
-				// Determine if this driver offers on-demand support for the Aluminum Remote (only relevant under OS versions < 10.6.2)
-				if ((aluSupport = IORegistryEntryCreateCFProperty((io_registry_entry_t)service,
-										  (CFStringRef) @"AluminumRemoteSupportLevelOnDemand",
-										  kCFAllocatorDefault,
-										  0)) != nil)
-				{
-					// There is => request the driver to enable it for us
-					if (IORegistryEntrySetCFProperty((io_registry_entry_t)service,
-									 CFSTR("EnableAluminumRemoteSupportForMe"),
-									 [NSDictionary dictionaryWithObjectsAndKeys:
-										[NSNumber numberWithLongLong:(long long)getpid()],	@"pid",
-										[NSNumber numberWithLongLong:(long long)getuid()],	@"uid",
-									 nil]) == kIOReturnSuccess)
-					{
-						if (CFGetTypeID(aluSupport) == CFNumberGetTypeID())
-						{
-							supportLevel = (HIDRemoteAluminumRemoteSupportLevel) [(NSNumber *)aluSupport intValue];
-						}
-
-						[hidAttribsDict setObject:[NSNumber numberWithBool:YES] forKey:kHIDRemoteAluminumRemoteSupportOnDemand];
-					}
-					
-					CFRelease(aluSupport);
-				}
-			}
-			
-			if (supportLevel == kHIDRemoteAluminumRemoteSupportLevelNone)
-			{
-				if ((aluSupport = IORegistryEntryCreateCFProperty((io_registry_entry_t)service,
-										  (CFStringRef) @"AluminumRemoteSupportLevel",
-										  kCFAllocatorDefault,
-										  0)) != nil)
-				{
-					if (CFGetTypeID(aluSupport) == CFNumberGetTypeID())
-					{
-						supportLevel = (HIDRemoteAluminumRemoteSupportLevel) [(NSNumber *)aluSupport intValue];
-					}
-					
-					CFRelease(aluSupport);
-				}
-				else
-				{
-					CFStringRef ioKitClassName;
-				
-					if ((ioKitClassName = IORegistryEntryCreateCFProperty(	(io_registry_entry_t)service,
-												CFSTR(kIOClassKey),
-												kCFAllocatorDefault,
-												0)) != nil)
-					{
-						if ([(NSString *)ioKitClassName isEqual:@"AppleIRController"])
-						{
-							SInt32 systemVersion;
-							
-							if (Gestalt(gestaltSystemVersion, &systemVersion) == noErr)
-							{
-								if (systemVersion >= 0x1062)
-								{
-									// Support for the Aluminum Remote was added only with OS 10.6.2. Previous versions can not distinguish
-									// between the Center and the new, seperate Play/Pause button. They'll recognize both as presses of the
-									// "Center" button.
-									//
-									// You CAN, however, receive Aluminum Remote button presses even under OS 10.5 when using Remote Buddy's
-									// Virtual Remote. While Remote Buddy does support the Aluminum Remote across all OS releases it runs on,
-									// its Virtual Remote can only emulate Aluminum Remote button presses under OS 10.5 and up in order not to
-									// break compatibility with applications whose IR Remote code relies on driver internals. [13-Nov-09]
-									supportLevel = kHIDRemoteAluminumRemoteSupportLevelNative;
-								}
-							}
-						}
-						
-						CFRelease(ioKitClassName);
-					}
-				}
-			}
-
-			[hidAttribsDict setObject:(NSNumber *)[NSNumber numberWithInt:(int)supportLevel] forKey:kHIDRemoteAluminumRemoteSupportLevel];
-		}
-		
-		// Add it to the serviceAttribMap
-		[_serviceAttribMap setObject:hidAttribsDict forKey:[NSNumber numberWithUnsignedInt:(unsigned int)service]];
-		
-		// And we're done with setup ..
-		if (([self delegate]!=nil) &&
-		    ([[self delegate] respondsToSelector:@selector(hidRemote:foundNewHardwareWithAttributes:)]))
-		{
-			[((NSObject <HIDRemoteDelegate> *)[self delegate]) hidRemote:self foundNewHardwareWithAttributes:hidAttribsDict];
-		}
-		
-		[hidAttribsDict release];
-		hidAttribsDict = nil;
-		
-		return(YES);
-
-	}while(0);
-	
-	cleanUp:
-
-	if (([self delegate]!=nil) &&
-	    ([[self delegate] respondsToSelector:@selector(hidRemote:failedNewHardwareWithError:)]))
-	{
-		if (error)
-		{
-			error = [NSError errorWithDomain:[error domain] 
-						    code:[error code]
-						userInfo:[NSDictionary dictionaryWithObject:[NSNumber numberWithInt:errorCode] forKey:@"InternalErrorCode"]
-				];
-		}
-
-		[((NSObject <HIDRemoteDelegate> *)[self delegate]) hidRemote:self failedNewHardwareWithError:error];
-	}
-	
-	// An error occured or this device is not of interest .. cleanup ..
-	if (serviceNotification)
-	{
-		IOObjectRelease(serviceNotification);
-		serviceNotification = 0;
-	}
-
-	if (queueEventSource)
-	{
-		CFRunLoopSourceInvalidate(queueEventSource);
-		queueEventSource=NULL;
-	}
-	
-	if (hidQueueInterface)
-	{
-		if (queueStarted)
-		{
-			(*hidQueueInterface)->stop(hidQueueInterface);
-		}
-		(*hidQueueInterface)->dispose(hidQueueInterface);
-		(*hidQueueInterface)->Release(hidQueueInterface);
-		hidQueueInterface = NULL;
-	}
-
-	if (hidAttribsDict)
-	{
-		[hidAttribsDict release];
-		hidAttribsDict = nil;
-	}
-	
-	if (hidElements)
-	{
-		CFRelease(hidElements);
-		hidElements = NULL;
-	}
-	
-	if (hidDeviceInterface)
-	{
-		if (opened)
-		{
-			(*hidDeviceInterface)->close(hidDeviceInterface);
-		}
-		(*hidDeviceInterface)->Release(hidDeviceInterface);
-		// opened = NO;
-		hidDeviceInterface = NULL;
-	}
-	
-	if (cfPluginInterface)
-	{
-		IODestroyPlugInInterface(cfPluginInterface);
-		cfPluginInterface = NULL;
-	}
-	
-	return (NO);
-}
-
-- (void)_destructService:(io_object_t)service
-{
-	NSNumber	    *serviceValue;
-	NSMutableDictionary *serviceDict = NULL;
-	
-	if ((serviceValue = [NSNumber numberWithUnsignedInt:(unsigned int)service]) == nil)
-	{
-		return;
-	}
-	
-	serviceDict  = [_serviceAttribMap objectForKey:serviceValue];
-	
-	if (serviceDict)
-	{
-		IOHIDDeviceInterface122	 **hidDeviceInterface	= NULL;
-		IOCFPlugInInterface	 **cfPluginInterface	= NULL;
-		IOHIDQueueInterface	 **hidQueueInterface	= NULL;
-		io_object_t		 serviceNotification	= 0;
-		CFRunLoopSourceRef	 queueEventSource	= NULL;
-		io_object_t		 theService		= 0;
-		NSMutableDictionary	 *cookieButtonMap	= nil;
-		NSTimer			 *simulateHoldTimer	= nil;
-
-		serviceNotification = (io_object_t)			([serviceDict objectForKey:kHIDRemoteServiceNotification]	? [[serviceDict objectForKey:kHIDRemoteServiceNotification] unsignedIntValue] :   0);
-		theService	    = (io_object_t)			([serviceDict objectForKey:kHIDRemoteService]			? [[serviceDict objectForKey:kHIDRemoteService]		    unsignedIntValue] :   0);
-		queueEventSource    = (CFRunLoopSourceRef)		([serviceDict objectForKey:kHIDRemoteCFRunLoopSource]		? [[serviceDict objectForKey:kHIDRemoteCFRunLoopSource]	    pointerValue]     : NULL);
-		hidQueueInterface   = (IOHIDQueueInterface **)		([serviceDict objectForKey:kHIDRemoteHIDQueueInterface]		? [[serviceDict objectForKey:kHIDRemoteHIDQueueInterface]   pointerValue]     : NULL);
-		hidDeviceInterface  = (IOHIDDeviceInterface122 **)	([serviceDict objectForKey:kHIDRemoteHIDDeviceInterface]	? [[serviceDict objectForKey:kHIDRemoteHIDDeviceInterface]  pointerValue]     : NULL);
-		cfPluginInterface   = (IOCFPlugInInterface **)		([serviceDict objectForKey:kHIDRemoteCFPluginInterface]		? [[serviceDict objectForKey:kHIDRemoteCFPluginInterface]   pointerValue]     : NULL);
-		cookieButtonMap	    = (NSMutableDictionary *)		 [serviceDict objectForKey:kHIDRemoteCookieButtonCodeLUT];
-		simulateHoldTimer   = (NSTimer *)			 [serviceDict objectForKey:kHIDRemoteSimulateHoldEventsTimer];
-		
-		[serviceDict  retain];
-		[_serviceAttribMap removeObjectForKey:serviceValue];
-
-		if (([serviceDict objectForKey:kHIDRemoteAluminumRemoteSupportOnDemand]!=nil) && [[serviceDict objectForKey:kHIDRemoteAluminumRemoteSupportOnDemand] boolValue] && (theService != 0))
-		{
-			// We previously requested the driver to enable Aluminum Remote support for us. Tell it to turn it off again - now that we no longer need it
-			IORegistryEntrySetCFProperty(	(io_registry_entry_t)theService,
-							CFSTR("DisableAluminumRemoteSupportForMe"),
-							[NSDictionary dictionaryWithObjectsAndKeys:
-								[NSNumber numberWithLongLong:(long long)getpid()],	@"pid",
-								[NSNumber numberWithLongLong:(long long)getuid()],	@"uid",
-							nil]);
-		}
-
-		if (([self delegate]!=nil) &&
-		    ([[self delegate] respondsToSelector:@selector(hidRemote:releasedHardwareWithAttributes:)]))
-		{
-			[((NSObject <HIDRemoteDelegate> *)[self delegate]) hidRemote:self releasedHardwareWithAttributes:serviceDict];
-		}
-		
-		if (simulateHoldTimer)
-		{
-			[simulateHoldTimer invalidate];
-		}
-
-		if (serviceNotification)
-		{
-			IOObjectRelease(serviceNotification);
-		}
-
-		if (queueEventSource)
-		{
-			CFRunLoopRemoveSource(	CFRunLoopGetCurrent(),
-						queueEventSource,
-						kCFRunLoopCommonModes);
-		}
-		
-		if (hidQueueInterface && cookieButtonMap)
-		{
-			NSEnumerator *cookieEnum = [cookieButtonMap keyEnumerator];
-			NSNumber *cookie;
-			
-			while ((cookie = [cookieEnum nextObject]) != nil)
-			{
-				if ((*hidQueueInterface)->hasElement(hidQueueInterface, (IOHIDElementCookie) [cookie unsignedIntValue]))
-				{
-					(*hidQueueInterface)->removeElement(hidQueueInterface,
-									    (IOHIDElementCookie) [cookie unsignedIntValue]);
-				}
-			};
-		}
-		
-		if (hidQueueInterface)
-		{
-			(*hidQueueInterface)->stop(hidQueueInterface);
-			(*hidQueueInterface)->dispose(hidQueueInterface);
-			(*hidQueueInterface)->Release(hidQueueInterface);
-		}
-		
-		if (hidDeviceInterface)
-		{
-			(*hidDeviceInterface)->close(hidDeviceInterface);
-			(*hidDeviceInterface)->Release(hidDeviceInterface);
-		}
-		
-		if (cfPluginInterface)
-		{
-			IODestroyPlugInInterface(cfPluginInterface);
-		}
-		
-		if (theService)
-		{
-			IOObjectRelease(theService);
-		}
-
-		[serviceDict release];
-	}
-}
-
-
-#pragma mark -- PRIVATE: HID Event handling --
-- (void)_simulateHoldEvent:(NSTimer *)aTimer
-{
-	NSMutableDictionary *hidAttribsDict;
-	NSTimer  *shTimer;
-	NSNumber *shButtonCode;
-	
-	if ((hidAttribsDict = (NSMutableDictionary *)[aTimer userInfo]) != nil)
-	{
-		if (((shTimer	   = [hidAttribsDict objectForKey:kHIDRemoteSimulateHoldEventsTimer]) != nil) &&
-		    ((shButtonCode = [hidAttribsDict objectForKey:kHIDRemoteSimulateHoldEventsOriginButtonCode]) != nil)) 
-		{
-			[shTimer invalidate];
-			[hidAttribsDict removeObjectForKey:kHIDRemoteSimulateHoldEventsTimer];
-
-			[self _sendButtonCode:(((HIDRemoteButtonCode)[shButtonCode unsignedIntValue])|kHIDRemoteButtonCodeHoldMask) isPressed:YES hidAttribsDict:hidAttribsDict];
-		}
-	}
-}
-
-- (void)_handleButtonCode:(HIDRemoteButtonCode)buttonCode isPressed:(BOOL)isPressed hidAttribsDict:(NSMutableDictionary *)hidAttribsDict
-{
-	switch (buttonCode)
-	{
-		case kHIDRemoteButtonCodeIDChanged:
-			// Do nothing, this is handled seperately
-		break;
-
-		case kHIDRemoteButtonCodeUp:
-		case kHIDRemoteButtonCodeDown:
-			if (_simulateHoldEvents)
-			{
-				NSTimer  *shTimer = nil;
-				NSNumber *shButtonCode = nil;
-
-				[[hidAttribsDict objectForKey:kHIDRemoteSimulateHoldEventsTimer] invalidate];
-
-				if (isPressed)
-				{
-					[hidAttribsDict setObject:[NSNumber numberWithUnsignedInt:buttonCode] forKey:kHIDRemoteSimulateHoldEventsOriginButtonCode];
-				
-					if ((shTimer = [[NSTimer alloc] initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:0.7] interval:0.1 target:self selector:@selector(_simulateHoldEvent:) userInfo:hidAttribsDict repeats:NO]) != nil)
-					{
-						[hidAttribsDict setObject:shTimer forKey:kHIDRemoteSimulateHoldEventsTimer];
-					
-						// Using CFRunLoopAddTimer instead of [[NSRunLoop currentRunLoop] addTimer:.. for consistency with run loop modes.
-						// The kCFRunLoopCommonModes counterpart NSRunLoopCommonModes is only available in 10.5 and later, whereas this code
-						// is designed to be also compatible with 10.4. CFRunLoopTimerRef is "toll-free-bridged" with NSTimer since 10.0.
-						CFRunLoopAddTimer(CFRunLoopGetCurrent(), (CFRunLoopTimerRef)shTimer, kCFRunLoopCommonModes);
-						
-						[shTimer release];
-
-						break;
-					}
-				}
-				else
-				{
-					shTimer	     = [hidAttribsDict objectForKey:kHIDRemoteSimulateHoldEventsTimer];
-					shButtonCode = [hidAttribsDict objectForKey:kHIDRemoteSimulateHoldEventsOriginButtonCode];
-				
-					if (shTimer && shButtonCode)
-					{
-						[self _sendButtonCode:(HIDRemoteButtonCode)[shButtonCode unsignedIntValue] isPressed:YES hidAttribsDict:hidAttribsDict];
-						[self _sendButtonCode:(HIDRemoteButtonCode)[shButtonCode unsignedIntValue] isPressed:NO hidAttribsDict:hidAttribsDict];
-					}
-					else
-					{
-						if (shButtonCode)
-						{
-							[self _sendButtonCode:(((HIDRemoteButtonCode)[shButtonCode unsignedIntValue])|kHIDRemoteButtonCodeHoldMask) isPressed:NO hidAttribsDict:hidAttribsDict];
-						}
-					}
-				}
-
-				[hidAttribsDict removeObjectForKey:kHIDRemoteSimulateHoldEventsTimer];
-				[hidAttribsDict removeObjectForKey:kHIDRemoteSimulateHoldEventsOriginButtonCode];
-					
-				break;
-			}
-		
-		default:
-			[self _sendButtonCode:buttonCode isPressed:isPressed hidAttribsDict:hidAttribsDict];
-		break;
-	}
-}
-
-- (void)_sendButtonCode:(HIDRemoteButtonCode)buttonCode isPressed:(BOOL)isPressed hidAttribsDict:(NSMutableDictionary *)hidAttribsDict
-{
-	if (([self delegate]!=nil) &&
-	    ([[self delegate] respondsToSelector:@selector(hidRemote:eventWithButton:isPressed:fromHardwareWithAttributes:)]))
-	{
-		switch (buttonCode & (~kHIDRemoteButtonCodeAluminumMask))
-		{
-			case kHIDRemoteButtonCodePlay:
-			case kHIDRemoteButtonCodeCenter:
-				if (buttonCode & kHIDRemoteButtonCodeAluminumMask)
-				{
-					_lastSeenModel         = kHIDRemoteModelAluminum;
-					_lastSeenModelRemoteID = _lastSeenRemoteID;
-				}
-				else
-				{
-					switch ((HIDRemoteAluminumRemoteSupportLevel)[[hidAttribsDict objectForKey:kHIDRemoteAluminumRemoteSupportLevel] intValue])
-					{
-						case kHIDRemoteAluminumRemoteSupportLevelNone:
-						case kHIDRemoteAluminumRemoteSupportLevelEmulation:
-							// Remote type can't be determined by just the Center button press
-						break;
-
-						case kHIDRemoteAluminumRemoteSupportLevelNative:
-							// Remote type can be safely determined by just the Center button press
-							if (((_lastSeenModel == kHIDRemoteModelAluminum) && (_lastSeenModelRemoteID != _lastSeenRemoteID)) ||
-							     (_lastSeenModel == kHIDRemoteModelUndetermined))
-							{
-								_lastSeenModel = kHIDRemoteModelWhitePlastic;
-							}
-						break;
-					}
-				}
-			break;
-		}
-		
-		// As soon as we have received a code that's unique to the Aluminum Remote, we can tell kHIDRemoteButtonCodePlayHold and kHIDRemoteButtonCodeCenterHold apart.
-		// Prior to that, a long press of the new "Play" button will be submitted as a "kHIDRemoteButtonCodeCenterHold", not a "kHIDRemoteButtonCodePlayHold" code.
-		if ((buttonCode == kHIDRemoteButtonCodeCenterHold) && (_lastSeenModel == kHIDRemoteModelAluminum))
-		{
-			buttonCode = kHIDRemoteButtonCodePlayHold;
-		}
-	
-		[((NSObject <HIDRemoteDelegate> *)[self delegate]) hidRemote:self eventWithButton:(buttonCode & (~kHIDRemoteButtonCodeAluminumMask)) isPressed:isPressed fromHardwareWithAttributes:hidAttribsDict];
-	}
-}
-
-- (void)_hidEventFor:(io_service_t)hidDevice from:(IOHIDQueueInterface **)interface withResult:(IOReturn)result
-{
-	NSMutableDictionary *hidAttribsDict = [_serviceAttribMap objectForKey:[NSNumber numberWithUnsignedInt:(unsigned int)hidDevice]];
-	
-	if (hidAttribsDict)
-	{
-		IOHIDQueueInterface **queueInterface  = NULL;
-		
-		queueInterface  = [[hidAttribsDict objectForKey:kHIDRemoteHIDQueueInterface] pointerValue];
-		
-		if (interface == queueInterface)
-		{
-			NSNumber	    *lastButtonPressedNumber = nil;
-			HIDRemoteButtonCode  lastButtonPressed = kHIDRemoteButtonCodeNone;
-			NSMutableDictionary *cookieButtonMap = nil;
-			
-			cookieButtonMap  = [hidAttribsDict objectForKey:kHIDRemoteCookieButtonCodeLUT];
-
-			if ((lastButtonPressedNumber = [hidAttribsDict objectForKey:kHIDRemoteLastButtonPressed]) != nil)
-			{
-				lastButtonPressed = [lastButtonPressedNumber unsignedIntValue];
-			}
-
-			while (result == kIOReturnSuccess)
-			{
-				IOHIDEventStruct hidEvent;
-				AbsoluteTime supportedTime = { 0,0 };
-			
-				result = (*queueInterface)->getNextEvent(	queueInterface,
-										&hidEvent,
-										supportedTime,
-										0);
-									
-				if (result == kIOReturnSuccess)
-				{
-					NSNumber *buttonCodeNumber = [cookieButtonMap objectForKey:[NSNumber numberWithUnsignedInt:(unsigned int) hidEvent.elementCookie]];
-					
-					#ifdef _HIDREMOTE_EXTENSIONS
-						// Debug logging code
-						#define _HIDREMOTE_EXTENSIONS_SECTION 5
-						#include "HIDRemoteAdditions.h"
-						#undef _HIDREMOTE_EXTENSIONS_SECTION
-					#endif /* _HIDREMOTE_EXTENSIONS */
-					
-					if (buttonCodeNumber)
-					{
-						HIDRemoteButtonCode buttonCode = [buttonCodeNumber unsignedIntValue];
-					
-						if (hidEvent.value == 0)
-						{
-							if (buttonCode == lastButtonPressed)
-							{
-								[self _handleButtonCode:lastButtonPressed isPressed:NO hidAttribsDict:hidAttribsDict];
-								lastButtonPressed = kHIDRemoteButtonCodeNone;
-							}
-						}
-
-						if (hidEvent.value != 0)
-						{
-							if (lastButtonPressed != kHIDRemoteButtonCodeNone)
-							{
-								[self _handleButtonCode:lastButtonPressed isPressed:NO hidAttribsDict:hidAttribsDict];
-								// lastButtonPressed = kHIDRemoteButtonCodeNone;
-							}
-
-							if (buttonCode == kHIDRemoteButtonCodeIDChanged)
-							{
-								if (([self delegate]!=nil) &&
-								    ([[self delegate] respondsToSelector:@selector(hidRemote:remoteIDChangedOldID:newID:forHardwareWithAttributes:)]))
-								{
-									[((NSObject <HIDRemoteDelegate> *)[self delegate]) hidRemote:self remoteIDChangedOldID:_lastSeenRemoteID newID:hidEvent.value forHardwareWithAttributes:hidAttribsDict];
-								}
-							
-								_lastSeenRemoteID = hidEvent.value;
-								_lastSeenModel	  = kHIDRemoteModelUndetermined;
-							}
-							
-							[self _handleButtonCode:buttonCode isPressed:YES hidAttribsDict:hidAttribsDict];
-							lastButtonPressed = buttonCode;
-						}
-					}
-				}
-			};
-		
-			[hidAttribsDict setObject:[NSNumber numberWithUnsignedInt:lastButtonPressed] forKey:kHIDRemoteLastButtonPressed];
-		}
-		
-		#ifdef _HIDREMOTE_EXTENSIONS
-			// Debug logging code
-			#define _HIDREMOTE_EXTENSIONS_SECTION 6
-			#include "HIDRemoteAdditions.h"
-			#undef _HIDREMOTE_EXTENSIONS_SECTION
-		#endif /* _HIDREMOTE_EXTENSIONS */
-	}
-}
-
-#pragma mark -- PRIVATE: Notification handling --
-- (void)_serviceMatching:(io_iterator_t)iterator
-{
-	io_object_t matchingService = 0;
-
-	while ((matchingService = IOIteratorNext(iterator)) != 0)
-	{
-		[self _setupService:matchingService];
-
-		IOObjectRelease(matchingService);
-	};
-}
-
-- (void)_serviceNotificationFor:(io_service_t)service messageType:(natural_t)messageType messageArgument:(void *)messageArgument
-{
-	if (messageType == kIOMessageServiceIsTerminated)
-	{
-		[self _destructService:service];
-	}
-}
-
-- (void)_updateSessionInformation
-{
-	NSArray *consoleUsersArray;
-	io_service_t rootService;
-	
-	if ((rootService = IORegistryGetRootEntry(_masterPort)) != 0)
-	{
-		if ((consoleUsersArray = (NSArray *)IORegistryEntryCreateCFProperty((io_registry_entry_t)rootService, CFSTR("IOConsoleUsers"), kCFAllocatorDefault, 0)) != nil)
-		{
-			if ([consoleUsersArray isKindOfClass:[NSArray class]])	// Be careful - ensure this really is an array
-			{
-				NSEnumerator *consoleUsersEnum; // I *love* Obj-C2's fast enumerators, but we need to stay compatible with 10.4 :-/
-				
-				if ((consoleUsersEnum = [consoleUsersArray objectEnumerator]) != nil)
-				{
-					UInt64 secureEventInputPIDSum = 0;
-					uid_t frontUserSession = 0;
-					NSDictionary *consoleUserDict;
-					
-					while ((consoleUserDict = [consoleUsersEnum nextObject]) != nil)
-					{
-						if ([consoleUserDict isKindOfClass:[NSDictionary class]]) // Be careful - ensure this really is a dictionary
-						{
-							NSNumber *secureInputPID;
-							NSNumber *onConsole;
-							NSNumber *userID;
-						
-							if ((secureInputPID = [consoleUserDict objectForKey:@"kCGSSessionSecureInputPID"]) != nil)
-							{
-								if ([secureInputPID isKindOfClass:[NSNumber class]])
-								{
-									secureEventInputPIDSum += ((UInt64) [secureInputPID intValue]);
-								}
-							}
-							
-							if (((onConsole = [consoleUserDict objectForKey:@"kCGSSessionOnConsoleKey"]) != nil) &&
-							    ((userID    = [consoleUserDict objectForKey:@"kCGSSessionUserIDKey"]) != nil))
-							{
-								if ([onConsole isKindOfClass:[NSNumber class]] && [userID isKindOfClass:[NSNumber class]])
-								{
-									if ([onConsole boolValue])
-									{
-										frontUserSession = (uid_t) [userID intValue];
-									}
-								}
-							}
-						}
-					}
-
-					_lastSecureEventInputPIDSum = secureEventInputPIDSum;
-					_lastFrontUserSession	    = frontUserSession;
-				}
-			}
-		
-			CFRelease((CFTypeRef)consoleUsersArray);
-		}
-		
-		IOObjectRelease((io_object_t) rootService);
-	}
-}
-
-- (void)_secureInputNotificationFor:(io_service_t)service messageType:(natural_t)messageType messageArgument:(void *)messageArgument
-{
-	if (messageType == kIOMessageServiceBusyStateChange)
-	{
-		UInt64 old_lastSecureEventInputPIDSum = _lastSecureEventInputPIDSum;
-		uid_t  old_lastFrontUserSession = _lastFrontUserSession;
-		
-		[self _updateSessionInformation];
-		
-		if (((old_lastSecureEventInputPIDSum != _lastSecureEventInputPIDSum) || (old_lastFrontUserSession != _lastFrontUserSession)) && _secureEventInputWorkAround)
-		{
-			if ((_mode == kHIDRemoteModeExclusive) || (_mode == kHIDRemoteModeExclusiveAuto))
-			{
-				HIDRemoteMode restartInMode = _mode;
-			
-				[self stopRemoteControl];
-				[self startRemoteControl:restartInMode];
-			}
-		}
-	}
-}
-
- at end
-
-#pragma mark -- PRIVATE: IOKitLib Callbacks --
-
-static void HIDEventCallback(	void * target, 
-				IOReturn result,
-				void * refCon,
-				void * sender)
-{
-	HIDRemote		*hidRemote = (HIDRemote *)refCon;
-	NSAutoreleasePool	*pool	   = [[NSAutoreleasePool alloc] init];
-
-	[hidRemote _hidEventFor:(io_service_t)((intptr_t)target) from:(IOHIDQueueInterface**)sender withResult:(IOReturn)result];
-
-	[pool release];
-}
-
-
-static void ServiceMatchingCallback(	void *refCon,
-					io_iterator_t iterator)
-{
-	HIDRemote		*hidRemote = (HIDRemote *)refCon;
-	NSAutoreleasePool	*pool	   = [[NSAutoreleasePool alloc] init];
-
-	[hidRemote _serviceMatching:iterator];
-
-	[pool release];
-}
-
-static void ServiceNotificationCallback(void *		refCon,
-					io_service_t 	service,
-					natural_t 	messageType,
-					void *		messageArgument)
-{
-	HIDRemote		*hidRemote = (HIDRemote *)refCon;
-	NSAutoreleasePool	*pool     = [[NSAutoreleasePool alloc] init];
-	
-	[hidRemote _serviceNotificationFor:service
-			       messageType:messageType
-			   messageArgument:messageArgument];
-
-	[pool release];
-}
-
-static void SecureInputNotificationCallback(	void *		refCon,
-						io_service_t 	service,
-						natural_t 	messageType,
-						void *		messageArgument)
-{
-	HIDRemote		*hidRemote = (HIDRemote *)refCon;
-	NSAutoreleasePool	*pool     = [[NSAutoreleasePool alloc] init];
-	
-	[hidRemote _secureInputNotificationFor:service
-				   messageType:messageType
-			       messageArgument:messageArgument];
-
-	[pool release];
-}
-
-// Attribute dictionary keys
-NSString *kHIDRemoteCFPluginInterface			= @"CFPluginInterface";
-NSString *kHIDRemoteHIDDeviceInterface			= @"HIDDeviceInterface";
-NSString *kHIDRemoteCookieButtonCodeLUT			= @"CookieButtonCodeLUT";
-NSString *kHIDRemoteHIDQueueInterface			= @"HIDQueueInterface";
-NSString *kHIDRemoteServiceNotification			= @"ServiceNotification";
-NSString *kHIDRemoteCFRunLoopSource			= @"CFRunLoopSource";
-NSString *kHIDRemoteLastButtonPressed			= @"LastButtonPressed";
-NSString *kHIDRemoteService				= @"Service";
-NSString *kHIDRemoteSimulateHoldEventsTimer		= @"SimulateHoldEventsTimer";
-NSString *kHIDRemoteSimulateHoldEventsOriginButtonCode	= @"SimulateHoldEventsOriginButtonCode";
-NSString *kHIDRemoteAluminumRemoteSupportLevel		= @"AluminumRemoteSupportLevel";
-NSString *kHIDRemoteAluminumRemoteSupportOnDemand	= @"AluminumRemoteSupportLevelOnDemand";
-
-NSString *kHIDRemoteManufacturer			= @"Manufacturer";
-NSString *kHIDRemoteProduct				= @"Product";
-NSString *kHIDRemoteTransport				= @"Transport";
-
-// Distributed notifications
-NSString *kHIDRemoteDNHIDRemotePing			= @"com.candelair.ping";
-NSString *kHIDRemoteDNHIDRemoteRetry			= @"com.candelair.retry";
-NSString *kHIDRemoteDNHIDRemoteStatus			= @"com.candelair.status";
-
-// Distributed notifications userInfo keys and values
-NSString *kHIDRemoteDNStatusHIDRemoteVersionKey		= @"HIDRemoteVersion";
-NSString *kHIDRemoteDNStatusPIDKey			= @"PID";
-NSString *kHIDRemoteDNStatusModeKey			= @"Mode";
-NSString *kHIDRemoteDNStatusUnusedButtonCodesKey	= @"UnusedButtonCodes";
-NSString *kHIDRemoteDNStatusActionKey			= @"Action";
-NSString *kHIDRemoteDNStatusRemoteControlCountKey	= @"RemoteControlCount";
-NSString *kHIDRemoteDNStatusReturnToPIDKey		= @"ReturnToPID";
-NSString *kHIDRemoteDNStatusActionStart			= @"start";
-NSString *kHIDRemoteDNStatusActionStop			= @"stop";
-NSString *kHIDRemoteDNStatusActionUpdate		= @"update";
-NSString *kHIDRemoteDNStatusActionNoNeed		= @"noneed";
-
diff --git a/tools/EventClients/Clients/OSXRemote/Makefile.in b/tools/EventClients/Clients/OSXRemote/Makefile.in
deleted file mode 100644
index 1d08fb5..0000000
--- a/tools/EventClients/Clients/OSXRemote/Makefile.in
+++ /dev/null
@@ -1,18 +0,0 @@
-#convenience makefile to allow headless osx build
-
-DEBUG_FLAGS=@DEBUG_FLAGS@
-
-#check for debug build
-ifneq (,$(findstring _DEBUG, $(DEBUG_FLAGS)))
-  CONFIGURATION=Debug
-else
-  CONFIGURATION=Release
-endif
-
-all: 
-	xcodebuild -configuration $(CONFIGURATION)
-
-clean:
-	xcodebuild clean -configuration $(CONFIGURATION)
-
-.PHONY: all clean
diff --git a/tools/EventClients/Clients/OSXRemote/XBMCDebugHelpers.h b/tools/EventClients/Clients/OSXRemote/XBMCDebugHelpers.h
deleted file mode 100644
index 8650f87..0000000
--- a/tools/EventClients/Clients/OSXRemote/XBMCDebugHelpers.h
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-//  XBMCDebugHelpers.h
-//  xbmclauncher
-//
-//  Created by Stephan Diederich on 21.09.08.
-//  Copyright 2008 University Heidelberg. All rights reserved.
-// 
-// 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 3 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, see <http://www.gnu.org/licenses/>.
-
-#import <Cocoa/Cocoa.h>
-
-/*
- *  Stuff below was taken from LoggingUtils.h of ATVFiles
- *
- *  Just some utility macros for logging...
- *
- *  Created by Eric Steil III on 4/1/07.
- // Copyright (C) 2007-2008 Eric Steil III
- *
- */
-
-#ifdef DEBUG
-#define LOG(s, ...)  NSLog(@"[DEBUG] " s, ##__VA_ARGS__)
-#define ILOG(s, ...) NSLog(@"[INFO]  " s, ##__VA_ARGS__)
-#define ELOG(s, ...) NSLog(@"[ERROR] " s, ##__VA_ARGS__)
-#define DLOG(s, ...) LOG(s, ##__VA_ARGS__)
-#else
-#define LOG(s, ...) 
-#define ILOG(s, ...) NSLog(@"[INFO]  " s, ##__VA_ARGS__)
-#define ELOG(s, ...) NSLog(@"[ERROR] " s, ##__VA_ARGS__)
-#define DLOG(s, ...) LOG(s, ##__VA_ARGS__)
-#endif
-
-#define PRINT_SIGNATURE() LOG(@"%s", __PRETTY_FUNCTION__)
diff --git a/tools/EventClients/Clients/OSXRemote/XBMCHelper.h b/tools/EventClients/Clients/OSXRemote/XBMCHelper.h
deleted file mode 100644
index 5aa984c..0000000
--- a/tools/EventClients/Clients/OSXRemote/XBMCHelper.h
+++ /dev/null
@@ -1,28 +0,0 @@
-//
-//  XBMCHelper.h
-//  xbmchelper
-//
-//  Created by Stephan Diederich on 11/12/08.
-//  Copyright 2008 University Heidelberg. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#import "xbmcclientwrapper.h"
-#import "HIDRemote/HIDRemote.h"
-
- at interface XBMCHelper : NSObject<HIDRemoteDelegate> {
-  HIDRemote *remote;
-  XBMCClientWrapper* mp_wrapper;
-  NSString* mp_app_path;
-  NSString* mp_home_path;
-  bool m_verbose;
-}
-
-- (void) enableVerboseMode:(bool) f_really;
-
-- (void) setApplicationPath:(NSString*) fp_app_path;
-- (void) setApplicationHome:(NSString*) fp_home_path;  
-
-- (void) connectToServer:(NSString*) fp_server onPort:(int) f_port withMode:(eRemoteMode) f_mode withTimeout:(double) f_timeout;
-- (void) disconnect;
- at end
diff --git a/tools/EventClients/Clients/OSXRemote/XBMCHelper.m b/tools/EventClients/Clients/OSXRemote/XBMCHelper.m
deleted file mode 100644
index b507611..0000000
--- a/tools/EventClients/Clients/OSXRemote/XBMCHelper.m
+++ /dev/null
@@ -1,320 +0,0 @@
-//
-//  XBMCHelper.m
-//  xbmchelper
-//
-//  Created by Stephan Diederich on 11/12/08.
-//  Copyright 2008 University Heidelberg. All rights reserved.
-//
-
-#import "XBMCHelper.h"
-#import "XBMCDebugHelpers.h"
-
-//----------------------------------------------------------------------------
-//----------------------------------------------------------------------------
- at interface XBMCHelper (private)
-
-- (NSString *)buttonNameForButtonCode:(HIDRemoteButtonCode)buttonCode;
-- (void) checkAndLaunchApp;
-
- at end
-
- at implementation XBMCHelper
-- (id) init{
-  if( (self = [super init]) ){
-    if ((remote = [HIDRemote sharedHIDRemote]))
-    {
-      [remote setDelegate:self];
-      [remote setSimulateHoldEvents:NO];
-      //for now, we're using lending of exlusive lock
-      //kHIDRemoteModeExclusiveAuto isn't working, as we're a background daemon
-      //one possibility would be to know when XBMC is running. Once we know that,
-      //we could aquire exclusive lock when it's running, and release _exclusive_
-      //access once done
-      [remote setExclusiveLockLendingEnabled:YES];
-
-      if ([HIDRemote isCandelairInstallationRequiredForRemoteMode:kHIDRemoteModeExclusive])
-      {
-        //setup failed. user needs to install CandelaIR driver
-        NSLog(@"Error! Candelair driver installation necessary. XBMCHelper won't function properly!");
-        NSLog(@"Due to an issue in the OS version you are running, an additional driver needs to be installed before XBMC(Helper) can reliably access the remote.");
-        NSLog(@"See http://www.candelair.com/download/ for details");
-        [super dealloc];
-        return nil;
-      }
-      else
-      {
-        if ([remote startRemoteControl:kHIDRemoteModeExclusive])
-        {
-          DLOG(@"Driver has started successfully.");
-          if ([remote activeRemoteControlCount])
-            DLOG(@"Driver has found %d remotes.", [remote activeRemoteControlCount]);
-          else
-            ELOG(@"Driver has not found any remotes it could use. Will use remotes as they become available.");
-        }
-        else
-        {
-          ELOG(@"Failed to start remote control.");
-          //setup failed, cleanup
-          [remote setDelegate:nil];
-          [super dealloc];
-          return nil;
-        }
-      }
-    }
-  }
-  return self;
-}
-
-//----------------------------------------------------------------------------
-- (void) dealloc{
-  [remote stopRemoteControl];
-  if( [remote delegate] == self)
-    [remote setDelegate:nil];
-  [mp_wrapper release];
-  [mp_app_path release];
-  [mp_home_path release];
-
-  [super dealloc];
-}
-
-//----------------------------------------------------------------------------
-- (void) connectToServer:(NSString*) fp_server onPort:(int) f_port withMode:(eRemoteMode) f_mode withTimeout:(double) f_timeout{
-  if(mp_wrapper)
-    [self disconnect];
-  mp_wrapper = [[XBMCClientWrapper alloc] initWithMode:f_mode serverAddress:fp_server port:f_port verbose:m_verbose];
-  [mp_wrapper setUniversalModeTimeout:f_timeout];
-}
-
-//----------------------------------------------------------------------------
-- (void) disconnect{
-  [mp_wrapper release];
-  mp_wrapper = nil;
-}
-
-//----------------------------------------------------------------------------
-- (void) enableVerboseMode:(bool) f_really{
-  m_verbose = f_really;
-  [mp_wrapper enableVerboseMode:f_really];
-}
-
-//----------------------------------------------------------------------------
-- (void) setApplicationPath:(NSString*) fp_app_path{
-  if (mp_app_path != fp_app_path) {
-    [mp_app_path release];
-    mp_app_path = [[fp_app_path stringByStandardizingPath] retain];
-  }
-}
-
-//----------------------------------------------------------------------------
-- (void) setApplicationHome:(NSString*) fp_home_path{
-  if (mp_home_path != fp_home_path) {
-    [mp_home_path release];
-    mp_home_path = [[fp_home_path stringByStandardizingPath] retain];
-  }
-}
-
-#pragma mark -
-#pragma mark HIDRemote delegate methods
-
-// Notification of button events
-- (void)hidRemote:(HIDRemote *)hidRemote eventWithButton:(HIDRemoteButtonCode)buttonCode
-        isPressed:(BOOL)isPressed fromHardwareWithAttributes:(NSMutableDictionary *)attributes
-{
-  if(m_verbose){
-    NSLog(@"Received button '%@' %@ event", [self buttonNameForButtonCode:buttonCode], (isPressed)?@"press":@"release");
-  }
-  switch(buttonCode)
-  {
-    case kHIDRemoteButtonCodeUp:
-      if(isPressed)
-        [mp_wrapper handleEvent:ATV_BUTTON_UP];
-      else
-        [mp_wrapper handleEvent:ATV_BUTTON_UP_RELEASE];
-      break;
-    case kHIDRemoteButtonCodeDown:
-      if(isPressed)
-        [mp_wrapper handleEvent:ATV_BUTTON_DOWN];
-      else
-        [mp_wrapper handleEvent:ATV_BUTTON_DOWN_RELEASE];
-      break;
-    case kHIDRemoteButtonCodeLeft:
-      if(isPressed)
-        [mp_wrapper handleEvent:ATV_BUTTON_LEFT];
-      else
-        [mp_wrapper handleEvent:ATV_BUTTON_LEFT_RELEASE];
-      break;
-    case kHIDRemoteButtonCodeRight:
-      if(isPressed)
-        [mp_wrapper handleEvent:ATV_BUTTON_RIGHT];
-      else
-        [mp_wrapper handleEvent:ATV_BUTTON_RIGHT_RELEASE];
-      break;      
-    case kHIDRemoteButtonCodeCenter:
-      if(isPressed) [mp_wrapper handleEvent:ATV_BUTTON_CENTER];
-      break;
-    case kHIDRemoteButtonCodeMenu:
-      if(isPressed){
-        [self checkAndLaunchApp]; //launch mp_app_path if it's not running
-        [mp_wrapper handleEvent:ATV_BUTTON_MENU];
-      }
-      break;
-    case kHIDRemoteButtonCodePlay: //aluminium remote
-      if(isPressed) {
-        [mp_wrapper handleEvent:ATV_BUTTON_PLAY];
-      }
-      break;
-//    case kHIDRemoteButtonCodeUpHold:
-//      //TODO
-//      break;
-//    case kHIDRemoteButtonCodeDownHold:
-//      //TODO
-      break;
-    case kHIDRemoteButtonCodeLeftHold:
-      if(isPressed)
-        [mp_wrapper handleEvent:ATV_BUTTON_LEFT_H];
-      else
-        [mp_wrapper handleEvent:ATV_BUTTON_LEFT_H_RELEASE];
-      break;
-    case kHIDRemoteButtonCodeRightHold:
-      if(isPressed)
-        [mp_wrapper handleEvent:ATV_BUTTON_RIGHT_H];
-      else
-        [mp_wrapper handleEvent:ATV_BUTTON_RIGHT_H_RELEASE];
-      break;
-    case kHIDRemoteButtonCodeCenterHold:
-      if(isPressed) [mp_wrapper handleEvent:ATV_BUTTON_CENTER_H];
-      break;      
-    case kHIDRemoteButtonCodeMenuHold:
-      if(isPressed) {
-        [self checkAndLaunchApp]; //launch mp_app_path if it's not running
-        [mp_wrapper handleEvent:ATV_BUTTON_MENU_H];
-      }
-      break;
-    case kHIDRemoteButtonCodePlayHold: //aluminium remote
-      if(isPressed) {
-        [mp_wrapper handleEvent:ATV_BUTTON_PLAY_H];
-      }
-      break;
-    default:
-      NSLog(@"Oha, remote button not recognized %i pressed/released %i", buttonCode, isPressed);
-  }
-}
-
-
-// Notification of ID changes
-- (void)hidRemote:(HIDRemote *)hidRemote remoteIDChangedOldID:(SInt32)old 
-            newID:(SInt32)newID forHardwareWithAttributes:(NSMutableDictionary *)attributes
-{
-  if(m_verbose)
-    NSLog(@"Change of remote ID from %d to %d", old, newID);
-  [mp_wrapper switchRemote: newID];
-  
-}
-
-#pragma mark -
-#pragma mark Helper methods
-
-- (NSString *)buttonNameForButtonCode:(HIDRemoteButtonCode)buttonCode
-{
-	switch (buttonCode)
-	{
-		case kHIDRemoteButtonCodePlus:
-			return (@"Plus");
-      break;
-		case kHIDRemoteButtonCodeMinus:
-			return (@"Minus");
-      break;
-		case kHIDRemoteButtonCodeLeft:
-			return (@"Left");
-      break;
-		case kHIDRemoteButtonCodeRight:
-			return (@"Right");
-      break;
-		case kHIDRemoteButtonCodePlayPause:
-			return (@"Play/Pause");
-      break;
-		case kHIDRemoteButtonCodeMenu:
-			return (@"Menu");
-      break;
-		case kHIDRemoteButtonCodePlusHold:
-			return (@"Plus (hold)");
-      break;
-		case kHIDRemoteButtonCodeMinusHold:
-			return (@"Minus (hold)");
-      break;
-		case kHIDRemoteButtonCodeLeftHold:
-			return (@"Left (hold)");
-      break;
-		case kHIDRemoteButtonCodeRightHold:
-			return (@"Right (hold)");
-      break;
-		case kHIDRemoteButtonCodePlayPauseHold:
-			return (@"Play/Pause (hold)");
-      break;
-		case kHIDRemoteButtonCodeMenuHold:
-			return (@"Menu (hold)");
-      break;
-	}
-	return ([NSString stringWithFormat:@"Button %x", (int)buttonCode]);
-}
-
-//----------------------------------------------------------------------------
-- (void) checkAndLaunchApp
-{
-  if(!mp_app_path || ![mp_app_path length]){
-    ELOG(@"No executable set. Nothing to launch");
-    return;
-  }
-  NSFileManager *fileManager = [NSFileManager defaultManager];
-  if([fileManager fileExistsAtPath:mp_app_path]){
-    if(mp_home_path && [mp_home_path length])
-      setenv("KODI_HOME", [mp_home_path UTF8String], 1);
-    //launch or activate xbmc
-    if(![[NSWorkspace sharedWorkspace] launchApplication:mp_app_path])
-      ELOG(@"Error launching %@", mp_app_path);
-  } else
-    ELOG(@"Path does not exist: %@. Cannot launch executable", mp_app_path);
-}
-
-
-#pragma mark -
-#pragma mark Other (unused) HIDRemoteDelegate methods
-//- (BOOL)hidRemote:(HIDRemote *)aHidRemote
-//lendExclusiveLockToApplicationWithInfo:(NSDictionary *)applicationInfo
-//{
-//	NSLog(@"Lending exclusive lock to %@ (pid %@)", [applicationInfo objectForKey:(id)kCFBundleIdentifierKey], [applicationInfo objectForKey:kHIDRemoteDNStatusPIDKey]);
-//	return (YES);
-//}
-//
-//- (void)hidRemote:(HIDRemote *)aHidRemote
-//exclusiveLockReleasedByApplicationWithInfo:(NSDictionary *)applicationInfo
-//{
-//  NSLog(@"Exclusive lock released by %@ (pid %@)", [applicationInfo objectForKey:(id)kCFBundleIdentifierKey], [applicationInfo objectForKey:kHIDRemoteDNStatusPIDKey]);
-//	[aHidRemote startRemoteControl:kHIDRemoteModeExclusive];
-//}
-//
-//- (BOOL)hidRemote:(HIDRemote *)aHidRemote
-//shouldRetryExclusiveLockWithInfo:(NSDictionary *)applicationInfo
-//{
-//  NSLog(@"%@ (pid %@) says I should retry to acquire exclusive locks", [applicationInfo objectForKey:(id)kCFBundleIdentifierKey], [applicationInfo objectForKey:kHIDRemoteDNStatusPIDKey]);
-//	return (YES);
-//}
-//
-//
-//// Notification about hardware additions/removals
-//- (void)hidRemote:(HIDRemote *)aHidRemote foundNewHardwareWithAttributes:(NSMutableDictionary *)attributes
-//{
-//	NSLog(@"Found hardware: %@ by %@ (Transport: %@)", [attributes objectForKey:kHIDRemoteProduct], [attributes objectForKey:kHIDRemoteManufacturer], [attributes objectForKey:kHIDRemoteTransport]);
-//}
-//
-//- (void)hidRemote:(HIDRemote *)aHidRemote failedNewHardwareWithError:(NSError *)error
-//{
-//	NSLog(@"Initialization of hardware failed with error %@ (%@)", [error localizedDescription], [[error userInfo] objectForKey:@"InternalErrorCode"]);
-//}
-//
-//- (void)hidRemote:(HIDRemote *)aHidRemote releasedHardwareWithAttributes:(NSMutableDictionary *)attributes
-//{
-//	NSLog(@"Released hardware: %@ by %@ (Transport: %@)", [attributes objectForKey:kHIDRemoteProduct], [attributes objectForKey:kHIDRemoteManufacturer], [attributes objectForKey:kHIDRemoteTransport]);
-//}
-
- at end
diff --git a/tools/EventClients/Clients/OSXRemote/XBMCHelper.xcodeproj/project.pbxproj b/tools/EventClients/Clients/OSXRemote/XBMCHelper.xcodeproj/project.pbxproj
deleted file mode 100644
index f64ca92..0000000
--- a/tools/EventClients/Clients/OSXRemote/XBMCHelper.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,279 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 45;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		E449C9DA1090622500783487 /* HIDRemote.m in Sources */ = {isa = PBXBuildFile; fileRef = E449C9D91090622500783487 /* HIDRemote.m */; };
-		E4E62F370F83DB760066AF9D /* xbmchelper_main.mm in Sources */ = {isa = PBXBuildFile; fileRef = E4E62F340F83DB760066AF9D /* xbmchelper_main.mm */; };
-		E4E62F380F83DB760066AF9D /* XBMCHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = E4E62F360F83DB760066AF9D /* XBMCHelper.m */; };
-		E4E62F600F83FB8C0066AF9D /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4E62F5F0F83FB8C0066AF9D /* IOKit.framework */; };
-		E4E62F690F83FBB40066AF9D /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4E62F680F83FBB40066AF9D /* Carbon.framework */; };
-		E4E62FD40F83FD7C0066AF9D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4E62FD30F83FD7C0066AF9D /* Cocoa.framework */; };
-		E4E62FE80F83FDD90066AF9D /* xbmcclientwrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = E4E62FE60F83FDD90066AF9D /* xbmcclientwrapper.mm */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXCopyFilesBuildPhase section */
-		8DD76F7B0486A8DE00D96B5E /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 8;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
-		09AB6884FE841BABC02AAC07 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
-		8DD76F7E0486A8DE00D96B5E /* XBMCHelper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = XBMCHelper; sourceTree = BUILT_PRODUCTS_DIR; };
-		E424E23710877D5400659D45 /* Makefile.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Makefile.in; sourceTree = "<group>"; };
-		E449C9D81090622500783487 /* HIDRemote.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HIDRemote.h; path = HIDRemote/HIDRemote.h; sourceTree = "<group>"; };
-		E449C9D91090622500783487 /* HIDRemote.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HIDRemote.m; path = HIDRemote/HIDRemote.m; sourceTree = "<group>"; };
-		E4E62F340F83DB760066AF9D /* xbmchelper_main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = xbmchelper_main.mm; sourceTree = "<group>"; };
-		E4E62F350F83DB760066AF9D /* XBMCHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XBMCHelper.h; sourceTree = "<group>"; };
-		E4E62F360F83DB760066AF9D /* XBMCHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XBMCHelper.m; sourceTree = "<group>"; };
-		E4E62F5F0F83FB8C0066AF9D /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
-		E4E62F680F83FBB40066AF9D /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
-		E4E62FD30F83FD7C0066AF9D /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
-		E4E62FE50F83FDD90066AF9D /* xbmcclientwrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xbmcclientwrapper.h; sourceTree = "<group>"; };
-		E4E62FE60F83FDD90066AF9D /* xbmcclientwrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = xbmcclientwrapper.mm; sourceTree = "<group>"; };
-		E4E62FE70F83FDD90066AF9D /* XBMCDebugHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XBMCDebugHelpers.h; sourceTree = "<group>"; };
-		E4E630030F8406900066AF9D /* xbmcclient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = xbmcclient.h; path = "../../lib/c++/xbmcclient.h"; sourceTree = SOURCE_ROOT; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		8DD76F780486A8DE00D96B5E /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				E4E62F600F83FB8C0066AF9D /* IOKit.framework in Frameworks */,
-				E4E62F690F83FBB40066AF9D /* Carbon.framework in Frameworks */,
-				E4E62FD40F83FD7C0066AF9D /* Cocoa.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		08FB7794FE84155DC02AAC07 /* XBMCHelper */ = {
-			isa = PBXGroup;
-			children = (
-				E424E23710877D5400659D45 /* Makefile.in */,
-				08FB7795FE84155DC02AAC07 /* Source */,
-				C6859E96029091FE04C91782 /* Documentation */,
-				08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */,
-				19C28FBDFE9D53C911CA2CBB /* Products */,
-				E4E62F5F0F83FB8C0066AF9D /* IOKit.framework */,
-				E4E62F680F83FBB40066AF9D /* Carbon.framework */,
-				E4E62FD30F83FD7C0066AF9D /* Cocoa.framework */,
-			);
-			name = XBMCHelper;
-			sourceTree = "<group>";
-		};
-		08FB7795FE84155DC02AAC07 /* Source */ = {
-			isa = PBXGroup;
-			children = (
-				E449C9D71090621100783487 /* HIDRemote */,
-				E4E630030F8406900066AF9D /* xbmcclient.h */,
-				E4E62F340F83DB760066AF9D /* xbmchelper_main.mm */,
-				E4E62F350F83DB760066AF9D /* XBMCHelper.h */,
-				E4E62F360F83DB760066AF9D /* XBMCHelper.m */,
-				E4E62FE70F83FDD90066AF9D /* XBMCDebugHelpers.h */,
-				E4E62FE50F83FDD90066AF9D /* xbmcclientwrapper.h */,
-				E4E62FE60F83FDD90066AF9D /* xbmcclientwrapper.mm */,
-			);
-			name = Source;
-			sourceTree = "<group>";
-		};
-		08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */ = {
-			isa = PBXGroup;
-			children = (
-				09AB6884FE841BABC02AAC07 /* CoreFoundation.framework */,
-			);
-			name = "External Frameworks and Libraries";
-			sourceTree = "<group>";
-		};
-		19C28FBDFE9D53C911CA2CBB /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				8DD76F7E0486A8DE00D96B5E /* XBMCHelper */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		C6859E96029091FE04C91782 /* Documentation */ = {
-			isa = PBXGroup;
-			children = (
-			);
-			name = Documentation;
-			sourceTree = "<group>";
-		};
-		E449C9D71090621100783487 /* HIDRemote */ = {
-			isa = PBXGroup;
-			children = (
-				E449C9D81090622500783487 /* HIDRemote.h */,
-				E449C9D91090622500783487 /* HIDRemote.m */,
-			);
-			name = HIDRemote;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
-		8DD76F740486A8DE00D96B5E /* XBMCHelper */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 1DEB924708733DCA0010E9CD /* Build configuration list for PBXNativeTarget "XBMCHelper" */;
-			buildPhases = (
-				8DD76F760486A8DE00D96B5E /* Sources */,
-				8DD76F780486A8DE00D96B5E /* Frameworks */,
-				8DD76F7B0486A8DE00D96B5E /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = XBMCHelper;
-			productInstallPath = "$(HOME)/bin";
-			productName = XBMCHelper;
-			productReference = 8DD76F7E0486A8DE00D96B5E /* XBMCHelper */;
-			productType = "com.apple.product-type.tool";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		08FB7793FE84155DC02AAC07 /* Project object */ = {
-			isa = PBXProject;
-			attributes = {
-			};
-			buildConfigurationList = 1DEB924B08733DCA0010E9CD /* Build configuration list for PBXProject "XBMCHelper" */;
-			compatibilityVersion = "Xcode 3.1";
-			developmentRegion = English;
-			hasScannedForEncodings = 1;
-			knownRegions = (
-				English,
-				Japanese,
-				French,
-				German,
-			);
-			mainGroup = 08FB7794FE84155DC02AAC07 /* XBMCHelper */;
-			projectDirPath = "";
-			projectRoot = "";
-			targets = (
-				8DD76F740486A8DE00D96B5E /* XBMCHelper */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXSourcesBuildPhase section */
-		8DD76F760486A8DE00D96B5E /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				E4E62F370F83DB760066AF9D /* xbmchelper_main.mm in Sources */,
-				E4E62F380F83DB760066AF9D /* XBMCHelper.m in Sources */,
-				E4E62FE80F83FDD90066AF9D /* xbmcclientwrapper.mm in Sources */,
-				E449C9DA1090622500783487 /* HIDRemote.m in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
-		1DEB924808733DCA0010E9CD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CONFIGURATION_BUILD_DIR = ../../../darwin/runtime;
-				COPY_PHASE_STRIP = NO;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_MODEL_TUNING = G5;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
-				GCC_VERSION = "";
-				INSTALL_PATH = /usr/local/bin;
-				MACOSX_DEPLOYMENT_TARGET = 10.6;
-				ONLY_ACTIVE_ARCH = NO;
-				PRODUCT_NAME = XBMCHelper;
-				SDKROOT = macosx;
-				STRIP_STYLE = debugging;
-				VALID_ARCHS = i386;
-			};
-			name = Debug;
-		};
-		1DEB924908733DCA0010E9CD /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CONFIGURATION_BUILD_DIR = ../../../darwin/runtime;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				GCC_MODEL_TUNING = G5;
-				GCC_VERSION = "";
-				INSTALL_PATH = /usr/local/bin;
-				MACOSX_DEPLOYMENT_TARGET = 10.6;
-				ONLY_ACTIVE_ARCH = NO;
-				PRODUCT_NAME = XBMCHelper;
-				SDKROOT = macosx;
-				STRIP_STYLE = debugging;
-				VALID_ARCHS = i386;
-			};
-			name = Release;
-		};
-		1DEB924C08733DCA0010E9CD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
-				GCC_C_LANGUAGE_STANDARD = "compiler-default";
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_VERSION = 4.0;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				ONLY_ACTIVE_ARCH = YES;
-				PREBINDING = NO;
-				SDKROOT = macosx10.4;
-			};
-			name = Debug;
-		};
-		1DEB924D08733DCA0010E9CD /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
-				GCC_C_LANGUAGE_STANDARD = "compiler-default";
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				PREBINDING = NO;
-				SDKROOT = macosx10.4;
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		1DEB924708733DCA0010E9CD /* Build configuration list for PBXNativeTarget "XBMCHelper" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				1DEB924808733DCA0010E9CD /* Debug */,
-				1DEB924908733DCA0010E9CD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		1DEB924B08733DCA0010E9CD /* Build configuration list for PBXProject "XBMCHelper" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				1DEB924C08733DCA0010E9CD /* Debug */,
-				1DEB924D08733DCA0010E9CD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
-}
diff --git a/tools/EventClients/Clients/OSXRemote/xbmcclientwrapper.h b/tools/EventClients/Clients/OSXRemote/xbmcclientwrapper.h
deleted file mode 100644
index 7c78ef7..0000000
--- a/tools/EventClients/Clients/OSXRemote/xbmcclientwrapper.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- *  xbmcclient.cpp
- *  xbmclauncher
- *
- *  Created by Stephan Diederich on 17.09.08.
- *  Copyright 2008 Stephan Diederich. All rights reserved.
- *
- */
-// 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 3 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, see <http://www.gnu.org/licenses/>.
-#import <Cocoa/Cocoa.h>
-
-typedef enum{
-  ATV_BUTTON_DONT_USE_THIS = 0, //don't use zero, as those enums get converted to strings later
-	ATV_BUTTON_CENTER=1,
-	ATV_BUTTON_CENTER_H, //present on ATV>=2.2
-	ATV_BUTTON_RIGHT,
-	ATV_BUTTON_RIGHT_RELEASE,
-	ATV_BUTTON_RIGHT_H, //present on ATV<=2.1 and OSX v?
-  ATV_BUTTON_RIGHT_H_RELEASE,
-	ATV_BUTTON_LEFT,
-	ATV_BUTTON_LEFT_RELEASE,
-	ATV_BUTTON_LEFT_H, //present on ATV<=2.1 and OSX v?
-  ATV_BUTTON_LEFT_H_RELEASE,
-	ATV_BUTTON_UP,
-	ATV_BUTTON_UP_RELEASE,
-	ATV_BUTTON_DOWN,
-	ATV_BUTTON_DOWN_RELEASE,
-	ATV_BUTTON_MENU,
-	ATV_BUTTON_MENU_H,
-	ATV_LEARNED_PLAY,
-	ATV_LEARNED_PAUSE,
-	ATV_LEARNED_STOP,
-	ATV_LEARNED_PREVIOUS,
-	ATV_LEARNED_NEXT,
-	ATV_LEARNED_REWIND, //>=ATV 2.3
-	ATV_LEARNED_REWIND_RELEASE, //>=ATV 2.3
-	ATV_LEARNED_FORWARD, //>=ATV 2.3
-	ATV_LEARNED_FORWARD_RELEASE, //>=ATV 2.3
-	ATV_LEARNED_RETURN,
-	ATV_LEARNED_ENTER,
-	ATV_INVALID_BUTTON,
-	//new aluminium remote buttons
-	ATV_BUTTON_PLAY,
-	ATV_BUTTON_PLAY_H,
-} eATVClientEvent;
-
-
-typedef enum {
-  DEFAULT_MODE,
-  UNIVERSAL_MODE,
-  MULTIREMOTE_MODE
-} eRemoteMode;
-
-
- at interface XBMCClientWrapper : NSObject{
-	struct XBMCClientWrapperImpl* mp_impl;
-}
-- (id) initWithMode:(eRemoteMode) f_mode serverAddress:(NSString*) fp_server port:(int) f_port verbose:(bool) f_verbose;
-- (void) setUniversalModeTimeout:(double) f_timeout;
-
--(void) handleEvent:(eATVClientEvent) f_event;
--(void) switchRemote:(int) f_device_id;
-
-- (void) enableVerboseMode:(bool) f_really;
- at end
\ No newline at end of file
diff --git a/tools/EventClients/Clients/OSXRemote/xbmcclientwrapper.mm b/tools/EventClients/Clients/OSXRemote/xbmcclientwrapper.mm
deleted file mode 100644
index 0257540..0000000
--- a/tools/EventClients/Clients/OSXRemote/xbmcclientwrapper.mm
+++ /dev/null
@@ -1,430 +0,0 @@
-/*
- *  xbmcclient.cpp
- *  xbmclauncher
- *
- *  Created by Stephan Diederich on 17.09.08.
- *  Copyright 2008 University Heidelberg. All rights reserved.
- *
- */
-// 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 3 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, see <http://www.gnu.org/licenses/>.
-
-#include "xbmcclientwrapper.h"
-#include "../../lib/c++/xbmcclient.h"
-#include "XBMCDebugHelpers.h"
-#include <vector>
-#include <map>
-#include <string>
-#include <sstream>
-
-//helper class for easy EventSequence handling
-class XBMCClientEventSequence{
-public:
-  XBMCClientEventSequence(){}
-  
-  //implicit conversion
-  XBMCClientEventSequence(eATVClientEvent f_event){
-    m_stream.push_back(f_event);
-  }
-  
-  std::string str() const{
-    std::stringstream ss;
-    for(std::vector<eATVClientEvent>::const_iterator it = m_stream.begin();
-        it != m_stream.end();
-        ++it){
-      ss << *it;
-    }
-    return ss.str();
-  }
-  void clear(){
-    m_stream.clear();
-  }
-  
-  //
-  // operators
-  //
-  friend XBMCClientEventSequence operator+ (XBMCClientEventSequence f_seq, eATVClientEvent f_event){
-    f_seq.m_stream.push_back(f_event);
-    return f_seq;
-  }
-  XBMCClientEventSequence& operator << (eATVClientEvent f_event){
-    m_stream.push_back(f_event);
-    return *this;
-  }
-  friend bool operator <(XBMCClientEventSequence const& fcr_lhs,XBMCClientEventSequence const& fcr_rhs){
-    return fcr_lhs.m_stream < fcr_rhs.m_stream;
-  }  
-  friend bool operator ==(XBMCClientEventSequence const& fcr_lhs,XBMCClientEventSequence const& fcr_rhs){
-    return fcr_lhs.m_stream == fcr_rhs.m_stream;
-  }
-private:
-  std::vector<eATVClientEvent> m_stream;
-};
-
-
-//typedef is here, as is seems that I can't put it into iterface declaration
-//CPacketBUTTON is a pointer, as I'm not sure how well it's copy constructor is implemented
-typedef std::map<eATVClientEvent, CPacketBUTTON*> tEventMap;
-typedef std::map<XBMCClientEventSequence, CPacketBUTTON*> tSequenceMap;
-typedef std::map<std::pair<int, eATVClientEvent>, CPacketBUTTON*> tMultiRemoteMap;
-
-class  XBMCClientWrapperImpl{
-	tEventMap m_event_map;
-  tSequenceMap m_sequence_map;
-  tMultiRemoteMap m_multiremote_map;
-  eRemoteMode m_mode;
-	int					m_socket;	
-  std::string	m_address;
-  int         m_port;
-  XBMCClientEventSequence m_sequence;
-  CFRunLoopTimerRef	m_timer;
-  double m_sequence_timeout;
-  int m_device_id;
-  bool m_verbose_mode;
-  void populateEventMap();
-  void populateSequenceMap();
-  void populateMultiRemoteModeMap();
-  void sendButton(eATVClientEvent f_event);
-  void sendSequence();
-  void restartTimer();
-  void resetTimer();
-  bool isStartToken(eATVClientEvent f_event);
-  static void timerCallBack (CFRunLoopTimerRef timer, void *info);
-public:
-  XBMCClientWrapperImpl(eRemoteMode f_mode, const std::string& fcr_address = "localhost", int f_port = 9777, bool f_verbose_mode=false);
-  ~XBMCClientWrapperImpl();
-  void setUniversalModeTimeout(double f_timeout){
-    m_sequence_timeout = f_timeout;
-  }
-  void switchRemote(int f_device_id){
-    m_device_id = f_device_id;
-  }
-  void handleEvent(eATVClientEvent f_event);   
-  void enableVerboseMode(bool f_value){
-    m_verbose_mode = f_value;
-  }
-};
-
-void XBMCClientWrapperImpl::timerCallBack (CFRunLoopTimerRef timer, void *info)
-{
-	if (!info)
-	{
-		fprintf(stderr, "Error. invalid argument to timer callback\n");
-		return;
-	}
-	
-	XBMCClientWrapperImpl *p_impl = (XBMCClientWrapperImpl *)info;
-	p_impl->sendSequence();
-	p_impl->resetTimer();
-}
-
-void XBMCClientWrapperImpl::resetTimer(){
-	if (m_timer)
-	{
-		CFRunLoopRemoveTimer(CFRunLoopGetCurrent(), m_timer, kCFRunLoopCommonModes);
-		CFRunLoopTimerInvalidate(m_timer);
-		CFRelease(m_timer);
-    m_timer = NULL;
-	}
-}  
-
-void XBMCClientWrapperImpl::restartTimer(){
-	if (m_timer)
-    resetTimer();	
-  
-	CFRunLoopTimerContext context = { 0, this, 0, 0, 0 };
-	m_timer = CFRunLoopTimerCreate(kCFAllocatorDefault, CFAbsoluteTimeGetCurrent() + m_sequence_timeout, 0, 0, 0, timerCallBack, &context);
-	CFRunLoopAddTimer(CFRunLoopGetCurrent(), m_timer, kCFRunLoopCommonModes);
-}
-
-XBMCClientWrapperImpl::XBMCClientWrapperImpl(eRemoteMode f_mode, const std::string& fcr_address, int f_port, bool f_verbose_mode): 
-m_mode(f_mode), m_address(fcr_address), m_port(f_port), m_timer(0), m_sequence_timeout(0.5), m_device_id(150), m_verbose_mode(f_verbose_mode){	
-  if(m_mode == MULTIREMOTE_MODE){
-    if(m_verbose_mode)
-      NSLog(@"XBMCClientWrapperImpl started in multiremote mode sending to address %s, port %i", fcr_address.c_str(), f_port);
-    populateMultiRemoteModeMap();
-  } else {
-    if(m_mode == UNIVERSAL_MODE){
-      if(m_verbose_mode)
-        NSLog(@"XBMCClientWrapperImpl started in universal mode sending to address %s, port %i", fcr_address.c_str(), f_port);
-      populateSequenceMap();
-    } else if(m_verbose_mode)
-        NSLog(@"XBMCClientWrapperImpl started in normal mode sending to address %s, port %i", fcr_address.c_str(), f_port);
-    populateEventMap();
-  }
-  
-	//open udp port etc
-	m_socket = socket(AF_INET, SOCK_DGRAM, 0);
-	if (m_socket < 0)
-	{
-		ELOG(@"Error opening UDP socket! error: ", errno);
-		//TODO What to do?
-	}
-}
-
-namespace {
- struct delete_second{
-   template <class T> 
-   void operator ()(T& fr_pair){
-     delete fr_pair.second;
-   }
- };
-}
-XBMCClientWrapperImpl::~XBMCClientWrapperImpl(){
-  resetTimer();
-  shutdown(m_socket, SHUT_RDWR);
-  std::for_each(m_event_map.begin(), m_event_map.end(), delete_second());
-  std::for_each(m_sequence_map.begin(), m_sequence_map.end(), delete_second());
-  std::for_each(m_multiremote_map.begin(), m_multiremote_map.end(), delete_second());
-}
-
-bool XBMCClientWrapperImpl::isStartToken(eATVClientEvent f_event){
-  return f_event==ATV_BUTTON_MENU_H;
-}
-
-void XBMCClientWrapperImpl::sendButton(eATVClientEvent f_event){
-  CPacketBUTTON* lp_packet = 0;
-  if(m_mode == MULTIREMOTE_MODE){
-    tMultiRemoteMap::iterator it = m_multiremote_map.find(std::make_pair(m_device_id, f_event));
-    if(it == m_multiremote_map.end()){
-      ELOG(@"XBMCClientWrapperImpl::sendButton: No mapping defined for remoteID: %i button %i", m_device_id, f_event);	
-      return;
-    }
-    lp_packet = it->second;
-  } else {
-    tEventMap::iterator it = m_event_map.find(f_event);
-    if(it == m_event_map.end()){
-      ELOG(@"XBMCClientWrapperImpl::sendButton: No mapping defined for button %i", f_event);	
-      return;
-    }
-    lp_packet = it->second;
-  }
-  assert(lp_packet);
-  CAddress addr(m_address.c_str(), m_port);
-  if(m_verbose_mode)
-    NSLog(@"XBMCClientWrapperImpl::sendButton sending button %i down:%i up:%i", lp_packet->GetButtonCode(), lp_packet->GetFlags()&BTN_DOWN,lp_packet->GetFlags()&BTN_UP );
-  lp_packet->Send(m_socket, addr);  
-}
-
-void XBMCClientWrapperImpl::sendSequence(){
-  tSequenceMap::const_iterator it = m_sequence_map.find(m_sequence);
-  if(it != m_sequence_map.end()){
-    CPacketBUTTON& packet = *(it->second);
-    CAddress addr(m_address.c_str());
-    packet.Send(m_socket, addr);      
-    if(m_verbose_mode)
-      NSLog(@"XBMCClientWrapperImpl::sendSequence sent sequence %i down:%i up:%i", packet.GetButtonCode(), packet.GetFlags()&BTN_DOWN,packet.GetFlags()&BTN_UP );
-  } else {
-    ELOG(@"XBMCClientWrapperImpl::sendSequence: No mapping defined for sequence %s", m_sequence.str().c_str());
-  }
-  m_sequence.clear();
-}
-
-void XBMCClientWrapperImpl::handleEvent(eATVClientEvent f_event){	
-  if(m_mode != UNIVERSAL_MODE){
-    sendButton(f_event);
-  }	else {
-    //in universal mode no keys are directly send. instead a key-sequence is assembled and a timer started
-    //when the timer expires, that key sequence is checked against predefined sequences and if it is a valid one, 
-    //a button press is generated
-    if(m_sequence.str().empty()){
-      if(isStartToken(f_event)){
-        m_sequence << f_event;
-        DLOG(@"Starting sequence with token %s", m_sequence.str().c_str());
-        restartTimer();
-      } else {
-        sendButton(f_event);
-      }
-    } else {
-      //dont queue release-events but restart timer
-      if(f_event == ATV_BUTTON_LEFT_RELEASE || f_event == ATV_BUTTON_RIGHT_RELEASE || f_event == ATV_BUTTON_UP_RELEASE || f_event == ATV_BUTTON_DOWN_RELEASE)
-        DLOG(@"Discarded button up event for sequence");
-      else{
-        m_sequence << f_event;
-        DLOG(@"Extended sequence to %s", m_sequence.str().c_str());
-      }
-      restartTimer();
-    }
-  }
-}
-
-void XBMCClientWrapperImpl::populateEventMap(){
-	tEventMap& lr_map = m_event_map;
-  
-	lr_map.insert(std::make_pair(ATV_BUTTON_CENTER,          new CPacketBUTTON(5, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-	lr_map.insert(std::make_pair(ATV_BUTTON_RIGHT,         new CPacketBUTTON(4, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-	lr_map.insert(std::make_pair(ATV_BUTTON_RIGHT_RELEASE, new CPacketBUTTON(4, "JS0:AppleRemote", BTN_UP | BTN_NO_REPEAT | BTN_QUEUE)));
-	lr_map.insert(std::make_pair(ATV_BUTTON_LEFT,          new CPacketBUTTON(3, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT| BTN_QUEUE)));
-	lr_map.insert(std::make_pair(ATV_BUTTON_LEFT_RELEASE,  new CPacketBUTTON(3, "JS0:AppleRemote", BTN_UP | BTN_NO_REPEAT | BTN_QUEUE)));
-	lr_map.insert(std::make_pair(ATV_BUTTON_MENU,          new CPacketBUTTON(6, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-	lr_map.insert(std::make_pair(ATV_BUTTON_MENU_H,        new CPacketBUTTON(8, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-	lr_map.insert(std::make_pair(ATV_BUTTON_UP,            new CPacketBUTTON(1, "JS0:AppleRemote", BTN_DOWN | BTN_QUEUE)));
-	lr_map.insert(std::make_pair(ATV_BUTTON_UP_RELEASE,    new CPacketBUTTON(1, "JS0:AppleRemote", BTN_UP | BTN_QUEUE)));
-	lr_map.insert(std::make_pair(ATV_BUTTON_DOWN,          new CPacketBUTTON(2, "JS0:AppleRemote", BTN_DOWN | BTN_QUEUE)));
-	lr_map.insert(std::make_pair(ATV_BUTTON_DOWN_RELEASE,  new CPacketBUTTON(2, "JS0:AppleRemote", BTN_UP | BTN_QUEUE)));
-	
-	// only present on ATV <= 2.1 <--- check that; OSX seems to have the release parts
-	lr_map.insert(std::make_pair(ATV_BUTTON_RIGHT_H, new CPacketBUTTON(10, "JS0:AppleRemote", BTN_DOWN | BTN_QUEUE)));	
-	lr_map.insert(std::make_pair(ATV_BUTTON_RIGHT_H_RELEASE, new CPacketBUTTON(10, "JS0:AppleRemote", BTN_UP | BTN_QUEUE)));	
-	lr_map.insert(std::make_pair(ATV_BUTTON_LEFT_H,  new CPacketBUTTON(9, "JS0:AppleRemote", BTN_DOWN | BTN_QUEUE)));
-	lr_map.insert(std::make_pair(ATV_BUTTON_LEFT_H_RELEASE, new CPacketBUTTON(9, "JS0:AppleRemote", BTN_UP | BTN_QUEUE)));	
-
-	//new aluminium remote buttons
-	lr_map.insert(std::make_pair(ATV_BUTTON_PLAY,  new CPacketBUTTON(12, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-	lr_map.insert(std::make_pair(ATV_BUTTON_PLAY_H, new CPacketBUTTON(13, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-
-	// only present on atv >= 2.2
-	lr_map.insert(std::make_pair(ATV_BUTTON_CENTER_H,  new CPacketBUTTON(7, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  
-  //learned remote buttons (ATV >=2.3)
-  lr_map.insert(std::make_pair(ATV_LEARNED_PLAY,  new CPacketBUTTON(70, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  lr_map.insert(std::make_pair(ATV_LEARNED_PAUSE,  new CPacketBUTTON(71, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  lr_map.insert(std::make_pair(ATV_LEARNED_STOP,  new CPacketBUTTON(72, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  lr_map.insert(std::make_pair(ATV_LEARNED_PREVIOUS,  new CPacketBUTTON(73, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  lr_map.insert(std::make_pair(ATV_LEARNED_NEXT,  new CPacketBUTTON(74, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  lr_map.insert(std::make_pair(ATV_LEARNED_REWIND,  new CPacketBUTTON(75, "JS0:AppleRemote", BTN_DOWN | BTN_QUEUE)));
-  lr_map.insert(std::make_pair(ATV_LEARNED_REWIND_RELEASE,  new CPacketBUTTON(75, "JS0:AppleRemote", BTN_UP | BTN_QUEUE)));
-  lr_map.insert(std::make_pair(ATV_LEARNED_FORWARD,  new CPacketBUTTON(76, "JS0:AppleRemote", BTN_DOWN | BTN_QUEUE)));
-  lr_map.insert(std::make_pair(ATV_LEARNED_FORWARD_RELEASE,  new CPacketBUTTON(76, "JS0:AppleRemote", BTN_UP | BTN_QUEUE)));
-  lr_map.insert(std::make_pair(ATV_LEARNED_RETURN,  new CPacketBUTTON(77, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  lr_map.insert(std::make_pair(ATV_LEARNED_ENTER,  new CPacketBUTTON(78, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-}
-
-void XBMCClientWrapperImpl::populateSequenceMap(){
-  XBMCClientEventSequence sequence_prefix;
-  sequence_prefix << ATV_BUTTON_MENU_H;
-  m_sequence_map.insert(std::make_pair(sequence_prefix, new CPacketBUTTON(8, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_CENTER, new CPacketBUTTON(20, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_RIGHT, new CPacketBUTTON(21, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_LEFT, new CPacketBUTTON(22, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_UP, new CPacketBUTTON(23, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_DOWN, new CPacketBUTTON(24, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_MENU, new CPacketBUTTON(25, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  
-  sequence_prefix.clear();
-  sequence_prefix << ATV_BUTTON_MENU_H << ATV_BUTTON_CENTER;
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_CENTER, new CPacketBUTTON(26, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_RIGHT, new CPacketBUTTON(27, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_LEFT, new CPacketBUTTON(28, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_UP, new CPacketBUTTON(29, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_DOWN, new CPacketBUTTON(30, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_MENU, new CPacketBUTTON(31, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  
-  sequence_prefix.clear();
-  sequence_prefix << ATV_BUTTON_MENU_H << ATV_BUTTON_UP;
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_CENTER, new CPacketBUTTON(32, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_RIGHT, new CPacketBUTTON(33, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_LEFT, new CPacketBUTTON(34, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_UP, new CPacketBUTTON(35, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_DOWN, new CPacketBUTTON(36, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_MENU, new CPacketBUTTON(37, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  
-  sequence_prefix.clear();
-  sequence_prefix << ATV_BUTTON_MENU_H << ATV_BUTTON_DOWN;
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_CENTER, new CPacketBUTTON(38, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_RIGHT, new CPacketBUTTON(39, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_LEFT, new CPacketBUTTON(40, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_UP, new CPacketBUTTON(41, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_DOWN, new CPacketBUTTON(42, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_MENU, new CPacketBUTTON(43, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  
-  sequence_prefix.clear();
-  sequence_prefix << ATV_BUTTON_MENU_H << ATV_BUTTON_RIGHT;
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_CENTER, new CPacketBUTTON(44, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_RIGHT, new CPacketBUTTON(45, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_LEFT, new CPacketBUTTON(46, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_UP, new CPacketBUTTON(47, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_DOWN, new CPacketBUTTON(48, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_MENU, new CPacketBUTTON(49, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  
-  sequence_prefix.clear();
-  sequence_prefix << ATV_BUTTON_MENU_H << ATV_BUTTON_LEFT;
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_CENTER, new CPacketBUTTON(50, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_RIGHT, new CPacketBUTTON(51, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_LEFT, new CPacketBUTTON(52, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_UP, new CPacketBUTTON(53, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_DOWN, new CPacketBUTTON(54, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-  m_sequence_map.insert(std::make_pair( sequence_prefix + ATV_BUTTON_MENU, new CPacketBUTTON(55, "JS0:AppleRemote", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-}
-
-void XBMCClientWrapperImpl::populateMultiRemoteModeMap(){
-  //the example of harmony as a multi-remote uses a few key device-id's paired with the normal buttons
-  static int device_ids[] = {150, 151, 152, 153, 154, 155, 157, 158, 159, 160};
-  int offset = 0;
-  for(int* device_id = device_ids; device_id != device_ids + sizeof(device_ids)/sizeof(*device_ids); ++device_id, offset += 10)
-  {
-    // keymaps for mult-apple-remote, including the device-key sent after remote-switch
-    // we just add them here with unique button numbers and do the real mapping in keymap.xml
-    // as an offset for the buttons we use the device 
-    
-    // this loop should probably be replaced by a proper setting of the individual keys
-    // cons: currently only button-codes (aka ints) are sent
-    //       way too lazy ;)  
-    // pro: custom tweaks. e.g. button 1 on the harmony may be  (153, ATV_BUTTON_LEFT) and this should not get a repeat
-    //      maybe use the loop and tweak individual buttons later; plex maps here to strings, and later in keymap.xml to other strings,
-    //      but this may need another kind of remote in XBMC source
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_UP),            new CPacketBUTTON(1 + offset, "JS0:Harmony", BTN_DOWN | BTN_QUEUE)));
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_UP_RELEASE),    new CPacketBUTTON(1 + offset, "JS0:Harmony", BTN_UP | BTN_QUEUE)));
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_DOWN),          new CPacketBUTTON(2 + offset, "JS0:Harmony", BTN_DOWN | BTN_QUEUE)));
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_DOWN_RELEASE),  new CPacketBUTTON(2 + offset, "JS0:Harmony", BTN_UP | BTN_QUEUE)));
-    
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_LEFT),          new CPacketBUTTON(3 + offset, "JS0:Harmony", BTN_DOWN | BTN_QUEUE)));
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_LEFT_RELEASE),  new CPacketBUTTON(3 + offset, "JS0:Harmony", BTN_UP | BTN_QUEUE)));
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_RIGHT),         new CPacketBUTTON(4 + offset, "JS0:Harmony", BTN_DOWN | BTN_QUEUE)));
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_RIGHT_RELEASE), new CPacketBUTTON(4 + offset, "JS0:Harmony", BTN_UP | BTN_QUEUE)));
-    
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_CENTER),          new CPacketBUTTON(5 + offset, "JS0:Harmony", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_MENU),          new CPacketBUTTON(6 + offset, "JS0:Harmony", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_CENTER_H),        new CPacketBUTTON(7 + offset, "JS0:Harmony", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_MENU_H),        new CPacketBUTTON(8 + offset, "JS0:Harmony", BTN_DOWN | BTN_NO_REPEAT | BTN_QUEUE)));
-    
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_RIGHT_H),       new CPacketBUTTON(9 + offset, "JS0:Harmony", BTN_DOWN | BTN_QUEUE)));
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_RIGHT_H_RELEASE),new CPacketBUTTON(9 + offset, "JS0:Harmony", BTN_UP | BTN_QUEUE)));
-        
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_LEFT_H),        new CPacketBUTTON(10 + offset, "JS0:Harmony", BTN_DOWN | BTN_QUEUE)));    
-    m_multiremote_map.insert(std::make_pair(std::make_pair(*device_id,ATV_BUTTON_LEFT_H_RELEASE),new CPacketBUTTON(10 + offset, "JS0:Harmony", BTN_UP | BTN_QUEUE)));    
-  }
-}
-
- at implementation XBMCClientWrapper
-- (id) init {
-  return [self initWithMode:DEFAULT_MODE serverAddress:@"localhost" port:9777 verbose: false];
-}
-- (id) initWithMode:(eRemoteMode) f_mode serverAddress:(NSString*) fp_server port:(int) f_port verbose:(bool) f_verbose{
-	if( ![super init] )
-		return nil; 
-	mp_impl = new XBMCClientWrapperImpl(f_mode, [fp_server UTF8String], f_port, f_verbose);
-	return self;
-}
-
-- (void) setUniversalModeTimeout:(double) f_timeout{
-  mp_impl->setUniversalModeTimeout(f_timeout);
-}
-
-- (void)dealloc{
-  delete mp_impl;
-	[super dealloc];
-}
-
--(void) handleEvent:(eATVClientEvent) f_event{
-  mp_impl->handleEvent(f_event);
-}
-
--(void) switchRemote:(int) f_device_id{
-  mp_impl->switchRemote(f_device_id);
-}
-
-- (void) enableVerboseMode:(bool) f_really{
-  mp_impl->enableVerboseMode(f_really);
-}
- at end
diff --git a/tools/EventClients/Clients/OSXRemote/xbmchelper_main.mm b/tools/EventClients/Clients/OSXRemote/xbmchelper_main.mm
deleted file mode 100644
index bedcfda..0000000
--- a/tools/EventClients/Clients/OSXRemote/xbmchelper_main.mm
+++ /dev/null
@@ -1,222 +0,0 @@
-#include "Carbon/Carbon.h"
-#import "XBMCHelper.h"
-#include <getopt.h>
-#include <string>
-#include <vector>
-#include <sstream>
-#include <fstream>
-#include <iterator>
-
-using namespace std;
-
-//instantiate XBMCHelper which registers itself to IR handling stuff
-XBMCHelper* gp_xbmchelper;
-eRemoteMode g_mode = DEFAULT_MODE;
-std::string g_server_address="localhost";
-int         g_server_port = 9777;
-std::string g_app_path = "";
-std::string g_app_home = "";
-double g_universal_timeout = 0.500;
-bool g_verbose_mode = false;
-
-//
-const char* PROGNAME="XBMCHelper";
-const char* PROGVERS="0.7";
-
-void ParseOptions(int argc, char** argv);
-void ReadConfig();
-
-static struct option long_options[] = {
-{ "help",       no_argument,       0, 'h' },
-{ "server",     required_argument, 0, 's' },
-{ "port",       required_argument, 0, 'p' },
-{ "universal",  no_argument,       0, 'u' },
-{ "multiremote",no_argument,       0, 'm' },
-{ "timeout",    required_argument, 0, 't' },
-{ "verbose",    no_argument,       0, 'v' },
-{ "externalConfig", no_argument,   0, 'x' },
-{ "appPath",    required_argument, 0, 'a' },
-{ "appHome",    required_argument, 0, 'z' }, 
-{ 0, 0, 0, 0 },
-};
-
-static const char *options = "hs:umt:vxa:z:";
-
-//----------------------------------------------------------------------------
-//----------------------------------------------------------------------------
-void usage(void)
-{
-  printf("%s (version %s)\n", PROGNAME, PROGVERS);
-  printf("   Sends Apple Remote events to Kodi.\n\n");
-  printf("Usage: %s [OPTIONS...]\n\nOptions:\n", PROGNAME);
-  printf("  -h, --help           print this help message and exit.\n");
-  printf("  -s, --server <addr>  send events to the specified IP.\n");
-  printf("  -p, --port <port>    send events to the specified port.\n");
-  printf("  -u, --universal      runs in Universal Remote mode.\n");
-  printf("  -t, --timeout <ms>   timeout length for sequences (default: 500ms).\n");
-  printf("  -m, --multiremote    runs in Multi-Remote mode (adds remote identifier as additional idenfier to buttons)\n");
-  printf("  -a, --appPath        path to Kodi.app (MenuPress launch support).\n");
-  printf("  -z, --appHome        path to Kodi.app/Content/Resources \n");
-  printf("  -v, --verbose        prints lots of debugging information.\n");
-}
-
-//----------------------------------------------------------------------------
-void ReadConfig()
-{
-	// Compute filename.
-  std::string strFile = getenv("HOME");
-  strFile += "/Library/Application Support/Kodi/XBMCHelper.conf";
-  
-	// Open file.
-  std::ifstream ifs(strFile.c_str());
-	if (!ifs)
-		return;
-  
-	// Read file.
-	stringstream oss;
-	oss << ifs.rdbuf();
-  
-	if (!ifs && !ifs.eof())
-		return;
-  
-	// Tokenize.
-	string strData(oss.str());
-	istringstream is(strData);
-	vector<string> args = vector<string>(istream_iterator<string>(is), istream_iterator<string>());
-  
-	// Convert to char**.
-	int argc = args.size() + 1;
-	char** argv = new char*[argc + 1];
-	int i = 0;
-	argv[i++] = (char*)"XBMCHelper";
-  
-	for (vector<string>::iterator it = args.begin(); it != args.end(); ){
-    //fixup the arguments, here: remove '"' like bash would normally do
-    std::string::size_type j = 0;
-    while ((j = it->find("\"", j)) != std::string::npos )
-      it->replace(j, 1, "");
-		argv[i++] = (char* )(*it++).c_str();
-  }
-	
-	argv[i] = 0;
-  
-	// Parse the arguments.
-	ParseOptions(argc, argv);
-  
-	delete[] argv;
-}
-
-//----------------------------------------------------------------------------
-void ParseOptions(int argc, char** argv)
-{
-  int c, option_index = 0;
-  //set the defaults
-	bool readExternal = false;
-  g_server_address = "localhost";
-  g_server_port = 9777;
-  g_mode = DEFAULT_MODE;
-  g_app_path = "";
-  g_app_home = "";
-  g_universal_timeout = 0.5;
-  g_verbose_mode = false;
-  
-  while ((c = getopt_long(argc, argv, options, long_options, &option_index)) != -1) 
-	{
-    switch (c) {
-      case 'h':
-        usage();
-        exit(0);
-        break;
-      case 'v':
-        g_verbose_mode = true;
-        break;
-      case 's':
-        g_server_address = optarg;
-        break;
-      case 'p':
-        g_server_port = atoi(optarg);
-        break;
-      case 'u':
-        g_mode = UNIVERSAL_MODE;
-        break;
-      case 'm':
-        g_mode = MULTIREMOTE_MODE;
-        break;        
-      case 't':
-        g_universal_timeout = atof(optarg) * 0.001;
-        break;
-      case 'x':
-        readExternal = true;
-        break;
-      case 'a':
-        g_app_path = optarg;
-        break;
-      case 'z':
-        g_app_home = optarg;
-        break;
-      default:
-        usage();
-        exit(1);
-        break;
-    }
-  }
-  //reset getopts state
-  optreset = 1;
-  optind = 0;
-  
-	if (readExternal == true)
-		ReadConfig();	
-    
-}
-
-//----------------------------------------------------------------------------
-void ConfigureHelper(){
-  [gp_xbmchelper enableVerboseMode:g_verbose_mode];
-  
-  //set apppath to startup when pressing Menu
-  [gp_xbmchelper setApplicationPath:[NSString stringWithUTF8String:g_app_path.c_str()]];    
-  //set apppath to startup when pressing Menu
-  [gp_xbmchelper setApplicationHome:[NSString stringWithUTF8String:g_app_home.c_str()]];
-  //connect to specified server
-  [gp_xbmchelper connectToServer:[NSString stringWithUTF8String:g_server_address.c_str()] onPort:g_server_port withMode:g_mode withTimeout: g_universal_timeout];  
-}
-
-//----------------------------------------------------------------------------
-void Reconfigure(int nSignal)
-{
-	if (nSignal == SIGHUP){
-		ReadConfig();
-    ConfigureHelper();
-  }
-	else {
-    QuitEventLoop(GetMainEventLoop());
-  }
-}
-
-//----------------------------------------------------------------------------
-int main (int argc,  char * argv[]) {
-  NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
-  
-  ParseOptions(argc,argv);
-
-  NSLog(@"%s %s starting up...", PROGNAME, PROGVERS);
-  gp_xbmchelper = [[XBMCHelper alloc] init];  
-  if(gp_xbmchelper){
-    signal(SIGHUP, Reconfigure);
-    signal(SIGINT, Reconfigure);
-    signal(SIGTERM, Reconfigure);
-    
-    ConfigureHelper();
-    
-    //run event loop in this thread
-    RunCurrentEventLoop(kEventDurationForever);
-    NSLog(@"%s %s exiting...", PROGNAME, PROGVERS);
-    //cleanup
-    [gp_xbmchelper release];    
-  } else {
-    NSLog(@"%s %s failed to initialize remote.", PROGNAME, PROGVERS);  
-    return -1;
-  }
-  [pool drain];
-  return 0;
-}
diff --git a/tools/TexturePacker/TexturePacker.exe b/tools/TexturePacker/TexturePacker.exe
new file mode 100644
index 0000000..1325f39
Binary files /dev/null and b/tools/TexturePacker/TexturePacker.exe differ
diff --git a/tools/TexturePacker/Win32/MakeDDS.vcxproj b/tools/TexturePacker/Win32/MakeDDS.vcxproj
deleted file mode 100644
index 35f15ae..0000000
--- a/tools/TexturePacker/Win32/MakeDDS.vcxproj
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{E85454A0-D9CF-4480-A9AE-AE2A7C3FBAD6}</ProjectGuid>
-    <RootNamespace>MakeDDS</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <CharacterSet>NotSet</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <CharacterSet>NotSet</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..;..\..\..\xbmc\win32;..\..\..\xbmc\guilib;..\..\..\xbmc;..\..\..\xbmc\lib\libsquish;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;NO_XBMC_FILESYSTEM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MinimalRebuild>true</MinimalRebuild>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>SDL.lib;SDL_image.lib;..\..\..\xbmc\lib\libsquish\lib\squishd.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
-      <TargetMachine>MachineX86</TargetMachine>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <Optimization>MaxSpeed</Optimization>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>..;..\..\..\xbmc\win32;..\..\..\xbmc\guilib;..\..\..\xbmc;..\..\..\xbmc\lib\libsquish;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;NO_XBMC_FILESYSTEM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>SDL.lib;SDL_image.lib;..\..\..\xbmc\lib\libsquish\lib\squish.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
-      <OptimizeReferences>true</OptimizeReferences>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <TargetMachine>MachineX86</TargetMachine>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\..\xbmc\guilib\DDSImage.cpp" />
-    <ClCompile Include="..\MakeDDS.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\..\xbmc\guilib\DDSImage.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="ReadMe.txt" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/tools/TexturePacker/Win32/MakeDDS.vcxproj.filters b/tools/TexturePacker/Win32/MakeDDS.vcxproj.filters
deleted file mode 100644
index 134d242..0000000
--- a/tools/TexturePacker/Win32/MakeDDS.vcxproj.filters
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\..\xbmc\guilib\DDSImage.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\MakeDDS.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\..\xbmc\guilib\DDSImage.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="ReadMe.txt" />
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/tools/TexturePacker/Win32/TexturePacker.sln b/tools/TexturePacker/Win32/TexturePacker.sln
deleted file mode 100644
index f1cacec..0000000
--- a/tools/TexturePacker/Win32/TexturePacker.sln
+++ /dev/null
@@ -1,26 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C++ Express 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TexturePacker", "TexturePacker.vcxproj", "{57EC0A84-7E0C-4EEA-9E63-BB4EBF2310D7}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MakeDDS", "MakeDDS.vcxproj", "{E85454A0-D9CF-4480-A9AE-AE2A7C3FBAD6}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{57EC0A84-7E0C-4EEA-9E63-BB4EBF2310D7}.Debug|Win32.ActiveCfg = Debug|Win32
-		{57EC0A84-7E0C-4EEA-9E63-BB4EBF2310D7}.Debug|Win32.Build.0 = Debug|Win32
-		{57EC0A84-7E0C-4EEA-9E63-BB4EBF2310D7}.Release|Win32.ActiveCfg = Release|Win32
-		{57EC0A84-7E0C-4EEA-9E63-BB4EBF2310D7}.Release|Win32.Build.0 = Release|Win32
-		{E85454A0-D9CF-4480-A9AE-AE2A7C3FBAD6}.Debug|Win32.ActiveCfg = Debug|Win32
-		{E85454A0-D9CF-4480-A9AE-AE2A7C3FBAD6}.Debug|Win32.Build.0 = Debug|Win32
-		{E85454A0-D9CF-4480-A9AE-AE2A7C3FBAD6}.Release|Win32.ActiveCfg = Release|Win32
-		{E85454A0-D9CF-4480-A9AE-AE2A7C3FBAD6}.Release|Win32.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
diff --git a/tools/TexturePacker/Win32/TexturePacker.vcxproj b/tools/TexturePacker/Win32/TexturePacker.vcxproj
deleted file mode 100644
index 900a833..0000000
--- a/tools/TexturePacker/Win32/TexturePacker.vcxproj
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{57EC0A84-7E0C-4EEA-9E63-BB4EBF2310D7}</ProjectGuid>
-    <RootNamespace>TexturePacker</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <CharacterSet>NotSet</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <CharacterSet>NotSet</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;..\..\..\project\BuildDependencies\include</IncludePath>
-    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;..\..\..\project\BuildDependencies\lib</LibraryPath>
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;..\..\..\project\BuildDependencies\include</IncludePath>
-    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;..\..\..\project\BuildDependencies\lib</LibraryPath>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.;..\..\..\xbmc;..\..\..\lib;..\..\..\xbmc\win32%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MinimalRebuild>true</MinimalRebuild>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>SDL.lib;SDL_image.lib;..\..\..\project\VS2010Express\libs\squish\Debug\squishd.lib;..\..\..\lib\win32\liblzo\lzo.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <IgnoreSpecificDefaultLibraries>libc.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
-      <TargetMachine>MachineX86</TargetMachine>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <Optimization>MaxSpeed</Optimization>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>.;..\..\..\xbmc;..\..\..\lib;..\..\..\xbmc\win32%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;USE_LZO_PACKING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>SDL.lib;SDL_image.lib;..\..\..\project\VS2010Express\libs\squish\Release\squish.lib;..\..\..\lib\win32\liblzo\lzo.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <IgnoreSpecificDefaultLibraries>libc.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
-      <OptimizeReferences>true</OptimizeReferences>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <TargetMachine>MachineX86</TargetMachine>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\md5.cpp" />
-    <ClCompile Include="..\SDL_anigif.cpp" />
-    <ClCompile Include="dirent.c" />
-    <ClCompile Include="..\XBMCTex.cpp" />
-    <ClCompile Include="..\..\..\xbmc\guilib\XBTF.cpp" />
-    <ClCompile Include="..\XBTFWriter.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\cmdlineargs.h" />
-    <ClInclude Include="dirent.h" />
-    <ClInclude Include="..\md5.h" />
-    <ClInclude Include="..\SDL_anigif.h" />
-    <ClInclude Include="..\..\..\xbmc\guilib\XBTF.h" />
-    <ClInclude Include="..\XBTFWriter.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="ReadMe.txt" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/tools/TexturePacker/Win32/TexturePacker.vcxproj.filters b/tools/TexturePacker/Win32/TexturePacker.vcxproj.filters
deleted file mode 100644
index b212ae0..0000000
--- a/tools/TexturePacker/Win32/TexturePacker.vcxproj.filters
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="dirent.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\XBMCTex.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\xbmc\guilib\XBTF.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\XBTFWriter.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\SDL_anigif.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\md5.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\cmdlineargs.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="dirent.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\md5.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\SDL_anigif.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\xbmc\guilib\XBTF.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\XBTFWriter.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="ReadMe.txt" />
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/tools/TexturePacker/Win32/dirent.c b/tools/TexturePacker/Win32/dirent.c
deleted file mode 100644
index 7b38291..0000000
--- a/tools/TexturePacker/Win32/dirent.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
-
-    Implementation of POSIX directory browsing functions and types for Win32.
-
-    Author:  Kevlin Henney (kevlin at acm.org, kevlin at curbralan.com)
-    History: Created March 1997. Updated June 2003.
-
-    Copyright Kevlin Henney, 1997, 2003. All rights reserved.
-
-    Permission to use, copy, modify, and distribute this software and its
-    documentation for any purpose is hereby granted without fee, provided
-    that this copyright and permissions notice appear in all copies and
-    derivatives.
-
-    This software is supplied "as is" without express or implied warranty.
-
-    But that said, if there are any problems please get in touch.
-*/
-
-#include <dirent.h>
-#include <errno.h>
-#include <io.h> /* _findfirst and _findnext set errno iff they return -1 */
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-struct DIR
-{
-    long                handle; /* -1 for failed rewind */
-    struct _finddata_t  info;
-    struct dirent       result; /* d_name null iff first time */
-    char                *name;  /* null-terminated char string */
-};
-
-DIR *opendir(const char *name)
-{
-    DIR *dir = 0;
-
-    if(name && name[0])
-    {
-        size_t base_length = strlen(name);
-        const char *all = /* search pattern must end with suitable wildcard */
-            strchr("/\\", name[base_length - 1]) ? "*" : "/*";
-
-        if((dir = (DIR *) malloc(sizeof *dir)) != 0 &&
-           (dir->name = (char *) malloc(base_length + strlen(all) + 1)) != 0)
-        {
-            strcat(strcpy(dir->name, name), all);
-
-            if((dir->handle = (long) _findfirst(dir->name, &dir->info)) != -1)
-            {
-                dir->result.d_name = 0;
-                dir->result.d_type = 0;
-            }
-            else /* rollback */
-            {
-                free(dir->name);
-                free(dir);
-                dir = 0;
-            }
-        }
-        else /* rollback */
-        {
-            free(dir);
-            dir   = 0;
-            errno = ENOMEM;
-        }
-    }
-    else
-    {
-        errno = EINVAL;
-    }
-
-    return dir;
-}
-
-int closedir(DIR *dir)
-{
-    int result = -1;
-
-    if(dir)
-    {
-        if(dir->handle != -1)
-        {
-            result = _findclose(dir->handle);
-        }
-
-        free(dir->name);
-        free(dir);
-    }
-
-    if(result == -1) /* map all errors to EBADF */
-    {
-        errno = EBADF;
-    }
-
-    return result;
-}
-
-struct dirent *readdir(DIR *dir)
-{
-    struct dirent *result = 0;
-
-    if(dir && dir->handle != -1)
-    {
-        if(!dir->result.d_name || _findnext(dir->handle, &dir->info) != -1)
-        {
-            result         = &dir->result;
-            result->d_name = dir->info.name;
-            result->d_type = (dir->info.attrib == _A_SUBDIR) ? DT_DIR : DT_UNKNOWN;
-        }
-    }
-    else
-    {
-        errno = EBADF;
-    }
-
-    return result;
-}
-
-void rewinddir(DIR *dir)
-{
-    if(dir && dir->handle != -1)
-    {
-        _findclose(dir->handle);
-        dir->handle = (long) _findfirst(dir->name, &dir->info);
-        dir->result.d_name = 0;
-        dir->result.d_type = 0;
-    }
-    else
-    {
-        errno = EBADF;
-    }
-}
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/tools/TexturePacker/Win32/dirent.h b/tools/TexturePacker/Win32/dirent.h
deleted file mode 100644
index 6c85abd..0000000
--- a/tools/TexturePacker/Win32/dirent.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef DIRENT_INCLUDED
-#define DIRENT_INCLUDED
-
-/*
-
-    Declaration of POSIX directory browsing functions and types for Win32.
-
-    Author:  Kevlin Henney (kevlin at acm.org, kevlin at curbralan.com)
-    History: Created March 1997. Updated June 2003.
-
-    Copyright Kevlin Henney, 1997, 2003. All rights reserved.
-
-    Permission to use, copy, modify, and distribute this software and its
-    documentation for any purpose is hereby granted without fee, provided
-    that this copyright and permissions notice appear in all copies and
-    derivatives.
-
-    This software is supplied "as is" without express or implied warranty.
-
-    But that said, if there are any problems please get in touch.
-*/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-typedef struct DIR DIR;
-
-#define DT_UNKNOWN      0
-#define DT_FIFO         1
-#define DT_CHR          2
-#define DT_DIR          4
-#define DT_BLK          6
-#define DT_REG          8
-#define DT_LNK          10
-#define DT_SOCK         12
-#define DT_WHT          14
-
-struct dirent
-{
-    char *d_name;
-    unsigned char d_type;
-};
-
-DIR           *opendir(const char *);
-int           closedir(DIR *);
-struct dirent *readdir(DIR *);
-void          rewinddir(DIR *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/tools/android/packaging/Makefile.in b/tools/android/packaging/Makefile.in
index cffb9ed..c28638b 100644
--- a/tools/android/packaging/Makefile.in
+++ b/tools/android/packaging/Makefile.in
@@ -77,7 +77,7 @@ shared:
 	mkdir -p assets
 	cp -rfp $(PREFIX)/share/@APP_NAME_LC@/* ./assets
 	find `pwd`/assets/ -depth -name ".git" -exec rm -rf {} \;
-	find `pwd`/assets/system/ -name "*.so" -exec rm {} \;
+	find `pwd`/assets/ -name "*.so" -exec rm {} \;
 	find `pwd`/assets/addons/skin.*/media/* -depth -not -iname "Textures.xbt" -exec rm -rf {} \;
 	find `pwd`/assets/system/keymaps/ -depth -name "joystick*.xml" ! -name "joystick.xml" -exec rm {} \;
 	mv -f `pwd`/assets/system/keymaps/joystick.xml.sample `pwd`/assets/system/keymaps/joystick.xml
@@ -118,6 +118,7 @@ libs: $(PREFIX)/lib/@APP_NAME_LC@/lib at APP_NAME_LC@.so
 	cp -fp $(SRCLIBS) xbmc/obj/local/$(CPU)/
 	cp -fp $(PREFIX)/lib/@APP_NAME_LC@/lib at APP_NAME_LC@.so xbmc/obj/local/$(CPU)/
 	find $(PREFIX)/lib/@APP_NAME_LC@/addons -name "*.so" -exec cp -fp {} xbmc/obj/local/$(CPU)/ \;
+	find $(PREFIX)/share/@APP_NAME_LC@/addons -name "*.so" -exec cp -fp {} xbmc/obj/local/$(CPU)/ \;
 	find $(PREFIX)/lib/@APP_NAME_LC@/system -name "*.so" -exec cp -fp {} xbmc/obj/local/$(CPU)/ \;
 	cd xbmc/obj/local/$(CPU)/; find . -name "*.so" -not -name "lib*.so" | sed "s/\.\///" | xargs -I@ mv @ lib@
 	cp -fp xbmc/obj/local/$(CPU)/*.so xbmc/lib/$(CPU)/
diff --git a/tools/buildsteps/defaultenv b/tools/buildsteps/defaultenv
index 76ebb84..ec93f82 100644
--- a/tools/buildsteps/defaultenv
+++ b/tools/buildsteps/defaultenv
@@ -22,13 +22,13 @@ case $XBMC_PLATFORM_DIR in
     ;;
 
   osx32)
-    DEFAULT_SDK_VERSION=10.8
+    DEFAULT_SDK_VERSION=10.10
     DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends
     DEFAULT_CONFIGURATION="Debug"
     ;;
 
   osx64)
-    DEFAULT_SDK_VERSION=10.8
+    DEFAULT_SDK_VERSION=10.10
     DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends
     DEFAULT_CONFIGURATION="Debug"
     ;;
@@ -66,12 +66,6 @@ then
   Configuration=$DEFAULT_CONFIGURATION
 fi
 
-#clamp release builds to 1 thread only
-if [ "$Configuration" == "Release" ]
-then
-  BUILDTHREADS=1
-fi
-
 #helper functions
 
 #hash a dir based on the git revision, SDK_PATH, NDK_PATH, SDK_VERSION, TOOLCHAIN TOOLCHAIN_X86 (for droidx86) and XBMC_DEPENDS_ROOT
diff --git a/tools/darwin/Configurations/Common.xcconfig.in b/tools/darwin/Configurations/Common.xcconfig.in
index 0a9a744..11ba725 100644
--- a/tools/darwin/Configurations/Common.xcconfig.in
+++ b/tools/darwin/Configurations/Common.xcconfig.in
@@ -21,6 +21,6 @@
 APP_NAME=@APP_NAME@
 XBMC_DEPENDS_ROOT = @DEPENDS_ROOT_FOR_XCODE@
 
-XBMC_GCC_PREPROCESSOR_DEFINITIONS_COMMON = TARGET_POSIX TARGET_DARWIN _LINUX _REENTRANT _FILE_DEFINED _FILE_OFFSET_BITS=64 _LARGEFILE64_SOURCE __STDC_CONSTANT_MACROS HAVE_CONFIG_H HAS_SPC_CODEC NPT_CONFIG_ENABLE_LOGGINGPLT_HTTP_DEFAULT_USER_AGENT="\"UPnP/1.0 DLNADOC/1.50 Kodi\"" PLT_HTTP_DEFAULT_SERVER="\"UPnP/1.0 DLNADOC/1.50 Kodi\""
+XBMC_GCC_PREPROCESSOR_DEFINITIONS_COMMON = TARGET_POSIX TARGET_DARWIN _LINUX _REENTRANT _FILE_DEFINED _FILE_OFFSET_BITS=64 _LARGEFILE64_SOURCE __STDC_CONSTANT_MACROS HAVE_CONFIG_H HAS_SPC_CODEC NPT_CONFIG_ENABLE_LOGGING PLT_HTTP_DEFAULT_USER_AGENT="\"UPnP/1.0 DLNADOC/1.50 Kodi\"" PLT_HTTP_DEFAULT_SERVER="\"UPnP/1.0 DLNADOC/1.50 Kodi\""
 
 DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
diff --git a/tools/darwin/packaging/atv2/mkdeb-atv2.sh.in b/tools/darwin/packaging/atv2/mkdeb-atv2.sh.in
index fefc6ce..c309036 100644
--- a/tools/darwin/packaging/atv2/mkdeb-atv2.sh.in
+++ b/tools/darwin/packaging/atv2/mkdeb-atv2.sh.in
@@ -4,7 +4,7 @@
 XBMC_DEPENDS_ROOT=@DEPENDS_ROOT_FOR_XCODE@
 SWITCH=`echo $1 | tr [A-Z] [a-z]`
 DIRNAME=`dirname $0`
-DSYM_TARGET_DIR=${XBMC_DEPENDS_ROOT}/dSyms
+DSYM_TARGET_DIR=/Users/Shared/xbmc-depends/dSyms
 DSYM_FILENAME=@APP_NAME at .frappliance.dSYM
 
 if [ ${SWITCH:-""} = "debug" ]; then
diff --git a/tools/darwin/packaging/ios/mkdeb-ios.sh.in b/tools/darwin/packaging/ios/mkdeb-ios.sh.in
index f159bf9..c868141 100644
--- a/tools/darwin/packaging/ios/mkdeb-ios.sh.in
+++ b/tools/darwin/packaging/ios/mkdeb-ios.sh.in
@@ -5,7 +5,7 @@
 XBMC_DEPENDS_ROOT=@DEPENDS_ROOT_FOR_XCODE@
 SWITCH=`echo $1 | tr [A-Z] [a-z]`
 DIRNAME=`dirname $0`
-DSYM_TARGET_DIR=${XBMC_DEPENDS_ROOT}/dSyms
+DSYM_TARGET_DIR=/Users/Shared/xbmc-depends/dSyms
 DSYM_FILENAME=@APP_NAME at .app.dSYM
 
 if [ ${SWITCH:-""} = "debug" ]; then
diff --git a/tools/depends/target/Backrow/Makefile b/tools/depends/target/Backrow/Makefile
deleted file mode 100644
index 7ceb06f..0000000
--- a/tools/depends/target/Backrow/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include
-
-SOURCE=Backrow
-ARCHIVE=$(SOURCE).tar.gz
-# Specific download location
-BASE_URL=http://xbmc-for-atv2.googlecode.com/svn/trunk/Backrow
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):                                                                                                                                                                                 
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM)/$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	mkdir -p $(PLATFORM)/$(SOURCE)
-	cd $(PLATFORM)/$(SOURCE);$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-
-.installed-$(PLATFORM): $(PLATFORM)/$(SOURCE)
-	mkdir -p $(PREFIX)/include
-	cp -pR $(PLATFORM)/$(SOURCE) $(PREFIX)/include/
-	touch $@
-
-clean:
-distclean::
-	rm -rf $(SOURCE) .installed-$(PLATFORM)
diff --git a/tools/depends/target/Makefile b/tools/depends/target/Makefile
deleted file mode 100644
index 3598d19..0000000
--- a/tools/depends/target/Makefile
+++ /dev/null
@@ -1,142 +0,0 @@
-include ../Makefile.include
-
-ifneq ($(shell test -f $(PREFIX)/share/config.site && echo 1),1)
-  $(error Error: $(PREFIX)/share/config.site  is missing. Please reconfigure depends to generate it)
-endif
-
-DEPENDS = \
-	pcre expat gettext sqlite3 libgpg-error \
-	libgcrypt bzip2 liblzo2 libzip freetype2 fontconfig \
-	openssl gmp nettle gnutls libssh2 curl \
-	libjpeg-turbo tiff jasper libpng \
-	libogg libvorbis libflac fribidi libmpeg2 \
-	libass \
-	libmodplug librtmp libxml2 yajl libmicrohttpd mysql libffi \
-	python26 afpfs-ng libshairplay \
-	libplist libcec libbluray boost tinyxml dummy-libxbmc \
-	libamplayer libssh taglib libusb libnfs libmp3lame \
-	xbmc-pvr-addons xbmc-audioencoder-addons \
-	pythonmodule-pil libxslt ffmpeg
-
-ifeq ($(ENABLE_GPLV3),1)
-  DEPENDS+=samba-gplv3 libcdio-gplv3
-else
-  DEPENDS+=samba libcdio
-endif
-
-ifeq ($(OS),ios)
-  DEPENDS += Backrow
-  EXCLUDED_DEPENDS = libcec libusb gmp nettle gnutls
-endif
-
-ifeq ($(OS),osx)
-  DEPENDS += libGLEW libsdl
-  EXCLUDED_DEPENDS = libusb gmp nettle gnutls
-endif
-
-ifeq ($(OS),android)
-  DEPENDS += mdnsresponder android-sources-ics
-  EXCLUDED_DEPENDS = gmp nettle gnutls
-endif
-
-DEPENDS := $(filter-out $(EXCLUDED_DEPENDS),$(DEPENDS))
-
-ZLIB=
-ifneq ($(HAS_ZLIB),1)
-  DEPENDS += zlib
-  ZLIB = zlib
-endif
-
-ICONV=
-ifeq ($(NEED_LIBICONV),1)
-  DEPENDS += libiconv
-  ICONV = libiconv
-endif
-
-ALSA_LIB=
-LINUX_SYSTEM_LIBS=
-ifeq ($(OS),linux)
-  #not for raspberry pi
-  ifneq ($(TARGET_PLATFORM),raspberry-pi)
-    DEPENDS += libsdl2 linux-system-libs
-    LINUX_SYSTEM_LIBS = linux-system-libs
-  endif
-  DEPENDS += alsa-lib
-  ALSA_LIB = alsa-lib
-  FFMPEG_DEPENDS = gnutls
-endif
-
-.PHONY: $(DEPENDS)
-
-all: .installed-$(PLATFORM)
-
-gettext: $(ICONV)
-libgcrypt: libgpg-error
-fontconfig: freetype2 expat $(ICONV)
-libssh2: libgcrypt openssl
-curl: openssl libssh2
-tiff: libjpeg-turbo
-jasper: libjpeg-turbo
-libvorbis: libogg
-libflac: libogg gettext
-libass: fontconfig libpng freetype2 expat $(ICONV)
-librtmp: openssl
-libmicrohttpd: openssl libgpg-error libgcrypt
-python26: expat gettext libxml2 sqlite3 openssl libffi
-libcdio: $(ICONV)
-afpfs-ng: libgcrypt $(ICONV)
-libplist: libxml2 $(ZLIB)
-libbluray: $(ICONV) libxml2
-libssh: openssl
-xbmc-pvr-addons: boost mysql
-xbmc-audioencoder-addons: libvorbis libflac libmp3lame libogg
-mysql: openssl
-libzip: $(ZLIB)
-libmp3lame: $(ICONV)
-libpng: $(ZLIB)
-openssl: $(ZLIB)
-gnutls: nettle $(ZLIB)
-nettle: gmp
-pythonmodule-pil: $(ZLIB) libjpeg-turbo libpng freetype2 python26
-libsdl2: $(LINUX_SYSTEM_LIBS)
-libxslt: libgcrypt
-ffmpeg: $(ICONV) $(ZLIB) bzip2 libvorbis $(FFMPEG_DEPENDS)
-
-.installed-$(PLATFORM): $(DEPENDS)
-	touch $@
-	@echo "Dependencies built successfully."
-
-$(DEPENDS):
-	$(MAKE) -C $@
-
-clean:
-	for d in $(DEPENDS); do $(MAKE) -C $$d clean; done
-
-# Debug target, this will DELETE all data in staging!
-test-dependencies:
-	( for d in $(DEPENDS); do \
-	rm -rf $(PREFIX); \
-	mkdir -p $(PREFIX)/include $(PREFIX)/share $(PREFIX)/bin; \
-	cp -f config.site Toolchain.cmake $(PREFIX)/share/; \
-	$(MAKE) distclean; \
-	$(MAKE) $$d; done ) && echo "$@ built successfully"
-
-
-distclean::
-	for d in $(DEPENDS); do $(MAKE) -C $$d distclean; done
-
-linux-system-libs:
-	[ -f $(PREFIX)/lib/pkgconfig/x11.pc ] || ln -s /usr/lib/$(HOST)/pkgconfig/x11.pc $(PREFIX)/lib/pkgconfig/x11.pc
-	[ -f $(PREFIX)/lib/pkgconfig/xproto.pc ] || ln -s /usr/share/pkgconfig/xproto.pc $(PREFIX)/lib/pkgconfig/xproto.pc
-	[ -f $(PREFIX)/lib/pkgconfig/kbproto.pc ] || ln -s /usr/share/pkgconfig/kbproto.pc $(PREFIX)/lib/pkgconfig/kbproto.pc
-	[ -f $(PREFIX)/lib/pkgconfig/xcb.pc ] || ln -s /usr/lib/$(HOST)/pkgconfig/xcb.pc $(PREFIX)/lib/pkgconfig/xcb.pc
-	[ -f $(PREFIX)/lib/pkgconfig/pthread-stubs.pc ] || ln -s /usr/lib/$(HOST)/pkgconfig/pthread-stubs.pc $(PREFIX)/lib/pkgconfig/pthread-stubs.pc
-	[ -f $(PREFIX)/lib/pkgconfig/xau.pc ] || ln -s /usr/lib/$(HOST)/pkgconfig/xau.pc $(PREFIX)/lib/pkgconfig/xau.pc
-	[ -f $(PREFIX)/lib/pkgconfig/xdmcp.pc ] || ln -s /usr/lib/$(HOST)/pkgconfig/xdmcp.pc $(PREFIX)/lib/pkgconfig/xdmcp.pc
-	[ -f $(PREFIX)/lib/pkgconfig/xext.pc ] || ln -s /usr/lib/$(HOST)/pkgconfig/xext.pc $(PREFIX)/lib/pkgconfig/xext.pc
-	[ -f $(PREFIX)/lib/pkgconfig/xextproto.pc ] || ln -s /usr/share/pkgconfig/xextproto.pc $(PREFIX)/lib/pkgconfig/xextproto.pc
-	[ -f $(PREFIX)/lib/pkgconfig/xt.pc ] || ln -s /usr/lib/$(HOST)/pkgconfig/xt.pc $(PREFIX)/lib/pkgconfig/xt.pc
-	[ -f $(PREFIX)/lib/pkgconfig/ice.pc ] || ln -s /usr/lib/$(HOST)/pkgconfig/ice.pc $(PREFIX)/lib/pkgconfig/ice.pc
-	[ -f $(PREFIX)/lib/pkgconfig/sm.pc ] || ln -s /usr/lib/$(HOST)/pkgconfig/sm.pc $(PREFIX)/lib/pkgconfig/sm.pc
-	[ -f $(PREFIX)/lib/pkgconfig/xmu.pc ] || ln -s /usr/lib/$(HOST)/pkgconfig/xmu.pc $(PREFIX)/lib/pkgconfig/xmu.pc
-	[ -f $(PREFIX)/lib/pkgconfig/libdrm.pc ] || ln -s /usr/lib/$(HOST)/pkgconfig/libdrm.pc $(PREFIX)/lib/pkgconfig/libdrm.pc
diff --git a/tools/depends/target/Toolchain.cmake.in b/tools/depends/target/Toolchain.cmake.in
deleted file mode 100644
index c8aee4a..0000000
--- a/tools/depends/target/Toolchain.cmake.in
+++ /dev/null
@@ -1,36 +0,0 @@
-SET(OS "@platform_os@")
-IF("${OS}" STREQUAL "linux" OR "${OS}" STREQUAL "android")
-SET(CMAKE_SYSTEM_NAME Linux)
-ENDIF()
-IF("${OS}" STREQUAL "ios" OR "${OS}" STREQUAL "osx")
-SET(CMAKE_OSX_SYSROOT @use_sdk_path@)
-ENDIF()
-SET(CMAKE_SYSTEM_VERSION 1)
-
-# specify the cross compiler
-SET(CMAKE_C_COMPILER   @CC@)
-SET(CMAKE_CXX_COMPILER @CXX@)
-SET(CMAKE_AR @AR@ CACHE FILEPATH "Archiver")
-SET(CMAKE_LINKER @LD@ CACHE FILEPATH "Linker")
-
-# where is the target environment 
-SET(CMAKE_FIND_ROOT_PATH  @prefix@/@deps_dir@ @use_toolchain@ @use_toolchain@/usr @use_sdk_path@ @use_sdk_path@/usr @use_toolchain@/sysroot/usr)
-SET(CMAKE_LIBRARY_PATH @prefix@/@deps_dir@/lib:@use_toolchain@/usr/lib/@use_host@:@use_toolchain@/lib/@use_host@)
-
-SET(CMAKE_C_FLAGS "@platform_cflags@ @platform_includes@ -isystem @prefix@/@deps_dir@/include")
-SET(CMAKE_CXX_FLAGS "@platform_cxxflags@ @platform_includes@ -isystem @prefix@/@deps_dir@/include")
-SET(CMAKE_CPP_FLAGS "@platform_cflags@ @platform_includes@ -isystem @prefix@/@deps_dir@/include")
-SET(ENV{CFLAGS} ${CMAKE_C_FLAGS})
-SET(ENV{CXXFLAGS} ${CMAKE_CXX_FLAGS})
-SET(ENV{CPPFLAGS} ${CMAKE_CPP_FLAGS})
-SET(ENV{LDFLAGS} "-L at prefix@/@deps_dir@/lib @platform_ldflags@")
-# search for programs in the build host directories
-SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-# for libraries and headers in the target directories
-SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-
-# Binary Addons
-IF(NOT LINUX)
-SET(ADDONS_PREFER_STATIC_LIBS ON)
-ENDIF()
diff --git a/tools/depends/target/afpfs-ng/01-gcrypt.patch b/tools/depends/target/afpfs-ng/01-gcrypt.patch
deleted file mode 100644
index 7bcace2..0000000
--- a/tools/depends/target/afpfs-ng/01-gcrypt.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -ru afpfs-ng-0.8.1/configure.ac afpfs-ng-0.8.1+iPhone/configure.ac
---- afpfs-ng-0.8.1/configure.ac	2008-03-08 16:23:12.000000000 +0000
-+++ afpfs-ng-0.8.1+iPhone/configure.ac	2010-10-24 05:26:15.000000000 +0000
-@@ -50,21 +50,6 @@
- 	case $host in
- 		*-*-darwin*) 
- 		AC_MSG_CHECKING([for correct gcrypt version])
--		AC_RUN_IFELSE(
--			[AC_LANG_PROGRAM([
--				#include <gcrypt.h>
--				#include <stdio.h>],[
--				char*p= GCRYPT_VERSION;
--				unsigned int vers;
--				vers=atoi(p)*10000;
--				p=strchr(p,'.')+1;
--				vers+=atoi(p)*100;
--				p=strchr(p,'.')+1;
--				vers+=atoi(p);
--				if (vers<10400) return 1;
--			])],
--			[AC_MSG_RESULT([yes])],
--			[AC_MSG_ERROR([version is < 1.4.0])])
- 		AM_CONDITIONAL(HAVE_LIBGCRYPT, true)
- 		AC_DEFINE([HAVE_LIBGCRYPT], [1] )
- 		;;
-
diff --git a/tools/depends/target/afpfs-ng/02-pointer.patch b/tools/depends/target/afpfs-ng/02-pointer.patch
deleted file mode 100644
index 80507b5..0000000
--- a/tools/depends/target/afpfs-ng/02-pointer.patch
+++ /dev/null
@@ -1,280 +0,0 @@
-diff -up afpfs-ng-0.8.1/cmdline/getstatus.c.pointer afpfs-ng-0.8.1/cmdline/getstatus.c
---- afpfs-ng-0.8.1/cmdline/getstatus.c.pointer	2011-06-14 17:06:35.000000000 +0200
-+++ afpfs-ng-0.8.1/cmdline/getstatus.c	2011-06-14 17:07:25.000000000 +0200
-@@ -1,4 +1,5 @@
- #include <stdio.h>
-+#include <stdlib.h>
- #include <string.h>
- #include <pthread.h>
- 
-diff -up afpfs-ng-0.8.1/fuse/client.c.pointer afpfs-ng-0.8.1/fuse/client.c
---- afpfs-ng-0.8.1/fuse/client.c.pointer	2008-03-08 03:44:16.000000000 +0100
-+++ afpfs-ng-0.8.1/fuse/client.c	2011-06-14 17:02:15.000000000 +0200
-@@ -61,8 +61,9 @@ static int start_afpfsd(void)
- 			snprintf(filename, PATH_MAX,
- 				"/usr/local/bin/%s",AFPFSD_FILENAME);
- 			if (access(filename,X_OK)) {
--				snprintf(filename, "/usr/bin/%s",
-+				snprintf(filename, sizeof(filename), "/usr/bin/%s",
- 					AFPFSD_FILENAME);
-+				filename[sizeof(filename) - 1] = 0;
- 				if (access(filename,X_OK)) {
- 					printf("Could not find server (%s)\n",
- 						filename);
-diff -up afpfs-ng-0.8.1/fuse/fuse_int.c.pointer afpfs-ng-0.8.1/fuse/fuse_int.c
---- afpfs-ng-0.8.1/fuse/fuse_int.c.pointer	2008-03-02 06:06:24.000000000 +0100
-+++ afpfs-ng-0.8.1/fuse/fuse_int.c	2011-06-14 17:02:15.000000000 +0200
-@@ -197,7 +197,7 @@ static int fuse_open(const char *path, s
- 	ret = ml_open(volume,path,flags,&fp);
- 
- 	if (ret==0) 
--		fi->fh=(void *) fp;
-+		fi->fh=(unsigned long) fp;
- 
- 	return ret;
- }
-diff -up afpfs-ng-0.8.1/include/afpfs-ng/afp.h.pointer afpfs-ng-0.8.1/include/afp.h
---- afpfs-ng-0.8.1/include/afpfs-ng/afp.h.pointer	2008-03-08 17:08:18.000000000 +0100
-+++ afpfs-ng-0.8.1/include/afpfs-ng/afp.h	2011-06-14 17:02:15.000000000 +0200
-@@ -370,7 +370,7 @@ int afp_unmount_all_volumes(struct afp_s
- 
- int afp_opendt(struct afp_volume *volume, unsigned short * refnum);
- 
--int afp_closedt(struct afp_server * server, unsigned short * refnum);
-+int afp_closedt(struct afp_server * server, unsigned short refnum);
- 
- int afp_getcomment(struct afp_volume *volume, unsigned int did,
-         const char * pathname, struct afp_comment * comment);
-diff -up afpfs-ng-0.8.1/include/afpfs-gn/utils.h.pointer afpfs-ng-0.8.1/include/utils.h
---- afpfs-ng-0.8.1/include/afpfs-ng/utils.h.pointer	2008-02-18 04:33:58.000000000 +0100
-+++ afpfs-ng-0.8.1/include/afpfs-ng/utils.h	2011-06-14 17:02:15.000000000 +0200
-@@ -8,8 +8,8 @@
- #define hton64(x)       (x)
- #define ntoh64(x)       (x)
- #else /* BYTE_ORDER == BIG_ENDIAN */
--#define hton64(x)       ((u_int64_t) (htonl(((x) >> 32) & 0xffffffffLL)) | \
--                         (u_int64_t) ((htonl(x) & 0xffffffffLL) << 32))
-+#define hton64(x)       ((u_int64_t) (htonl((((unsigned long long)(x)) >> 32) & 0xffffffffLL)) | \
-+                         (u_int64_t) ((htonl((unsigned long long)(x)) & 0xffffffffLL) << 32))
- #define ntoh64(x)       (hton64(x))
- #endif /* BYTE_ORDER == BIG_ENDIAN */
- 
-diff -up afpfs-ng-0.8.1/lib/afp_url.c.pointer afpfs-ng-0.8.1/lib/afp_url.c
---- afpfs-ng-0.8.1/lib/afp_url.c.pointer	2008-03-04 21:16:49.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/afp_url.c	2011-06-14 17:02:15.000000000 +0200
-@@ -33,7 +33,7 @@ static int check_port(char * port) 
- static int check_uamname(const char * uam) 
- {
- 	char * p;
--	for (p=uam;*p;p++) {
-+	for (p=(char *)uam;*p;p++) {
- 		if (*p==' ') continue;
- 		if ((*p<'A') || (*p>'z')) return -1;
- 	}
-@@ -188,7 +188,7 @@ int afp_parse_url(struct afp_url * url, 
- 		return -1;
- 
- 	}
--	if (p==NULL) p=toparse;
-+	if (p==NULL) p=(char *)toparse;
- 
- 	/* Now split on the first / */
- 	if (sscanf(p,"%[^/]/%[^$]",
-diff -up afpfs-ng-0.8.1/lib/did.c.pointer afpfs-ng-0.8.1/lib/did.c
---- afpfs-ng-0.8.1/lib/did.c.pointer	2008-02-18 04:39:17.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/did.c	2011-06-14 17:02:15.000000000 +0200
-@@ -226,7 +226,7 @@ int get_dirid(struct afp_volume * volume
- 
- 
- 	/* Go to the end of last known entry */
--	p=path+(p-copy);
-+	p=(char *)path+(p-copy);
- 	p2=p;
- 
- 	while ((p=strchr(p+1,'/'))) {
-diff -up afpfs-ng-0.8.1/lib/dsi.c.pointer afpfs-ng-0.8.1/lib/dsi.c
---- afpfs-ng-0.8.1/lib/dsi.c.pointer	2008-02-18 04:53:03.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/dsi.c	2011-06-14 17:02:15.000000000 +0200
-@@ -474,7 +474,7 @@ void dsi_getstatus_reply(struct afp_serv
- 	}
- 	server->flags=ntohs(reply1->flags);
- 
--	p=(void *)((unsigned int) server->incoming_buffer + sizeof(*reply1));
-+	p=(void *)((unsigned long) server->incoming_buffer + sizeof(*reply1));
- 	p+=copy_from_pascal(server->server_name,p,AFP_SERVER_NAME_LEN)+1;
- 
- 	/* Now work our way through the variable bits */
-@@ -757,7 +757,7 @@ gotenough:
- 		printf("<<< read() of rest of AFP, %d bytes\n",amount_to_read);
- 		#endif
- 		ret = read(server->fd, (void *)
--		(((unsigned int) server->incoming_buffer)+server->data_read),
-+		(((unsigned long) server->incoming_buffer)+server->data_read),
- 			amount_to_read);
- 		if (ret<0) return -1;
- 		if (ret==0) {
-diff -up afpfs-ng-0.8.1/lib/loop.c.pointer afpfs-ng-0.8.1/lib/loop.c
---- afpfs-ng-0.8.1/lib/loop.c.pointer	2008-02-18 04:40:11.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/loop.c	2011-06-14 17:02:15.000000000 +0200
-@@ -25,7 +25,7 @@
- static unsigned char exit_program=0;
- 
- static pthread_t ending_thread;
--static pthread_t main_thread = NULL;
-+static pthread_t main_thread = (pthread_t)NULL;
- 
- static int loop_started=0;
- static pthread_cond_t loop_started_condition;
-diff -up afpfs-ng-0.8.1/lib/lowlevel.c.pointer afpfs-ng-0.8.1/lib/lowlevel.c
---- afpfs-ng-0.8.1/lib/lowlevel.c.pointer	2008-02-20 02:33:17.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/lowlevel.c	2011-06-14 17:02:15.000000000 +0200
-@@ -582,7 +582,7 @@ int ll_getattr(struct afp_volume * volum
- 	if (volume->server->using_version->av_number>=30)
- 		stbuf->st_mode |= fp.unixprivs.permissions;
- 	else
--		set_nonunix_perms(stbuf,&fp);
-+		set_nonunix_perms(&stbuf->st_mode,&fp);
- 
- 	stbuf->st_uid=fp.unixprivs.uid;
- 	stbuf->st_gid=fp.unixprivs.gid;
-diff -up afpfs-ng-0.8.1/lib/midlevel.c.pointer afpfs-ng-0.8.1/lib/midlevel.c
---- afpfs-ng-0.8.1/lib/midlevel.c.pointer	2008-03-08 17:08:18.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/midlevel.c	2011-06-14 17:02:15.000000000 +0200
-@@ -713,7 +713,7 @@ int ml_write(struct afp_volume * volume,
- {
- 
- 	int ret,err=0;
--	int totalwritten = 0;
-+	size_t totalwritten = 0;
- 	uint64_t sizetowrite, ignored;
- 	unsigned char flags = 0;
- 	unsigned int max_packet_size=volume->server->tx_quantum;
-diff -up afpfs-ng-0.8.1/lib/proto_attr.c.pointer afpfs-ng-0.8.1/lib/proto_attr.c
---- afpfs-ng-0.8.1/lib/proto_attr.c.pointer	2008-01-30 05:37:58.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/proto_attr.c	2011-06-14 17:02:15.000000000 +0200
-@@ -166,7 +166,7 @@ int afp_getextattr(struct afp_volume * v
- 	copy_path(server,p,pathname,strlen(pathname));
- 	unixpath_to_afppath(server,p);
- 	p2=p+sizeof_path_header(server)+strlen(pathname);
--	if (((unsigned int ) p2) & 0x1) p2++;
-+	if (((unsigned long) p2) & 0x1) p2++;
- 	req2=(void *) p2;
- 
- 	req2->len=htons(namelen);
-diff -up afpfs-ng-0.8.1/lib/proto_desktop.c.pointer afpfs-ng-0.8.1/lib/proto_desktop.c
---- afpfs-ng-0.8.1/lib/proto_desktop.c.pointer	2008-02-18 04:44:11.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/proto_desktop.c	2011-06-14 17:02:15.000000000 +0200
-@@ -168,7 +168,7 @@ int afp_getcomment_reply(struct afp_serv
- 	return 0;
- }
- 
--int afp_closedt(struct afp_server * server, unsigned short * refnum) 
-+int afp_closedt(struct afp_server * server, unsigned short refnum) 
- {
- 	struct {
- 		struct dsi_header dsi_header __attribute__((__packed__));
-diff -up afpfs-ng-0.8.1/lib/proto_directory.c.pointer afpfs-ng-0.8.1/lib/proto_directory.c
---- afpfs-ng-0.8.1/lib/proto_directory.c.pointer	2008-02-19 03:39:29.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/proto_directory.c	2011-06-14 17:02:15.000000000 +0200
-@@ -248,6 +248,7 @@ int afp_enumerate_reply(struct afp_serve
- 
- 	return 0;
- }
-+
- int afp_enumerateext2_reply(struct afp_server *server, char * buf, unsigned int size, void * other) 
- {
- 
-@@ -266,8 +267,7 @@ int afp_enumerateext2_reply(struct afp_s
- 	char * p = buf + sizeof(*reply);
- 	int i;
- 	char  *max=buf+size;
--	struct afp_file_info * filebase = NULL, *filecur=NULL, *new_file=NULL;
--	void ** x = other;
-+	struct afp_file_info * filebase = NULL, *filecur = NULL, *new_file = NULL, **x = (struct afp_file_info **) other;
- 
- 	if (reply->dsi_header.return_code.error_code) {
- 		return reply->dsi_header.return_code.error_code;
-diff -up afpfs-ng-0.8.1/lib/proto_map.c.pointer afpfs-ng-0.8.1/lib/proto_map.c
---- afpfs-ng-0.8.1/lib/proto_map.c.pointer	2008-01-30 05:37:59.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/proto_map.c	2011-06-14 17:02:15.000000000 +0200
-@@ -122,7 +122,7 @@ int afp_mapid_reply(struct afp_server *s
- 
- 	if (reply->header.return_code.error_code!=kFPNoErr) return -1;
- 
--	copy_from_pascal_two(name,&reply->name,255);
-+	copy_from_pascal_two(name,reply->name,255);
- 
- 	return 0;
- }
-diff -up afpfs-ng-0.8.1/lib/proto_session.c.pointer afpfs-ng-0.8.1/lib/proto_session.c
---- afpfs-ng-0.8.1/lib/proto_session.c.pointer	2008-02-18 04:46:19.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/proto_session.c	2011-06-14 17:02:15.000000000 +0200
-@@ -39,7 +39,7 @@ int afp_getsessiontoken(struct afp_serve
- 	switch (type) {
- 	case kLoginWithTimeAndID:
- 	case kReconnWithTimeAndID: {
--		uint32_t *p = (void *) (((unsigned int) request)+
-+		uint32_t *p = (void *) (((unsigned long) request)+
- 			sizeof(*request));
- 
- 		offset=sizeof(timestamp);
-@@ -63,7 +63,7 @@ int afp_getsessiontoken(struct afp_serve
- 		goto error;
- 	}
- 
--	data=(void *) (((unsigned int) request)+sizeof(*request)+offset);
-+	data=(void *) (((unsigned long) request)+sizeof(*request)+offset);
- 	request->idlength=htonl(datalen);
- 	request->pad=0;
- 	request->type=htons(type);
-@@ -127,7 +127,7 @@ int afp_disconnectoldsession(struct afp_
- 	if ((request=malloc(sizeof(*request) + AFP_TOKEN_MAX_LEN))==NULL)
- 		return -1;
- 
--	token_data  = request + sizeof(*request);
-+	token_data  = (char *)request + sizeof(*request);
- 
- 	request->type=htons(type);
- 
-diff -up afpfs-ng-0.8.1/lib/uams.c.pointer afpfs-ng-0.8.1/lib/uams.c
---- afpfs-ng-0.8.1/lib/uams.c.pointer	2008-01-04 04:52:44.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/uams.c	2011-06-14 17:02:15.000000000 +0200
-@@ -180,7 +180,7 @@ static int cleartxt_login(struct afp_ser
- 		goto cleartxt_fail;
- 
- 	p += copy_to_pascal(p, username) + 1;
--	if ((int)p & 0x1)
-+	if ((long)p & 0x1)
- 		len--;
- 	else
- 		p++;
-@@ -230,7 +230,7 @@ static int cleartxt_passwd(struct afp_se
- 		goto cleartxt_fail;
- 
- 	p += copy_to_pascal(p, username) + 1;
--	if ((int)p & 0x1)
-+	if ((long)p & 0x1)
- 		len--;
- 	else
- 		p++;
-@@ -580,7 +580,7 @@ static int dhx_login(struct afp_server *
- 	if (ai == NULL)
- 		goto dhx_noctx_fail;
- 	d += copy_to_pascal(ai, username) + 1;
--	if (((int)d) % 2)
-+	if (((long)d) % 2)
- 		d++;
- 	else
- 		ai_len--;
-diff -up afpfs-ng-0.8.1/lib/utils.c.pointer afpfs-ng-0.8.1/lib/utils.c
---- afpfs-ng-0.8.1/lib/utils.c.pointer	2008-02-18 04:53:37.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/utils.c	2011-06-14 17:02:15.000000000 +0200
-@@ -196,7 +196,7 @@ int invalid_filename(struct afp_server *
- 			maxlen=255;
- 
- 
--	p=filename+1;
-+	p=(char *)filename+1;
- 	while ((q=strchr(p,'/'))) {
- 		if (q>p+maxlen)
- 			return 1;
diff --git a/tools/depends/target/afpfs-ng/04-boxee1.patch b/tools/depends/target/afpfs-ng/04-boxee1.patch
deleted file mode 100644
index 9f3c20f..0000000
--- a/tools/depends/target/afpfs-ng/04-boxee1.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- afpfs-ng-0.8.1/include/afpfs-ng/dsi.h	2008-02-18 04:33:24.000000000 +0100
-+++ afpfs-ng-0.8.1/include/afpfs-ng/dsi.h	2011-08-26 21:33:33.000000000 +0200
-@@ -6,13 +6,15 @@
- 
- struct dsi_request
- {
--	unsigned short requestid;
--	unsigned char subcommand;
--	void * other;
--	unsigned char wait;
--	pthread_cond_t  condition_cond;
--	struct dsi_request * next;
--	int return_code;
-+        unsigned short requestid;
-+        unsigned char subcommand;
-+        void * other;
-+        int wait;
-+        int done_waiting;
-+        pthread_cond_t  waiting_cond;
-+        pthread_mutex_t waiting_mutex;
-+        struct dsi_request * next;
-+        int return_code;
- };
- 
- int dsi_receive(struct afp_server * server, void * data, int size);
diff --git a/tools/depends/target/afpfs-ng/05-boxee2.patch b/tools/depends/target/afpfs-ng/05-boxee2.patch
deleted file mode 100644
index 50250bc..0000000
--- a/tools/depends/target/afpfs-ng/05-boxee2.patch
+++ /dev/null
@@ -1,89 +0,0 @@
---- afpfs-ng-0.8.1/lib/afp.c	2008-03-08 03:44:16.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/afp.c	2011-08-26 21:33:33.000000000 +0200
-@@ -68,7 +68,7 @@
- 	afp_getsessiontoken_reply,afp_blank_reply, NULL, NULL,
- 	afp_enumerateext2_reply, NULL, NULL, NULL,    /*64 - 71 */
- 	afp_listextattrs_reply, NULL, NULL, NULL,
--	afp_blank_reply, NULL, NULL, NULL,                       /*72 - 79 */
-+	afp_blank_reply, NULL, afp_blank_reply, afp_blank_reply,                       /*72 - 79 */
- 
- 	NULL, NULL, NULL, NULL,
- 	NULL, NULL, NULL, NULL,
-@@ -320,8 +320,16 @@
- 	
- 	struct dsi_request * p;
- 	struct afp_server *s2;
-+
-+
-+	if (s==NULL) 
-+		goto out;
-+
- 	for (p=s->command_requests;p;p=p->next) {
--		pthread_cond_signal(&p->condition_cond);
-+		pthread_mutex_lock(&p->waiting_mutex);
-+		p->done_waiting=1;
-+		pthread_cond_signal(&p->waiting_cond);
-+		pthread_mutex_unlock(&p->waiting_mutex);
- 	}
- 
- 	if (s==server_base) {
-@@ -354,7 +362,7 @@
- 	s->exit_flag = 0;
- 	s->path_encoding=kFPUTF8Name;  /* This is a default */
- 	s->next=NULL;
--	s->bufsize=2048;
-+	s->bufsize=4096;
- 	s->incoming_buffer=malloc(s->bufsize);
- 
- 	s->attention_quantum=AFP_DEFAULT_ATTENTION_QUANTUM;
-@@ -524,13 +532,14 @@
- 			kFPVolCreateDateBit|kFPVolIDBit |
- 			kFPVolNameBit;
- 	char new_encoding;
-+     	int ret;
- 
- 	if (server->using_version->av_number>=30) 
- 		bitmap|= kFPVolNameBit|kFPVolBlockSizeBit;
- 
--	switch (afp_volopen(volume,bitmap,
--		(strlen(volume->volpassword)>0) ? volume->volpassword : NULL)) 
--	{
-+	ret = afp_volopen(volume,bitmap,
-+		(strlen(volume->volpassword)>0) ? volume->volpassword : NULL);
-+	switch(ret){
- 	case kFPAccessDenied:
- 		*l+=snprintf(mesg,max-*l,
- 			"Incorrect volume password\n");
-@@ -544,6 +553,10 @@
- 		*l+=snprintf(mesg,max-*l,
- 			"Could not open volume\n");
- 		goto error;
-+	case ETIMEDOUT:
-+		*l+=snprintf(mesg,max-*l,
-+			"Timed out waiting to open volume\n");
-+		goto error;
- 	}
- 
- 	/* It is said that if a volume's encoding will be the same 
-@@ -641,7 +654,6 @@
- 	add_server(server);
- 
- 	add_fd_and_signal(server->fd);
--
- 	if (!full) {
- 		return 0;
- 	}
-@@ -649,10 +661,13 @@
- 	/* Get the status, and calculate the transmit time.  We use this to
- 	* calculate our rx quantum. */
- 	gettimeofday(&t1,NULL);
-+
- 	if ((error=dsi_getstatus(server))!=0) 
- 		goto error;
- 	gettimeofday(&t2,NULL);
- 
-+        afp_server_identify(server);
-+
- 	if ((t2.tv_sec - t1.tv_sec) > 0)
- 		server->tx_delay= (t2.tv_sec - t1.tv_sec) * 1000;
- 	else
diff --git a/tools/depends/target/afpfs-ng/06-boxee3.patch b/tools/depends/target/afpfs-ng/06-boxee3.patch
deleted file mode 100644
index 4b7c916..0000000
--- a/tools/depends/target/afpfs-ng/06-boxee3.patch
+++ /dev/null
@@ -1,141 +0,0 @@
---- afpfs-ng-0.8.1/lib/dsi.c	2011-08-26 17:27:16.000000000 +0200
-+++ afpfs-ng-0.8.1/lib/dsi.c	2011-08-26 21:33:33.000000000 +0200
-@@ -64,7 +64,7 @@
- 	rx.size=0;
- 	dsi_setup_header(server,&header,DSI_DSIGetStatus);
- 	/* We're intentionally ignoring the results */
--	ret=dsi_send(server,(char *) &header,sizeof(struct dsi_header),20,
-+	ret=dsi_send(server,(char *) &header,sizeof(struct dsi_header),60,
- 		0,(void *) &rx);
- 
- 	free(rx.data);
-@@ -197,6 +197,7 @@
- 	new_request->other=other;
- 	new_request->wait=wait;
- 	new_request->next=NULL;
-+      	new_request->done_waiting=0;
- 
- 	pthread_mutex_lock(&server->request_queue_mutex);
- 	if (server->command_requests==NULL) {
-@@ -208,7 +209,8 @@
- 	server->stats.requests_pending++;
- 	pthread_mutex_unlock(&server->request_queue_mutex);
- 
--	pthread_cond_init(&new_request->condition_cond,NULL);
-+	pthread_cond_init(&new_request->waiting_cond,NULL);
-+	pthread_mutex_init(&new_request->waiting_mutex,NULL);
- 
- 	if (server->connect_state==SERVER_STATE_DISCONNECTED) {
- 		char mesg[1024];
-@@ -240,16 +242,12 @@
- 	server->stats.tx_bytes+=size;
- 	pthread_mutex_unlock(&server->send_mutex);
- 
--	int tmpwait=new_request->wait;
- 	#ifdef DEBUG_DSI
- 	printf("=== Waiting for response for %d %s\n",
- 		new_request->requestid,
- 		afp_get_command_name(new_request->subcommand));
- 	#endif
--	if (tmpwait<0) {
--
--		pthread_mutex_t     mutex = PTHREAD_MUTEX_INITIALIZER;
--		pthread_mutex_lock(&mutex);
-+	if (new_request->wait<0) {
- 
- 		/* Wait forever */
- 		#ifdef DEBUG_DSI
-@@ -258,14 +256,17 @@
- 			afp_get_command_name(new_request->subcommand));
- 		#endif
- 
--		rc=pthread_cond_wait( 
--			&new_request->condition_cond, 
--				&mutex );
--		pthread_mutex_unlock(&mutex);
--
--	} else if (tmpwait>0) {
--		pthread_mutex_t     mutex = PTHREAD_MUTEX_INITIALIZER;
--		pthread_mutex_lock(&mutex);
-+		pthread_mutex_lock(&new_request->waiting_mutex);
-+
-+		if (new_request->done_waiting==0)
-+			rc=pthread_cond_wait( 
-+				&new_request->waiting_cond, 
-+					&new_request->waiting_mutex );
-+
-+		pthread_mutex_unlock(&new_request->waiting_mutex);
-+
-+	} else if (new_request->wait>0) {
-+		/* wait for new_request->wait seconds */
- 
- 		#ifdef DEBUG_DSI
- 		printf("=== Waiting for %d %s, for %ds\n",
-@@ -283,13 +284,15 @@
- 			printf("=== Changing my mind, no longer waiting for %d\n",
- 				new_request->requestid);
- 			#endif
--			pthread_mutex_unlock(&mutex);
- 			goto skip;
- 		}
--		rc=pthread_cond_timedwait( 
--			&new_request->condition_cond, 
--			&mutex,&ts);
--		pthread_mutex_unlock(&mutex);
-+		pthread_mutex_lock(&new_request->waiting_mutex);
-+		if (new_request->done_waiting==0) 
-+			rc=pthread_cond_timedwait( 
-+				&new_request->waiting_cond, 
-+				&new_request->waiting_mutex,&ts);
-+		pthread_mutex_unlock(&new_request->waiting_mutex);
-+
- 		if (rc==ETIMEDOUT) {
- /* FIXME: should handle this case properly */
- 			#ifdef DEBUG_DSI
-@@ -299,6 +302,7 @@
- 			goto out;
- 		}
- 	} else {
-+                /* Don't wait */
- 		#ifdef DEBUG_DSI
- 		printf("=== Skipping wait altogether for %d\n",new_request->requestid);
- 		#endif
-@@ -474,7 +478,7 @@
- 	}
- 	server->flags=ntohs(reply1->flags);
- 
--	p=(void *)((unsigned long) server->incoming_buffer + sizeof(*reply1));
-+	p=(void *)((unsigned int) server->incoming_buffer + sizeof(*reply1));
- 	p+=copy_from_pascal(server->server_name,p,AFP_SERVER_NAME_LEN)+1;
- 
- 	/* Now work our way through the variable bits */
-@@ -577,6 +581,7 @@
- 	unsigned char mins=0;
- 	unsigned char checkmessage=0;
- 
-+	memset(mesg,0,AFP_LOGINMESG_LEN);
- 
- 	/* The logic here's undocumented.  If we get an attention packet and
- 	   there's no flag, then go check the message.  Also, go check the
-@@ -757,7 +762,7 @@
- 		printf("<<< read() of rest of AFP, %d bytes\n",amount_to_read);
- 		#endif
- 		ret = read(server->fd, (void *)
--		(((unsigned long) server->incoming_buffer)+server->data_read),
-+		(((unsigned int) server->incoming_buffer)+server->data_read),
- 			amount_to_read);
- 		if (ret<0) return -1;
- 		if (ret==0) {
-@@ -862,8 +867,11 @@
- 			#ifdef DEBUG_DSI
- 			printf("<<< Signalling %d, returning %d or %d\n",request->requestid,request->return_code,rc);
- 			#endif
-+			pthread_mutex_lock(&request->waiting_mutex);
- 			request->wait=0;
--			pthread_cond_signal(&request->condition_cond);
-+			request->done_waiting=1;
-+			pthread_cond_signal(&request->waiting_cond);
-+			pthread_mutex_unlock(&request->waiting_mutex);
- 		} else {
- 			dsi_remove_from_request_queue(server,request);
- 		}
diff --git a/tools/depends/target/afpfs-ng/07-boxee4.patch b/tools/depends/target/afpfs-ng/07-boxee4.patch
deleted file mode 100644
index 3e09f40..0000000
--- a/tools/depends/target/afpfs-ng/07-boxee4.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- afpfs-ng-0.8.1/lib/identify.c	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/identify.c	2011-08-26 21:33:33.000000000 +0200
-@@ -0,0 +1,24 @@
-+#include <string.h>
-+#include <afpfs-ng/afp.h>
-+
-+
-+/* 
-+ * afp_server_identify()
-+ *
-+ * Identifies a server
-+ *
-+ * Right now, this only does identification using the machine_type
-+ * given in getsrvrinfo, but this could later use mDNS to get 
-+ * more details.
-+ */
-+void afp_server_identify(struct afp_server * s)
-+{
-+	if (strcmp(s->machine_type,"Netatalk")==0)
-+		s->server_type=AFPFS_SERVER_TYPE_NETATALK;
-+	else if (strcmp(s->machine_type,"AirPort")==0)
-+		s->server_type=AFPFS_SERVER_TYPE_AIRPORT;
-+	else if (strcmp(s->machine_type,"Macintosh")==0)
-+		s->server_type=AFPFS_SERVER_TYPE_MACINTOSH;
-+	else
-+		s->server_type=AFPFS_SERVER_TYPE_UNKNOWN;
-+}
diff --git a/tools/depends/target/afpfs-ng/08-boxee5.patch b/tools/depends/target/afpfs-ng/08-boxee5.patch
deleted file mode 100644
index 253fb05..0000000
--- a/tools/depends/target/afpfs-ng/08-boxee5.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- afpfs-ng-0.8.1/lib/Makefile.am	2008-02-18 04:34:32.000000000 +0100
-+++ afpfs-ng-0.8.1/lib/Makefile.am	2011-08-26 21:33:33.000000000 +0200
-@@ -4,7 +4,7 @@
- 
- lib_LTLIBRARIES = libafpclient.la
- 
--libafpclient_la_SOURCES = afp.c codepage.c did.c dsi.c map_def.c uams.c uams_def.c unicode.c users.c utils.c resource.c log.c client.c server.c connect.c loop.c midlevel.c proto_attr.c proto_desktop.c proto_directory.c proto_files.c proto_fork.c proto_login.c proto_map.c proto_replyblock.c proto_server.c proto_volume.c proto_session.c afp_url.c status.c forklist.c debug.c lowlevel.c
-+libafpclient_la_SOURCES = afp.c codepage.c did.c dsi.c map_def.c uams.c uams_def.c unicode.c users.c utils.c resource.c log.c client.c server.c connect.c loop.c midlevel.c proto_attr.c proto_desktop.c proto_directory.c proto_files.c proto_fork.c proto_login.c proto_map.c proto_replyblock.c proto_server.c proto_volume.c proto_session.c afp_url.c status.c forklist.c debug.c lowlevel.c identify.c
- 
- # libafpclient_la_LDFLAGS = -module -avoid-version
- 
diff --git a/tools/depends/target/afpfs-ng/10-fix-errno.patch b/tools/depends/target/afpfs-ng/10-fix-errno.patch
deleted file mode 100644
index ff7ce44..0000000
--- a/tools/depends/target/afpfs-ng/10-fix-errno.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- afpfs-ng-0.8.1/lib/afp.c	2011-09-04 19:42:42.000000000 +0200
-+++ afpfs-ng-0.8.1/lib/afp.c	2011-09-04 19:39:44.000000000 +0200
-@@ -19,7 +19,6 @@
- #include <sys/time.h>
- #include <sys/types.h>
- #include <sys/socket.h>
--#include <errno.h>
- 
- #include <afpfs-ng/afp_protocol.h>
- #include <afpfs-ng/libafpclient.h>
---- afpfs-ng-0.8.1/lib/afp_url.c	2011-09-04 19:42:42.000000000 +0200
-+++ afpfs-ng-0.8.1/lib/afp_url.c	2011-09-04 19:40:27.000000000 +0200
-@@ -21,7 +21,9 @@
- 
- static int check_port(char * port) 
- {
--	long long ret = strtol(port,NULL,10);
-+	long long ret = 0;
-+	errno = 0;
-+	ret = strtol(port,NULL,10);
- 	if ((ret<0) || (ret>32767)) return -1;
- 	if (errno) {
- 		printf("port error\n");
diff --git a/tools/depends/target/afpfs-ng/11-fix-stat.patch b/tools/depends/target/afpfs-ng/11-fix-stat.patch
deleted file mode 100644
index 09e9a35..0000000
--- a/tools/depends/target/afpfs-ng/11-fix-stat.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- afpfs-ng-0.8.1/lib/lowlevel.c	2011-10-01 20:36:55.000000000 +0200
-+++ afpfs-ng-0.8.1/lib/lowlevel.c	2011-10-01 20:46:00.000000000 +0200
-@@ -579,7 +579,7 @@
- 		return -EIO;
- 	}
- 
--	if (volume->server->using_version->av_number>=30)
-+	if (volume->server->using_version->av_number>=30 && fp.unixprivs.permissions != 0)
- 		stbuf->st_mode |= fp.unixprivs.permissions;
- 	else
- 		set_nonunix_perms(&stbuf->st_mode,&fp);
diff --git a/tools/depends/target/afpfs-ng/Makefile b/tools/depends/target/afpfs-ng/Makefile
deleted file mode 100644
index 1b6a664..0000000
--- a/tools/depends/target/afpfs-ng/Makefile
+++ /dev/null
@@ -1,62 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include 01-gcrypt.patch 02-pointer.patch 04-boxee1.patch \
-      05-boxee2.patch 06-boxee3.patch 07-boxee4.patch \
-      08-boxee5.patch 10-fix-errno.patch 11-fix-stat.patch \
-      android.patch fix_afpfs-ng_includes.patch Makefile
-
-# lib name, version
-LIBNAME=afpfs-ng
-VERSION=0.8.1
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.bz2
-
-# configuration settings
-export LIBS+=$(LINK_ICONV)
-
-CONFIGURE=./configure --prefix=$(PREFIX) \
-  --disable-fuse
-
-LIBDYLIB=$(PLATFORM)/lib/.libs/libafpclient.a
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p1 <../fix_afpfs-ng_includes.patch
-	cd $(PLATFORM); patch -p1 <../01-gcrypt.patch
-	cd $(PLATFORM); patch -p1 <../02-pointer.patch
-	cd $(PLATFORM); patch -p1 <../04-boxee1.patch
-	cd $(PLATFORM); patch -p1 <../05-boxee2.patch	
-	cd $(PLATFORM); patch -p1 <../06-boxee3.patch
-	cd $(PLATFORM); patch -p1 <../07-boxee4.patch
-	cd $(PLATFORM); patch -p1 <../08-boxee5.patch
-	cd $(PLATFORM); patch -p1 <../10-fix-errno.patch
-	cd $(PLATFORM); patch -p1 <../11-fix-stat.patch
-	cd $(PLATFORM); patch -p0 < ../android.patch
-	cd $(PLATFORM); $(AUTORECONF) -vif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -j 1 -C $(PLATFORM)/lib
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM)/lib install
-	$(MAKE) -C $(PLATFORM)/include install
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/libafpclient.la $(PREFIX)/lib/libafpclient.so $(PREFIX)/lib/libafpclient.so.0
-	mv -f $(PREFIX)/lib/libafpclient.so.0.0.0 $(PREFIX)/lib/libafpclient.so
-	$(RPL) -e "libafpclient.so.0" "libafpclient.so\x00\x00" $(PREFIX)/lib/libafpclient.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libafpclient.so | grep ibrary
-endif
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/afpfs-ng/android.patch b/tools/depends/target/afpfs-ng/android.patch
deleted file mode 100644
index 85dcfce..0000000
--- a/tools/depends/target/afpfs-ng/android.patch
+++ /dev/null
@@ -1,70 +0,0 @@
---- include/afpfs-ng/afp.h	2012-06-03 22:47:49.014348648 -0400
-+++ include/afpfs-ng/afp.h	2012-06-03 22:46:28.924348698 -0400
-@@ -5,7 +5,13 @@
- #include <arpa/inet.h>
- #include <pthread.h>
- #include <netdb.h>
-+#ifndef ANDROID
- #include <sys/statvfs.h>
-+#else
-+#include <sys/vfs.h>
-+#define statvfs statfs
-+#define fstatvfs fstatfs
-+#endif
- #include <pwd.h>
- #include <afpfs-ng/afp_protocol.h>
- #include <afpfs-ng/libafpclient.h>
---- lib/midlevel.c	2012-06-03 22:47:49.014348648 -0400
-+++ lib/midlevel.c	2012-06-03 22:46:28.924348698 -0400
-@@ -1388,10 +1388,12 @@
- 	stat->f_frsize=0;
- 	stat->f_files=0;
- 	stat->f_ffree=0;
-+#ifndef ANDROID
- 	stat->f_favail=0;
- 	stat->f_fsid=0;
- 	stat->f_flag=0;
- 	stat->f_namemax=255;
-+#endif
- 	return 0;
- 
- }
---- lib/lowlevel.c	2012-06-03 22:47:49.054348648 -0400
-+++ lib/lowlevel.c	2012-06-03 22:46:28.914348698 -0400
-@@ -612,7 +612,7 @@
- 		modification_date=fp.modification_date;
- 	}
- 
--#ifdef __linux__
-+#if defined(__linux__) && !defined(ANDROID)
- 	stbuf->st_ctim.tv_sec=creation_date;
- 	stbuf->st_mtim.tv_sec=modification_date;
- #else
---- lib/dsi.c	2012-06-03 23:24:15.454347269 -0400
-+++ lib/dsi.c	2012-06-03 23:25:01.634347240 -0400
-@@ -610,7 +610,11 @@
- 		afp_getsrvrmsg(server,AFPMESG_SERVER,
- 			((server->using_version->av_number>=30)?1:0),
- 			DSI_DEFAULT_TIMEOUT,mesg); 
-+#if defined(ANDROID)
-+		if(memcmp(mesg,"The server is going down for maintenance.",41)==0)
-+#else
- 		if(bcmp(mesg,"The server is going down for maintenance.",41)==0)
-+#endif
- 			shutdown=1;
- 	}
- 
---- lib/afp.c	2012-06-03 23:24:15.474347269 -0400
-+++ lib/afp.c	2012-06-03 23:25:12.464347233 -0400
-@@ -205,7 +205,11 @@
- {
-         struct afp_server *s;
- 	for (s=server_base;s;s=s->next) {
-+#if defined(ANDROID)
-+                if (memcmp(&s->address,address,sizeof(struct sockaddr_in))==0)
-+#else
-                 if (bcmp(&s->address,address,sizeof(struct sockaddr_in))==0)
-+#endif
-                         return s;
- 	}
-         return NULL;
diff --git a/tools/depends/target/afpfs-ng/fix_afpfs-ng_includes.patch b/tools/depends/target/afpfs-ng/fix_afpfs-ng_includes.patch
deleted file mode 100644
index 08c6f02..0000000
--- a/tools/depends/target/afpfs-ng/fix_afpfs-ng_includes.patch
+++ /dev/null
@@ -1,3092 +0,0 @@
-diff -Naur afpfs-ng-0.8.1/cmdline/cmdline_afp.c afpfs-ng-0.8.1.patch/cmdline/cmdline_afp.c
---- afpfs-ng-0.8.1/cmdline/cmdline_afp.c	2008-02-19 02:54:19.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/cmdline/cmdline_afp.c	2011-09-10 12:13:50.102124369 +0200
-@@ -3,9 +3,9 @@
- 	
- */
- 
--#include "afp.h"
--#include "midlevel.h"
--#include "map_def.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/midlevel.h"
-+#include "afpfs-ng/map_def.h"
- 
- #include <string.h>
- #include <stdio.h>
-diff -Naur afpfs-ng-0.8.1/cmdline/cmdline_testafp.c afpfs-ng-0.8.1.patch/cmdline/cmdline_testafp.c
---- afpfs-ng-0.8.1/cmdline/cmdline_testafp.c	2008-03-04 21:16:50.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/cmdline/cmdline_testafp.c	2011-09-10 12:13:50.102124369 +0200
-@@ -3,8 +3,8 @@
- 	
- */
- 
--#include "afp.h"
--#include "midlevel.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/midlevel.h"
- 
- #include "cmdline_main.h"
- 
-diff -Naur afpfs-ng-0.8.1/cmdline/getstatus.c afpfs-ng-0.8.1.patch/cmdline/getstatus.c
---- afpfs-ng-0.8.1/cmdline/getstatus.c	2008-02-18 04:28:09.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/cmdline/getstatus.c	2011-09-10 12:13:50.109124463 +0200
-@@ -2,7 +2,7 @@
- #include <string.h>
- #include <pthread.h>
- 
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- 
- static int getstatus(char * address_string, unsigned int port)
- {
-diff -Naur afpfs-ng-0.8.1/configure.ac afpfs-ng-0.8.1.patch/configure.ac
---- afpfs-ng-0.8.1/configure.ac	2008-03-08 17:23:12.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/configure.ac	2011-09-10 12:13:50.109124463 +0200
-@@ -11,6 +11,7 @@
- AC_PROG_CC
- AC_PROG_INSTALL
- AC_PROG_LIBTOOL
-+AM_PROG_CC_C_O
- 
- # Checks for libraries.
- # FIXME: Replace `main' with a function in `-lncurses':
-@@ -105,7 +106,7 @@
- 
- 
- 
--AC_CONFIG_FILES([lib/Makefile fuse/Makefile cmdline/Makefile Makefile docs/Makefile])
-+AC_CONFIG_FILES([lib/Makefile fuse/Makefile cmdline/Makefile Makefile include/Makefile include/afpfs-ng/Makefile docs/Makefile])
- 
- AC_OUTPUT
- 
-diff -Naur afpfs-ng-0.8.1/fuse/client.c afpfs-ng-0.8.1.patch/fuse/client.c
---- afpfs-ng-0.8.1/fuse/client.c	2008-03-08 03:44:16.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/fuse/client.c	2011-09-10 12:13:50.110124477 +0200
-@@ -12,11 +12,11 @@
- #include <grp.h>
- 
- #include "config.h"
--#include <afp.h>
-+#include <afpfs-ng/afp.h>
- #include "afp_server.h"
--#include "uams_def.h"
--#include "map_def.h"
--#include "libafpclient.h"
-+#include "afpfs-ng/uams_def.h"
-+#include "afpfs-ng/map_def.h"
-+#include "afpfs-ng/libafpclient.h"
- 
- #define default_uam "Cleartxt Passwrd"
- 
-diff -Naur afpfs-ng-0.8.1/fuse/commands.c afpfs-ng-0.8.1.patch/fuse/commands.c
---- afpfs-ng-0.8.1/fuse/commands.c	2008-03-08 17:06:25.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/fuse/commands.c	2011-09-10 12:13:50.110124477 +0200
-@@ -19,15 +19,15 @@
- #include <getopt.h>
- #include <signal.h>
- 
--#include "afp.h"
--#include "dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/dsi.h"
- #include "afp_server.h"
--#include "utils.h"
-+#include "afpfs-ng/utils.h"
- #include "daemon.h"
--#include "uams_def.h"
--#include "codepage.h"
--#include "libafpclient.h"
--#include "map_def.h"
-+#include "afpfs-ng/uams_def.h"
-+#include "afpfs-ng/codepage.h"
-+#include "afpfs-ng/libafpclient.h"
-+#include "afpfs-ng/map_def.h"
- #include "fuse_int.h"
- #include "fuse_error.h"
- #include "fuse_internal.h"
-diff -Naur afpfs-ng-0.8.1/fuse/daemon.c afpfs-ng-0.8.1.patch/fuse/daemon.c
---- afpfs-ng-0.8.1/fuse/daemon.c	2008-03-04 18:26:05.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/fuse/daemon.c	2011-09-10 12:13:50.110124477 +0200
-@@ -23,11 +23,11 @@
- #include <signal.h>
- #include <sys/socket.h>
- 
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- 
--#include "dsi.h"
-+#include "afpfs-ng/dsi.h"
- #include "afp_server.h"
--#include "utils.h"
-+#include "afpfs-ng/utils.h"
- #include "daemon.h"
- #include "commands.h"
- 
-diff -Naur afpfs-ng-0.8.1/fuse/fuse_error.c afpfs-ng-0.8.1.patch/fuse/fuse_error.c
---- afpfs-ng-0.8.1/fuse/fuse_error.c	2008-01-18 05:40:10.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/fuse/fuse_error.c	2011-09-10 12:13:50.111124491 +0200
-@@ -4,7 +4,7 @@
- #include <unistd.h>
- #include <string.h>
- #include <stdio.h>
--#include "libafpclient.h"
-+#include "afpfs-ng/libafpclient.h"
- #include "fuse_internal.h"
- 
- #define TMP_FILE "/tmp/fuse_stderr"
-diff -Naur afpfs-ng-0.8.1/fuse/fuse_int.c afpfs-ng-0.8.1.patch/fuse/fuse_int.c
---- afpfs-ng-0.8.1/fuse/fuse_int.c	2008-03-02 06:06:24.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/fuse/fuse_int.c	2011-09-10 12:13:50.111124491 +0200
-@@ -18,7 +18,7 @@
- #define FUSE_USE_VERSION 25
- 
- 
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- 
- #include <fuse.h>
- #include <stdio.h>
-@@ -39,10 +39,10 @@
- #include <pwd.h>
- #include <stdarg.h>
- 
--#include "dsi.h"
--#include "afp_protocol.h"
--#include "codepage.h"
--#include "midlevel.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp_protocol.h"
-+#include "afpfs-ng/codepage.h"
-+#include "afpfs-ng/midlevel.h"
- #include "fuse_error.h"
- 
- /* Uncomment the following line to enable full debugging: */
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/afp.h afpfs-ng-0.8.1.patch/include/afpfs-ng/afp.h
---- afpfs-ng-0.8.1/include/afpfs-ng/afp.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/afp.h	2011-09-10 12:13:50.112124505 +0200
-@@ -0,0 +1,533 @@
-+
-+#ifndef _AFP_H_
-+#define _AFP_H_
-+
-+#include <arpa/inet.h>
-+#include <pthread.h>
-+#include <netdb.h>
-+#include <sys/statvfs.h>
-+#include <pwd.h>
-+#include <afpfs-ng/afp_protocol.h>
-+#include <afpfs-ng/libafpclient.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <unistd.h>
-+#include <netinet/in.h>
-+
-+
-+#define AFPFS_VERSION "0.8.1"
-+
-+/* This is the maximum AFP version this library supports */
-+#define AFP_MAX_SUPPORTED_VERSION 32
-+
-+/* afp_url is used to pass locations around */
-+struct afp_url {
-+	enum {TCPIP,AT} protocol;
-+	char username[AFP_MAX_USERNAME_LEN];
-+	char uamname[50];
-+	char password[AFP_MAX_PASSWORD_LEN];
-+	char servername[AFP_SERVER_NAME_UTF8_LEN];
-+	int port;
-+	char volumename[AFP_VOLUME_NAME_UTF8_LEN];
-+	char path[AFP_MAX_PATH];
-+
-+	int requested_version;
-+	char zone[AFP_ZONE_LEN]; /* Only used for Appletalk */
-+	char volpassword[9];;
-+};
-+
-+struct afp_token {
-+	unsigned int length;
-+	char data[AFP_TOKEN_MAX_LEN];
-+};
-+
-+#define SERVER_MAX_VERSIONS 10
-+#define SERVER_MAX_UAMS 10
-+
-+struct afp_rx_buffer {
-+	unsigned int size;
-+	unsigned int maxsize;
-+	char * data;
-+	int errorcode;
-+};
-+
-+
-+struct afp_file_info {
-+	unsigned short attributes;
-+	unsigned int did;
-+	unsigned int creation_date;
-+	unsigned int modification_date;
-+	unsigned int backup_date;
-+	unsigned int fileid;
-+	unsigned short offspring;
-+	char sync;
-+	char finderinfo[32];
-+	char name[AFP_MAX_PATH];
-+	char basename[AFP_MAX_PATH];
-+	char translated_name[AFP_MAX_PATH];
-+	struct afp_unixprivs unixprivs;
-+	unsigned int accessrights;
-+	struct afp_file_info * next;
-+	struct afp_file_info * largelist_next;
-+	unsigned char isdir;
-+	unsigned long long size;
-+	unsigned short resourcesize;
-+	unsigned int resource;
-+	unsigned short forkid;
-+	struct afp_icon * icon;
-+	int eof;
-+};
-+
-+
-+#define VOLUME_EXTRA_FLAGS_VOL_CHMOD_KNOWN 0x1
-+#define VOLUME_EXTRA_FLAGS_VOL_CHMOD_BROKEN 0x2
-+#define VOLUME_EXTRA_FLAGS_SHOW_APPLEDOUBLE 0x4
-+#define VOLUME_EXTRA_FLAGS_VOL_SUPPORTS_UNIX 0x8
-+#define VOLUME_EXTRA_FLAGS_NO_LOCKING 0x10
-+#define VOLUME_EXTRA_FLAGS_IGNORE_UNIXPRIVS 0x20
-+#define VOLUME_EXTRA_FLAGS_READONLY 0x40
-+
-+#define AFP_VOLUME_UNMOUNTED 0
-+#define AFP_VOLUME_MOUNTED 1
-+#define AFP_VOLUME_UNMOUNTING 2
-+
-+struct afp_volume {
-+	unsigned short volid;
-+	char flags;  /* This is from afpGetSrvrParms */
-+	unsigned short attributes; /* This is from VolOpen */
-+	unsigned short signature;  /* This is fixed or variable */
-+	unsigned int creation_date;
-+	unsigned int modification_date;
-+	unsigned int backup_date;
-+	struct statvfs stat;
-+	unsigned char mounted;
-+	char mountpoint[255];
-+	struct afp_server * server;
-+	char volume_name[AFP_VOLUME_NAME_LEN];
-+	char volume_name_printable[AFP_VOLUME_NAME_UTF8_LEN];
-+	unsigned short dtrefnum;
-+	char volpassword[AFP_VOLPASS_LEN];
-+	unsigned int extra_flags; /* This is an afpfs-ng specific field */
-+
-+	/* Our directory ID cache */
-+	struct did_cache_entry * did_cache_base;
-+	pthread_mutex_t did_cache_mutex;
-+
-+	/* Our journal of open forks */
-+	struct afp_file_info * open_forks;
-+	pthread_mutex_t open_forks_mutex;
-+
-+	/* Used to trigger startup */
-+        pthread_cond_t  startup_condition_cond;
-+
-+	struct {
-+		uint64_t hits;
-+		uint64_t misses;
-+		uint64_t expired;
-+		uint64_t force_removed;
-+	} did_cache_stats;
-+
-+	void * priv;  /* This is a private structure for fuse/cmdline, etc */
-+	pthread_t thread; /* This is the per-volume thread */
-+
-+	int mapping;
-+
-+};
-+
-+#define SERVER_STATE_CONNECTED 1
-+#define SERVER_STATE_DISCONNECTED 2
-+
-+enum server_type{
-+	AFPFS_SERVER_TYPE_UNKNOWN,
-+	AFPFS_SERVER_TYPE_NETATALK,
-+	AFPFS_SERVER_TYPE_AIRPORT,
-+	AFPFS_SERVER_TYPE_MACINTOSH,
-+};
-+
-+#define is_netatalk(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_NETATALK )
-+#define is_airport(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_AIRPORT )
-+#define is_macintosh(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_MACINTOSH )
-+
-+
-+
-+struct afp_versions {
-+        char        *av_name;
-+        int         av_number;
-+};
-+extern struct afp_versions afp_versions[];
-+
-+struct afp_server {
-+
-+	/* Our buffer sizes */
-+	unsigned int tx_quantum;
-+	unsigned int rx_quantum;
-+
-+	unsigned int tx_delay;
-+
-+	/* Connection information */
-+	struct sockaddr_in address;
-+	int fd;
-+
-+	/* Some stats, for information only */
-+	struct {
-+		uint64_t runt_packets;
-+		uint64_t incoming_dsi;
-+		uint64_t rx_bytes;
-+		uint64_t tx_bytes;
-+		uint64_t requests_pending;
-+	} stats;
-+
-+	/* General information */
-+	char server_name[AFP_SERVER_NAME_LEN];
-+	char server_name_utf8[AFP_SERVER_NAME_UTF8_LEN];
-+        char server_name_printable[AFP_SERVER_NAME_UTF8_LEN];
-+
-+	char machine_type[17];
-+	char icon[256];
-+	char signature[16];
-+	unsigned short flags;
-+	int connect_state;
-+	enum server_type server_type;
-+
-+	/* This is the time we connected */
-+	time_t connect_time;
-+
-+	/* UAMs */
-+	unsigned int supported_uams;
-+	unsigned int using_uam;
-+
-+	/* Authentication */
-+	char username[AFP_MAX_USERNAME_LEN];
-+	char password[AFP_MAX_PASSWORD_LEN];
-+
-+	/* Session */
-+	struct afp_token token;
-+	char need_resume;
-+
-+	/* Versions */
-+	unsigned char requested_version;
-+	unsigned char versions[SERVER_MAX_VERSIONS];
-+	struct afp_versions *using_version;
-+
-+	/* Volumes */
-+	unsigned char num_volumes;
-+	struct afp_volume * volumes;
-+
-+	void * dsi;
-+	unsigned int exit_flag;
-+
-+	/* Our DSI request queue */
-+	pthread_mutex_t requestid_mutex;
-+	pthread_mutex_t request_queue_mutex;
-+	unsigned short lastrequestid;
-+	unsigned short expectedrequestid;
-+	struct dsi_request * command_requests;
-+
-+
-+	char loginmesg[200];
-+	char servermesg[200];
-+	char path_encoding;
-+
-+	/* This is the data for the incoming buffer */
-+	char * incoming_buffer;
-+	int data_read;
-+	int bufsize;
-+
-+	/* And this is for the outgoing queue */
-+	pthread_mutex_t send_mutex;
-+
-+	/* This is for user mapping */
-+	struct passwd passwd;
-+	unsigned int server_uid, server_gid;
-+	int server_gid_valid;
-+
-+	struct afp_server *next;
-+
-+	/* These are for DSI attention packets */
-+	unsigned int attention_quantum;
-+	unsigned int attention_len;
-+	char * attention_buffer;
-+
-+};
-+
-+struct afp_extattr_info {
-+	unsigned int maxsize;
-+	unsigned int size;
-+	char data[1024];
-+};
-+struct afp_comment {
-+	unsigned int maxsize;
-+	unsigned int size;
-+	char *data;
-+};
-+
-+struct afp_icon {
-+	unsigned int maxsize;
-+	unsigned int size;
-+	char *data;
-+};
-+
-+#define AFP_DEFAULT_ATTENTION_QUANTUM 1024
-+
-+void afp_unixpriv_to_stat(struct afp_file_info *fp,
-+	struct stat *stat);
-+
-+int init_uams(void) ;
-+
-+unsigned int find_uam_by_name(const char * name);
-+char * uam_bitmap_to_string(unsigned int bitmap);
-+
-+
-+char * get_uam_names_list(void);
-+
-+unsigned int default_uams_mask(void);
-+
-+struct afp_volume * find_volume_by_name(struct afp_server * server,
-+        const char * volname);
-+
-+struct afp_connection_request {
-+        unsigned int uam_mask;
-+	struct afp_url url;
-+};
-+
-+void afp_default_url(struct afp_url *url);
-+int afp_parse_url(struct afp_url * url, const char * toparse, int verbose);
-+void afp_print_url(struct afp_url * url);
-+int afp_url_validate(char * url_string, struct afp_url * valid_url);
-+
-+int afp_list_volnames(struct afp_server * server, char * names, int max);
-+
-+/* User mapping */
-+int afp_detect_mapping(struct afp_volume * volume);
-+
-+/* These are some functions that help with simple status text generation */
-+
-+int afp_status_header(char * text, int * len);
-+int afp_status_server(struct afp_server * s,char * text, int * len);
-+
-+
-+struct afp_server * afp_server_full_connect(void * priv, struct afp_connection_request * req);
-+
-+void just_end_it_now(void *other);
-+void add_fd_and_signal(int fd);
-+void loop_disconnect(struct afp_server *s);
-+void afp_wait_for_started_loop(void);
-+
-+
-+struct afp_versions * pick_version(unsigned char *versions,
-+	unsigned char requested) ;
-+int pick_uam(unsigned int u1, unsigned int u2);
-+
-+int afp_server_login(struct afp_server *server,
-+        char * mesg, unsigned int *l, unsigned int max);
-+
-+
-+int afp_dologin(struct afp_server *server,
-+	unsigned int uam, char * username, char * passwd);
-+
-+void afp_free_server(struct afp_server **server);
-+
-+struct afp_server * afp_server_init(struct sockaddr_in * address);
-+int afp_get_address(void * priv, const char * hostname, unsigned int port,
-+	struct sockaddr_in * address);
-+
-+
-+int afp_main_loop(int command_fd);
-+int afp_main_quick_startup(pthread_t * thread);
-+
-+int afp_server_destroy(struct afp_server *s) ;
-+int afp_server_reconnect(struct afp_server * s, char * mesg,
-+        unsigned int *l, unsigned int max);
-+int afp_server_connect(struct afp_server *s, int full);
-+
-+struct afp_server * afp_server_complete_connection(
-+	void * priv,
-+	struct afp_server * server,
-+	struct sockaddr_in * address, unsigned char * versions,
-+	unsigned int uams, char * username, char * password,
-+	unsigned int requested_version, unsigned int uam_mask);
-+
-+int afp_connect_volume(struct afp_volume * volume, struct afp_server * server,
-+	char * mesg, unsigned int * l, unsigned int max);
-+int something_is_mounted(struct afp_server * server);
-+
-+int add_cache_entry(struct afp_file_info * file) ;
-+struct afp_file_info * get_cache_by_name(char * name);
-+struct afp_server * find_server_by_address(struct sockaddr_in * address);
-+struct afp_server * find_server_by_signature(char * signature);
-+struct afp_server * find_server_by_name(char * name);
-+int server_still_valid(struct afp_server * server);
-+
-+
-+struct afp_server * get_server_base(void);
-+int afp_server_remove(struct afp_server * server);
-+
-+int afp_unmount_volume(struct afp_volume * volume);
-+int afp_unmount_all_volumes(struct afp_server * server);
-+
-+#define volume_is_readonly(x) (((x)->attributes&kReadOnly) || \
-+	((x)->extra_flags & VOLUME_EXTRA_FLAGS_READONLY))
-+
-+int afp_opendt(struct afp_volume *volume, unsigned short * refnum);
-+
-+int afp_closedt(struct afp_server * server, unsigned short * refnum);
-+
-+int afp_getcomment(struct afp_volume *volume, unsigned int did,
-+        const char * pathname, struct afp_comment * comment);
-+
-+int afp_addcomment(struct afp_volume *volume, unsigned int did,
-+        const char * pathname, char * comment,uint64_t *size);
-+
-+int afp_geticon(struct afp_volume * volume, unsigned int filecreator,
-+        unsigned int filetype, unsigned char icontype, 
-+	unsigned short length, struct afp_icon * icon);
-+
-+/* Things you want to do to a server */
-+
-+int afp_getsrvrmsg(struct afp_server *server, unsigned short messagetype,unsigned char utf8, unsigned char block, char * mesg);
-+
-+int afp_login(struct afp_server *server, char * uaname,
-+        char * userauthinfo, unsigned int userauthinfo_len,
-+	struct afp_rx_buffer *rx);
-+
-+int afp_changepassword(struct afp_server *server, char * uaname,
-+        char * userauthinfo, unsigned int userauthinfo_len,
-+	struct afp_rx_buffer *rx);
-+
-+int afp_logincont(struct afp_server *server, unsigned short id,
-+        char * userauthinfo, unsigned int userauthinfo_len,
-+	struct afp_rx_buffer *rx);
-+
-+int afp_getsessiontoken(struct afp_server * server, int type,
-+        unsigned int timestamp, struct afp_token *outgoing_token,
-+        struct afp_token * incoming_token);
-+
-+int afp_getsrvrparms(struct afp_server *server);
-+
-+int afp_logout(struct afp_server *server,unsigned char wait);
-+
-+int afp_mapname(struct afp_server * server, unsigned char subfunction,
-+        char * name, unsigned int * id);
-+
-+int afp_mapid(struct afp_server * server, unsigned char subfunction,
-+	unsigned int id, char *name);
-+
-+int afp_getuserinfo(struct afp_server * server, int thisuser,
-+	unsigned int userid, unsigned short bitmap, 
-+	unsigned int *newuid, unsigned int *newgid);
-+
-+int afp_zzzzz(struct afp_server *server);
-+
-+int afp_volopen(struct afp_volume * volume, 
-+		unsigned short bitmap, char * password);
-+
-+int afp_flush(struct afp_volume * volume);
-+
-+int afp_getfiledirparms(struct afp_volume *volume, unsigned int did, 
-+	unsigned int filebitmap, unsigned int dirbitmap, const char * pathname,
-+	struct afp_file_info *fp);
-+
-+int afp_enumerate(struct afp_volume * volume, 
-+	unsigned int dirid, 
-+	unsigned int filebitmap, unsigned int dirbitmap, 
-+        unsigned short reqcount,
-+        unsigned short startindex,
-+        char * path,
-+	struct afp_file_info ** file_p);
-+
-+int afp_enumerateext2(struct afp_volume * volume, 
-+	unsigned int dirid, 
-+	unsigned int filebitmap, unsigned int dirbitmap, 
-+        unsigned short reqcount,
-+        unsigned long startindex,
-+        char * path,
-+	struct afp_file_info ** file_p);
-+
-+int afp_openfork(struct afp_volume * volume,
-+        unsigned char forktype,
-+        unsigned int dirid,
-+        unsigned short accessmode,
-+        char * filename, 
-+	struct afp_file_info *fp);
-+
-+int afp_read(struct afp_volume * volume, unsigned short forkid,
-+                uint32_t offset,
-+                uint32_t count, struct afp_rx_buffer * rx);
-+
-+int afp_readext(struct afp_volume * volume, unsigned short forkid,
-+                uint64_t offset,
-+                uint64_t count, struct afp_rx_buffer * rx);
-+
-+int afp_getvolparms(struct afp_volume * volume, unsigned short bitmap);
-+
-+
-+int afp_createdir(struct afp_volume * volume, unsigned int dirid, const char * pathname, unsigned int *did_p);
-+
-+int afp_delete(struct afp_volume * volume,
-+        unsigned int dirid, char * pathname);
-+
-+
-+int afp_createfile(struct afp_volume * volume, unsigned char flag,
-+        unsigned int did, char * pathname);
-+
-+int afp_write(struct afp_volume * volume, unsigned short forkid,
-+        uint32_t offset, uint32_t reqcount,
-+        char * data, uint32_t * written);
-+
-+int afp_writeext(struct afp_volume * volume, unsigned short forkid,
-+        uint64_t offset, uint64_t reqcount,
-+        char * data, uint64_t * written);
-+
-+int afp_flushfork(struct afp_volume * volume, unsigned short forkid);
-+
-+int afp_closefork(struct afp_volume * volume, unsigned short forkid);
-+int afp_setfileparms(struct afp_volume * volume,
-+        unsigned int dirid, const char * pathname, unsigned short bitmap,
-+        struct afp_file_info *fp);
-+int afp_setfiledirparms(struct afp_volume * volume, 
-+        unsigned int dirid, const char * pathname, unsigned short bitmap,
-+        struct afp_file_info *fp);
-+
-+int afp_setdirparms(struct afp_volume * volume,
-+        unsigned int dirid, const char * pathname, unsigned short bitmap,
-+        struct afp_file_info *fp);
-+
-+int afp_volclose(struct afp_volume * volume);
-+
-+
-+int afp_setforkparms(struct afp_volume *volume,
-+        unsigned short forkid, unsigned short bitmap, unsigned long len);
-+
-+int afp_byterangelock(struct afp_volume * volume,
-+        unsigned char flag,
-+        unsigned short forkid,
-+        uint32_t offset,
-+        uint32_t len, uint32_t *generated_offset);
-+
-+int afp_byterangelockext(struct afp_volume * volume,
-+        unsigned char flag,
-+        unsigned short forkid,
-+        uint64_t offset,
-+        uint64_t len, uint64_t *generated_offset);
-+
-+int afp_moveandrename(struct afp_volume *volume,
-+	unsigned int src_did,
-+	unsigned int dst_did,
-+	char * src_path, char * dst_path, char *new_name);
-+
-+int afp_rename(struct afp_volume * volume,
-+        unsigned int dirid,
-+        char * path_from, char * path_to);
-+
-+int afp_listextattr(struct afp_volume * volume,
-+        unsigned int dirid, unsigned short bitmap,
-+        char * pathname, struct afp_extattr_info * info);
-+
-+/* This is a currently undocumented command */
-+int afp_newcommand76(struct afp_volume * volume, unsigned int dlen, char * data);
-+
-+/* For debugging */
-+char * afp_get_command_name(char code);
-+
-+
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/afp_protocol.h afpfs-ng-0.8.1.patch/include/afpfs-ng/afp_protocol.h
---- afpfs-ng-0.8.1/include/afpfs-ng/afp_protocol.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/afp_protocol.h	2011-09-10 12:13:50.112124505 +0200
-@@ -0,0 +1,361 @@
-+
-+#ifndef _AFP_PROTOCOL_H_
-+#define _AFP_PROTOCOL_H_
-+
-+#include <sys/types.h>
-+#include <stddef.h>
-+#include <unistd.h>
-+#include <stdint.h>
-+
-+/* This file defines constants for the Apple File Protocol.
-+   All page references are from "Apple Filing Protocol Programming" version 3.2.
-+   except where noted.
-+*/
-+
-+#define AFP_SERVER_NAME_LEN 33
-+#define AFP_SERVER_NAME_UTF8_LEN 255
-+#define AFP_VOLUME_NAME_LEN 33
-+#define AFP_VOLUME_NAME_UTF8_LEN 33
-+#define AFP_SIGNATURE_LEN 16
-+#define AFP_MACHINETYPE_LEN 33
-+#define AFP_LOGINMESG_LEN 200
-+#define AFP_VOLPASS_LEN 8
-+#define AFP_HOSTNAME_LEN 255
-+/* This is actually just a guess, and only used for appletalk */
-+#define AFP_ZONE_LEN 255
-+
-+#define AFP_SERVER_ICON_LEN 256
-+
-+
-+#define AFP_MAX_USERNAME_LEN 127
-+#define AFP_MAX_PASSWORD_LEN 127
-+
-+
-+/* This is the maximum length of any UAM string */
-+#define AFP_UAM_LENGTH 24
-+
-+/* This is the maximum length of any path description */
-+#define AFP_MAX_PATH 768
-+
-+#define AFP_VOL_FLAT 1
-+#define AFP_VOL_FIXED 2
-+#define AFP_VOL_VARIABLE 3
-+
-+/* The root directory ID, p.26 */
-+
-+#define AFP_ROOT_DID 2
-+
-+/* Path type constants, p.249 */
-+
-+enum {
-+kFPShortName = 1,
-+kFPLongName = 2,
-+kFPUTF8Name = 3
-+};
-+
-+/* fork types */
-+
-+#define AFP_FORKTYPE_DATA 0x0
-+#define AFP_FORKTYPE_RESOURCE 0x80
-+
-+/* openfork access modes, from p.196 */
-+
-+#define AFP_OPENFORK_ALLOWREAD 1
-+#define AFP_OPENFORK_ALLOWWRITE 2
-+#define AFP_OPENFORK_DENYREAD 0x10
-+#define AFP_OPENFORK_DENYWRITE 0x20
-+
-+/* Message type for getsrvmesg, p. 169*/
-+
-+typedef enum {
-+  AFPMESG_LOGIN = 0,
-+  AFPMESG_SERVER = 1
-+} afpmessage_t;
-+
-+/* Message bitmap for getsrvrmsg */
-+
-+#define AFP_GETSRVRMSG_UTF8 0x2
-+#define AFP_GETSRVRMSG_GETMSG 0x1
-+
-+
-+/* Maximum Version length, p.17 */
-+#define AFP_MAX_VERSION_LENGTH 16
-+
-+/* Maximum length of a token, this is undocumented */
-+#define AFP_TOKEN_MAX_LEN 256
-+
-+/* The maximum size of a file for AFP 2 */
-+#define AFP_MAX_AFP2_FILESIZE (4294967296)
-+
-+/* Unix privs, p.240 */
-+
-+struct afp_unixprivs {
-+	uint32_t uid __attribute__((__packed__));
-+	uint32_t gid __attribute__((__packed__));
-+	uint32_t permissions __attribute__((__packed__));
-+	uint32_t ua_permissions __attribute__((__packed__));
-+
-+};
-+
-+
-+/* AFP Volume attributes bitmap, p.241 */
-+
-+enum {
-+    kReadOnly = 0x01,
-+    kHasVolumePassword = 0x02,
-+    kSupportsFileIDs = 0x04,
-+    kSupportsCatSearch = 0x08,
-+    kSupportsBlankAccessPrivs = 0x10,
-+    kSupportsUnixPrivs = 0x20,
-+    kSupportsUTF8Names = 0x40,
-+    kNoNetworkUserIDs = 0x80,
-+    kDefaultPrivsFromParent = 0x100,
-+    kNoExchangeFiles = 0x200,
-+    kSupportsExtAttrs = 0x400,
-+    kSupportsACLs=0x800
-+};
-+
-+/* AFP file creation constantes, p.250 */
-+enum {
-+kFPSoftCreate = 0,
-+kFPHardCreate = 0x80
-+};
-+
-+/* AFP Directory attributes, taken from the protocol guide p.236 */
-+
-+enum {
-+    kFPAttributeBit = 0x1,
-+    kFPParentDirIDBit = 0x2,
-+    kFPCreateDateBit = 0x4,
-+    kFPModDateBit = 0x8,
-+    kFPBackupDateBit = 0x10,
-+    kFPFinderInfoBit = 0x20,
-+    kFPLongNameBit = 0x40,
-+    kFPShortNameBit = 0x80,
-+    kFPNodeIDBit = 0x100,
-+    kFPOffspringCountBit = 0x0200,
-+    kFPOwnerIDBit = 0x0400,
-+    kFPGroupIDBit = 0x0800,
-+    kFPAccessRightsBit = 0x1000,
-+    kFPProDOSInfoBit = 0x2000, // AFP version 2.2 and earlier
-+    kFPUTF8NameBit = 0x2000, // AFP version 3.0 and later
-+    kFPUnixPrivsBit = 0x8000 // AFP version 3.0 and later
-+};
-+
-+/* AFP File bitmap, p.238.  These are the ones not in the AFP Directory
-+   attributes map. */
-+
-+enum {
-+	kFPDataForkLenBit = 0x0200,
-+	kFPRsrcForkLenBit = 0x0400,
-+	kFPExtDataForkLenBit = 0x0800, // AFP version 3.0 and later
-+	kFPLaunchLimitBit = 0x1000,
-+	kFPExtRsrcForkLenBit = 0x4000, // AFP version 3.0 and later
-+};
-+
-+/* AFP Extended Attributes Bitmap, p.238  */
-+
-+enum {
-+	kXAttrNoFollow = 0x1,
-+	kXAttrCreate = 0x2,
-+	kXAttrREplace=0x4
-+};
-+
-+
-+/* AFP function codes */
-+enum AFPFunction
-+{
-+        afpByteRangeLock = 1, afpCloseVol, afpCloseDir, afpCloseFork,
-+        afpCopyFile, afpCreateDir, afpCreateFile,
-+        afpDelete, afpEnumerate, afpFlush, afpFlushFork,
-+        afpGetForkParms = 14, afpGetSrvrInfo, afpGetSrvrParms,
-+        afpGetVolParms, afpLogin, afpLoginCont, afpLogout, afpMapID,
-+        afpMapName, afpMoveAndRename, afpOpenVol, afpOpenDir, afpOpenFork,
-+        afpRead, afpRename, afpSetDirParms, afpSetFileParms,
-+        afpSetForkParms, afpSetVolParms, afpWrite, afpGetFileDirParms,
-+	afpSetFileDirParms, afpChangePassword,
-+        afpGetUserInfo=37,afpGetSrvrMsg = 38,
-+	afpOpenDT=48,
-+	afpCloseDT=49,
-+	afpGetIcon=51, afpGetIconInfo=52,
-+	afpAddComment=56, afpRemoveComment=57, afpGetComment=58,
-+	afpByteRangeLockExt=59, afpReadExt, afpWriteExt,
-+	afpGetAuthMethods=62,
-+	afp_LoginExt=63,
-+	afpGetSessionToken=64,
-+	afpDisconnectOldSession=65,
-+	afpEnumerateExt=66,
-+	afpCatSearchExt = 67,
-+	afpEnumerateExt2 = 68, afpGetExtAttr, afpSetExtAttr, 
-+	afpRemoveExtAttr , afpListExtAttrs,
-+	afpZzzzz = 122,
-+	afpAddIcon=192,
-+};
-+
-+/* AFP Volume bitmap.  Take from 242 of the protocol guide. */
-+enum {
-+	kFPBadVolPre222Bitmap = 0xFe00,
-+	kFPBadVolBitmap = 0xF000,
-+	kFPVolAttributeBit = 0x1,
-+	kFPVolSignatureBit = 0x2,
-+	kFPVolCreateDateBit = 0x4,
-+	kFPVolModDateBit = 0x8,
-+	kFPVolBackupDateBit = 0x10,
-+	kFPVolIDBit = 0x20,
-+	kFPVolBytesFreeBit = 0x40,
-+	kFPVolBytesTotalBit = 0x80,
-+	kFPVolNameBit = 0x100,
-+	kFPVolExtBytesFreeBit = 0x200,
-+	kFPVolExtBytesTotalBit = 0x400,
-+	kFPVolBlockSizeBit = 0x800
-+};
-+
-+/* AFP Attention Codes -- 4 bits */
-+#define AFPATTN_SHUTDOWN     (1 << 15)            /* shutdown/disconnect */
-+#define AFPATTN_CRASH        (1 << 14)            /* server crashed */
-+#define AFPATTN_MESG         (1 << 13)            /* server has message */
-+#define AFPATTN_NORECONNECT  (1 << 12)            /* don't reconnect */
-+/* server notification */
-+#define AFPATTN_NOTIFY       (AFPATTN_MESG | AFPATTN_NORECONNECT) 
-+
-+/* extended bitmap -- 12 bits. volchanged is only useful w/ a server
-+ * notification, and time is only useful for shutdown. */
-+#define AFPATTN_VOLCHANGED   (1 << 0)             /* volume has changed */
-+#define AFPATTN_TIME(x)      ((x) & 0xfff)        /* time in minutes */
-+
-+#define kFPNoErr 0
-+
-+/* AFP result codes, p252 */
-+#define kASPSessClosed -1072
-+#define kFPAccessDenied -5000
-+#define kFPAuthContinue -5001
-+#define kFPBadUAM -5002
-+#define kFPBadVersNum -5003
-+#define kFPBitmapErr -5004
-+#define kFPCantMove -5005
-+#define kFPDenyConflict -5006
-+#define kFPDirNotEmpty -5007
-+#define kFPDiskFull -5008
-+#define kFPEOFErr -5009
-+#define kFPFileBusy -5010
-+#define kFPFlatVol -5011
-+#define kFPItemNotFound -5012
-+#define kFPLockErr -5013
-+#define kFPMiscErr -5014
-+#define kFPNoMoreLocks -5015
-+#define kFPNoServer -5016
-+#define kFPObjectExists -5017
-+#define kFPObjectNotFound -5018
-+#define kFPParamErr -5019
-+#define kFPRangeNotLocked -5020
-+#define kFPRangeOverlap -5021
-+#define kFPSessClosed -5022
-+#define kFPUserNotAuth -5023
-+#define kFPCallNotSupported -5024
-+#define kFPObjectTypeErr -5025
-+#define kFPTooManyFilesOpen -5026
-+#define kFPServerGoingDown -5027
-+#define kFPCantRename -5028
-+#define kFPDirNotFound -5029
-+#define kFPIconTypeError -5030
-+#define kFPVolLocked -5031
-+#define kFPObjectLocked -5032
-+#define kFPContainsSharedErr -5033
-+#define kFPIDNotFound -5034
-+#define kFPIDExists -5035
-+#define kFPDiffVolErr  -5036
-+#define kFPCatalogChanged -5037
-+#define kFPSameObjectErr -5038
-+#define kFPBadIDErr -5039
-+#define kFPPwdSameErr -5040
-+#define kFPPwdTooShortErr -5041
-+#define kFPPwdExpiredErr -5042
-+#define kFPInsideSharedErr -5043
-+#define kFPInsideTrashErr -5044
-+#define kFPPwdNeedsChangeErr -5045
-+#define kFPPwdPolicyErr -5046
-+#define kFPDiskQuotaExceeded –5047 
-+
-+
-+
-+/* These flags determine to lock or unlock in ByteRangeLock(Ext) */
-+
-+enum {
-+ByteRangeLock_Lock = 0,
-+ByteRangeLock_Unlock = 1
-+};
-+
-+/* These flags are used in volopen and getsrvrparm replies, p.171 */
-+
-+#define HasConfigInfo 0x1
-+#define HasPassword 0x80
-+
-+/* These are the subfunction for kFPMapID, as per p.248 */
-+
-+enum {
-+kUserIDToName = 1,
-+kGroupIDToName = 2,
-+kUserIDToUTF8Name = 3,
-+kGroupIDToUTF8Name = 4,
-+kUserUUIDToUTF8Name = 5,
-+kGroupUUIDToUTF8Name = 6
-+};
-+
-+
-+/* These are the subfunction flags described in the FPMapName command, p.286.
-+   Note that this is different than what's described on p. 186. */
-+
-+enum {
-+kNameToUserID = 1,
-+kNameToGroupID = 2,
-+kUTF8NameToUserID = 3,
-+kUTF8NameToGroupID = 4,
-+kUTF8NameToUserUUID = 5,
-+kUTF8NameToGroupUUID = 6
-+};
-+
-+/* These are bits for FPGetUserInfo, p.173. */
-+#define kFPGetUserInfo_USER_ID 1
-+#define kFPGetUserInfo_PRI_GROUPID 2
-+
-+/* Flags for the replies of GetSrvrInfo and DSI GetStatus, p.240 */
-+
-+enum {
-+	kSupportsCopyfile = 0x01,
-+	kSupportsChgPwd = 0x02,
-+	kDontAllowSavePwd = 0x04,
-+	kSupportsSrvrMsg = 0x08,
-+	kSrvrSig = 0x10,
-+	kSupportsTCP = 0x20,
-+	kSupportsSrvrNotify = 0x40,
-+	kSupportsReconnect = 0x80,
-+	kSupportsDirServices = 0x100,
-+	kSupportsUTF8SrvrName = 0x200,
-+	kSupportsUUIDs = 0x400,
-+	kSupportsSuperClient = 0x8000
-+};
-+
-+
-+/* p.247 */
-+
-+enum {
-+	kLoginWithoutID = 0,
-+	kLoginWithID = 1,
-+	kReconnWithID = 2,
-+	kLoginWithTimeAndID = 3,
-+	kReconnWithTimeAndID = 4,
-+	kRecon1Login = 5,
-+	kRecon1ReconnectLogin = 6,
-+	kRecon1Refresh = 7, kGetKerberosSessionKey = 8
-+};
-+
-+
-+#define AFP_CHMOD_ALLOWED_BITS_22 \
-+	(S_IRUSR |S_IWUSR | S_IRGRP | S_IWGRP |S_IROTH | S_IWOTH | S_IFREG )
-+
-+
-+#endif
-+
-+
-+
-+
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/codepage.h afpfs-ng-0.8.1.patch/include/afpfs-ng/codepage.h
---- afpfs-ng-0.8.1/include/afpfs-ng/codepage.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/codepage.h	2011-09-10 12:13:50.113124518 +0200
-@@ -0,0 +1,11 @@
-+#ifndef __CODE_PAGE_H_
-+#define __CODE_PAGE_H_
-+int convert_utf8dec_to_utf8pre(const char *src, int src_len,
-+	char * dest, int dest_len);
-+int convert_utf8pre_to_utf8dec(const char * src, int src_len, 
-+	char * dest, int dest_len);
-+int convert_path_to_unix(char encoding, char * dest, 
-+	char * src, int dest_len);
-+int convert_path_to_afp(char encoding, char * dest, 
-+	char * src, int dest_len);
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/dsi.h afpfs-ng-0.8.1.patch/include/afpfs-ng/dsi.h
---- afpfs-ng-0.8.1/include/afpfs-ng/dsi.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/dsi.h	2011-09-10 12:13:50.115124544 +0200
-@@ -0,0 +1,33 @@
-+
-+#ifndef __DSI_H_
-+#define __DSI_H_
-+
-+#include "afpfs-ng/afp.h"
-+
-+struct dsi_request
-+{
-+	unsigned short requestid;
-+	unsigned char subcommand;
-+	void * other;
-+	unsigned char wait;
-+	pthread_cond_t  condition_cond;
-+	struct dsi_request * next;
-+	int return_code;
-+};
-+
-+int dsi_receive(struct afp_server * server, void * data, int size);
-+int dsi_getstatus(struct afp_server * server);
-+
-+int dsi_opensession(struct afp_server *server);
-+
-+int dsi_send(struct afp_server *server, char * msg, int size,int wait,unsigned char subcommand, void ** other);
-+struct dsi_session * dsi_create(struct afp_server *server);
-+int dsi_restart(struct afp_server *server);
-+int dsi_recv(struct afp_server * server);
-+
-+#define DSI_BLOCK_TIMEOUT -1
-+#define DSI_DONT_WAIT 0
-+#define DSI_DEFAULT_TIMEOUT 5
-+
-+
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/libafpclient.h afpfs-ng-0.8.1.patch/include/afpfs-ng/libafpclient.h
---- afpfs-ng-0.8.1/include/afpfs-ng/libafpclient.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/libafpclient.h	2011-09-10 12:13:50.115124544 +0200
-@@ -0,0 +1,50 @@
-+
-+#ifndef __CLIENT_H_
-+#define __CLIENT_H_
-+
-+#include <unistd.h>
-+#include <syslog.h>
-+
-+#define MAX_CLIENT_RESPONSE 2048
-+
-+
-+enum loglevels {
-+        AFPFSD,
-+};
-+
-+struct afp_server;
-+struct afp_volume;
-+
-+struct libafpclient {
-+        int (*unmount_volume) (struct afp_volume * volume);
-+	void (*log_for_client)(void * priv,
-+        	enum loglevels loglevel, int logtype, const char *message);
-+	void (*forced_ending_hook)(void);
-+	int (*scan_extra_fds)(int command_fd,fd_set *set, int * max_fd);
-+	void (*loop_started)(void);
-+} ;
-+
-+extern struct libafpclient * libafpclient;
-+
-+void libafpclient_register(struct libafpclient * tmpclient);
-+
-+
-+void signal_main_thread(void);
-+
-+/* These are logging functions */
-+
-+#define MAXLOGSIZE 2048
-+
-+#define LOG_METHOD_SYSLOG 1
-+#define LOG_METHOD_STDOUT 2
-+
-+void set_log_method(int m);
-+
-+
-+void log_for_client(void * priv,
-+        enum loglevels loglevel, int logtype, char * message,...);
-+
-+void stdout_log_for_client(void * priv,
-+	enum loglevels loglevel, int logtype, const char *message);
-+
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/Makefile.am afpfs-ng-0.8.1.patch/include/afpfs-ng/Makefile.am
---- afpfs-ng-0.8.1/include/afpfs-ng/Makefile.am	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/Makefile.am	2011-09-10 12:13:50.115124544 +0200
-@@ -0,0 +1,6 @@
-+## Process this file with automake to produce Makefile.in
-+
-+afpfsincludedir = $(includedir)/afpfs-ng
-+
-+afpfsinclude_HEADERS = afp.h afp_protocol.h libafpclient.h
-+nodist_afpfsinclude_HEADERS =  codepage.h dsi.h  map_def.h midlevel.h uams_def.h utils.h
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/map_def.h afpfs-ng-0.8.1.patch/include/afpfs-ng/map_def.h
---- afpfs-ng-0.8.1/include/afpfs-ng/map_def.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/map_def.h	2011-09-10 12:13:50.116124557 +0200
-@@ -0,0 +1,15 @@
-+#ifndef __MAP_H_
-+#define __MAP_H_
-+
-+#include "afpfs-ng/afp.h"
-+
-+#define AFP_MAPPING_UNKNOWN 0
-+#define AFP_MAPPING_COMMON 1
-+#define AFP_MAPPING_LOGINIDS 2
-+#define AFP_MAPPING_NAME 3
-+
-+unsigned int map_string_to_num(char * name);
-+char * get_mapping_name(struct afp_volume * volume);
-+
-+
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/midlevel.h afpfs-ng-0.8.1.patch/include/afpfs-ng/midlevel.h
---- afpfs-ng-0.8.1/include/afpfs-ng/midlevel.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/midlevel.h	2011-09-10 12:13:50.116124557 +0200
-@@ -0,0 +1,64 @@
-+#ifndef __MIDLEVEL_H_
-+#define __MIDLEVEL_H_ 
-+
-+#include <utime.h>
-+#include "afpfs-ng/afp.h"
-+
-+int ml_open(struct afp_volume * volume, const char *path, int flags, 
-+        struct afp_file_info **newfp);
-+
-+int ml_creat(struct afp_volume * volume, const char *path,mode_t mode);
-+
-+int ml_readdir(struct afp_volume * volume, 
-+	const char *path, 
-+	struct afp_file_info **base);
-+
-+int ml_read(struct afp_volume * volume, const char *path,
-+	char *buf, size_t size, off_t offset,
-+	struct afp_file_info *fp, int * eof);
-+
-+int ml_chmod(struct afp_volume * vol, const char * path, mode_t mode);
-+
-+int ml_unlink(struct afp_volume * vol, const char *path);
-+
-+int ml_mkdir(struct afp_volume * vol, const char * path, mode_t mode);
-+
-+int ml_close(struct afp_volume * volume, const char * path,
-+        struct afp_file_info * fp);
-+
-+int ml_getattr(struct afp_volume * volume, const char *path, 
-+	struct stat *stbuf);
-+
-+int ml_write(struct afp_volume * volume, const char * path, 
-+	const char *data, size_t size, off_t offset,
-+	struct afp_file_info * fp, uid_t uid,
-+	gid_t gid);
-+
-+int ml_readlink(struct afp_volume * vol, const char * path,
-+        char *buf, size_t size);
-+
-+int ml_rmdir(struct afp_volume * vol, const char *path);
-+
-+int ml_chown(struct afp_volume * vol, const char * path,   
-+        uid_t uid, gid_t gid);
-+
-+int ml_truncate(struct afp_volume * vol, const char * path, off_t offset);
-+
-+int ml_utime(struct afp_volume * vol, const char * path,
-+	struct utimbuf * timebuf);
-+
-+int ml_symlink(struct afp_volume *vol, const char * path1, const char * path2);
-+
-+int ml_rename(struct afp_volume * vol,
-+	const char * path_from, const char * path_to);
-+
-+int ml_statfs(struct afp_volume * vol, const char *path, struct statvfs *stat);
-+
-+void afp_ml_filebase_free(struct afp_file_info **filebase);
-+
-+int ml_passwd(struct afp_server *server,
-+                char * username, char * oldpasswd, char * newpasswd);
-+
-+
-+
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/uams_def.h afpfs-ng-0.8.1.patch/include/afpfs-ng/uams_def.h
---- afpfs-ng-0.8.1/include/afpfs-ng/uams_def.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/uams_def.h	2011-09-10 12:13:50.116124557 +0200
-@@ -0,0 +1,16 @@
-+#ifndef __UAM_DEFS_H_
-+#define __UAM_DEFS_H_
-+
-+#define UAM_NOUSERAUTHENT 0x1
-+#define UAM_CLEARTXTPASSWRD 0x2
-+#define UAM_RANDNUMEXCHANGE 0x4
-+#define UAM_2WAYRANDNUM 0x8
-+#define UAM_DHCAST128 0x10
-+#define UAM_CLIENTKRB 0x20
-+#define UAM_DHX2 0x40
-+#define UAM_RECON1 0x80
-+
-+int uam_string_to_bitmap(char * name);
-+char * uam_bitmap_to_string(unsigned int bitmap);
-+
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/utils.h afpfs-ng-0.8.1.patch/include/afpfs-ng/utils.h
---- afpfs-ng-0.8.1/include/afpfs-ng/utils.h	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/utils.h	2011-09-10 12:13:50.116124557 +0200
-@@ -0,0 +1,43 @@
-+#ifndef __UTILS_H_
-+#define __UTILS_H_
-+#include <stdio.h>
-+
-+#include "afpfs-ng/afp.h"
-+
-+#if BYTE_ORDER == BIG_ENDIAN
-+#define hton64(x)       (x)
-+#define ntoh64(x)       (x)
-+#else /* BYTE_ORDER == BIG_ENDIAN */
-+#define hton64(x)       ((u_int64_t) (htonl(((x) >> 32) & 0xffffffffLL)) | \
-+                         (u_int64_t) ((htonl(x) & 0xffffffffLL) << 32))
-+#define ntoh64(x)       (hton64(x))
-+#endif /* BYTE_ORDER == BIG_ENDIAN */
-+
-+#define min(a,b) (((a)<(b)) ? (a) : (b))
-+#define max(a,b) (((a)>(b)) ? (a) : (b))
-+
-+
-+
-+unsigned char unixpath_to_afppath(
-+        struct afp_server * server,
-+        char * buf);
-+
-+unsigned char sizeof_path_header(struct afp_server * server);
-+
-+
-+
-+unsigned char copy_from_pascal(char *dest, char *pascal,unsigned int max_len) ;
-+unsigned short copy_from_pascal_two(char *dest, char *pascal,unsigned int max_len);
-+
-+unsigned char copy_to_pascal(char *dest, const char *src);
-+unsigned short copy_to_pascal_two(char *dest, const char *src);
-+
-+void copy_path(struct afp_server * server, char * dest, const char * pathname, unsigned char len);
-+
-+
-+char * create_path(struct afp_server * server, char * pathname, unsigned short * len);
-+
-+
-+int invalid_filename(struct afp_server * server, const char * filename);
-+
-+#endif
-diff -Naur afpfs-ng-0.8.1/include/afp.h afpfs-ng-0.8.1.patch/include/afp.h
---- afpfs-ng-0.8.1/include/afp.h	2008-03-08 17:08:18.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afp.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,533 +0,0 @@
--
--#ifndef _AFP_H_
--#define _AFP_H_
--
--#include <arpa/inet.h>
--#include <pthread.h>
--#include <netdb.h>
--#include <sys/statvfs.h>
--#include <pwd.h>
--#include <afp_protocol.h>
--#include <libafpclient.h>
--#include <sys/types.h>
--#include <sys/stat.h>
--#include <unistd.h>
--#include <netinet/in.h>
--
--
--#define AFPFS_VERSION "0.8.1"
--
--/* This is the maximum AFP version this library supports */
--#define AFP_MAX_SUPPORTED_VERSION 32
--
--/* afp_url is used to pass locations around */
--struct afp_url {
--	enum {TCPIP,AT} protocol;
--	char username[AFP_MAX_USERNAME_LEN];
--	char uamname[50];
--	char password[AFP_MAX_PASSWORD_LEN];
--	char servername[AFP_SERVER_NAME_UTF8_LEN];
--	int port;
--	char volumename[AFP_VOLUME_NAME_UTF8_LEN];
--	char path[AFP_MAX_PATH];
--
--	int requested_version;
--	char zone[AFP_ZONE_LEN]; /* Only used for Appletalk */
--	char volpassword[9];;
--};
--
--struct afp_token {
--	unsigned int length;
--	char data[AFP_TOKEN_MAX_LEN];
--};
--
--#define SERVER_MAX_VERSIONS 10
--#define SERVER_MAX_UAMS 10
--
--struct afp_rx_buffer {
--	unsigned int size;
--	unsigned int maxsize;
--	char * data;
--	int errorcode;
--};
--
--
--struct afp_file_info {
--	unsigned short attributes;
--	unsigned int did;
--	unsigned int creation_date;
--	unsigned int modification_date;
--	unsigned int backup_date;
--	unsigned int fileid;
--	unsigned short offspring;
--	char sync;
--	char finderinfo[32];
--	char name[AFP_MAX_PATH];
--	char basename[AFP_MAX_PATH];
--	char translated_name[AFP_MAX_PATH];
--	struct afp_unixprivs unixprivs;
--	unsigned int accessrights;
--	struct afp_file_info * next;
--	struct afp_file_info * largelist_next;
--	unsigned char isdir;
--	unsigned long long size;
--	unsigned short resourcesize;
--	unsigned int resource;
--	unsigned short forkid;
--	struct afp_icon * icon;
--	int eof;
--};
--
--
--#define VOLUME_EXTRA_FLAGS_VOL_CHMOD_KNOWN 0x1
--#define VOLUME_EXTRA_FLAGS_VOL_CHMOD_BROKEN 0x2
--#define VOLUME_EXTRA_FLAGS_SHOW_APPLEDOUBLE 0x4
--#define VOLUME_EXTRA_FLAGS_VOL_SUPPORTS_UNIX 0x8
--#define VOLUME_EXTRA_FLAGS_NO_LOCKING 0x10
--#define VOLUME_EXTRA_FLAGS_IGNORE_UNIXPRIVS 0x20
--#define VOLUME_EXTRA_FLAGS_READONLY 0x40
--
--#define AFP_VOLUME_UNMOUNTED 0
--#define AFP_VOLUME_MOUNTED 1
--#define AFP_VOLUME_UNMOUNTING 2
--
--struct afp_volume {
--	unsigned short volid;
--	char flags;  /* This is from afpGetSrvrParms */
--	unsigned short attributes; /* This is from VolOpen */
--	unsigned short signature;  /* This is fixed or variable */
--	unsigned int creation_date;
--	unsigned int modification_date;
--	unsigned int backup_date;
--	struct statvfs stat;
--	unsigned char mounted;
--	char mountpoint[255];
--	struct afp_server * server;
--	char volume_name[AFP_VOLUME_NAME_LEN];
--	char volume_name_printable[AFP_VOLUME_NAME_UTF8_LEN];
--	unsigned short dtrefnum;
--	char volpassword[AFP_VOLPASS_LEN];
--	unsigned int extra_flags; /* This is an afpfs-ng specific field */
--
--	/* Our directory ID cache */
--	struct did_cache_entry * did_cache_base;
--	pthread_mutex_t did_cache_mutex;
--
--	/* Our journal of open forks */
--	struct afp_file_info * open_forks;
--	pthread_mutex_t open_forks_mutex;
--
--	/* Used to trigger startup */
--        pthread_cond_t  startup_condition_cond;
--
--	struct {
--		uint64_t hits;
--		uint64_t misses;
--		uint64_t expired;
--		uint64_t force_removed;
--	} did_cache_stats;
--
--	void * priv;  /* This is a private structure for fuse/cmdline, etc */
--	pthread_t thread; /* This is the per-volume thread */
--
--	int mapping;
--
--};
--
--#define SERVER_STATE_CONNECTED 1
--#define SERVER_STATE_DISCONNECTED 2
--
--enum server_type{
--	AFPFS_SERVER_TYPE_UNKNOWN,
--	AFPFS_SERVER_TYPE_NETATALK,
--	AFPFS_SERVER_TYPE_AIRPORT,
--	AFPFS_SERVER_TYPE_MACINTOSH,
--};
--
--#define is_netatalk(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_NETATALK )
--#define is_airport(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_AIRPORT )
--#define is_macintosh(x) ( (x)->machine_type == AFPFS_SERVER_TYPE_MACINTOSH )
--
--
--
--struct afp_versions {
--        char        *av_name;
--        int         av_number;
--};
--extern struct afp_versions afp_versions[];
--
--struct afp_server {
--
--	/* Our buffer sizes */
--	unsigned int tx_quantum;
--	unsigned int rx_quantum;
--
--	unsigned int tx_delay;
--
--	/* Connection information */
--	struct sockaddr_in address;
--	int fd;
--
--	/* Some stats, for information only */
--	struct {
--		uint64_t runt_packets;
--		uint64_t incoming_dsi;
--		uint64_t rx_bytes;
--		uint64_t tx_bytes;
--		uint64_t requests_pending;
--	} stats;
--
--	/* General information */
--	char server_name[AFP_SERVER_NAME_LEN];
--	char server_name_utf8[AFP_SERVER_NAME_UTF8_LEN];
--        char server_name_printable[AFP_SERVER_NAME_UTF8_LEN];
--
--	char machine_type[17];
--	char icon[256];
--	char signature[16];
--	unsigned short flags;
--	int connect_state;
--	enum server_type server_type;
--
--	/* This is the time we connected */
--	time_t connect_time;
--
--	/* UAMs */
--	unsigned int supported_uams;
--	unsigned int using_uam;
--
--	/* Authentication */
--	char username[AFP_MAX_USERNAME_LEN];
--	char password[AFP_MAX_PASSWORD_LEN];
--
--	/* Session */
--	struct afp_token token;
--	char need_resume;
--
--	/* Versions */
--	unsigned char requested_version;
--	unsigned char versions[SERVER_MAX_VERSIONS];
--	struct afp_versions *using_version;
--
--	/* Volumes */
--	unsigned char num_volumes;
--	struct afp_volume * volumes;
--
--	void * dsi;
--	unsigned int exit_flag;
--
--	/* Our DSI request queue */
--	pthread_mutex_t requestid_mutex;
--	pthread_mutex_t request_queue_mutex;
--	unsigned short lastrequestid;
--	unsigned short expectedrequestid;
--	struct dsi_request * command_requests;
--
--
--	char loginmesg[200];
--	char servermesg[200];
--	char path_encoding;
--
--	/* This is the data for the incoming buffer */
--	char * incoming_buffer;
--	int data_read;
--	int bufsize;
--
--	/* And this is for the outgoing queue */
--	pthread_mutex_t send_mutex;
--
--	/* This is for user mapping */
--	struct passwd passwd;
--	unsigned int server_uid, server_gid;
--	int server_gid_valid;
--
--	struct afp_server *next;
--
--	/* These are for DSI attention packets */
--	unsigned int attention_quantum;
--	unsigned int attention_len;
--	char * attention_buffer;
--
--};
--
--struct afp_extattr_info {
--	unsigned int maxsize;
--	unsigned int size;
--	char data[1024];
--};
--struct afp_comment {
--	unsigned int maxsize;
--	unsigned int size;
--	char *data;
--};
--
--struct afp_icon {
--	unsigned int maxsize;
--	unsigned int size;
--	char *data;
--};
--
--#define AFP_DEFAULT_ATTENTION_QUANTUM 1024
--
--void afp_unixpriv_to_stat(struct afp_file_info *fp,
--	struct stat *stat);
--
--int init_uams(void) ;
--
--unsigned int find_uam_by_name(const char * name);
--char * uam_bitmap_to_string(unsigned int bitmap);
--
--
--char * get_uam_names_list(void);
--
--unsigned int default_uams_mask(void);
--
--struct afp_volume * find_volume_by_name(struct afp_server * server,
--        const char * volname);
--
--struct afp_connection_request {
--        unsigned int uam_mask;
--	struct afp_url url;
--};
--
--void afp_default_url(struct afp_url *url);
--int afp_parse_url(struct afp_url * url, const char * toparse, int verbose);
--void afp_print_url(struct afp_url * url);
--int afp_url_validate(char * url_string, struct afp_url * valid_url);
--
--int afp_list_volnames(struct afp_server * server, char * names, int max);
--
--/* User mapping */
--int afp_detect_mapping(struct afp_volume * volume);
--
--/* These are some functions that help with simple status text generation */
--
--int afp_status_header(char * text, int * len);
--int afp_status_server(struct afp_server * s,char * text, int * len);
--
--
--struct afp_server * afp_server_full_connect(void * priv, struct afp_connection_request * req);
--
--void * just_end_it_now(void *other);
--void add_fd_and_signal(int fd);
--void loop_disconnect(struct afp_server *s);
--void afp_wait_for_started_loop(void);
--
--
--struct afp_versions * pick_version(unsigned char *versions,
--	unsigned char requested) ;
--int pick_uam(unsigned int u1, unsigned int u2);
--
--int afp_server_login(struct afp_server *server,
--        char * mesg, unsigned int *l, unsigned int max);
--
--
--int afp_dologin(struct afp_server *server,
--	unsigned int uam, char * username, char * passwd);
--
--void afp_free_server(struct afp_server **server);
--
--struct afp_server * afp_server_init(struct sockaddr_in * address);
--int afp_get_address(void * priv, const char * hostname, unsigned int port,
--	struct sockaddr_in * address);
--
--
--int afp_main_loop(int command_fd);
--int afp_main_quick_startup(pthread_t * thread);
--
--int afp_server_destroy(struct afp_server *s) ;
--int afp_server_reconnect(struct afp_server * s, char * mesg,
--        unsigned int *l, unsigned int max);
--int afp_server_connect(struct afp_server *s, int full);
--
--struct afp_server * afp_server_complete_connection(
--	void * priv,
--	struct afp_server * server,
--	struct sockaddr_in * address, unsigned char * versions,
--	unsigned int uams, char * username, char * password,
--	unsigned int requested_version, unsigned int uam_mask);
--
--int afp_connect_volume(struct afp_volume * volume, struct afp_server * server,
--	char * mesg, unsigned int * l, unsigned int max);
--int something_is_mounted(struct afp_server * server);
--
--int add_cache_entry(struct afp_file_info * file) ;
--struct afp_file_info * get_cache_by_name(char * name);
--struct afp_server * find_server_by_address(struct sockaddr_in * address);
--struct afp_server * find_server_by_signature(char * signature);
--struct afp_server * find_server_by_name(char * name);
--int server_still_valid(struct afp_server * server);
--
--
--struct afp_server * get_server_base(void);
--int afp_server_remove(struct afp_server * server);
--
--int afp_unmount_volume(struct afp_volume * volume);
--int afp_unmount_all_volumes(struct afp_server * server);
--
--#define volume_is_readonly(x) (((x)->attributes&kReadOnly) || \
--	((x)->extra_flags & VOLUME_EXTRA_FLAGS_READONLY))
--
--int afp_opendt(struct afp_volume *volume, unsigned short * refnum);
--
--int afp_closedt(struct afp_server * server, unsigned short * refnum);
--
--int afp_getcomment(struct afp_volume *volume, unsigned int did,
--        const char * pathname, struct afp_comment * comment);
--
--int afp_addcomment(struct afp_volume *volume, unsigned int did,
--        const char * pathname, char * comment,uint64_t *size);
--
--int afp_geticon(struct afp_volume * volume, unsigned int filecreator,
--        unsigned int filetype, unsigned char icontype, 
--	unsigned short length, struct afp_icon * icon);
--
--/* Things you want to do to a server */
--
--int afp_getsrvrmsg(struct afp_server *server, unsigned short messagetype,unsigned char utf8, unsigned char block, char * mesg);
--
--int afp_login(struct afp_server *server, char * uaname,
--        char * userauthinfo, unsigned int userauthinfo_len,
--	struct afp_rx_buffer *rx);
--
--int afp_changepassword(struct afp_server *server, char * uaname,
--        char * userauthinfo, unsigned int userauthinfo_len,
--	struct afp_rx_buffer *rx);
--
--int afp_logincont(struct afp_server *server, unsigned short id,
--        char * userauthinfo, unsigned int userauthinfo_len,
--	struct afp_rx_buffer *rx);
--
--int afp_getsessiontoken(struct afp_server * server, int type,
--        unsigned int timestamp, struct afp_token *outgoing_token,
--        struct afp_token * incoming_token);
--
--int afp_getsrvrparms(struct afp_server *server);
--
--int afp_logout(struct afp_server *server,unsigned char wait);
--
--int afp_mapname(struct afp_server * server, unsigned char subfunction,
--        char * name, unsigned int * id);
--
--int afp_mapid(struct afp_server * server, unsigned char subfunction,
--	unsigned int id, char *name);
--
--int afp_getuserinfo(struct afp_server * server, int thisuser,
--	unsigned int userid, unsigned short bitmap, 
--	unsigned int *newuid, unsigned int *newgid);
--
--int afp_zzzzz(struct afp_server *server);
--
--int afp_volopen(struct afp_volume * volume, 
--		unsigned short bitmap, char * password);
--
--int afp_flush(struct afp_volume * volume);
--
--int afp_getfiledirparms(struct afp_volume *volume, unsigned int did, 
--	unsigned int filebitmap, unsigned int dirbitmap, const char * pathname,
--	struct afp_file_info *fp);
--
--int afp_enumerate(struct afp_volume * volume, 
--	unsigned int dirid, 
--	unsigned int filebitmap, unsigned int dirbitmap, 
--        unsigned short reqcount,
--        unsigned short startindex,
--        char * path,
--	struct afp_file_info ** file_p);
--
--int afp_enumerateext2(struct afp_volume * volume, 
--	unsigned int dirid, 
--	unsigned int filebitmap, unsigned int dirbitmap, 
--        unsigned short reqcount,
--        unsigned long startindex,
--        char * path,
--	struct afp_file_info ** file_p);
--
--int afp_openfork(struct afp_volume * volume,
--        unsigned char forktype,
--        unsigned int dirid,
--        unsigned short accessmode,
--        char * filename, 
--	struct afp_file_info *fp);
--
--int afp_read(struct afp_volume * volume, unsigned short forkid,
--                uint32_t offset,
--                uint32_t count, struct afp_rx_buffer * rx);
--
--int afp_readext(struct afp_volume * volume, unsigned short forkid,
--                uint64_t offset,
--                uint64_t count, struct afp_rx_buffer * rx);
--
--int afp_getvolparms(struct afp_volume * volume, unsigned short bitmap);
--
--
--int afp_createdir(struct afp_volume * volume, unsigned int dirid, const char * pathname, unsigned int *did_p);
--
--int afp_delete(struct afp_volume * volume,
--        unsigned int dirid, char * pathname);
--
--
--int afp_createfile(struct afp_volume * volume, unsigned char flag,
--        unsigned int did, char * pathname);
--
--int afp_write(struct afp_volume * volume, unsigned short forkid,
--        uint32_t offset, uint32_t reqcount,
--        char * data, uint32_t * written);
--
--int afp_writeext(struct afp_volume * volume, unsigned short forkid,
--        uint64_t offset, uint64_t reqcount,
--        char * data, uint64_t * written);
--
--int afp_flushfork(struct afp_volume * volume, unsigned short forkid);
--
--int afp_closefork(struct afp_volume * volume, unsigned short forkid);
--int afp_setfileparms(struct afp_volume * volume,
--        unsigned int dirid, const char * pathname, unsigned short bitmap,
--        struct afp_file_info *fp);
--int afp_setfiledirparms(struct afp_volume * volume, 
--        unsigned int dirid, const char * pathname, unsigned short bitmap,
--        struct afp_file_info *fp);
--
--int afp_setdirparms(struct afp_volume * volume,
--        unsigned int dirid, const char * pathname, unsigned short bitmap,
--        struct afp_file_info *fp);
--
--int afp_volclose(struct afp_volume * volume);
--
--
--int afp_setforkparms(struct afp_volume *volume,
--        unsigned short forkid, unsigned short bitmap, unsigned long len);
--
--int afp_byterangelock(struct afp_volume * volume,
--        unsigned char flag,
--        unsigned short forkid,
--        uint32_t offset,
--        uint32_t len, uint32_t *generated_offset);
--
--int afp_byterangelockext(struct afp_volume * volume,
--        unsigned char flag,
--        unsigned short forkid,
--        uint64_t offset,
--        uint64_t len, uint64_t *generated_offset);
--
--int afp_moveandrename(struct afp_volume *volume,
--	unsigned int src_did,
--	unsigned int dst_did,
--	char * src_path, char * dst_path, char *new_name);
--
--int afp_rename(struct afp_volume * volume,
--        unsigned int dirid,
--        char * path_from, char * path_to);
--
--int afp_listextattr(struct afp_volume * volume,
--        unsigned int dirid, unsigned short bitmap,
--        char * pathname, struct afp_extattr_info * info);
--
--/* This is a currently undocumented command */
--int afp_newcommand76(struct afp_volume * volume, unsigned int dlen, char * data);
--
--/* For debugging */
--char * afp_get_command_name(char code);
--
--
--#endif
-diff -Naur afpfs-ng-0.8.1/include/afp_protocol.h afpfs-ng-0.8.1.patch/include/afp_protocol.h
---- afpfs-ng-0.8.1/include/afp_protocol.h	2008-02-18 04:33:43.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/afp_protocol.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,361 +0,0 @@
--
--#ifndef _AFP_PROTOCOL_H_
--#define _AFP_PROTOCOL_H_
--
--#include <sys/types.h>
--#include <stddef.h>
--#include <unistd.h>
--#include <stdint.h>
--
--/* This file defines constants for the Apple File Protocol.
--   All page references are from "Apple Filing Protocol Programming" version 3.2.
--   except where noted.
--*/
--
--#define AFP_SERVER_NAME_LEN 33
--#define AFP_SERVER_NAME_UTF8_LEN 255
--#define AFP_VOLUME_NAME_LEN 33
--#define AFP_VOLUME_NAME_UTF8_LEN 33
--#define AFP_SIGNATURE_LEN 16
--#define AFP_MACHINETYPE_LEN 33
--#define AFP_LOGINMESG_LEN 200
--#define AFP_VOLPASS_LEN 8
--#define AFP_HOSTNAME_LEN 255
--/* This is actually just a guess, and only used for appletalk */
--#define AFP_ZONE_LEN 255
--
--#define AFP_SERVER_ICON_LEN 256
--
--
--#define AFP_MAX_USERNAME_LEN 127
--#define AFP_MAX_PASSWORD_LEN 127
--
--
--/* This is the maximum length of any UAM string */
--#define AFP_UAM_LENGTH 24
--
--/* This is the maximum length of any path description */
--#define AFP_MAX_PATH 768
--
--#define AFP_VOL_FLAT 1
--#define AFP_VOL_FIXED 2
--#define AFP_VOL_VARIABLE 3
--
--/* The root directory ID, p.26 */
--
--#define AFP_ROOT_DID 2
--
--/* Path type constants, p.249 */
--
--enum {
--kFPShortName = 1,
--kFPLongName = 2,
--kFPUTF8Name = 3
--};
--
--/* fork types */
--
--#define AFP_FORKTYPE_DATA 0x0
--#define AFP_FORKTYPE_RESOURCE 0x80
--
--/* openfork access modes, from p.196 */
--
--#define AFP_OPENFORK_ALLOWREAD 1
--#define AFP_OPENFORK_ALLOWWRITE 2
--#define AFP_OPENFORK_DENYREAD 0x10
--#define AFP_OPENFORK_DENYWRITE 0x20
--
--/* Message type for getsrvmesg, p. 169*/
--
--typedef enum {
--  AFPMESG_LOGIN = 0,
--  AFPMESG_SERVER = 1
--} afpmessage_t;
--
--/* Message bitmap for getsrvrmsg */
--
--#define AFP_GETSRVRMSG_UTF8 0x2
--#define AFP_GETSRVRMSG_GETMSG 0x1
--
--
--/* Maximum Version length, p.17 */
--#define AFP_MAX_VERSION_LENGTH 16
--
--/* Maximum length of a token, this is undocumented */
--#define AFP_TOKEN_MAX_LEN 256
--
--/* The maximum size of a file for AFP 2 */
--#define AFP_MAX_AFP2_FILESIZE (4294967296)
--
--/* Unix privs, p.240 */
--
--struct afp_unixprivs {
--	uint32_t uid __attribute__((__packed__));
--	uint32_t gid __attribute__((__packed__));
--	uint32_t permissions __attribute__((__packed__));
--	uint32_t ua_permissions __attribute__((__packed__));
--
--};
--
--
--/* AFP Volume attributes bitmap, p.241 */
--
--enum {
--    kReadOnly = 0x01,
--    kHasVolumePassword = 0x02,
--    kSupportsFileIDs = 0x04,
--    kSupportsCatSearch = 0x08,
--    kSupportsBlankAccessPrivs = 0x10,
--    kSupportsUnixPrivs = 0x20,
--    kSupportsUTF8Names = 0x40,
--    kNoNetworkUserIDs = 0x80,
--    kDefaultPrivsFromParent = 0x100,
--    kNoExchangeFiles = 0x200,
--    kSupportsExtAttrs = 0x400,
--    kSupportsACLs=0x800
--};
--
--/* AFP file creation constantes, p.250 */
--enum {
--kFPSoftCreate = 0,
--kFPHardCreate = 0x80
--};
--
--/* AFP Directory attributes, taken from the protocol guide p.236 */
--
--enum {
--    kFPAttributeBit = 0x1,
--    kFPParentDirIDBit = 0x2,
--    kFPCreateDateBit = 0x4,
--    kFPModDateBit = 0x8,
--    kFPBackupDateBit = 0x10,
--    kFPFinderInfoBit = 0x20,
--    kFPLongNameBit = 0x40,
--    kFPShortNameBit = 0x80,
--    kFPNodeIDBit = 0x100,
--    kFPOffspringCountBit = 0x0200,
--    kFPOwnerIDBit = 0x0400,
--    kFPGroupIDBit = 0x0800,
--    kFPAccessRightsBit = 0x1000,
--    kFPProDOSInfoBit = 0x2000, // AFP version 2.2 and earlier
--    kFPUTF8NameBit = 0x2000, // AFP version 3.0 and later
--    kFPUnixPrivsBit = 0x8000 // AFP version 3.0 and later
--};
--
--/* AFP File bitmap, p.238.  These are the ones not in the AFP Directory
--   attributes map. */
--
--enum {
--	kFPDataForkLenBit = 0x0200,
--	kFPRsrcForkLenBit = 0x0400,
--	kFPExtDataForkLenBit = 0x0800, // AFP version 3.0 and later
--	kFPLaunchLimitBit = 0x1000,
--	kFPExtRsrcForkLenBit = 0x4000, // AFP version 3.0 and later
--};
--
--/* AFP Extended Attributes Bitmap, p.238  */
--
--enum {
--	kXAttrNoFollow = 0x1,
--	kXAttrCreate = 0x2,
--	kXAttrREplace=0x4
--};
--
--
--/* AFP function codes */
--enum AFPFunction
--{
--        afpByteRangeLock = 1, afpCloseVol, afpCloseDir, afpCloseFork,
--        afpCopyFile, afpCreateDir, afpCreateFile,
--        afpDelete, afpEnumerate, afpFlush, afpFlushFork,
--        afpGetForkParms = 14, afpGetSrvrInfo, afpGetSrvrParms,
--        afpGetVolParms, afpLogin, afpLoginCont, afpLogout, afpMapID,
--        afpMapName, afpMoveAndRename, afpOpenVol, afpOpenDir, afpOpenFork,
--        afpRead, afpRename, afpSetDirParms, afpSetFileParms,
--        afpSetForkParms, afpSetVolParms, afpWrite, afpGetFileDirParms,
--	afpSetFileDirParms, afpChangePassword,
--        afpGetUserInfo=37,afpGetSrvrMsg = 38,
--	afpOpenDT=48,
--	afpCloseDT=49,
--	afpGetIcon=51, afpGetIconInfo=52,
--	afpAddComment=56, afpRemoveComment=57, afpGetComment=58,
--	afpByteRangeLockExt=59, afpReadExt, afpWriteExt,
--	afpGetAuthMethods=62,
--	afp_LoginExt=63,
--	afpGetSessionToken=64,
--	afpDisconnectOldSession=65,
--	afpEnumerateExt=66,
--	afpCatSearchExt = 67,
--	afpEnumerateExt2 = 68, afpGetExtAttr, afpSetExtAttr, 
--	afpRemoveExtAttr , afpListExtAttrs,
--	afpZzzzz = 122,
--	afpAddIcon=192,
--};
--
--/* AFP Volume bitmap.  Take from 242 of the protocol guide. */
--enum {
--	kFPBadVolPre222Bitmap = 0xFe00,
--	kFPBadVolBitmap = 0xF000,
--	kFPVolAttributeBit = 0x1,
--	kFPVolSignatureBit = 0x2,
--	kFPVolCreateDateBit = 0x4,
--	kFPVolModDateBit = 0x8,
--	kFPVolBackupDateBit = 0x10,
--	kFPVolIDBit = 0x20,
--	kFPVolBytesFreeBit = 0x40,
--	kFPVolBytesTotalBit = 0x80,
--	kFPVolNameBit = 0x100,
--	kFPVolExtBytesFreeBit = 0x200,
--	kFPVolExtBytesTotalBit = 0x400,
--	kFPVolBlockSizeBit = 0x800
--};
--
--/* AFP Attention Codes -- 4 bits */
--#define AFPATTN_SHUTDOWN     (1 << 15)            /* shutdown/disconnect */
--#define AFPATTN_CRASH        (1 << 14)            /* server crashed */
--#define AFPATTN_MESG         (1 << 13)            /* server has message */
--#define AFPATTN_NORECONNECT  (1 << 12)            /* don't reconnect */
--/* server notification */
--#define AFPATTN_NOTIFY       (AFPATTN_MESG | AFPATTN_NORECONNECT) 
--
--/* extended bitmap -- 12 bits. volchanged is only useful w/ a server
-- * notification, and time is only useful for shutdown. */
--#define AFPATTN_VOLCHANGED   (1 << 0)             /* volume has changed */
--#define AFPATTN_TIME(x)      ((x) & 0xfff)        /* time in minutes */
--
--#define kFPNoErr 0
--
--/* AFP result codes, p252 */
--#define kASPSessClosed -1072
--#define kFPAccessDenied -5000
--#define kFPAuthContinue -5001
--#define kFPBadUAM -5002
--#define kFPBadVersNum -5003
--#define kFPBitmapErr -5004
--#define kFPCantMove -5005
--#define kFPDenyConflict -5006
--#define kFPDirNotEmpty -5007
--#define kFPDiskFull -5008
--#define kFPEOFErr -5009
--#define kFPFileBusy -5010
--#define kFPFlatVol -5011
--#define kFPItemNotFound -5012
--#define kFPLockErr -5013
--#define kFPMiscErr -5014
--#define kFPNoMoreLocks -5015
--#define kFPNoServer -5016
--#define kFPObjectExists -5017
--#define kFPObjectNotFound -5018
--#define kFPParamErr -5019
--#define kFPRangeNotLocked -5020
--#define kFPRangeOverlap -5021
--#define kFPSessClosed -5022
--#define kFPUserNotAuth -5023
--#define kFPCallNotSupported -5024
--#define kFPObjectTypeErr -5025
--#define kFPTooManyFilesOpen -5026
--#define kFPServerGoingDown -5027
--#define kFPCantRename -5028
--#define kFPDirNotFound -5029
--#define kFPIconTypeError -5030
--#define kFPVolLocked -5031
--#define kFPObjectLocked -5032
--#define kFPContainsSharedErr -5033
--#define kFPIDNotFound -5034
--#define kFPIDExists -5035
--#define kFPDiffVolErr  -5036
--#define kFPCatalogChanged -5037
--#define kFPSameObjectErr -5038
--#define kFPBadIDErr -5039
--#define kFPPwdSameErr -5040
--#define kFPPwdTooShortErr -5041
--#define kFPPwdExpiredErr -5042
--#define kFPInsideSharedErr -5043
--#define kFPInsideTrashErr -5044
--#define kFPPwdNeedsChangeErr -5045
--#define kFPPwdPolicyErr -5046
--#define kFPDiskQuotaExceeded –5047 
--
--
--
--/* These flags determine to lock or unlock in ByteRangeLock(Ext) */
--
--enum {
--ByteRangeLock_Lock = 0,
--ByteRangeLock_Unlock = 1
--};
--
--/* These flags are used in volopen and getsrvrparm replies, p.171 */
--
--#define HasConfigInfo 0x1
--#define HasPassword 0x80
--
--/* These are the subfunction for kFPMapID, as per p.248 */
--
--enum {
--kUserIDToName = 1,
--kGroupIDToName = 2,
--kUserIDToUTF8Name = 3,
--kGroupIDToUTF8Name = 4,
--kUserUUIDToUTF8Name = 5,
--kGroupUUIDToUTF8Name = 6
--};
--
--
--/* These are the subfunction flags described in the FPMapName command, p.286.
--   Note that this is different than what's described on p. 186. */
--
--enum {
--kNameToUserID = 1,
--kNameToGroupID = 2,
--kUTF8NameToUserID = 3,
--kUTF8NameToGroupID = 4,
--kUTF8NameToUserUUID = 5,
--kUTF8NameToGroupUUID = 6
--};
--
--/* These are bits for FPGetUserInfo, p.173. */
--#define kFPGetUserInfo_USER_ID 1
--#define kFPGetUserInfo_PRI_GROUPID 2
--
--/* Flags for the replies of GetSrvrInfo and DSI GetStatus, p.240 */
--
--enum {
--	kSupportsCopyfile = 0x01,
--	kSupportsChgPwd = 0x02,
--	kDontAllowSavePwd = 0x04,
--	kSupportsSrvrMsg = 0x08,
--	kSrvrSig = 0x10,
--	kSupportsTCP = 0x20,
--	kSupportsSrvrNotify = 0x40,
--	kSupportsReconnect = 0x80,
--	kSupportsDirServices = 0x100,
--	kSupportsUTF8SrvrName = 0x200,
--	kSupportsUUIDs = 0x400,
--	kSupportsSuperClient = 0x8000
--};
--
--
--/* p.247 */
--
--enum {
--	kLoginWithoutID = 0,
--	kLoginWithID = 1,
--	kReconnWithID = 2,
--	kLoginWithTimeAndID = 3,
--	kReconnWithTimeAndID = 4,
--	kRecon1Login = 5,
--	kRecon1ReconnectLogin = 6,
--	kRecon1Refresh = 7, kGetKerberosSessionKey = 8
--};
--
--
--#define AFP_CHMOD_ALLOWED_BITS_22 \
--	(S_IRUSR |S_IWUSR | S_IRGRP | S_IWGRP |S_IROTH | S_IWOTH | S_IFREG )
--
--
--#endif
--
--
--
--
-diff -Naur afpfs-ng-0.8.1/include/codepage.h afpfs-ng-0.8.1.patch/include/codepage.h
---- afpfs-ng-0.8.1/include/codepage.h	2007-09-23 16:21:30.000000000 +0200
-+++ afpfs-ng-0.8.1.patch/include/codepage.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,11 +0,0 @@
--#ifndef __CODE_PAGE_H_
--#define __CODE_PAGE_H_
--int convert_utf8dec_to_utf8pre(const char *src, int src_len,
--	char * dest, int dest_len);
--int convert_utf8pre_to_utf8dec(const char * src, int src_len, 
--	char * dest, int dest_len);
--int convert_path_to_unix(char encoding, char * dest, 
--	char * src, int dest_len);
--int convert_path_to_afp(char encoding, char * dest, 
--	char * src, int dest_len);
--#endif
-diff -Naur afpfs-ng-0.8.1/include/dsi.h afpfs-ng-0.8.1.patch/include/dsi.h
---- afpfs-ng-0.8.1/include/dsi.h	2008-02-18 04:33:24.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/dsi.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,33 +0,0 @@
--
--#ifndef __DSI_H_
--#define __DSI_H_
--
--#include "afp.h"
--
--struct dsi_request
--{
--	unsigned short requestid;
--	unsigned char subcommand;
--	void * other;
--	unsigned char wait;
--	pthread_cond_t  condition_cond;
--	struct dsi_request * next;
--	int return_code;
--};
--
--int dsi_receive(struct afp_server * server, void * data, int size);
--int dsi_getstatus(struct afp_server * server);
--
--int dsi_opensession(struct afp_server *server);
--
--int dsi_send(struct afp_server *server, char * msg, int size,int wait,unsigned char subcommand, void ** other);
--struct dsi_session * dsi_create(struct afp_server *server);
--int dsi_restart(struct afp_server *server);
--int dsi_recv(struct afp_server * server);
--
--#define DSI_BLOCK_TIMEOUT -1
--#define DSI_DONT_WAIT 0
--#define DSI_DEFAULT_TIMEOUT 5
--
--
--#endif
-diff -Naur afpfs-ng-0.8.1/include/libafpclient.h afpfs-ng-0.8.1.patch/include/libafpclient.h
---- afpfs-ng-0.8.1/include/libafpclient.h	2008-01-30 05:37:59.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/libafpclient.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,50 +0,0 @@
--
--#ifndef __CLIENT_H_
--#define __CLIENT_H_
--
--#include <unistd.h>
--#include <syslog.h>
--
--#define MAX_CLIENT_RESPONSE 2048
--
--
--enum loglevels {
--        AFPFSD,
--};
--
--struct afp_server;
--struct afp_volume;
--
--struct libafpclient {
--        int (*unmount_volume) (struct afp_volume * volume);
--	void (*log_for_client)(void * priv,
--        	enum loglevels loglevel, int logtype, const char *message);
--	void (*forced_ending_hook)(void);
--	int (*scan_extra_fds)(int command_fd,fd_set *set, int * max_fd);
--	void (*loop_started)(void);
--} ;
--
--extern struct libafpclient * libafpclient;
--
--void libafpclient_register(struct libafpclient * tmpclient);
--
--
--void signal_main_thread(void);
--
--/* These are logging functions */
--
--#define MAXLOGSIZE 2048
--
--#define LOG_METHOD_SYSLOG 1
--#define LOG_METHOD_STDOUT 2
--
--void set_log_method(int m);
--
--
--void log_for_client(void * priv,
--        enum loglevels loglevel, int logtype, char * message,...);
--
--void stdout_log_for_client(void * priv,
--	enum loglevels loglevel, int logtype, const char *message);
--
--#endif
-diff -Naur afpfs-ng-0.8.1/include/Makefile.am afpfs-ng-0.8.1.patch/include/Makefile.am
---- afpfs-ng-0.8.1/include/Makefile.am	1970-01-01 01:00:00.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/Makefile.am	2011-09-10 12:13:50.126124692 +0200
-@@ -0,0 +1,3 @@
-+## Process this file with automake to produce Makefile.in
-+
-+SUBDIRS = afpfs-ng
-diff -Naur afpfs-ng-0.8.1/include/map_def.h afpfs-ng-0.8.1.patch/include/map_def.h
---- afpfs-ng-0.8.1/include/map_def.h	2008-01-17 05:55:46.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/map_def.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,15 +0,0 @@
--#ifndef __MAP_H_
--#define __MAP_H_
--
--#include "afp.h"
--
--#define AFP_MAPPING_UNKNOWN 0
--#define AFP_MAPPING_COMMON 1
--#define AFP_MAPPING_LOGINIDS 2
--#define AFP_MAPPING_NAME 3
--
--unsigned int map_string_to_num(char * name);
--char * get_mapping_name(struct afp_volume * volume);
--
--
--#endif
-diff -Naur afpfs-ng-0.8.1/include/midlevel.h afpfs-ng-0.8.1.patch/include/midlevel.h
---- afpfs-ng-0.8.1/include/midlevel.h	2007-12-24 20:39:25.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/midlevel.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,64 +0,0 @@
--#ifndef __MIDLEVEL_H_
--#define __MIDLEVEL_H_ 
--
--#include <utime.h>
--#include "afp.h"
--
--int ml_open(struct afp_volume * volume, const char *path, int flags, 
--        struct afp_file_info **newfp);
--
--int ml_creat(struct afp_volume * volume, const char *path,mode_t mode);
--
--int ml_readdir(struct afp_volume * volume, 
--	const char *path, 
--	struct afp_file_info **base);
--
--int ml_read(struct afp_volume * volume, const char *path,
--	char *buf, size_t size, off_t offset,
--	struct afp_file_info *fp, int * eof);
--
--int ml_chmod(struct afp_volume * vol, const char * path, mode_t mode);
--
--int ml_unlink(struct afp_volume * vol, const char *path);
--
--int ml_mkdir(struct afp_volume * vol, const char * path, mode_t mode);
--
--int ml_close(struct afp_volume * volume, const char * path,
--        struct afp_file_info * fp);
--
--int ml_getattr(struct afp_volume * volume, const char *path, 
--	struct stat *stbuf);
--
--int ml_write(struct afp_volume * volume, const char * path, 
--	const char *data, size_t size, off_t offset,
--	struct afp_file_info * fp, uid_t uid,
--	gid_t gid);
--
--int ml_readlink(struct afp_volume * vol, const char * path,
--        char *buf, size_t size);
--
--int ml_rmdir(struct afp_volume * vol, const char *path);
--
--int ml_chown(struct afp_volume * vol, const char * path,   
--        uid_t uid, gid_t gid);
--
--int ml_truncate(struct afp_volume * vol, const char * path, off_t offset);
--
--int ml_utime(struct afp_volume * vol, const char * path,
--	struct utimbuf * timebuf);
--
--int ml_symlink(struct afp_volume *vol, const char * path1, const char * path2);
--
--int ml_rename(struct afp_volume * vol,
--	const char * path_from, const char * path_to);
--
--int ml_statfs(struct afp_volume * vol, const char *path, struct statvfs *stat);
--
--void afp_ml_filebase_free(struct afp_file_info **filebase);
--
--int ml_passwd(struct afp_server *server,
--                char * username, char * oldpasswd, char * newpasswd);
--
--
--
--#endif
-diff -Naur afpfs-ng-0.8.1/include/uams_def.h afpfs-ng-0.8.1.patch/include/uams_def.h
---- afpfs-ng-0.8.1/include/uams_def.h	2007-09-07 15:10:51.000000000 +0200
-+++ afpfs-ng-0.8.1.patch/include/uams_def.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,16 +0,0 @@
--#ifndef __UAM_DEFS_H_
--#define __UAM_DEFS_H_
--
--#define UAM_NOUSERAUTHENT 0x1
--#define UAM_CLEARTXTPASSWRD 0x2
--#define UAM_RANDNUMEXCHANGE 0x4
--#define UAM_2WAYRANDNUM 0x8
--#define UAM_DHCAST128 0x10
--#define UAM_CLIENTKRB 0x20
--#define UAM_DHX2 0x40
--#define UAM_RECON1 0x80
--
--int uam_string_to_bitmap(char * name);
--char * uam_bitmap_to_string(unsigned int bitmap);
--
--#endif
-diff -Naur afpfs-ng-0.8.1/include/utils.h afpfs-ng-0.8.1.patch/include/utils.h
---- afpfs-ng-0.8.1/include/utils.h	2008-02-18 04:33:58.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/include/utils.h	1970-01-01 01:00:00.000000000 +0100
-@@ -1,43 +0,0 @@
--#ifndef __UTILS_H_
--#define __UTILS_H_
--#include <stdio.h>
--
--#include "afp.h"
--
--#if BYTE_ORDER == BIG_ENDIAN
--#define hton64(x)       (x)
--#define ntoh64(x)       (x)
--#else /* BYTE_ORDER == BIG_ENDIAN */
--#define hton64(x)       ((u_int64_t) (htonl(((x) >> 32) & 0xffffffffLL)) | \
--                         (u_int64_t) ((htonl(x) & 0xffffffffLL) << 32))
--#define ntoh64(x)       (hton64(x))
--#endif /* BYTE_ORDER == BIG_ENDIAN */
--
--#define min(a,b) (((a)<(b)) ? (a) : (b))
--#define max(a,b) (((a)>(b)) ? (a) : (b))
--
--
--
--unsigned char unixpath_to_afppath(
--        struct afp_server * server,
--        char * buf);
--
--unsigned char sizeof_path_header(struct afp_server * server);
--
--
--
--unsigned char copy_from_pascal(char *dest, char *pascal,unsigned int max_len) ;
--unsigned short copy_from_pascal_two(char *dest, char *pascal,unsigned int max_len);
--
--unsigned char copy_to_pascal(char *dest, const char *src);
--unsigned short copy_to_pascal_two(char *dest, const char *src);
--
--void copy_path(struct afp_server * server, char * dest, const char * pathname, unsigned char len);
--
--
--char * create_path(struct afp_server * server, char * pathname, unsigned short * len);
--
--
--int invalid_filename(struct afp_server * server, const char * filename);
--
--#endif
-diff -Naur afpfs-ng-0.8.1/lib/afp.c afpfs-ng-0.8.1.patch/lib/afp.c
---- afpfs-ng-0.8.1/lib/afp.c	2008-03-08 03:44:16.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/afp.c	2011-09-10 12:13:50.131124759 +0200
-@@ -9,7 +9,7 @@
- 
- 
- 
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- #include <config.h>
- 
- #include <stdio.h>
-@@ -21,17 +21,17 @@
- #include <sys/socket.h>
- #include <errno.h>
- 
--#include "afp_protocol.h"
--#include "libafpclient.h"
-+#include "afpfs-ng/afp_protocol.h"
-+#include "afpfs-ng/libafpclient.h"
- #include "server.h"
--#include "dsi.h"
-+#include "afpfs-ng/dsi.h"
- #include "dsi_protocol.h"
--#include "utils.h"
-+#include "afpfs-ng/utils.h"
- #include "afp_replies.h"
- #include "afp_internal.h"
- #include "did.h"
- #include "forklist.h"
--#include "codepage.h"
-+#include "afpfs-ng/codepage.h"
- 
- struct afp_versions      afp_versions[] = {
-             { "AFPVersion 1.1", 11 },
-diff -Naur afpfs-ng-0.8.1/lib/afp_internal.h afpfs-ng-0.8.1.patch/lib/afp_internal.h
---- afpfs-ng-0.8.1/lib/afp_internal.h	2007-11-09 05:27:20.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/afp_internal.h	2011-09-10 12:13:50.132124772 +0200
-@@ -1,7 +1,7 @@
- #ifndef _AFP_INTERNAL_H_
- #define _AFP_INTERNAL_H_
- 
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- 
- extern struct afp_versions afp_versions[];
- 
-diff -Naur afpfs-ng-0.8.1/lib/afp_url.c afpfs-ng-0.8.1.patch/lib/afp_url.c
---- afpfs-ng-0.8.1/lib/afp_url.c	2008-03-04 21:16:49.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/afp_url.c	2011-09-10 12:13:50.132124772 +0200
-@@ -3,7 +3,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <errno.h>
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- 
- void afp_default_url(struct afp_url *url)
- {
-diff -Naur afpfs-ng-0.8.1/lib/client.c afpfs-ng-0.8.1.patch/lib/client.c
---- afpfs-ng-0.8.1/lib/client.c	2008-02-18 04:36:30.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/client.c	2011-09-10 12:13:50.132124772 +0200
-@@ -1,5 +1,5 @@
--#include <afp.h>
--#include <libafpclient.h>
-+#include <afpfs-ng/afp.h>
-+#include <afpfs-ng/libafpclient.h>
- 
- 
- struct libafpclient * libafpclient = NULL;
-diff -Naur afpfs-ng-0.8.1/lib/codepage.c afpfs-ng-0.8.1.patch/lib/codepage.c
---- afpfs-ng-0.8.1/lib/codepage.c	2008-02-18 04:36:54.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/codepage.c	2011-09-10 12:13:50.133124786 +0200
-@@ -14,8 +14,8 @@
- 
- #include <string.h>
- #include <stdlib.h>
--#include "afp_protocol.h"
--#include "utils.h"
-+#include "afpfs-ng/afp_protocol.h"
-+#include "afpfs-ng/utils.h"
- #include "unicode.h"
- 
- int convert_utf8dec_to_utf8pre(const char *src, int src_len,
-diff -Naur afpfs-ng-0.8.1/lib/connect.c afpfs-ng-0.8.1.patch/lib/connect.c
---- afpfs-ng-0.8.1/lib/connect.c	2008-02-18 04:38:59.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/connect.c	2011-09-10 12:13:50.133124786 +0200
-@@ -10,13 +10,13 @@
- #include <string.h>
- #include <sys/socket.h>
- 
--#include "afp.h"
--#include "dsi.h"
--#include "utils.h"
--#include "uams_def.h"
--#include "codepage.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/uams_def.h"
-+#include "afpfs-ng/codepage.h"
- #include "users.h"
--#include "libafpclient.h"
-+#include "afpfs-ng/libafpclient.h"
- #include "server.h"
- 
- 
-diff -Naur afpfs-ng-0.8.1/lib/did.c afpfs-ng-0.8.1.patch/lib/did.c
---- afpfs-ng-0.8.1/lib/did.c	2008-02-18 04:39:17.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/did.c	2011-09-10 12:13:50.133124786 +0200
-@@ -9,8 +9,8 @@
- #include <string.h>
- #include <stdio.h>
- 
--#include "afp.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/afp_protocol.h"
- 
- #undef DID_CACHE_DISABLE
- 
-diff -Naur afpfs-ng-0.8.1/lib/dsi.c afpfs-ng-0.8.1.patch/lib/dsi.c
---- afpfs-ng-0.8.1/lib/dsi.c	2008-02-18 04:53:03.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/dsi.c	2011-09-10 12:13:50.134124800 +0200
-@@ -19,12 +19,12 @@
- #include <signal.h>
- #include <iconv.h>
- 
--#include "utils.h"
--#include "dsi.h"
--#include "afp.h"
--#include "uams_def.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/uams_def.h"
- #include "dsi_protocol.h"
--#include "libafpclient.h"
-+#include "afpfs-ng/libafpclient.h"
- #include "afp_internal.h"
- #include "afp_replies.h"
- 
-diff -Naur afpfs-ng-0.8.1/lib/forklist.c afpfs-ng-0.8.1.patch/lib/forklist.c
---- afpfs-ng-0.8.1/lib/forklist.c	2008-01-17 05:49:16.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/forklist.c	2011-09-10 12:13:50.135124814 +0200
-@@ -10,7 +10,7 @@
- */
- 
- 
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- 
- #include <stdlib.h>
- #include <pthread.h>
-diff -Naur afpfs-ng-0.8.1/lib/log.c afpfs-ng-0.8.1.patch/lib/log.c
---- afpfs-ng-0.8.1/lib/log.c	2008-01-30 05:37:58.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/log.c	2011-09-10 12:13:50.135124814 +0200
-@@ -3,7 +3,7 @@
- #include <stdarg.h>
- #include <string.h>
- #include <stdlib.h>
--#include "libafpclient.h"
-+#include "afpfs-ng/libafpclient.h"
- 
- void log_for_client(void * priv,
- 	enum loglevels loglevel, int logtype, char *format, ...) {
-diff -Naur afpfs-ng-0.8.1/lib/loop.c afpfs-ng-0.8.1.patch/lib/loop.c
---- afpfs-ng-0.8.1/lib/loop.c	2008-02-18 04:40:11.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/loop.c	2011-09-10 12:13:50.135124814 +0200
-@@ -16,9 +16,9 @@
- #include <sys/time.h>
- #include <signal.h>
- 
--#include "afp.h"
--#include "dsi.h"
--#include "utils.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/utils.h"
- 
- #define SIGNAL_TO_USE SIGUSR2
- 
-@@ -85,7 +85,7 @@ void signal_main_thread(void)
- }
- 
- static int ending=0;
--void * just_end_it_now(void * ignore)
-+void just_end_it_now(void * ignore)
- {
- 	if (ending) return;
- 	ending=1;
- 	
-diff -Naur afpfs-ng-0.8.1/lib/lowlevel.c afpfs-ng-0.8.1.patch/lib/lowlevel.c
---- afpfs-ng-0.8.1/lib/lowlevel.c	2008-02-20 02:33:17.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/lowlevel.c	2011-09-10 12:13:50.136124828 +0200
-@@ -19,10 +19,10 @@
- #else
- #include <fcntl.h>
- #endif
--#include "afp.h"
--#include "afp_protocol.h"
--#include "codepage.h"
--#include "utils.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/afp_protocol.h"
-+#include "afpfs-ng/codepage.h"
-+#include "afpfs-ng/utils.h"
- #include "did.h"
- #include "users.h"
- 
-diff -Naur afpfs-ng-0.8.1/lib/map_def.c afpfs-ng-0.8.1.patch/lib/map_def.c
---- afpfs-ng-0.8.1/lib/map_def.c	2007-09-07 15:10:59.000000000 +0200
-+++ afpfs-ng-0.8.1.patch/lib/map_def.c	2011-09-10 12:13:50.136124828 +0200
-@@ -1,6 +1,6 @@
- #include <string.h>
--#include "afp.h"
--#include "map_def.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/map_def.h"
- 
- static char *afp_map_strings[] = {
- 	"Unknown",
-diff -Naur afpfs-ng-0.8.1/lib/meta.c afpfs-ng-0.8.1.patch/lib/meta.c
---- afpfs-ng-0.8.1/lib/meta.c	2008-01-04 04:52:44.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/meta.c	2011-09-10 12:13:50.137124841 +0200
-@@ -17,10 +17,10 @@
- #include <unistd.h>
- #include <sys/time.h>
- 
--#include "afp.h"
--#include "dsi.h"
--#include "afp_protocol.h"
--#include "utils.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp_protocol.h"
-+#include "afpfs-ng/utils.h"
- 
- 
- int afp_meta_getattr(const char *path, struct stat *stbuf)
-diff -Naur afpfs-ng-0.8.1/lib/midlevel.c afpfs-ng-0.8.1.patch/lib/midlevel.c
---- afpfs-ng-0.8.1/lib/midlevel.c	2008-03-08 17:08:18.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/midlevel.c	2011-09-10 12:13:50.160125150 +0200
-@@ -10,7 +10,7 @@
- */
- 
- 
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- 
- #include <sys/stat.h>
- #include <string.h>
-@@ -28,9 +28,9 @@
- #include "users.h"
- #include "did.h"
- #include "resource.h"
--#include "utils.h"
--#include "codepage.h"
--#include "midlevel.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/codepage.h"
-+#include "afpfs-ng/midlevel.h"
- #include "afp_internal.h"
- #include "forklist.h"
- #include "uams.h"
-diff -Naur afpfs-ng-0.8.1/lib/proto_attr.c afpfs-ng-0.8.1.patch/lib/proto_attr.c
---- afpfs-ng-0.8.1/lib/proto_attr.c	2008-01-30 05:37:58.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_attr.c	2011-09-10 12:13:50.168125257 +0200
-@@ -7,10 +7,10 @@
- 
- #include <string.h>
- #include <stdlib.h>
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/afp_protocol.h"
- #include "dsi_protocol.h"
- 
- /* This is a new command, function 76.  There are currently no docs, so this 
-diff -Naur afpfs-ng-0.8.1/lib/proto_desktop.c afpfs-ng-0.8.1.patch/lib/proto_desktop.c
---- afpfs-ng-0.8.1/lib/proto_desktop.c	2008-02-18 04:44:11.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_desktop.c	2011-09-10 12:13:50.168125257 +0200
-@@ -9,10 +9,10 @@
- #include <string.h>
- #include <stdlib.h>
- 
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/afp_protocol.h"
- #include "dsi_protocol.h"
- 
- /* closedt, addicon, geticoninfo, addappl, removeappl */
-diff -Naur afpfs-ng-0.8.1/lib/proto_directory.c afpfs-ng-0.8.1.patch/lib/proto_directory.c
---- afpfs-ng-0.8.1/lib/proto_directory.c	2008-02-19 03:39:29.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_directory.c	2011-09-10 12:13:50.168125257 +0200
-@@ -9,10 +9,10 @@
- #include <string.h>
- #include <stdlib.h>
- 
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/afp_protocol.h"
- #include "dsi_protocol.h"
- #include "afp_replies.h"
- 
-diff -Naur afpfs-ng-0.8.1/lib/proto_files.c afpfs-ng-0.8.1.patch/lib/proto_files.c
---- afpfs-ng-0.8.1/lib/proto_files.c	2008-02-18 04:46:18.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_files.c	2011-09-10 12:13:50.169125270 +0200
-@@ -8,11 +8,11 @@
- 
- #include <stdlib.h>
- #include <string.h>
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "dsi_protocol.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/afp_protocol.h"
- #include "afp_internal.h"
- 
- /* afp_setfileparms, afp_setdirparms and afpsetfiledirparms are all remarkably
-diff -Naur afpfs-ng-0.8.1/lib/proto_fork.c afpfs-ng-0.8.1.patch/lib/proto_fork.c
---- afpfs-ng-0.8.1/lib/proto_fork.c	2008-01-30 05:37:58.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_fork.c	2011-09-10 12:13:50.169125270 +0200
-@@ -9,11 +9,11 @@
- #include <stdlib.h>
- #include <string.h>
- 
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "dsi_protocol.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/afp_protocol.h"
- 
- int afp_setforkparms(struct afp_volume * volume,
- 	unsigned short forkid, unsigned short bitmap, unsigned long len)
-diff -Naur afpfs-ng-0.8.1/lib/proto_login.c afpfs-ng-0.8.1.patch/lib/proto_login.c
---- afpfs-ng-0.8.1/lib/proto_login.c	2008-01-30 05:37:59.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_login.c	2011-09-10 12:13:50.169125270 +0200
-@@ -10,10 +10,10 @@
- 
- #include <stdlib.h>
- #include <string.h>
--#include "dsi.h"
-+#include "afpfs-ng/dsi.h"
- #include "dsi_protocol.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "afp_internal.h"
- 
- 
-diff -Naur afpfs-ng-0.8.1/lib/proto_map.c afpfs-ng-0.8.1.patch/lib/proto_map.c
---- afpfs-ng-0.8.1/lib/proto_map.c	2008-01-30 05:37:59.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_map.c	2011-09-10 12:13:50.170125283 +0200
-@@ -9,11 +9,11 @@
- #include <stdlib.h>
- #include <string.h>
- 
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "dsi_protocol.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/afp_protocol.h"
- 
- /* This is used to pass the return values back from afp_getuserinfo_reply() */
- struct uidgid {
-diff -Naur afpfs-ng-0.8.1/lib/proto_replyblock.c afpfs-ng-0.8.1.patch/lib/proto_replyblock.c
---- afpfs-ng-0.8.1/lib/proto_replyblock.c	2008-02-18 04:46:19.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_replyblock.c	2011-09-10 12:13:50.170125283 +0200
-@@ -6,9 +6,9 @@
-  */
- 
- #include <string.h>
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "afp_internal.h"
- 
- 
-diff -Naur afpfs-ng-0.8.1/lib/proto_server.c afpfs-ng-0.8.1.patch/lib/proto_server.c
---- afpfs-ng-0.8.1/lib/proto_server.c	2008-02-19 02:56:21.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_server.c	2011-09-10 12:13:50.170125283 +0200
-@@ -7,12 +7,12 @@
-  */
- #include <stdlib.h>
- #include <string.h>
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "dsi_protocol.h"
--#include "afp_protocol.h"
--#include "codepage.h"
-+#include "afpfs-ng/afp_protocol.h"
-+#include "afpfs-ng/codepage.h"
- #include "afp_internal.h"
- 
- int afp_getsrvrparms(struct afp_server *server)
-diff -Naur afpfs-ng-0.8.1/lib/proto_session.c afpfs-ng-0.8.1.patch/lib/proto_session.c
---- afpfs-ng-0.8.1/lib/proto_session.c	2008-02-18 04:46:19.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_session.c	2011-09-10 12:13:50.170125283 +0200
-@@ -8,10 +8,10 @@
-  */
- #include <stdlib.h>
- #include <string.h>
--#include "dsi.h"
-+#include "afpfs-ng/dsi.h"
- #include "dsi_protocol.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- 
- int afp_getsessiontoken(struct afp_server * server, int type, 
- 	unsigned int timestamp, struct afp_token *outgoing_token, 
-diff -Naur afpfs-ng-0.8.1/lib/proto_volume.c afpfs-ng-0.8.1.patch/lib/proto_volume.c
---- afpfs-ng-0.8.1/lib/proto_volume.c	2008-02-18 04:47:48.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/proto_volume.c	2011-09-10 12:13:50.171125296 +0200
-@@ -8,13 +8,13 @@
- 
- #include <string.h>
- #include <stdlib.h>
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "dsi_protocol.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/afp_protocol.h"
- #include "afp_internal.h"
--#include "codepage.h"
-+#include "afpfs-ng/codepage.h"
- 
- static int parse_volbitmap_reply(struct afp_server * server, 
- 		struct afp_volume * tmpvol, 
-diff -Naur afpfs-ng-0.8.1/lib/resource.c afpfs-ng-0.8.1.patch/lib/resource.c
---- afpfs-ng-0.8.1/lib/resource.c	2008-02-18 04:46:56.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/resource.c	2011-09-10 12:13:50.171125296 +0200
-@@ -3,11 +3,11 @@
- #include <string.h>
- #include <errno.h>
- #include <fcntl.h>
--#include "afp.h"
-+#include "afpfs-ng/afp.h"
- #include "resource.h"
- #include "lowlevel.h"
- #include "did.h"
--#include "midlevel.h"
-+#include "afpfs-ng/midlevel.h"
- 
- #define appledouble ".AppleDouble"
- #define finderinfo_string ".finderinfo"
-diff -Naur afpfs-ng-0.8.1/lib/server.c afpfs-ng-0.8.1.patch/lib/server.c
---- afpfs-ng-0.8.1/lib/server.c	2008-02-19 02:56:21.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/server.c	2011-09-10 12:13:50.172125310 +0200
-@@ -8,15 +8,15 @@
- #include <string.h>
- #include <time.h>
- 
--#include "afp.h"
--#include "dsi.h"
--#include "utils.h"
--#include "uams_def.h"
--#include "codepage.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/uams_def.h"
-+#include "afpfs-ng/codepage.h"
- #include "users.h"
--#include "libafpclient.h"
-+#include "afpfs-ng/libafpclient.h"
- #include "afp_internal.h"
--#include "dsi.h"
-+#include "afpfs-ng/dsi.h"
- 
- 
- struct afp_server * afp_server_complete_connection(
-diff -Naur afpfs-ng-0.8.1/lib/status.c afpfs-ng-0.8.1.patch/lib/status.c
---- afpfs-ng-0.8.1/lib/status.c	2008-03-08 17:08:38.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/status.c	2011-09-10 12:13:50.172125310 +0200
-@@ -1,8 +1,8 @@
- #include <string.h>
- #include <stdio.h>
--#include "map_def.h"
--#include "dsi.h"
--#include "afp.h"
-+#include "afpfs-ng/map_def.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
- 
- int afp_status_header(char * text, int * len) 
- {
-diff -Naur afpfs-ng-0.8.1/lib/uams.c afpfs-ng-0.8.1.patch/lib/uams.c
---- afpfs-ng-0.8.1/lib/uams.c	2008-01-04 04:52:44.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/uams.c	2011-09-10 12:13:50.173125324 +0200
-@@ -8,10 +8,10 @@
- 
- #include <string.h>
- #include <stdlib.h>
--#include "dsi.h"
--#include "afp.h"
--#include "utils.h"
--#include "uams_def.h"
-+#include "afpfs-ng/dsi.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
-+#include "afpfs-ng/uams_def.h"
- #include "config.h"
- 
- #ifdef HAVE_LIBGCRYPT
-diff -Naur afpfs-ng-0.8.1/lib/users.c afpfs-ng-0.8.1.patch/lib/users.c
---- afpfs-ng-0.8.1/lib/users.c	2008-02-18 04:48:56.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/users.c	2011-09-10 12:13:50.174125338 +0200
-@@ -3,8 +3,8 @@
- #include <grp.h>
- #include <string.h>
- 
--#include "afp.h"
--#include "map_def.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/map_def.h"
- 
- /* How mapping works
-  *
-diff -Naur afpfs-ng-0.8.1/lib/utils.c afpfs-ng-0.8.1.patch/lib/utils.c
---- afpfs-ng-0.8.1/lib/utils.c	2008-02-18 04:53:37.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/lib/utils.c	2011-09-10 12:13:50.174125338 +0200
-@@ -8,10 +8,10 @@
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
--#include "afp.h"
--#include "utils.h"
-+#include "afpfs-ng/afp.h"
-+#include "afpfs-ng/utils.h"
- #include "afp_internal.h"
--#include "afp_protocol.h"
-+#include "afpfs-ng/afp_protocol.h"
- 
- struct afp_path_header_long {
- 	unsigned char type;
-diff -Naur afpfs-ng-0.8.1/Makefile.am afpfs-ng-0.8.1.patch/Makefile.am
---- afpfs-ng-0.8.1/Makefile.am	2008-02-18 04:24:14.000000000 +0100
-+++ afpfs-ng-0.8.1.patch/Makefile.am	2011-09-10 12:13:50.176125365 +0200
-@@ -1,5 +1,5 @@
- if HAVE_LIBFUSE
--SUBDIRS = lib fuse cmdline docs
-+SUBDIRS = lib fuse cmdline include docs
- else
--SUBDIRS = lib cmdline docs
-+SUBDIRS = lib cmdline include docs
- endif
diff --git a/tools/depends/target/alsa-lib/Makefile b/tools/depends/target/alsa-lib/Makefile
deleted file mode 100644
index b03fc19..0000000
--- a/tools/depends/target/alsa-lib/Makefile
+++ /dev/null
@@ -1,64 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile removeshm-2.patch removeshm-3.patch removeshm-upstream.patch timeval.patch
-
-# lib name, version
-LIBNAME=libasound
-VERSION=1.0.23
-SOURCE=alsa-lib-$(VERSION)
-ARCHIVE=$(SOURCE).tar.bz2
-
-# configuration settings
-CFLAGS += \
-	-fPIC -DPIC \
-	-finline-limit=300 -finline-functions -fno-inline-functions-called-once \
-
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          $(AUTORECONF) -vif; \
-          ./configure --prefix=$(PREFIX) \
-          --with-alsa-devdir=/dev/snd/ --with-plugindir=/system/usr/lib/alsa-lib --with-configdir=/system/usr/share/alsa \
-          --with-ctl-plugins=ext \
-          --with-pcm-plugins="copy,linear,route,mulaw,alaw,adpcm,rate,plug,multi,file,null,empty,share,meter,hooks,lfloat,ladspa,asym,iec958,softvol,extplug,ioplug,mmap_emul" \
-          --disable-resmgr --enable-aload --enable-mixer  --enable-pcm  --disable-rawmidi  --enable-hwdep  --disable-seq  --disable-alisp  --disable-old-symbols --disable-python \
-          --with-softfloat=yes --with-libdl=yes --with-pthread=yes --with-librt=no --disable-shared \
-
-LIBDYLIB=$(PLATFORM)/src/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-ifeq ($(OS),android)
-	cd $(PLATFORM); patch -p1 < ../removeshm-upstream.patch
-	cd $(PLATFORM); patch -p0 < ../removeshm-2.patch
-	cd $(PLATFORM); patch -p0 < ../removeshm-3.patch
-	cd $(PLATFORM); patch -p0 < ../timeval.patch
-endif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)/src
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM)/src install-libLTLIBRARIES
-	$(MAKE) -C $(PLATFORM)/include install
-	$(MAKE) -C $(PLATFORM)/utils install
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/libasound.la $(PREFIX)/lib/libasound.so $(PREFIX)/lib/libxbasound.so $(PREFIX)/lib/libasound.so.2
-	mv -f $(PREFIX)/lib/libasound.so.2.0.0 $(PREFIX)/lib/libasound.so
-	$(RPL) -e "libasound.so.2" "libasound.so\x00\x00" $(PREFIX)/lib/libasound.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libasound.so | grep ibrary
-endif
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/alsa-lib/removeshm-2.patch b/tools/depends/target/alsa-lib/removeshm-2.patch
deleted file mode 100644
index 0bf5b18..0000000
--- a/tools/depends/target/alsa-lib/removeshm-2.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/compat/Makefile.am	2012-05-25 00:00:09.824890740 -0400
-+++ src/compat/Makefile.am	2012-05-25 14:47:53.694857153 -0400
-@@ -1,8 +1,3 @@
- noinst_LTLIBRARIES = libcompat.la
--EXTRA_libcompat_la_SOURCES = hsearch_r.c
- 
--if ALSA_HSEARCH_R
--libcompat_la_SOURCES = empty.c hsearch_r.c
--else
- libcompat_la_SOURCES = empty.c
--endif
diff --git a/tools/depends/target/alsa-lib/removeshm-3.patch b/tools/depends/target/alsa-lib/removeshm-3.patch
deleted file mode 100644
index 8f651fe..0000000
--- a/tools/depends/target/alsa-lib/removeshm-3.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/Makefile.am	2011-01-12 17:02:37.000000000 -0500
-+++ src/Makefile.am	2012-05-25 00:10:22.184890354 -0400
-@@ -14,7 +14,7 @@
- endif
- 
- lib_LTLIBRARIES = libasound.la
--libasound_la_SOURCES = conf.c confmisc.c input.c output.c async.c error.c dlmisc.c socket.c shmarea.c userfile.c names.c
-+libasound_la_SOURCES = conf.c confmisc.c input.c output.c async.c error.c dlmisc.c socket.c userfile.c names.c
- 
- SUBDIRS=control
- libasound_la_LIBADD = control/libcontrol.la
diff --git a/tools/depends/target/alsa-lib/removeshm-upstream.patch b/tools/depends/target/alsa-lib/removeshm-upstream.patch
deleted file mode 100644
index ab899c3..0000000
--- a/tools/depends/target/alsa-lib/removeshm-upstream.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From: Sean McNeil <sean.mcneil at windriver.com>
-Date: Wed, 7 Jul 2010 02:03:47 +0000 (+0700)
-Subject: Remove shared memory access.
-X-Git-Tag: tegra-10.11.0~2
-X-Git-Url: http://nv-tegra.nvidia.com/gitweb/?p=android%2Fplatform%2Fexternal%2Falsa-lib.git;a=commitdiff_plain;h=24def9277c1bf4ed5c19b73ed3e76d761f992ddb
-
-Remove shared memory access.
-
-Somehow these changes didn't get committed.
-
-Change-Id: Ida7b706de56d95c8fb22d2708711a4d68c41ddaa
----
-
-diff --git a/src/alisp/alisp.c b/src/alisp/alisp.c
-index f3580f9..279a24c 100644
---- a/src/alisp/alisp.c
-+++ b/src/alisp/alisp.c
-@@ -1025,6 +1025,7 @@ static const char *obj_type_str(struct alisp_object * p)
- 	case ALISP_OBJ_CONS: return "cons";
- 	default: assert(0);
- 	}
-+	return 0; /* make compiler happy */
- }
- 
- static void print_obj_lists(struct alisp_instance *instance, snd_output_t *out)
-diff --git a/src/dlmisc.c b/src/dlmisc.c
-index a0d62d3..b84eaf6 100644
---- a/src/dlmisc.c
-+++ b/src/dlmisc.c
-@@ -27,6 +27,7 @@
-  *
-  */
- 
-+#define _GNU_SOURCE
- #include "list.h"
- #include "local.h"
- 
-@@ -53,13 +54,13 @@ void *snd_dlopen(const char *name, int mode)
- #else
- #ifdef HAVE_LIBDL
- 	if (name == NULL) {
--		static const char * self = NULL;
--		if (self == NULL) {
--			Dl_info dlinfo;
--			if (dladdr(snd_dlopen, &dlinfo) > 0)
--				self = dlinfo.dli_fname;
--		}
--		name = self;
-+#ifdef ANDROID
-+		return RTLD_DEFAULT;
-+#else
-+		Dl_info dlinfo;
-+		if (dladdr(snd_dlopen, &dlinfo) > 0)
-+			name = dlinfo.dli_fname;
-+#endif
- 	}
- #endif
- #endif
-@@ -85,6 +86,10 @@ int snd_dlclose(void *handle)
- 		return 0;
- #endif
- #ifdef HAVE_LIBDL
-+#ifdef ANDROID
-+	if (handle == RTLD_DEFAULT)
-+		return 0;
-+#endif
- 	return dlclose(handle);
- #else
- 	return 0;
-diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
-index f910189..71d5e99 100644
---- a/src/pcm/pcm.c
-+++ b/src/pcm/pcm.c
-@@ -634,7 +634,6 @@ playback devices.
- #include <stdarg.h>
- #include <signal.h>
- #include <sys/poll.h>
--#include <sys/shm.h>
- #include <sys/mman.h>
- #include <limits.h>
- #include "pcm_local.h"
-diff --git a/src/pcm/pcm_generic.c b/src/pcm/pcm_generic.c
-index 84ea85f..d26aead 100644
---- a/src/pcm/pcm_generic.c
-+++ b/src/pcm/pcm_generic.c
-@@ -26,7 +26,6 @@
-  *
-  */
- 
--#include <sys/shm.h>
- #include <sys/ioctl.h>
- #include <limits.h>
- #include "pcm_local.h"
-diff --git a/src/pcm/pcm_hw.c b/src/pcm/pcm_hw.c
-index 9d243d5..7f88a5b 100644
---- a/src/pcm/pcm_hw.c
-+++ b/src/pcm/pcm_hw.c
-@@ -36,7 +36,6 @@
- #include <fcntl.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
--#include <sys/shm.h>
- #include "pcm_local.h"
- #include "../control/control_local.h"
- #include "../timer/timer_local.h"
-diff --git a/src/pcm/pcm_mmap.c b/src/pcm/pcm_mmap.c
-index 4621fe6..4b7a353 100644
---- a/src/pcm/pcm_mmap.c
-+++ b/src/pcm/pcm_mmap.c
-@@ -23,7 +23,9 @@
- #include <string.h>
- #include <sys/poll.h>
- #include <sys/mman.h>
-+#ifndef ANDROID
- #include <sys/shm.h>
-+#endif
- #include "pcm_local.h"
- 
- size_t page_size(void)
-@@ -371,6 +373,7 @@ int snd_pcm_mmap(snd_pcm_t *pcm)
- 			}
- 			i->addr = ptr;
- 			break;
-+#ifndef ANDROID
- 		case SND_PCM_AREA_SHM:
- 			if (i->u.shm.shmid < 0) {
- 				int id;
-@@ -416,6 +419,7 @@ int snd_pcm_mmap(snd_pcm_t *pcm)
- 			}
- 			i->addr = ptr;
- 			break;
-+#endif
- 		case SND_PCM_AREA_LOCAL:
- 			ptr = malloc(size);
- 			if (ptr == NULL) {
-@@ -496,6 +500,7 @@ int snd_pcm_munmap(snd_pcm_t *pcm)
- 			}
- 			errno = 0;
- 			break;
-+#ifndef ANDROID
- 		case SND_PCM_AREA_SHM:
- 			if (i->u.shm.area) {
- 				snd_shm_area_destroy(i->u.shm.area);
-@@ -513,6 +518,7 @@ int snd_pcm_munmap(snd_pcm_t *pcm)
- 				}
- 			}
- 			break;
-+#endif
- 		case SND_PCM_AREA_LOCAL:
- 			free(i->addr);
- 			break;
-diff --git a/src/pcm/pcm_null.c b/src/pcm/pcm_null.c
-index 692254a..2f2a42f 100644
---- a/src/pcm/pcm_null.c
-+++ b/src/pcm/pcm_null.c
-@@ -28,7 +28,6 @@
-   
- #include <byteswap.h>
- #include <limits.h>
--#include <sys/shm.h>
- #include "pcm_local.h"
- #include "pcm_plugin.h"
- 
-diff --git a/src/pcm/pcm_plugin.c b/src/pcm/pcm_plugin.c
-index 0ef394a..a751deb 100644
---- a/src/pcm/pcm_plugin.c
-+++ b/src/pcm/pcm_plugin.c
-@@ -82,7 +82,6 @@ pcm.rate44100Hz {
- 
- */
-   
--#include <sys/shm.h>
- #include <limits.h>
- #include "pcm_local.h"
- #include "pcm_plugin.h"
-diff --git a/src/pcm/pcm_share.c b/src/pcm/pcm_share.c
-index 56a8685..72084fc 100644
---- a/src/pcm/pcm_share.c
-+++ b/src/pcm/pcm_share.c
-@@ -35,7 +35,6 @@
- #include <math.h>
- #include <sys/socket.h>
- #include <sys/poll.h>
--#include <sys/shm.h>
- #include <pthread.h>
- #include "pcm_local.h"
- 
diff --git a/tools/depends/target/alsa-lib/timeval.patch b/tools/depends/target/alsa-lib/timeval.patch
deleted file mode 100644
index 6a7c1f0..0000000
--- a/tools/depends/target/alsa-lib/timeval.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- include/global.h	2010-04-16 07:11:05.000000000 -0400
-+++ include/global.h	2012-05-25 15:38:15.494855247 -0400
-@@ -133,7 +133,7 @@
- 
- int snd_user_file(const char *file, char **result);
- 
--#if !defined(_POSIX_C_SOURCE) && !defined(_POSIX_SOURCE)
-+#if !defined(_POSIX_C_SOURCE) && !defined(_POSIX_SOURCE) $$ !defined(ANDROID)
- struct timeval {
- 	time_t		tv_sec;		/* seconds */
- 	long		tv_usec;	/* microseconds */
diff --git a/tools/depends/target/android-libc-replacements/locale.h b/tools/depends/target/android-libc-replacements/locale.h
deleted file mode 100644
index 70a34b4..0000000
--- a/tools/depends/target/android-libc-replacements/locale.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 1991, 1993
- *	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. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by the University of
- *	California, Berkeley and its contributors.
- * 4. 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.
- *
- *	@(#)locale.h	8.1 (Berkeley) 6/2/93
- * $FreeBSD$
- */
-
-#ifndef _LOCALE_H_
-#define _LOCALE_H_
-
-struct lconv {
-	const char	*decimal_point;
-	const char	*thousands_sep;
-	const char	*grouping;
-	const char	*int_curr_symbol;
-	const char	*currency_symbol;
-	const char	*mon_decimal_point;
-	const char	*mon_thousands_sep;
-	const char	*mon_grouping;
-	const char	*positive_sign;
-	const char	*negative_sign;
-	char	int_frac_digits;
-	char	frac_digits;
-	char	p_cs_precedes;
-	char	p_sep_by_space;
-	char	n_cs_precedes;
-	char	n_sep_by_space;
-	char	p_sign_posn;
-	char	n_sign_posn;
-	char	int_p_cs_precedes;
-	char	int_n_cs_precedes;
-	char	int_p_sep_by_space;
-	char	int_n_sep_by_space;
-	char	int_p_sign_posn;
-	char	int_n_sign_posn;
-};
-
-#define	LC_ALL		0
-#define	LC_COLLATE	1
-#define	LC_CTYPE	2
-#define	LC_MONETARY	3
-#define	LC_NUMERIC	4
-#define	LC_TIME		5
-#define	LC_MESSAGES	6
-
-#define	_LC_LAST	7		/* marks end */
-
-#include <sys/cdefs.h>
-#include <limits.h>
-__BEGIN_DECLS
-char		*setlocale(int, const char *);
-__END_DECLS
-
-static inline const struct lconv *localeconv(void)
-{
-  static const struct lconv temp =
-  {
-    ".",
-    "",
-    "",
-    "",
-    "",
-    "",
-    "",
-    "",
-    "",
-    "-",
-    CHAR_MAX,
-    CHAR_MAX,
-    CHAR_MAX,
-    CHAR_MAX,
-    CHAR_MAX,
-    CHAR_MAX,
-    CHAR_MAX,
-    CHAR_MAX,
-    CHAR_MAX,
-    CHAR_MAX,
-    CHAR_MAX,
-    CHAR_MAX,
-    CHAR_MAX,
-    CHAR_MAX
-  };
-  return &temp;
-}
-
-#endif /* _LOCALE_H_ */
diff --git a/tools/depends/target/android-sources-ics/Makefile b/tools/depends/target/android-sources-ics/Makefile
deleted file mode 100644
index 3b0bf57..0000000
--- a/tools/depends/target/android-sources-ics/Makefile
+++ /dev/null
@@ -1,66 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-INCLUDES += -I$(PREFIX)/opt/android-source/frameworks/base/include
-INCLUDES += -I$(PREFIX)/opt/android-source/frameworks/base/native/include
-INCLUDES += -I$(PREFIX)/opt/android-source/frameworks/base/include/media/stagefright
-INCLUDES += -I$(PREFIX)/opt/android-source/frameworks/base/include/media/stagefright/openmax
-INCLUDES += -I$(PREFIX)/opt/android-source/system/core/include
-INCLUDES += -I$(PREFIX)/opt/android-source/libhardware/include
-
-ANDROID_VERSION=ics-mr0
-ANDROID_SOURCE=android-source
-ANDROID_LIBS=android-libs
-ARCHIVE=$(ANDROID_SOURCE)-$(ANDROID_VERSION)-extract.tar.gz
-
-all: .installed-$(PLATFORM)
-
-.installed-$(PLATFORM): install-sources $(ANDROID_LIBS)
-	touch $@
-
-$(ANDROID_SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(CURDIR)
-#	git clone --depth=1 --branch $(ANDROID_VERSION) https://android.googlesource.com/platform/frameworks/base $(ANDROID_SOURCE)/frameworks/base
-#	git clone --depth=1 --branch $(ANDROID_VERSION) https://android.googlesource.com/platform/system/core $(ANDROID_SOURCE)/system/core
-#	git clone --depth=1 --branch $(ANDROID_VERSION) https://android.googlesource.com/platform/hardware/libhardware $(ANDROID_SOURCE)/libhardware
-	$(ARCHIVE_TOOL) -xf $(TARBALLS_LOCATION)/$(ARCHIVE)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	echo "Fetching Android system headers"
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-install-sources: $(ANDROID_SOURCE)
-	mkdir -p $(PREFIX)/opt
-	rm -f $(PREFIX)/opt/$(ANDROID_SOURCE)
-	ln -s $(CURDIR)/$(ANDROID_SOURCE) $(PREFIX)/opt/$(ANDROID_SOURCE)
-
-$(ANDROID_LIBS): $(PLATFORM)/libstagefright.so $(PLATFORM)/libutils.so $(PLATFORM)/libbinder.so $(PLATFORM)/libcutils.so $(PLATFORM)/libui.so $(PLATFORM)/libgui.so
-	mkdir -p $(PREFIX)/opt/$(ANDROID_LIBS)
-	rm -f $(PREFIX)/opt/$(ANDROID_LIBS)/*
-	cp $(PLATFORM)/libstagefright.so $(PLATFORM)/libutils.so $(PLATFORM)/libbinder.so  $(PLATFORM)/libcutils.so $(PLATFORM)/libui.so $(PLATFORM)/libgui.so $(PREFIX)/opt/$(ANDROID_LIBS)
-
-$(PLATFORM): install-sources
-	mkdir -p $(PLATFORM)
-
-$(PLATFORM)/libstagefright.so:  $(PLATFORM) $(DEPS) libstagefright.cpp
-	$(CXX) -Wno-multichar -fno-exceptions -fno-rtti $(INCLUDES) -DHAVE_PTHREADS -shared -o $(PLATFORM)/libstagefright.so libstagefright.cpp
-
-$(PLATFORM)/libutils.so:  $(PLATFORM) $(DEPS) libutils.cpp
-	$(CXX) -Wno-multichar -fno-exceptions -fno-rtti $(INCLUDES) -shared -o $(PLATFORM)/libutils.so libutils.cpp
-
-$(PLATFORM)/libbinder.so:  $(PLATFORM) $(DEPS) libbinder.cpp
-	$(CXX) -Wno-multichar -fno-exceptions -fno-rtti $(INCLUDES) -shared -o $(PLATFORM)/libbinder.so libbinder.cpp
-
-$(PLATFORM)/libcutils.so:  $(PLATFORM) $(DEPS) libcutils.c
-	$(CXX) -Wno-multichar -fno-exceptions -fno-rtti $(INCLUDES) -shared -o $(PLATFORM)/libcutils.so libcutils.c
-
-$(PLATFORM)/libui.so:  $(PLATFORM) $(DEPS) libui.cpp
-	$(CXX) -Wno-multichar -fno-exceptions -fno-rtti $(INCLUDES) -shared -o $(PLATFORM)/libui.so libui.cpp
-
-$(PLATFORM)/libgui.so:  $(PLATFORM) $(DEPS) libgui.cpp
-	$(CXX) -Wno-multichar -fno-exceptions -fno-rtti $(INCLUDES) -shared -o $(PLATFORM)/libgui.so libgui.cpp
-
-clean:
-	rm -f $(PREFIX)/opt/$(ANDROID_SOURCE)
-	rm -rf .installed-$(PLATFORM) $(ANDROID_SOURCE) $(PLATFORM) $(ANDROID_LIBS_ARCHIVE) $(ANDROID_LIBS)
-
-distclean: clean
diff --git a/tools/depends/target/android-sources-ics/libbinder.cpp b/tools/depends/target/android-sources-ics/libbinder.cpp
deleted file mode 100644
index cb4ecba..0000000
--- a/tools/depends/target/android-sources-ics/libbinder.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *      Copyright (C) 2010-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-// ---------------------------------------------------------------------------
-
-#include <binder/ProcessState.h>
-
-namespace android {
-
-sp<ProcessState> ProcessState::self()
-{
-}
-
-void ProcessState::startThreadPool()
-{
-}
-
-ProcessState::ProcessState()
-{
-}
-
-ProcessState::~ProcessState()
-{
-}
-
-}; // namespace android
diff --git a/tools/depends/target/android-sources-ics/libcutils.c b/tools/depends/target/android-sources-ics/libcutils.c
deleted file mode 100644
index dbb2912..0000000
--- a/tools/depends/target/android-sources-ics/libcutils.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- *      Copyright (C) 2010-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#include <cutils/atomic.h>
-
-int32_t android_atomic_dec(volatile int32_t* addr) {
-  return 0;
-}
diff --git a/tools/depends/target/android-sources-ics/libgui.cpp b/tools/depends/target/android-sources-ics/libgui.cpp
deleted file mode 100644
index d8b6e0c..0000000
--- a/tools/depends/target/android-sources-ics/libgui.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- *      Copyright (C) 2010-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-#include <gui/SurfaceTexture.h>
-
-namespace android {
-
-status_t SurfaceTexture::updateTexImage()
-{
-  return 0;
-}
-
-void SurfaceTexture::getTransformMatrix(float mtx[16]) {}
-
-}
-
diff --git a/tools/depends/target/android-sources-ics/libstagefright.cpp b/tools/depends/target/android-sources-ics/libstagefright.cpp
deleted file mode 100644
index 6ab7b91..0000000
--- a/tools/depends/target/android-sources-ics/libstagefright.cpp
+++ /dev/null
@@ -1,381 +0,0 @@
-/*
- *      Copyright (C) 2010-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#define STAGEFRIGHT_EXPORT __attribute__ ((visibility ("default")))
-#include <media/stagefright/foundation/ABuffer.h>
-#include <media/stagefright/DataSource.h>
-#include <media/stagefright/MetaData.h>
-#include <media/stagefright/MediaBuffer.h>
-#include <media/stagefright/MediaBufferGroup.h>
-#include <media/stagefright/MediaDebug.h>
-#include <media/stagefright/MediaDefs.h>
-#include <media/stagefright/MediaExtractor.h>
-#include <media/stagefright/OMXClient.h>
-#include <media/stagefright/OMXCodec.h>
-#include <utils/List.h>
-#include <utils/RefBase.h>
-
-#include <media/stagefright/MediaDefs.h>
-
-namespace android {
-
-const char *MEDIA_MIMETYPE_IMAGE_JPEG = "image/jpeg";
-
-const char *MEDIA_MIMETYPE_VIDEO_VPX = "video/x-vnd.on2.vp8";
-const char *MEDIA_MIMETYPE_VIDEO_AVC = "video/avc";
-const char *MEDIA_MIMETYPE_VIDEO_MPEG4 = "video/mp4v-es";
-const char *MEDIA_MIMETYPE_VIDEO_H263 = "video/3gpp";
-const char *MEDIA_MIMETYPE_VIDEO_MPEG2 = "video/mpeg2";
-const char *MEDIA_MIMETYPE_VIDEO_RAW = "video/raw";
-
-const char *MEDIA_MIMETYPE_AUDIO_AMR_NB = "audio/3gpp";
-const char *MEDIA_MIMETYPE_AUDIO_AMR_WB = "audio/amr-wb";
-const char *MEDIA_MIMETYPE_AUDIO_MPEG = "audio/mpeg";
-const char *MEDIA_MIMETYPE_AUDIO_MPEG_LAYER_I = "audio/mpeg-L1";
-const char *MEDIA_MIMETYPE_AUDIO_MPEG_LAYER_II = "audio/mpeg-L2";
-const char *MEDIA_MIMETYPE_AUDIO_AAC = "audio/mp4a-latm";
-const char *MEDIA_MIMETYPE_AUDIO_QCELP = "audio/qcelp";
-const char *MEDIA_MIMETYPE_AUDIO_VORBIS = "audio/vorbis";
-const char *MEDIA_MIMETYPE_AUDIO_G711_ALAW = "audio/g711-alaw";
-const char *MEDIA_MIMETYPE_AUDIO_G711_MLAW = "audio/g711-mlaw";
-const char *MEDIA_MIMETYPE_AUDIO_RAW = "audio/raw";
-const char *MEDIA_MIMETYPE_AUDIO_FLAC = "audio/flac";
-const char *MEDIA_MIMETYPE_AUDIO_AAC_ADTS = "audio/aac-adts";
-
-const char *MEDIA_MIMETYPE_CONTAINER_MPEG4 = "video/mpeg4";
-const char *MEDIA_MIMETYPE_CONTAINER_WAV = "audio/wav";
-const char *MEDIA_MIMETYPE_CONTAINER_OGG = "application/ogg";
-const char *MEDIA_MIMETYPE_CONTAINER_MATROSKA = "video/x-matroska";
-const char *MEDIA_MIMETYPE_CONTAINER_MPEG2TS = "video/mp2ts";
-const char *MEDIA_MIMETYPE_CONTAINER_AVI = "video/avi";
-const char *MEDIA_MIMETYPE_CONTAINER_MPEG2PS = "video/mp2p";
-
-const char *MEDIA_MIMETYPE_CONTAINER_WVM = "video/wvm";
-#ifdef QCOM_HARDWARE
-const char *MEDIA_MIMETYPE_AUDIO_EVRC = "audio/evrc";
-
-const char *MEDIA_MIMETYPE_VIDEO_WMV = "video/x-ms-wmv";
-const char *MEDIA_MIMETYPE_AUDIO_WMA = "audio/x-ms-wma";
-const char *MEDIA_MIMETYPE_CONTAINER_ASF = "video/x-ms-asf";
-const char *MEDIA_MIMETYPE_VIDEO_DIVX = "video/divx";
-const char *MEDIA_MIMETYPE_AUDIO_AC3 = "audio/ac3";
-const char *MEDIA_MIMETYPE_CONTAINER_AAC = "audio/aac";
-const char *MEDIA_MIMETYPE_CONTAINER_QCP = "audio/vnd.qcelp";
-const char *MEDIA_MIMETYPE_VIDEO_DIVX311 = "video/divx311";
-const char *MEDIA_MIMETYPE_VIDEO_DIVX4 = "video/divx4";
-const char *MEDIA_MIMETYPE_CONTAINER_MPEG2 = "video/mp2";
-const char *MEDIA_MIMETYPE_CONTAINER_3G2 = "video/3g2";
-#endif
-const char *MEDIA_MIMETYPE_TEXT_3GPP = "text/3gpp-tt";
-
-MetaData::MetaData() {
-}
-
-MetaData::MetaData(const MetaData &from) {
-}
-
-MetaData::~MetaData() {
-}
-
-void MetaData::clear() {
-}
-
-bool MetaData::remove(uint32_t key) {
-  return false;
-}
-
-bool MetaData::setCString(uint32_t key, const char *value) {
-	return false;
-}
-
-bool MetaData::setInt32(uint32_t key, int32_t value) {
-  return false;
-}
-
-bool MetaData::setInt64(uint32_t key, int64_t value) {
-  return false;
-}
-
-bool MetaData::setFloat(uint32_t key, float value) {
-  return false;
-}
-
-bool MetaData::setPointer(uint32_t key, void *value) {
-  return false;
-}
-
-bool MetaData::setRect(
-        uint32_t key,
-        int32_t left, int32_t top,
-        int32_t right, int32_t bottom) {
-  return false;
-}
-
-bool MetaData::findCString(uint32_t key, const char **value) {
-  return false;
-}
-
-bool MetaData::findInt32(uint32_t key, int32_t *value) {
-  return false;
-}
-
-bool MetaData::findInt64(uint32_t key, int64_t *value) {
-  return false;
-}
-
-bool MetaData::findFloat(uint32_t key, float *value) {
-  return false;
-}
-
-bool MetaData::findPointer(uint32_t key, void **value) {
-  return false;
-}
-
-bool MetaData::findRect(
-        uint32_t key,
-        int32_t *left, int32_t *top,
-        int32_t *right, int32_t *bottom) {
-  return false;
-}
-
-bool MetaData::setData(
-        uint32_t key, uint32_t type, const void *data, size_t size) {
-  return false;
-}
-
-bool MetaData::findData(uint32_t key, uint32_t *type,
-                        const void **data, size_t *size) const {
-  return false;
-}
-
-MetaData::typed_data::typed_data()
-    : mType(0),
-      mSize(0) {
-}
-
-MetaData::typed_data::~typed_data() {
-}
-
-MetaData::typed_data::typed_data(const typed_data &from)
-    : mType(from.mType),
-      mSize(0) {
-}
-
-MetaData::typed_data &MetaData::typed_data::operator=(
-        const MetaData::typed_data &from) {
-    return *this;
-}
-
-void MetaData::typed_data::clear() {
-}
-
-void MetaData::typed_data::setData(
-        uint32_t type, const void *data, size_t size) {
-}
-
-void MetaData::typed_data::getData(
-        uint32_t *type, const void **data, size_t *size) const {
-}
-
-void MetaData::typed_data::allocateStorage(size_t size) {
-}
-
-void MetaData::typed_data::freeStorage() {
-}
-
-MediaBuffer::MediaBuffer(void *data, size_t size)
-{}
-
-MediaBuffer::MediaBuffer(size_t size)
-{}
-
-MediaBuffer::MediaBuffer(const sp<GraphicBuffer>& graphicBuffer)
-{}
-
-MediaBuffer::MediaBuffer(const sp<ABuffer> &buffer)
-{}
-
-void MediaBuffer::release() {
-}
-
-void MediaBuffer::claim() {
-}
-
-void MediaBuffer::add_ref() {
-}
-
-void *MediaBuffer::data() const {
-  return 0;
-}
-
-size_t MediaBuffer::size() const {
-  return 0;
-}
-
-size_t MediaBuffer::range_offset() const {
-  return 0;
-}
-
-size_t MediaBuffer::range_length() const {
-  return 0;
-}
-
-void MediaBuffer::set_range(size_t offset, size_t length) {
-}
-
-sp<GraphicBuffer> MediaBuffer::graphicBuffer() const {
-}
-
-sp<MetaData> MediaBuffer::meta_data() {
-}
-
-void MediaBuffer::reset() {
-}
-
-MediaBuffer::~MediaBuffer() {
-}
-
-void MediaBuffer::setObserver(MediaBufferObserver *observer) {
-}
-
-void MediaBuffer::setNextBuffer(MediaBuffer *buffer) {
-}
-
-MediaBuffer *MediaBuffer::nextBuffer() {
-  return 0;
-}
-
-int MediaBuffer::refcount() const {
-  return 0;
-}
-
-MediaBuffer *MediaBuffer::clone() {
-  return 0;
-}
-
-MediaBufferGroup::MediaBufferGroup() {}
-
-MediaBufferGroup::~MediaBufferGroup() {}
-
-void MediaBufferGroup::add_buffer(MediaBuffer *buffer) {
-}
-
-status_t MediaBufferGroup::acquire_buffer(MediaBuffer **out) {
-    return OK;
-}
-
-void MediaBufferGroup::signalBufferReturned(MediaBuffer *) {
-}
-
-MediaSource::MediaSource() {}
-
-MediaSource::~MediaSource() {}
-
-MediaSource::MediaSource(const MediaSource &) {}
-
-MediaSource& MediaSource::operator=(const MediaSource &) {}
-
-MediaSource::ReadOptions::ReadOptions() {
-}
-
-void MediaSource::ReadOptions::reset() {
-}
-
-void MediaSource::ReadOptions::setSeekTo(int64_t time_us, SeekMode mode) {
-}
-
-void MediaSource::ReadOptions::clearSeekTo() {
-}
-
-bool MediaSource::ReadOptions::getSeekTo(
-        int64_t *time_us, SeekMode *mode) const {
-    return false;
-}
-
-void MediaSource::ReadOptions::setLateBy(int64_t lateness_us) {
-}
-
-int64_t MediaSource::ReadOptions::getLateBy() const {
-    return 0;
-}
-
-status_t
-DataSource::getSize(off64_t *size)
-{
-  return 0;
-}
-
-String8
-DataSource::getMIMEType() const
-{
-  return String8();
-}
-
-void
-DataSource::RegisterDefaultSniffers()
-{
-}
-
-sp<MediaExtractor>
-MediaExtractor::Create(const sp<DataSource> &source, const char *mime)
-{
-  return 0;
-}
-
-sp<MediaSource>
-OMXCodec::Create(
-            const sp<IOMX> &omx,
-            const sp<MetaData> &meta, bool createEncoder,
-            const sp<MediaSource> &source,
-            const char *matchComponentName,
-            uint32_t flags,
-            const sp<ANativeWindow> &nativeWindow)
-{
-  return 0;
-}
-
-OMXClient::OMXClient()
-{
-}
-
-status_t OMXClient::connect()
-{
-  return OK;
-}
-
-void OMXClient::disconnect()
-{
-}
-
-class __attribute__ ((visibility ("default"))) UnknownDataSource : public DataSource {
-public:
-UnknownDataSource();
-
-virtual status_t initCheck() const { return 0; }
-virtual ssize_t readAt(off64_t offset, void *data, size_t size) { return 0; }
-virtual status_t getSize(off64_t *size) { return 0; }
-
-virtual ~UnknownDataSource() { }
-};
-
-UnknownDataSource foo;
-
-UnknownDataSource::UnknownDataSource() { }
-}
diff --git a/tools/depends/target/android-sources-ics/libui.cpp b/tools/depends/target/android-sources-ics/libui.cpp
deleted file mode 100644
index 84ead6e..0000000
--- a/tools/depends/target/android-sources-ics/libui.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *      Copyright (C) 2010-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-#include <ui/FramebufferNativeWindow.h>
-#include <ui/GraphicBuffer.h>
-#include <ui/PixelFormat.h>
-#include <EGL/egl.h>
-
-using namespace android;
-
-ANativeWindowBuffer* GraphicBuffer::getNativeBuffer() const
-{
-  return NULL;
-}
-
-namespace android {
-ssize_t bytesPerPixel(PixelFormat format)
-{
-  return 0;
-}
-}
diff --git a/tools/depends/target/android-sources-ics/libutils.cpp b/tools/depends/target/android-sources-ics/libutils.cpp
deleted file mode 100644
index 2daef93..0000000
--- a/tools/depends/target/android-sources-ics/libutils.cpp
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- *      Copyright (C) 2010-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "utils/RefBase.h"
-#include "utils/String16.h"
-#include "utils/String8.h"
-#include "utils/VectorImpl.h"
-#include "utils/Unicode.h"
-
-extern "C" {
-
-int strzcmp16(const char16_t *s1, size_t n1, const char16_t *s2, size_t n2)
-{
-  return 0;
-}
-
-}
-
-namespace android {
-RefBase::RefBase() : mRefs(0)
-{
-}
-
-RefBase::~RefBase()
-{
-}
-
-void RefBase::incStrong(const void *id) const
-{
-}
-
-void RefBase::decStrong(const void *id) const
-{
-}
-
-void RefBase::onFirstRef()
-{
-}
-
-void RefBase::onLastStrongRef(const void* id)
-{
-}
-
-bool RefBase::onIncStrongAttempted(uint32_t flags, const void* id)
-{
-  return false;
-}
-
-void RefBase::onLastWeakRef(void const* id)
-{
-}
-
-String16::String16()
-{
-}
-
-String16::String16(String16 const&)
-{
-}
-
-String16::String16(char const*)
-{
-}
-
-String16::~String16()
-{
-}
-
-String8::String8()
-{
-}
-
-String8::~String8()
-{
-}
-
-VectorImpl::VectorImpl(size_t itemSize, uint32_t flags)
-    : mFlags(flags), mItemSize(itemSize)
-{
-}
-
-VectorImpl::VectorImpl(const VectorImpl& rhs)
-    : mFlags(rhs.mFlags), mItemSize(rhs.mItemSize)
-{
-}
-
-VectorImpl::~VectorImpl()
-{
-}
-
-VectorImpl& VectorImpl::operator = (const VectorImpl& rhs)
-{
-}
-
-void* VectorImpl::editArrayImpl()
-{
-}
-
-size_t VectorImpl::capacity() const
-{
-  return 0;
-}
-
-ssize_t VectorImpl::insertVectorAt(const VectorImpl& vector, size_t index)
-{
-  return 0;
-}
-
-ssize_t VectorImpl::appendVector(const VectorImpl& vector)
-{
-  return 0;
-}
-
-ssize_t VectorImpl::insertArrayAt(const void* array, size_t index, size_t length)
-{
-  return 0;
-}
-
-ssize_t VectorImpl::appendArray(const void* array, size_t length)
-{
-  return 0;
-}
-
-ssize_t VectorImpl::insertAt(size_t index, size_t numItems)
-{
-  return 0;
-}
-
-ssize_t VectorImpl::insertAt(const void* item, size_t index, size_t numItems)
-{
-  return 0;
-}
-
-static int sortProxy(const void* lhs, const void* rhs, void* func)
-{
-  return 0;
-}
-
-status_t VectorImpl::sort(VectorImpl::compar_t cmp)
-{
-  return 0;
-}
-
-status_t VectorImpl::sort(VectorImpl::compar_r_t cmp, void* state)
-{
-  return 0;
-}
-
-void VectorImpl::pop()
-{
-}
-
-void VectorImpl::push()
-{
-}
-
-void VectorImpl::push(const void* item)
-{
-}
-
-ssize_t VectorImpl::add()
-{
-  return 0;
-}
-
-ssize_t VectorImpl::add(const void* item)
-{
-  return 0;
-}
-
-ssize_t VectorImpl::replaceAt(size_t index)
-{
-  return 0;
-}
-
-ssize_t VectorImpl::replaceAt(const void* prototype, size_t index)
-{
-  return 0;
-}
-
-ssize_t VectorImpl::removeItemsAt(size_t index, size_t count)
-{
-  return 0;
-}
-
-void VectorImpl::finish_vector()
-{
-}
-
-void VectorImpl::clear()
-{
-}
-
-void* VectorImpl::editItemLocation(size_t index)
-{
-  return 0;
-}
-
-const void* VectorImpl::itemLocation(size_t index) const
-{
-  return 0;
-}
-
-ssize_t VectorImpl::setCapacity(size_t new_capacity)
-{
-  return 0;
-}
-
-void VectorImpl::release_storage()
-{
-}
-
-void* VectorImpl::_grow(size_t where, size_t amount)
-{
-  return 0;
-}
-
-void VectorImpl::_shrink(size_t where, size_t amount)
-{
-}
-
-size_t VectorImpl::itemSize() const {
-  return 0;
-}
-
-void VectorImpl::_do_construct(void* storage, size_t num) const
-{
-}
-
-void VectorImpl::_do_destroy(void* storage, size_t num) const
-{
-}
-
-void VectorImpl::_do_copy(void* dest, const void* from, size_t num) const
-{
-}
-
-void VectorImpl::_do_splat(void* dest, const void* item, size_t num) const {
-}
-
-void VectorImpl::_do_move_forward(void* dest, const void* from, size_t num) const {
-}
-
-void VectorImpl::_do_move_backward(void* dest, const void* from, size_t num) const {
-}
-
-void VectorImpl::reservedVectorImpl1() { }
-void VectorImpl::reservedVectorImpl2() { }
-void VectorImpl::reservedVectorImpl3() { }
-void VectorImpl::reservedVectorImpl4() { }
-void VectorImpl::reservedVectorImpl5() { }
-void VectorImpl::reservedVectorImpl6() { }
-void VectorImpl::reservedVectorImpl7() { }
-void VectorImpl::reservedVectorImpl8() { }
-
-/*****************************************************************************/
-
-SortedVectorImpl::SortedVectorImpl(size_t itemSize, uint32_t flags)
-    : VectorImpl(itemSize, flags)
-{
-}
-
-SortedVectorImpl::SortedVectorImpl(const VectorImpl& rhs)
-: VectorImpl(rhs)
-{
-}
-
-SortedVectorImpl::~SortedVectorImpl()
-{
-}
-
-ssize_t SortedVectorImpl::indexOf(const void* item) const
-{
-  return 0;
-}
-
-size_t SortedVectorImpl::orderOf(const void* item) const
-{
-  return 0;
-}
-
-ssize_t SortedVectorImpl::_indexOrderOf(const void* item, size_t* order) const
-{
-  return 0;
-}
-
-ssize_t SortedVectorImpl::add(const void* item)
-{
-  return 0;
-}
-
-ssize_t SortedVectorImpl::merge(const VectorImpl& vector)
-{
-  return 0;
-}
-
-ssize_t SortedVectorImpl::merge(const SortedVectorImpl& vector)
-{
-  return 0;
-}
-
-ssize_t SortedVectorImpl::remove(const void* item)
-{
-  return 0;
-}
-
-void SortedVectorImpl::reservedSortedVectorImpl1() { };
-void SortedVectorImpl::reservedSortedVectorImpl2() { };
-void SortedVectorImpl::reservedSortedVectorImpl3() { };
-void SortedVectorImpl::reservedSortedVectorImpl4() { };
-void SortedVectorImpl::reservedSortedVectorImpl5() { };
-void SortedVectorImpl::reservedSortedVectorImpl6() { };
-void SortedVectorImpl::reservedSortedVectorImpl7() { };
-void SortedVectorImpl::reservedSortedVectorImpl8() { };
-
-}
diff --git a/tools/depends/target/boblight/01-fix_fpermissive.patch b/tools/depends/target/boblight/01-fix_fpermissive.patch
deleted file mode 100644
index 29727a6..0000000
--- a/tools/depends/target/boblight/01-fix_fpermissive.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/util/miscorig.cpp	2014-11-27 18:31:54.778680630 +0000
-+++ src/util/misc.cpp	2014-11-27 18:32:21.986680437 +0000
-@@ -64,7 +64,7 @@
- //convert . or , to the current locale for correct conversion of ascii float
- void ConvertFloatLocale(std::string& strfloat)
- {
--  static struct lconv* locale = localeconv();
-+  static const struct lconv* locale = localeconv();
-   
-   size_t pos = strfloat.find_first_of(",.");
- 
diff --git a/tools/depends/target/boblight/02-fixandroid.patch b/tools/depends/target/boblight/02-fixandroid.patch
deleted file mode 100644
index 8ce63e5..0000000
--- a/tools/depends/target/boblight/02-fixandroid.patch
+++ /dev/null
@@ -1,35 +0,0 @@
---- src/util/daemonizeorig.cpp	2014-11-27 18:36:30.474678137 +0000
-+++ src/util/daemonize.cpp	2014-11-27 18:36:44.226678082 +0000
-@@ -35,10 +35,12 @@
-   if (setsid() < 0)
-     fprintf(stderr, "setsid(): %s", GetErrno().c_str());
- 
-+#if !defined(__ANDROID__)
-   //route stdout and stderr to /dev/null
-   fclose(stdout);
-   stdout = fopen("/dev/null", "w");
-   fclose(stderr);
-   stderr = fopen("/dev/null", "w");
-+#endif
- }
- 
---- src/lib/boblightorig.h	2014-11-27 18:38:37.174677063 +0000
-+++ src/lib/boblight.h	2014-11-27 18:40:14.810676123 +0000
-@@ -61,7 +61,7 @@
-     //gets a functionpointer from dlsym, and returns char* from dlerror if it didn't work
-     #define BOBLIGHT_FUNCTION(returnvalue, name, arguments) \
-     name = BOBLIGHT_CAST(returnvalue (*) arguments)(dlsym(p_boblight, #name)); \
--                        { char* error = dlerror(); if (error) return error; }
-+                        { char* error = (char *)dlerror(); if (error) return error; }
- 
-     void* p_boblight = NULL; //where we put the lib
- 
-@@ -79,7 +79,7 @@
- 
-       p_boblight = dlopen(filename, RTLD_NOW);
-       if (p_boblight == NULL)
--        return dlerror();
-+        return (char *)dlerror();
- 
-       //generate dlsym lines
-       #include "boblight-functions.h"
diff --git a/tools/depends/target/boblight/Makefile b/tools/depends/target/boblight/Makefile
deleted file mode 100644
index bd961ec..0000000
--- a/tools/depends/target/boblight/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-#hint for building a fat lib - "lipo -arch i386 libboblight-i386.dylib -arch x86_64 libboblight-x86_64.dylib -output libboblight-fat.dylib"
-
-# lib name, version
-LIBNAME=libboblight
-VERSION=r478
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) \
-  --without-opengl \
-  --without-portaudio \
-  --without-x11 \
-  --without-libusb
-
-LIBDYLIB=$(PLATFORM)/src/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: $(LIBDYLIB) .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p0 < ../01-fix_fpermissive.patch
-	cd $(PLATFORM); patch -p0 < ../02-fixandroid.patch
-	cd $(PLATFORM); autoreconf -vif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-ifeq ($(OS),android)
-	rm -f $(PLATFORM)/src/.libs/libboblight.la $(PLATFORM)/src/.libs/libboblight.so $(PLATFORM)/src/.libs/libboblight.so.0
-	mv -f $(PLATFORM)/src/.libs/libboblight.so.0.0.0 $(PLATFORM)/src/.libs/libboblight.so
-	$(RPL) -e "libboblight.so.0" "libboblight.so\x00\x00" $(PLATFORM)/src/.libs/libboblight.so
-	-$(READELF) --dynamic $(PLATFORM)/src/.libs/libboblight.so | grep ibrary
-endif
-	echo "libboblight isn't a dependency of XBMC and won't be installed"
-	touch $@
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -r .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/boost/Makefile b/tools/depends/target/boost/Makefile
deleted file mode 100644
index f38482a..0000000
--- a/tools/depends/target/boost/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include add-arm-mem-barrier.patch fix-deprecated-swp.patch fix_shared_ptr_multithread.patch Makefile
-
-#Headers Only!
-LIBNAME=boost
-VERSION=1_44_0
-SOURCE=$(LIBNAME)_$(VERSION)
-ARCHIVE=$(SOURCE).tar.bz2
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo 'using gcc : : $(CC) : ' > $(PLATFORM)/tools/build/v2/user-config.jam
-	echo '	<cflags>"$(CFLAGS)"' >> $(PLATFORM)/tools/build/v2/user-config.jam
-	echo '  <cxxflags>"$(CXXFLAGS)"' >> $(PLATFORM)/tools/build/v2/user-config.jam
-	echo '	;' >> $(PLATFORM)/tools/build/v2/user-config.jam
-	cd $(PLATFORM); patch -p1 < ../add-arm-mem-barrier.patch
-	cd $(PLATFORM); patch -p1 < ../fix-deprecated-swp.patch
-ifeq (arm, $(findstring arm, $(CPU)))
-	cd $(PLATFORM); patch -p0 < ../fix_shared_ptr_multithread.patch
-endif
-	cd $(PLATFORM); patch -p1 < ../fix-self-assignment-warnings.patch
-	cd $(PLATFORM); ./bootstrap.sh --prefix=$(PREFIX)
-
-.installed-$(PLATFORM): $(PLATFORM)
-	cd $(PLATFORM); ./bjam --prefix=$(PREFIX) toolset=gcc --toolset-root=$(TOOLCHAIN)/$(HOST)/bin --disable-icu \
-	--without-date_time --without-filesystem --without-graph --without-graph_parallel --without-iostreams --without-math --without-mpi --without-program_options \
---without-python --without-random --without-regex --without-serialization --without-signals --without-system --without-test --without-thread --without-wave install 
-	touch .installed-$(PLATFORM)
-
-clean:
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/boost/add-arm-mem-barrier.patch b/tools/depends/target/boost/add-arm-mem-barrier.patch
deleted file mode 100644
index 86f8985..0000000
--- a/tools/depends/target/boost/add-arm-mem-barrier.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From c87ad09331d239d6566e5eb409898ae38f04799a Mon Sep 17 00:00:00 2001
-From: Peter Dimov <pdimov at boostpro.com>
-Date: Mon, 7 Nov 2011 17:50:31 +0000
-Subject: [PATCH] Add ARM memory barriers. Refs #5372.
-
-SVN-Revision: 75389
----
- boost/smart_ptr/detail/spinlock_gcc_arm.hpp |   23 ++++++++++++++++++++---
- 1 file changed, 20 insertions(+), 3 deletions(-)
-
-diff --git a/boost/smart_ptr/detail/spinlock_gcc_arm.hpp b/boost/smart_ptr/detail/spinlock_gcc_arm.hpp
-index ba6c511..f58ea44 100644
---- a/boost/smart_ptr/detail/spinlock_gcc_arm.hpp
-+++ b/boost/smart_ptr/detail/spinlock_gcc_arm.hpp
-@@ -2,7 +2,7 @@
- #define BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED
- 
- //
--//  Copyright (c) 2008 Peter Dimov
-+//  Copyright (c) 2008, 2011 Peter Dimov
- //
- //  Distributed under the Boost Software License, Version 1.0.
- //  See accompanying file LICENSE_1_0.txt or copy at
-@@ -11,6 +11,20 @@
- 
- #include <boost/smart_ptr/detail/yield_k.hpp>
- 
-+#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
-+
-+# define BOOST_SP_ARM_BARRIER "dmb"
-+
-+#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__)
-+
-+# define BOOST_SP_ARM_BARRIER "mcr p15, 0, r0, c7, c10, 5"
-+
-+#else
-+
-+# define BOOST_SP_ARM_BARRIER ""
-+
-+#endif
-+
- namespace boost
- {
- 
-@@ -30,7 +44,8 @@ class spinlock
-         int r;
- 
-         __asm__ __volatile__(
--            "swp %0, %1, [%2]":
-+            "swp %0, %1, [%2]\n\t"
-+			BOOST_SP_ARM_BARRIER :
-             "=&r"( r ): // outputs
-             "r"( 1 ), "r"( &v_ ): // inputs
-             "memory", "cc" );
-@@ -48,7 +63,7 @@ class spinlock
- 
-     void unlock()
-     {
--        __asm__ __volatile__( "" ::: "memory" );
-+        __asm__ __volatile__( BOOST_SP_ARM_BARRIER ::: "memory" );
-         *const_cast< int volatile* >( &v_ ) = 0;
-     }
- 
-@@ -82,4 +97,6 @@ class spinlock
- 
- #define BOOST_DETAIL_SPINLOCK_INIT {0}
- 
-+#undef BOOST_SP_ARM_BARRIER
-+
- #endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED
--- 
-1.7.10
-
diff --git a/tools/depends/target/boost/fix-deprecated-swp.patch b/tools/depends/target/boost/fix-deprecated-swp.patch
deleted file mode 100644
index de5888d..0000000
--- a/tools/depends/target/boost/fix-deprecated-swp.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 8d1ba081260f98d879759433a9d7248d6bd98966 Mon Sep 17 00:00:00 2001
-From: Peter Dimov <pdimov at boostpro.com>
-Date: Mon, 12 Mar 2012 17:31:21 +0000
-Subject: [PATCH] Apply patch from #5331. Refs #5331.
-
-SVN-Revision: 77315
----
- boost/smart_ptr/detail/spinlock_gcc_arm.hpp |   29 +++++++++++++++++++++++++--
- 1 file changed, 27 insertions(+), 2 deletions(-)
-
-diff --git a/boost/smart_ptr/detail/spinlock_gcc_arm.hpp b/boost/smart_ptr/detail/spinlock_gcc_arm.hpp
-index f58ea44..f1bbaf6 100644
---- a/boost/smart_ptr/detail/spinlock_gcc_arm.hpp
-+++ b/boost/smart_ptr/detail/spinlock_gcc_arm.hpp
-@@ -43,13 +43,38 @@ class spinlock
-     {
-         int r;
- 
-+#if defined(__ARM_ARCH_6__) \
-+    || defined(__ARM_ARCH_6J__) \
-+    || defined(__ARM_ARCH_6K__) \
-+    || defined(__ARM_ARCH_6Z__) \
-+    || defined(__ARM_ARCH_6ZK__) \
-+    || defined(__ARM_ARCH_6T2__) \
-+    || defined(__ARM_ARCH_7__) \
-+    || defined(__ARM_ARCH_7A__) \
-+    || defined(__ARM_ARCH_7R__) \
-+    || defined(__ARM_ARCH_7M__) \
-+    || defined(__ARM_ARCH_7EM__)
-+
-+        __asm__ __volatile__(
-+            "ldrex %0, [%2]; \n"
-+            "cmp %0, %1; \n"
-+            "strexne %0, %1, [%2]; \n"
-+            BOOST_SP_ARM_BARRIER :
-+            "=&r"( r ): // outputs
-+            "r"( 1 ), "r"( &v_ ): // inputs
-+            "memory", "cc" );
-+
-+#else
-+
-         __asm__ __volatile__(
--            "swp %0, %1, [%2]\n\t"
--			BOOST_SP_ARM_BARRIER :
-+            "swp %0, %1, [%2];\n"
-+            BOOST_SP_ARM_BARRIER :
-             "=&r"( r ): // outputs
-             "r"( 1 ), "r"( &v_ ): // inputs
-             "memory", "cc" );
- 
-+#endif
-+
-         return r == 0;
-     }
- 
--- 
-1.7.10
-
diff --git a/tools/depends/target/boost/fix-self-assignment-warnings.patch b/tools/depends/target/boost/fix-self-assignment-warnings.patch
deleted file mode 100644
index 647e01c..0000000
--- a/tools/depends/target/boost/fix-self-assignment-warnings.patch
+++ /dev/null
@@ -1,61 +0,0 @@
---- a/boost/concept_check.hpp
-+++ b/boost/concept_check.hpp
-@@ -136,20 +136,21 @@ namespace boost
-   {
-     BOOST_CONCEPT_USAGE(Assignable) {
- #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
--      a = a;             // require assignment operator
-+      a = b;             // require assignment operator
- #endif
--      const_constraints(a);
-+      const_constraints(b);
-     }
-    private:
--    void const_constraints(const TT& b) {
-+    void const_constraints(const TT& x) {
- #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
--      a = b;              // const required for argument to assignment
-+      a = x;              // const required for argument to assignment
- #else
--      ignore_unused_variable_warning(b);
-+      ignore_unused_variable_warning(x);
- #endif
-     }
-    private:
-     TT a;
-+    TT b;
-   };
- 
-   
-@@ -180,22 +181,23 @@ namespace boost
-   BOOST_concept(SGIAssignable,(TT))
-   {
-     BOOST_CONCEPT_USAGE(SGIAssignable) {
--      TT b(a);
-+      TT c(a);
- #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
--      a = a;              // require assignment operator
-+      a = b;              // require assignment operator
- #endif
--      const_constraints(a);
--      ignore_unused_variable_warning(b);
-+      const_constraints(b);
-+      ignore_unused_variable_warning(c);
-     }
-    private:
--    void const_constraints(const TT& b) {
--      TT c(b);
-+    void const_constraints(const TT& x) {
-+      TT c(x);
- #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
--      a = b;              // const required for argument to assignment
-+      a = x;              // const required for argument to assignment
- #endif
-       ignore_unused_variable_warning(c);
-     }
-     TT a;
-+    TT b;
-   };
- #if (defined _MSC_VER)
- # pragma warning( pop )
-
diff --git a/tools/depends/target/boost/fix_shared_ptr_multithread.patch b/tools/depends/target/boost/fix_shared_ptr_multithread.patch
deleted file mode 100644
index 695dc75..0000000
--- a/tools/depends/target/boost/fix_shared_ptr_multithread.patch
+++ /dev/null
@@ -1,8 +0,0 @@
---- boost/config/user.hpp.orig	2014-01-20 11:45:10.048976867 +0100
-+++ boost/config/user.hpp	2014-01-20 11:45:34.244568535 +0100
-@@ -121,4 +121,4 @@
- // #define BOOST_WHATEVER_NO_LIB
-  
- 
--
-+#define BOOST_SP_USE_SPINLOCK
diff --git a/tools/depends/target/bzip2/Makefile b/tools/depends/target/bzip2/Makefile
deleted file mode 100644
index 8085ef9..0000000
--- a/tools/depends/target/bzip2/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile Makefile.patch
-
-# lib name, version
-LIBNAME=bzip2
-VERSION=1.0.6
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) --disable-shared
-
-LIBDYLIB=$(PLATFORM)/libbz2.a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p1 <../Makefile.patch
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM) PREFIX=$(PREFIX) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" AR="$(AR)"
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install PREFIX=$(PREFIX)
-	rm $(PREFIX)/bin/bzip2
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/bzip2/Makefile.patch b/tools/depends/target/bzip2/Makefile.patch
deleted file mode 100644
index 40dc70a..0000000
--- a/tools/depends/target/bzip2/Makefile.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- Makefile	2008-02-14 14:39:18.000000000 +0200
-+++ ../Makefile	2009-08-30 15:59:16.000000000 +0300
-@@ -15,16 +15,16 @@
- SHELL=/bin/sh
- 
- # To assist in cross-compiling
--CC=gcc
--AR=ar
--RANLIB=ranlib
--LDFLAGS=
-+#CC=gcc
-+#AR=ar
-+#RANLIB=ranlib
-+#LDFLAGS=
- 
- BIGFILES=-D_FILE_OFFSET_BITS=64
--CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)
-+#CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)
- 
- # Where you want it installed when you do 'make install'
--PREFIX=/usr/local
-+#PREFIX=/usr/local
- 
- 
- OBJS= blocksort.o  \
-@@ -35,7 +35,7 @@
-       decompress.o \
-       bzlib.o
- 
--all: libbz2.a bzip2 bzip2recover test
-+all: libbz2.a bzip2 bzip2recover 
- 
- bzip2: libbz2.a bzip2.o
- 	$(CC) $(CFLAGS) $(LDFLAGS) -o bzip2 bzip2.o -L. -lbz2
diff --git a/tools/depends/target/config.site.in b/tools/depends/target/config.site.in
deleted file mode 100644
index 252a4dc..0000000
--- a/tools/depends/target/config.site.in
+++ /dev/null
@@ -1,181 +0,0 @@
-if test "@cross_compiling@" = "yes"; then
-cross_compiling=yes
-host=@use_host@
-host_alias=@use_host@
-fi
-
-LD="@LD@"
-CC="@CC@"
-CXX="@CXX@"
-CPP="@CPP@"
-AR="@AR@"
-AS="@AS@"
-NM="@NM@"
-STRIP="@STRIP@"
-RANLIB="@RANLIB@"
-OBJDUMP="@OBJDUMP@"
-
-if test "@platform_os@" = "ios" ; then
-  export AS="@prefix@/@tool_dir@/bin/gas-preprocessor.pl @CC@ -arch @use_cpu@"
-  export CCAS="--tag CC @prefix@/@tool_dir@/bin/gas-preprocessor.pl @CC@ -arch @use_cpu@"
-fi
-
-CFLAGS="@platform_cflags@ @platform_includes@ -isystem @prefix@/@deps_dir@/include $CFLAGS"
-LDFLAGS="-L at prefix@/@deps_dir@/lib @platform_ldflags@ $LDFLAGS"
-CXXFLAGS="@platform_cxxflags@ @platform_includes@ -isystem @prefix@/@deps_dir@/include $CXXFLAGS"
-CPPFLAGS="@platform_cflags@ @platform_includes@ -isystem @prefix@/@deps_dir@/include $CPPFLAGS"
-
-export PKG_CONFIG=@prefix@/@tool_dir@/bin/pkg-config
-export PKG_CONFIG_LIBDIR=@prefix@/@deps_dir@/lib/pkgconfig
-export YASM=@prefix@/@tool_dir@/bin/yasm
-export NASM=@prefix@/@tool_dir@/bin/yasm
-export MYSQL_CONFIG=@prefix@/@deps_dir@/bin/mysql_config
-
-PATH=@prefix@/@tool_dir@/bin:@use_toolchain@/usr/bin:@use_toolchain@/bin:$PATH
-LD_LIBRARY_PATH=@prefix@/@tool_dir@/lib:$LD_LIBRARY_PATH
-
-PYTHON_VERSION=2.6
-PYTHON_LDFLAGS="-L at prefix@/@deps_dir@/lib -lpython${PYTHON_VERSION} -lc -ldl -lm -lexpat -lffi -lintl -lutil -lssl -lcrypto"
-PYTHON_CPPFLAGS=-I at prefix@/@deps_dir@/include/python${PYTHON_VERSION}
-PYTHON_SITE_PKG=@prefix@/@deps_dir@/lib/python${PYTHON_VERSION}/site-packages
-PYTHON_NOVERSIONCHECK=no-check
-NATIVE_ROOT=@prefix@/@tool_dir@
-
-#afps-ng and libomxil-bellagio
-ac_cv_func_malloc_0_nonnull=yes
-
-#curl
-ac_cv_file__dev_urandom=yes
-ac_cv_lib_ssl_SSL_connect=yes
-
-#gettext and libiconv
-gl_cv_header_working_stdint_h=yes
-
-#libcec
-ac_cv_search_dlopen=-ldl
-
-#libgcrypt
-if test "${PACKAGE_NAME}" = "libgcrypt"; then
-  ac_cv_path_GPG_ERROR_CONFIG=@prefix@/@deps_dir@/bin/gpg-error-config
-  ac_cv_sys_symbol_underscore=no
-  CFLAGS="$CFLAGS -std=gnu99"
-fi
-
-#python
-ac_cv_func_gethostbyname_r=no
-ac_cv_header_sys_un_h=yes
-
-#rsxs/projectm
-jm_cv_func_gettimeofday_clobber=no
-mac_cv_pkg_ldflags=-lz
-if test "@platform_os@" = "osx"; then
-  ac_cv_func_strnlen_working=no
-fi
-
-#gnutls
-gl_cv_func_gettimeofday_clobber=no
-
-
-#samba
-SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=yes
-samba_cv_CC_NEGATIVE_ENUM_VALUES=yes
-libreplace_cv_HAVE_C99_VSNPRINTF=yes
-samba_cv_HAVE_C99_VSNPRINTF=yes
-ac_cv_header_standards_h=no
-
-ac_cv_file__proc_sys_kernel_core_pattern=no
-samba_cv_SYSCONF_SC_NPROCESSORS_ONLN=no
-libreplace_cv_HAVE_GETADDRINFO=no
-
-if test "${PACKAGE_NAME}" = "Samba" -a "@platform_os@" = "ios"; then
-  # disable python support
-  export PYTHON_VER=0.0
-  # ios/osx-10.6 issue with collision of _MD5 exported from a system lib
-  export LDFLAGS="${LDFLAGS} -Wl,-unexported_symbol,_MD5* -lc"
-fi
-
-if test "${PACKAGE_NAME}" = "Samba" -a "@platform_os@" = "osx"; then
-  # disable python support
-  export PYTHON_VER=0.0
-  # ios/osx-10.6 issue with collision of _MD5 exported from a system lib
-  export LDFLAGS="${LDFLAGS} -Wl,-unexported_symbol,_MD5* -lc"
-  # uses OPT instead of CFLAGS
-  export OPT="${CFLAGS}"
-  # various configure overrides
-  ac_cv_header_libunwind_h=no
-  ac_cv_header_execinfo_h=no
-  # fixes crash on 10.6 if xbmc is built using 10.7 SDK with 10.6 min
-  ac_cv_func_vdprintf=no
-fi
-
-if test "@platform_os@" = "android"; then
-  #samba
-  SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=yes
-  libreplace_cv_READDIR_GETDIRENTRIES=no
-  libreplace_cv_READDIR_GETDENTS=no
-  samba_cv_REPLACE_READDIR=no
-  samba_cv_HAVE_WRFILE_KEYTAB=yes
-  samba_cv_HAVE_GETTIMEOFDAY_TZ=yes
-  samba_cv_USE_SETREUID=yes
-  samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes
-  samba_cv_HAVE_IFACE_IFCONF=yes
-  samba_cv_HAVE_MMAP=yes
-  samba_cv_HAVE_FCNTL_LOCK=yes
-  samba_cv_HAVE_SECURE_MKSTEMP=yes
-  samba_cv_CC_NEGATIVE_ENUM_VALUES=yes
-  samba_cv_fpie=no
-  samba_cv_have_longlong=yes
-  samba_cv_HAVE_OFF64_T=yes
-  samba_cv_HAVE_UT_UT_TYPE=no
-  ac_cv_func_srand=yes
-  ac_cv_func_rand=yes
-
-  #python: android doesn't have libutil
-  PYTHON_LDFLAGS="-L at prefix@/@deps_dir@/lib -lpython${PYTHON_VERSION} -lc -ldl -lm -lexpat -lffi -lintl -lssl -lcrypto"
-
-fi
-
-if test "@platform_os@" = "ios"; then
-  # tweaks for libffi (ios must use llvm-gcc-4.2)
-  if test "${PACKAGE_NAME}" = "libffi" ; then
-      case "@use_xcode@" in
-        3.*.* | 4.* | 4.*.*)
-          export CC="@use_toolchain@/usr/bin/llvm-gcc-4.2"
-          export CPP="@use_toolchain@/usr/bin/llvm-gcc-4.2 -E"
-          ;;
-        *)
-          export CC="@use_toolchain@/usr/bin/clang"
-          export CPP="@use_toolchain@/usr/bin/clang -E"
-          ;;
-        esac
-    unset AS
-    unset CCAS
-  fi
-
-  # tweaks for flac
-  if test "${ac_unique_file}" = "src/flac/main.c" ; then
-    # compiler barfs if we use -O3/O2 for flac
-    export CFLAGS=`echo ${CFLAGS} | sed 's/-O3/-Os/'`
-    export CPPFLAGS=`echo ${CPPFLAGS} | sed 's/-O3/-Os/'`
-  fi
-
-  # tweaks for libmpeg2
-  if test "${PACKAGE_NAME}" = "libmpeg2" ; then
-    export LDFLAGS="${LDFLAGS} -Wl,-read_only_relocs,suppress"
-  fi
-fi
-
-#Fix for older, broken android toolchains
-if test "${PACKAGE_NAME}" = "FreeType" -a "@platform_os@" = "android"; then
-  CFLAGS="$CFLAGS -std=gnu99"
-fi
-
-# These libs do not correctly export their symbols. Force them in case
-# -fvisibility=hidden is set.
-if test "${ac_unique_file}" = "src/flac/main.c" || \
-   test "${ac_unique_file}" = "src/framing.c" || \
-   test "${ac_unique_file}" = "src/libdvdcss.c" || \
-   test "${PACKAGE_NAME}" = "libmpeg2" || \
-   test "${PACKAGE_NAME}" = "libssh2" ; then
-     CFLAGS="$CFLAGS -fvisibility=default"
-fi
diff --git a/tools/depends/target/curl/0001-HTTP-reset-expected-DL-UL-sizes-on-redirects.patch b/tools/depends/target/curl/0001-HTTP-reset-expected-DL-UL-sizes-on-redirects.patch
deleted file mode 100644
index 7855f42..0000000
--- a/tools/depends/target/curl/0001-HTTP-reset-expected-DL-UL-sizes-on-redirects.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From c44d45db86b880df5facd6b560491e03530f876e Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg <daniel at haxx.se>
-Date: Fri, 23 Mar 2012 23:42:37 +0100
-Subject: [PATCH] HTTP: reset expected DL/UL sizes on redirects
-
-With FOLLOWLOCATION enabled. When a 3xx page is downloaded and the
-download size was known (like with a Content-Length header), but the
-subsequent URL (transfered after the 3xx page) was chunked encoded, then
-the previous "known download size" would linger and cause the progress
-meter to get incorrect information, ie the former value would remain
-being sent in. This could easily result in downloads that were WAY
-larger than "expected" and would cause >100% outputs with the curl
-command line tool.
-
-Test case 599 was created and it was used to repeat the bug and then
-verify the fix.
-
-Bug: http://curl.haxx.se/bug/view.cgi?id=3510057
-Reported by: Michael Wallner
----
- lib/progress.c             |  9 +++--
- lib/progress.h             |  4 +--
- lib/transfer.c             |  2 +-
- tests/data/Makefile.am     |  2 +-
- tests/data/test599         | 83 +++++++++++++++++++++++++++++++++++++++++++
- tests/libtest/Makefile.inc |  4 ++-
- tests/libtest/lib599.c     | 88 ++++++++++++++++++++++++++++++++++++++++++++++
- 7 files changed, 184 insertions(+), 8 deletions(-)
- create mode 100644 tests/data/test599
- create mode 100644 tests/libtest/lib599.c
-
-diff --git a/lib/progress.c b/lib/progress.c
-index 1eeb780..4c9a63a 100644
---- a/lib/progress.c
-+++ b/lib/progress.c
-@@ -146,13 +146,16 @@ void Curl_pgrsDone(struct connectdata *conn)
-   data->progress.speeder_c = 0; /* reset the progress meter display */
- }
- 
--/* reset all times except redirect */
--void Curl_pgrsResetTimes(struct SessionHandle *data)
-+/* reset all times except redirect, and reset the known transfer sizes */
-+void Curl_pgrsResetTimesSizes(struct SessionHandle *data)
- {
-   data->progress.t_nslookup = 0.0;
-   data->progress.t_connect = 0.0;
-   data->progress.t_pretransfer = 0.0;
-   data->progress.t_starttransfer = 0.0;
-+
-+  Curl_pgrsSetDownloadSize(data, 0);
-+  Curl_pgrsSetUploadSize(data, 0);
- }
- 
- void Curl_pgrsTime(struct SessionHandle *data, timerid timer)
-diff --git a/lib/progress.h b/lib/progress.h
-index f5cc540..a41d5f9 100644
---- a/lib/progress.h
-+++ b/lib/progress.h
-@@ -46,7 +46,7 @@ void Curl_pgrsSetUploadSize(struct SessionHandle *data, curl_off_t size);
- void Curl_pgrsSetDownloadCounter(struct SessionHandle *data, curl_off_t size);
- void Curl_pgrsSetUploadCounter(struct SessionHandle *data, curl_off_t size);
- int Curl_pgrsUpdate(struct connectdata *);
--void Curl_pgrsResetTimes(struct SessionHandle *data);
-+void Curl_pgrsResetTimesSizes(struct SessionHandle *data);
- void Curl_pgrsTime(struct SessionHandle *data, timerid timer);
- 
- 
-diff --git a/lib/transfer.c b/lib/transfer.c
-index d6061be..d872719 100644
---- a/lib/transfer.c
-+++ b/lib/transfer.c
-@@ -1924,7 +1924,7 @@ CURLcode Curl_follow(struct SessionHandle *data,
-     break;
-   }
-   Curl_pgrsTime(data, TIMER_REDIRECT);
--  Curl_pgrsResetTimes(data);
-+  Curl_pgrsResetTimesSizes(data);
- 
-   return CURLE_OK;
- #endif /* CURL_DISABLE_HTTP */
--- 
-1.8.4.3
-
diff --git a/tools/depends/target/curl/Makefile b/tools/depends/target/curl/Makefile
deleted file mode 100644
index f81c012..0000000
--- a/tools/depends/target/curl/Makefile
+++ /dev/null
@@ -1,52 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile 0001-HTTP-reset-expected-DL-UL-sizes-on-redirects.patch
-
-# lib name, version
-LIBNAME=curl
-VERSION=7.21.6
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.bz2
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --without-libssh2 \
-
-LIBDYLIB=$(PLATFORM)/lib/.libs/lib$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p1 < ../0001-HTTP-reset-expected-DL-UL-sizes-on-redirects.patch
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)/lib
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	# install only libcurl and includes
-	$(MAKE) -C $(PLATFORM)/lib install
-	$(MAKE) -C $(PLATFORM)/include install
-	# make sure to also install libcurl.pc, we need to do
-	# this because we are selectively installing only libcurl
-	$(MAKE) -C $(PLATFORM) install-pkgconfigDATA
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/libcurl.la $(PREFIX)/lib/libcurl.so $(PREFIX)/lib/libcurl.so.5
-	mv -f $(PREFIX)/lib/libcurl.so.5.2.0 $(PREFIX)/lib/libcurl.so
-	$(RPL) -e "libcurl.so.5" "libcurl.so\x00\x00" $(PREFIX)/lib/libcurl.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libcurl.so | grep ibrary
-endif
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/dbus/Makefile b/tools/depends/target/dbus/Makefile
deleted file mode 100644
index 24ba323..0000000
--- a/tools/depends/target/dbus/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=dbus
-VERSION=1.4.6
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) \
-  --without-x --disable-xml-docs --disable-doxygen-docs
-
-LIBDYLIB=$(PLATFORM)/$(LIBNAME)/.libs/$(LIBNAME).so
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: $(LIBDYLIB) .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/dummy-libxbmc/Makefile b/tools/depends/target/dummy-libxbmc/Makefile
deleted file mode 100644
index d65537a..0000000
--- a/tools/depends/target/dummy-libxbmc/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-include ../../Makefile.include
-VERSION.TXT := $(XBMCROOT)/version.txt
-DEPS= ../../Makefile.include Makefile dummy-libxbmc.c $(VERSION.TXT)
-APP_NAME=$(shell awk '/APP_NAME/ {print tolower($$2)}' $(VERSION.TXT))
-
-LIBDYLIB=lib$(APP_NAME).so
-
-all: $(PLATFORM)/$(LIBDYLIB) .installed-$(PLATFORM)
-
-$(PLATFORM):
-	mkdir -p $(PLATFORM)
-
-$(PLATFORM)/$(LIBDYLIB): $(PLATFORM) $(DEPS)
-	$(CC) -shared -o $(PLATFORM)/lib$(APP_NAME).so dummy-libxbmc.c
-
-.installed-$(PLATFORM): $(PLATFORM)/$(LIBDYLIB)
-	mkdir -p  $(PREFIX)/lib/dummy-lib$(APP_NAME)
-	cp $(PLATFORM)/lib$(APP_NAME).so $(PREFIX)/lib/dummy-lib$(APP_NAME)
-	touch $@
-
-clean:
-	rm -rf $(PLATFORM)
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/dummy-libxbmc/dummy-libxbmc.c b/tools/depends/target/dummy-libxbmc/dummy-libxbmc.c
deleted file mode 100644
index 2d72d2b..0000000
--- a/tools/depends/target/dummy-libxbmc/dummy-libxbmc.c
+++ /dev/null
@@ -1,4 +0,0 @@
-void xbmc_dummy_function()
-{
-  return;
-}
diff --git a/tools/depends/target/expat/Makefile b/tools/depends/target/expat/Makefile
deleted file mode 100644
index de6c72e..0000000
--- a/tools/depends/target/expat/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=expat
-VERSION=2.0.1
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) ./conftools; ./configure --prefix=$(PREFIX) --disable-shared
-
-LIBDYLIB=$(PLATFORM)/.libs/lib$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/ffmpeg/FFMPEG-VERSION b/tools/depends/target/ffmpeg/FFMPEG-VERSION
deleted file mode 100644
index 5db0feb..0000000
--- a/tools/depends/target/ffmpeg/FFMPEG-VERSION
+++ /dev/null
@@ -1,5 +0,0 @@
-LIBNAME=ffmpeg
-BASE_URL=https://github.com/xbmc/FFmpeg/archive
-VERSION=2.4.4-Helix
-ARCHIVE=$(LIBNAME)-$(VERSION).tar.gz
-
diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile
deleted file mode 100644
index 0e08dcf..0000000
--- a/tools/depends/target/ffmpeg/Makefile
+++ /dev/null
@@ -1,83 +0,0 @@
-include ../../Makefile.include
-include FFMPEG-VERSION
-DEPS= ../../Makefile.include FFMPEG-VERSION Makefile
-
-# set to "yes" to enable patching
-# we don't apply patches until we move to a vanilla ffmpeg tarball
-APPLY_PATCHES=no
-
-# configuration settings
-ffmpg_config = --prefix=$(PREFIX) --extra-version="xbmc-$(VERSION)"
-ffmpg_config += --cc=$(CC) --cxx=$(CXX)
-ffmpg_config += --disable-devices --disable-doc
-ffmpg_config += --disable-ffplay --disable-ffmpeg
-ffmpg_config += --disable-ffprobe --disable-ffserver
-ffmpg_config += --enable-gpl --enable-runtime-cpudetect
-ffmpg_config += --enable-postproc --enable-pthreads
-ffmpg_config += --enable-muxer=spdif --enable-muxer=adts
-ffmpg_config += --enable-muxer=asf --enable-muxer=ipod
-ffmpg_config += --enable-encoder=ac3 --enable-encoder=aac
-ffmpg_config += --enable-encoder=wmav2 --enable-protocol=http
-ifeq ($(CROSS_COMPILING), yes)
-  ffmpg_config += --arch=$(CPU) --enable-cross-compile
-endif
-ifeq ($(OS), linux)
-  ffmpg_config += --target-os=$(OS) --cpu=$(CPU)
-  ffmpg_config += --enable-vdpau --enable-vaapi --enable-gnutls
-  ffmpg_config += --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis
-endif
-ifeq ($(OS), android)
-  ifeq ($(findstring arm, $(CPU)), arm)
-    ffmpg_config += --cpu=cortex-a9
-  else
-    ffmpg_config += --cpu=i686 --disable-mmx
-  endif
-  ffmpg_config += --target-os=linux
-endif
-ifeq ($(OS), ios)
-  ffmpg_config += --cpu=cortex-a8 --yasmexe=$(NATIVEPREFIX)/bin/yasm
-  ffmpg_config += --disable-decoder=mpeg_xvmc --enable-vda --disable-crystalhd
-  ffmpg_config += --target-os=darwin
-endif
-ifeq ($(OS), osx)
-  ffmpg_config += --disable-outdev=sdl
-  ffmpg_config += --disable-decoder=mpeg_xvmc --enable-vda --disable-crystalhd
-  ffmpg_config += --target-os=darwin
-endif
-ifeq ($(findstring arm, $(CPU)), arm)
-  ffmpg_config += --enable-pic --disable-armv5te --disable-armv6t2
-endif
-ifeq ($(Configuration), Release)
-  ffmpg_config += --disable-debug
-endif
-
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) -Ls --create-dirs -f -o $(TARBALLS_LOCATION)/$(ARCHIVE) $(BASE_URL)/$(VERSION).tar.gz
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); sed -i".bak" -e "s%pkg_config_default=pkg-config%export PKG_CONFIG_LIBDIR=$(PREFIX)/lib/pkgconfig \&\& pkg_config_default=$(NATIVEPREFIX)/bin/pkg-config%" configure
-	cd $(PLATFORM);\
-	CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \
-	./configure $(ffmpg_config)
-
-build: $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): build
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/ffmpeg/autobuild.sh b/tools/depends/target/ffmpeg/autobuild.sh
deleted file mode 100755
index 21e40ab..0000000
--- a/tools/depends/target/ffmpeg/autobuild.sh
+++ /dev/null
@@ -1,168 +0,0 @@
-#!/bin/bash
-#
-#      Copyright (C) 2005-2013 Team XBMC
-#      http://xbmc.org
-#
-#  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 XBMC; see the file COPYING.  If not, see
-#  <http://www.gnu.org/licenses/>.
-#
-
-
-MYDIR=$(cd $(dirname $0); pwd)
-cd $MYDIR
-FFMPEG_PREFIX=${MYDIR}/ffmpeg-install
-
-BASE_URL=$(grep "BASE_URL=" FFMPEG-VERSION | sed 's/BASE_URL=//g')
-VERSION=$(grep "VERSION=" FFMPEG-VERSION | sed 's/VERSION=//g')
-ARCHIVE=ffmpeg-${VERSION}.tar.gz
-
-function usage {
-  echo "usage $(basename $0) 
-       [-p | --prefix]    ... ffmepg install prefix
-       [-d | --download]  ... no build, download tarfile only
-       [-r | --release]   ... disable debugging symbols
-       [-j]               ... make concurrency level
-       [--cpu=CPU]        ... minimum required CPU
-       [--arch=ARCH]      ... select architecture
-       [--disable-optimizations]
-  "
-}
-
-while :
-do
-  case $1 in
-    -h | --help)
-      usage
-      exit 0
-      ;;
-    -p | --prefix)
-      FFMPEG_PREFIX=$2
-      shift 2
-      ;; 
-    --prefix=*)
-      FFMPEG_PREFIX=${1#*=}
-      shift
-      ;; 
-    -d | --download)
-      downloadonly=true 
-      shift
-      ;;
-    -r | --release)
-      FLAGS="$FLAGS --disable-debug" 
-      shift
-      ;;
-    --disable-optimizations)
-      FLAGS="$FLAGS --disable-optimizations"
-      shift
-      ;;
-    --cpu=*)
-      FLAGS="$FLAGS --cpu=${1#*=}"
-      shift
-      ;;
-    --arch=*)
-      FLAGS="$FLAGS --arch=${1#*=}"
-      shift
-      ;;
-    --extra-cflags=*)
-      FLAGS="$FLAGS --extra-cflags=\"${1#*=}\""
-      shift
-      ;;
-    --extra-cxxflags=*)
-      FLAGS="$FLAGS --extra-cxxflags=\"${1#*=}\""
-      shift
-      ;;
-    -j)
-      BUILDTHREADS=$2
-      shift 2
-      ;;
-    --)
-      shift
-      break
-      ;;
-    -*)
-      echo "WARN: Unknown option (ignored): $1" >&2
-      shift
-      ;;
-    *)
-      break
-      ;;
-  esac
-done
-
-BUILDTHREADS=${BUILDTHREADS:-$(grep -c "^processor" /proc/cpuinfo)}
-[ ${BUILDTHREADS} -eq 0 ] && BUILDTHREADS=1
-
-[ -z ${VERSION} ] && exit 3
-if [ -f ${FFMPEG_PREFIX}/lib/pkgconfig/libavcodec.pc ] && [ -f .ffmpeg-installed ]
-then
-  CURVER=$(cat .ffmpeg-installed)
-  [ "$VERSION" == "$CURVER" ] && exit 0
-fi
-
-[ -f ${ARCHIVE} ] || curl -Ls --create-dirs -f -o ${ARCHIVE} ${BASE_URL}/${VERSION}.tar.gz
-[ $downloadonly ] && exit 0
-
-[ -d ffmpeg-${VERSION} ] && rm -rf ffmpeg-${VERSION} && rm .ffmpeg-installed >/dev/null 2>&1
-if [ -d ${FFMPEG_PREFIX} ]
-then
-  [ -w ${FFMPEG_PREFIX} ] || SUDO="sudo"
-else
-  [ -w $(dirname ${FFMPEG_PREFIX}) ] || SUDO="sudo"
-fi
-
-mkdir ffmpeg-${VERSION}
-cd ffmpeg-${VERSION} || exit 2
-tar --strip-components=1 -xf ../${ARCHIVE}
-
-CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \
-./configure --prefix=$FFMPEG_PREFIX \
-	--extra-version="xbmc-${VERSION}" \
-	--disable-devices \
-	--disable-ffplay \
-	--disable-ffmpeg \
-	--disable-ffprobe \
-	--disable-ffserver \
-	--disable-doc \
-	--enable-gpl \
-	--enable-runtime-cpudetect \
-	--enable-postproc \
-	--enable-vaapi \
-	--enable-vdpau \
-	--enable-bzlib \
-	--enable-gnutls \
-	--enable-muxer=spdif \
-	--enable-muxer=adts \
-	--enable-muxer=asf \
-	--enable-muxer=ipod \
-	--enable-encoder=ac3 \
-	--enable-encoder=aac \
-	--enable-encoder=wmav2 \
-	--enable-protocol=http \
-	--enable-libvorbis \
-	--enable-muxer=ogg \
-	--enable-encoder=libvorbis \
-	--enable-nonfree \
-	--enable-pthreads \
-	--enable-zlib \
-        ${FLAGS}
-
-make -j ${BUILDTHREADS} 
-if [ $? -eq 0 ]
-then
-  [ ${SUDO} ] && echo "Root priviledges are required to install to ${FFMPEG_PREFIX}"
-  ${SUDO} make install && echo "$VERSION" > ../.ffmpeg-installed
-else
-  echo "ERROR: building ffmpeg failed"
-  exit 1
-fi
diff --git a/tools/depends/target/fontconfig/01-fontconfig-cross-compile-fix.patch b/tools/depends/target/fontconfig/01-fontconfig-cross-compile-fix.patch
deleted file mode 100644
index 334cbba..0000000
--- a/tools/depends/target/fontconfig/01-fontconfig-cross-compile-fix.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-diff -Naur fontconfig-2.6.0.orig/doc/Makefile.am fontconfig-2.6.0/doc/Makefile.am
---- fontconfig-2.6.0.orig/doc/Makefile.am	2007-11-06 01:05:37.000000000 +0100
-+++ fontconfig-2.6.0/doc/Makefile.am	2010-05-22 00:03:00.000000000 +0200
-@@ -21,9 +21,10 @@
- # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- # PERFORMANCE OF THIS SOFTWARE.
- 
--CC = @CC_FOR_BUILD@
- EXEEXT = @EXEEXT_FOR_BUILD@
--LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-+COMPILE = $(CC_FOR_BUILD) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-+		      $(CPPFLAGS_FOR_BUILD) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD)
-+LINK = $(CC_FOR_BUILD) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(AM_LDFLAGS) $(LDFLAGS_FOR_BUILD) -o $@
- 
- DOC_SRC = $(srcdir)
- DOC_MODULE = fontconfig
-diff -Naur fontconfig-2.6.0.orig/fc-arch/Makefile.am fontconfig-2.6.0/fc-arch/Makefile.am
---- fontconfig-2.6.0.orig/fc-arch/Makefile.am	2008-01-02 17:44:39.000000000 +0100
-+++ fontconfig-2.6.0/fc-arch/Makefile.am	2010-05-21 23:59:18.000000000 +0200
-@@ -22,9 +22,10 @@
- # PERFORMANCE OF THIS SOFTWARE.
- #
- 
--CC = @CC_FOR_BUILD@
- EXEEXT = @EXEEXT_FOR_BUILD@
--LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-+COMPILE = $(CC_FOR_BUILD) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-+	$(CPPFLAGS_FOR_BUILD) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD)
-+LINK = $(CC_FOR_BUILD) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(AM_LDFLAGS) $(LDFLAGS_FOR_BUILD) -o $@
- 
- INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(WARN_CFLAGS)
- 
-diff -Naur fontconfig-2.6.0.orig/fc-case/Makefile.am fontconfig-2.6.0/fc-case/Makefile.am
---- fontconfig-2.6.0.orig/fc-case/Makefile.am	2010-05-21 23:55:02.000000000 +0200
-+++ fontconfig-2.6.0/fc-case/Makefile.am	2010-05-22 00:04:09.000000000 +0200
-@@ -22,9 +22,10 @@
- # PERFORMANCE OF THIS SOFTWARE.
- #
- 
--CC = @CC_FOR_BUILD@
- EXEEXT = @EXEEXT_FOR_BUILD@
--LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-+COMPILE = $(CC_FOR_BUILD) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-+		      $(CPPFLAGS_FOR_BUILD) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD)
-+LINK = $(CC_FOR_BUILD) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(AM_LDFLAGS) $(LDFLAGS_FOR_BUILD) -o $@
- 
- INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(WARN_CFLAGS)
- 
-diff -Naur fontconfig-2.6.0.orig/fc-glyphname/Makefile.am fontconfig-2.6.0/fc-glyphname/Makefile.am
---- fontconfig-2.6.0.orig/fc-glyphname/Makefile.am	2008-01-02 17:44:39.000000000 +0100
-+++ fontconfig-2.6.0/fc-glyphname/Makefile.am	2010-05-22 00:04:54.000000000 +0200
-@@ -22,9 +22,10 @@
- # PERFORMANCE OF THIS SOFTWARE.
- #
- 
--CC = @CC_FOR_BUILD@
- EXEEXT = @EXEEXT_FOR_BUILD@
--LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-+COMPILE = $(CC_FOR_BUILD) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-+		      $(CPPFLAGS_FOR_BUILD) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD)
-+LINK = $(CC_FOR_BUILD) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(AM_LDFLAGS) $(LDFLAGS_FOR_BUILD) -o $@
- 
- INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(WARN_CFLAGS)
- 
-diff -Naur fontconfig-2.6.0.orig/fc-lang/Makefile.am fontconfig-2.6.0/fc-lang/Makefile.am
---- fontconfig-2.6.0.orig/fc-lang/Makefile.am	2008-01-02 17:44:39.000000000 +0100
-+++ fontconfig-2.6.0/fc-lang/Makefile.am	2010-05-22 00:05:44.000000000 +0200
-@@ -22,9 +22,10 @@
- # PERFORMANCE OF THIS SOFTWARE.
- #
- 
--CC = @CC_FOR_BUILD@
- EXEEXT = @EXEEXT_FOR_BUILD@
--LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-+COMPILE = $(CC_FOR_BUILD) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-+		      $(CPPFLAGS_FOR_BUILD) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD)
-+LINK = $(CC_FOR_BUILD) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(AM_LDFLAGS) $(LDFLAGS_FOR_BUILD) -o $@
- 
- INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(WARN_CFLAGS)
- 
diff --git a/tools/depends/target/fontconfig/Makefile b/tools/depends/target/fontconfig/Makefile
deleted file mode 100644
index 9dea160..0000000
--- a/tools/depends/target/fontconfig/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include 01-fontconfig-cross-compile-fix.patch lconv.patch Makefile
-
-# lib name, version
-LIBNAME=fontconfig
-VERSION=2.8.0
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) \
-  --with-freetype-config=$(PREFIX)/bin/freetype-config \
-  --disable-libxml2 --disable-docs --with-arch=$(PLATFORM) --disable-shared
-
-LIBDYLIB=$(PLATFORM)/src/.libs/lib$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p1 < ../01-fontconfig-cross-compile-fix.patch
-	cd $(PLATFORM); patch -p1 < ../lconv.patch 
-	cd $(PLATFORM); $(AUTORECONF) -vif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/fontconfig/lconv.patch b/tools/depends/target/fontconfig/lconv.patch
deleted file mode 100644
index c760d7f..0000000
--- a/tools/depends/target/fontconfig/lconv.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- fontconfig-2.6.0.old/src/fcxml.c    2011-10-15 16:16:43.809967115 -0400
-+++ fontconfig-2.6.0/src/fcxml.c        2011-10-15 16:18:39.059967042 -0400
-@@ -1139,6 +1139,7 @@
- static double
- FcStrtod (char *s, char **end)
- {
-+#if 0
-     struct lconv    *locale_data;
-     char           *dot;
-     double         v;
-@@ -1185,6 +1186,7 @@
-     else
-        v = strtod (s, end);
-     return v;
-+#endif
- }
-
- static void
\ No newline at end of file
diff --git a/tools/depends/target/freetype2/Makefile b/tools/depends/target/freetype2/Makefile
deleted file mode 100644
index d83b9a0..0000000
--- a/tools/depends/target/freetype2/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=freetype
-VERSION=2.4.7
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.bz2
-
-# configuration settings
-# force using internal libtool
-export LIBTOOL=builds/unix/libtool
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) builds/unix; \
-          ./configure --prefix=$(PREFIX) --disable-shared
-
-LIBDYLIB=$(PLATFORM)/objs/.libs/lib$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/fribidi/Makefile b/tools/depends/target/fribidi/Makefile
deleted file mode 100644
index 01049b0..0000000
--- a/tools/depends/target/fribidi/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=fribidi
-VERSION=0.19.1
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-export CFLAGS+=-D__STDC_INT64__
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --disable-docs --enable-malloc \
-          --disable-shared --with-glib=no
-
-LIBDYLIB=$(PLATFORM)/lib/.libs/lib$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-	touch $@
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/gettext/Makefile b/tools/depends/target/gettext/Makefile
deleted file mode 100644
index 85ca94d..0000000
--- a/tools/depends/target/gettext/Makefile
+++ /dev/null
@@ -1,48 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=gettext
-VERSION=0.18.2
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) build-aux/; \
-    ./configure --prefix=$(PREFIX) \
-    --disable-csharp --disable-native-java --disable-java --without-emacs \
-    --disable-libasprintf --disable-openmp \
-    --with-included-gettext \
-    --with-included-glib \
-    --with-included-libcroco \
-    --with-included-libxml \
-    --without-git --without-cvs --disable-shared --disable-curses \
-
-LIBDYLIB=$(PLATFORM)/gettext-runtime/intl/.libs/libintl.a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)/gettext-runtime
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM)/gettext-runtime install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/gmp/Makefile b/tools/depends/target/gmp/Makefile
deleted file mode 100644
index 213a7ba..0000000
--- a/tools/depends/target/gmp/Makefile
+++ /dev/null
@@ -1,51 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=gmp
-VERSION=5.1.2
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.bz2
-
-# ABI selection
-ifeq ($(OS),linux)
-  ifeq (i686,$(findstring i686,$(HOST)))
-    ABI=ABI=32
-  else
-  ifeq (i386,$(findstring i386,$(HOST)))
-    ABI=ABI=32
-  endif
-  endif
-endif
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --disable-shared $(ABI)
-
-LIBDYLIB=$(PLATFORM)/src/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/gnutls/Makefile b/tools/depends/target/gnutls/Makefile
deleted file mode 100644
index 7e7ec69..0000000
--- a/tools/depends/target/gnutls/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=gnutls
-VERSION=3.1.14
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.xz
-
-ifeq (darwin, $(findstring darwin, $(HOST)))
-# darwins tar doesn't know about xz - so we need our native version of tar here
-ARCHIVE_TOOL=$(ARCHIVE_TOOL_NATIVE)
-endif
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --disable-shared --without-p11-kit --disable-nls
-
-LIBDYLIB=$(PLATFORM)/src/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/jasper/Makefile b/tools/depends/target/jasper/Makefile
deleted file mode 100644
index 15d3025..0000000
--- a/tools/depends/target/jasper/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=jasper
-VERSION=1.900.1
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).zip
-ARCHIVE_TOOL=unzip
-ARCHIVE_TOOL_FLAGS=
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) acaux/ ;\
-          ./configure --prefix=$(PREFIX)
-
-LIBDYLIB=$(PLATFORM)/src/lib$(LIBNAME)/.libs/lib$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	mv $(SOURCE)/* $(PLATFORM) && rm -rf $(SOURCE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/jpeg/Makefile b/tools/depends/target/jpeg/Makefile
deleted file mode 100644
index 5144f1d..0000000
--- a/tools/depends/target/jpeg/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=jpeg
-VERSION=8b
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(LIBNAME)src.v$(VERSION).tar.gz
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX)
-
-LIBDYLIB=$(PLATFORM)/.libs/lib$(LIBNAME).so
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: $(LIBDYLIB) .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/libGLEW/Makefile b/tools/depends/target/libGLEW/Makefile
deleted file mode 100644
index 57e89b7..0000000
--- a/tools/depends/target/libGLEW/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=glew
-VERSION=1.7.0
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-SYSTEM=$(OS)
-ifeq ($(OS),osx)
-  SYSTEM=darwin
-endif
-export SYSTEM
-export GLEW_DEST=$(PREFIX)
-
-LIBDYLIB=$(PLATFORM)/lib/libGLEW.a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-
-$(LIBDYLIB): $(PLATFORM)
-	sed -ie "s|CC = cc|CC = $(CC)|" "$(PLATFORM)/config/Makefile.$(SYSTEM)"
-	sed -ie "s|LD = cc|LD = $(CC)|" "$(PLATFORM)/config/Makefile.$(SYSTEM)"
-	sed -ie "s|CFLAGS.EXTRA =|CFLAGS.EXTRA = \$(CFLAGS)|" "$(PLATFORM)/config/Makefile.$(SYSTEM)"
-	sed -ie "s|LDFLAGS.EXTRA =|LDFLAGS.EXTRA = \$(LDFLAGS)|" "$(PLATFORM)/config/Makefile.$(SYSTEM)"
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/libamplayer/Makefile b/tools/depends/target/libamplayer/Makefile
deleted file mode 100644
index 317a4c5..0000000
--- a/tools/depends/target/libamplayer/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-all: .installed-$(PLATFORM)
-
-.patched-$(PLATFORM): $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cp -rf libamplayer $(PLATFORM)/
-	cd $(PLATFORM); patch -p1 < ../android-4.0-to-4.1.patch
-	cd $(PLATFORM); patch -p1 < ../android-4.1-to-4.2.patch
-	cd $(PLATFORM); patch -p1 < ../android-4.2-to-4.4.patch
-	touch $@
-
-.installed-$(PLATFORM): .patched-$(PLATFORM)
-	mkdir -p $(PREFIX)/include/amcodec
-	cp -rf $(PLATFORM)/libamplayer/include/amcodec/* $(PREFIX)/include/amcodec/
-	mkdir -p $(PREFIX)/include/amplayer
-	cp -rf $(PLATFORM)/libamplayer/include/amplayer/* $(PREFIX)/include/amplayer/
-	touch $@
-
-clean:
-	rm -f .installed-$(PLATFORM)
-	rm -f .patched-$(PLATFORM)
-
-distclean:: clean
-	rm -rf $(PLATFORM)
diff --git a/tools/depends/target/libamplayer/android-4.0-to-4.1.patch b/tools/depends/target/libamplayer/android-4.0-to-4.1.patch
deleted file mode 100644
index 2e23f33..0000000
--- a/tools/depends/target/libamplayer/android-4.0-to-4.1.patch
+++ /dev/null
@@ -1,524 +0,0 @@
---- a/libamplayer/include/amcodec/amports/aformat.h
-+++ b/libamplayer/include/amcodec/amports/aformat.h
-@@ -7,7 +7,7 @@
- */
- /* Copyright (C) 2007-2011, Amlogic Inc.
- * All right reserved
--* 
-+*
- */
- 
- /*
-@@ -57,14 +57,16 @@ typedef enum {
-     AFORMAT_VORBIS    = 18,
-     AFORMAT_AAC_LATM   = 19,
-     AFORMAT_APE   = 20,
-+    AFORMAT_EAC3   = 21,
-+    AFORMAT_PCM_WIFIDISPLAY = 22,
-     AFORMAT_UNSUPPORT ,
--    AFORMAT_MAX    
-+    AFORMAT_MAX
- 
- } aformat_t;
- 
- #define AUDIO_EXTRA_DATA_SIZE   (4096)
- #define IS_AFMT_VALID(afmt)	((afmt > AFORMAT_UNKNOWN) && (afmt < AFORMAT_MAX))
--    
-+
- #define IS_AUIDO_NEED_EXT_INFO(afmt) ((afmt == AFORMAT_ADPCM) \
- 								 ||(afmt == AFORMAT_WMA) \
- 								 ||(afmt == AFORMAT_WMAPRO) \
-@@ -75,15 +77,23 @@ typedef enum {
- 								 ||(afmt == AFORMAT_AMR)\
- 								 ||(afmt == AFORMAT_ALAC)\
- 								 ||(afmt == AFORMAT_AC3) \
-+								 ||(afmt == AFORMAT_EAC3) \
- 								 ||(afmt == AFORMAT_APE) \
--								 ||(afmt == AFORMAT_FLAC) )
-+								 ||(afmt == AFORMAT_FLAC)\
-+								 ||(afmt == AFORMAT_PCM_WIFIDISPLAY))
- 
- 
- #define IS_AUDIO_NOT_SUPPORT_EXCEED_2CH(afmt) ((afmt == AFORMAT_RAAC) \
- 										||(afmt == AFORMAT_COOK) \
--										||(afmt == AFORMAT_FLAC))
-+										/*||(afmt == AFORMAT_FLAC)*/)
- 
--#define IS_AUIDO_NEED_PREFEED_HEADER(afmt) ((afmt == AFORMAT_VORBIS) )
-+#define IS_AUDIO_NOT_SUPPORT_EXCEED_6CH(afmt) ((afmt == AFORMAT_WMAPRO))
-+#define IS_AUDIO_NOT_SUPPORT_EXCEED_FS48k(afmt) ((afmt == AFORMAT_WMAPRO))
- 
-+
-+#define IS_AUIDO_NEED_PREFEED_HEADER(afmt) ((afmt == AFORMAT_VORBIS) )
-+#define IS_AUDIO_NOT_SUPPORTED_BY_AUDIODSP(afmt,codec)  \
-+							((afmt == AFORMAT_AAC_LATM || afmt == AFORMAT_AAC) \
-+							 &&codec->profile == 0/* FF_PROFILE_AAC_MAIN*/)
- #endif /* AFORMAT_H */
- 
---- a/libamplayer/include/amcodec/amports/amstream.h
-+++ b/libamplayer/include/amcodec/amports/amstream.h
-@@ -83,6 +83,7 @@
- #define AMSTREAM_IOC_SET_DEC_RESET _IOW(AMSTREAM_IOC_MAGIC, 0x1c, int)
- #define AMSTREAM_IOC_TS_SKIPBYTE _IOW(AMSTREAM_IOC_MAGIC, 0x1d, int)
- #define AMSTREAM_IOC_SUB_TYPE    _IOW(AMSTREAM_IOC_MAGIC, 0x1e, int)
-+#define AMSTREAM_IOC_CLEAR_VIDEO    _IOW(AMSTREAM_IOC_MAGIC, 0x1f, int)
- #define AMSTREAM_IOC_APTS             _IOR(AMSTREAM_IOC_MAGIC, 0x40, unsigned long)
- #define AMSTREAM_IOC_VPTS             _IOR(AMSTREAM_IOC_MAGIC, 0x41, unsigned long)
- #define AMSTREAM_IOC_PCRSCR           _IOR(AMSTREAM_IOC_MAGIC, 0x42, unsigned long)
-@@ -96,10 +97,35 @@
- #define AMSTREAM_IOC_SET_PCRSCR       _IOW(AMSTREAM_IOC_MAGIC, 0x4a, unsigned long)
- #define AMSTREAM_IOC_GET_VIDEO_AXIS   _IOR(AMSTREAM_IOC_MAGIC, 0x4b, unsigned long)
- #define AMSTREAM_IOC_SET_VIDEO_AXIS   _IOW(AMSTREAM_IOC_MAGIC, 0x4c, unsigned long)
-+#define AMSTREAM_IOC_GET_VIDEO_CROP   _IOR(AMSTREAM_IOC_MAGIC, 0x4d, unsigned long)
-+#define AMSTREAM_IOC_SET_VIDEO_CROP   _IOW(AMSTREAM_IOC_MAGIC, 0x4e, unsigned long)
- #define AMSTREAM_IOC_SUB_NUM	_IOR(AMSTREAM_IOC_MAGIC, 0x50, unsigned long)
- #define AMSTREAM_IOC_SUB_INFO	_IOR(AMSTREAM_IOC_MAGIC, 0x51, unsigned long)
--
-+#define AMSTREAM_IOC_GET_SCREEN_MODE _IOR(AMSTREAM_IOC_MAGIC, 0x58, int)
-+#define AMSTREAM_IOC_SET_SCREEN_MODE _IOW(AMSTREAM_IOC_MAGIC, 0x59, int)
- #define AMSTREAM_IOC_SET_DEMUX  _IOW(AMSTREAM_IOC_MAGIC, 0x90, unsigned long)
-+#define AMSTREAM_IOC_GET_SYNC_ADISCON_DIFF  _IOR(AMSTREAM_IOC_MAGIC, 0x83, unsigned long)
-+#define AMSTREAM_IOC_GET_SYNC_VDISCON_DIFF  _IOR(AMSTREAM_IOC_MAGIC, 0x84, unsigned long)
-+#define AMSTREAM_IOC_SET_SYNC_ADISCON_DIFF  _IOW(AMSTREAM_IOC_MAGIC, 0x85, unsigned long)
-+#define AMSTREAM_IOC_SET_SYNC_VDISCON_DIFF  _IOW(AMSTREAM_IOC_MAGIC, 0x86, unsigned long)
-+#define AMSTREAM_IOC_GET_FREERUN_MODE  _IOR(AMSTREAM_IOC_MAGIC, 0x87, unsigned long)
-+#define AMSTREAM_IOC_SET_FREERUN_MODE  _IOW(AMSTREAM_IOC_MAGIC, 0x88, unsigned long)
-+#define AMSTREAM_IOC_SET_VSYNC_UPINT   _IOW(AMSTREAM_IOC_MAGIC, 0x89, unsigned long)
-+
-+#define AMSTREAM_IOC_SET_VIDEO_DELAY_LIMIT_MS _IOW(AMSTREAM_IOC_MAGIC, 0xa0, unsigned long)
-+#define AMSTREAM_IOC_GET_VIDEO_DELAY_LIMIT_MS _IOR(AMSTREAM_IOC_MAGIC, 0xa1, unsigned long)
-+#define AMSTREAM_IOC_SET_AUDIO_DELAY_LIMIT_MS _IOW(AMSTREAM_IOC_MAGIC, 0xa2, unsigned long)
-+#define AMSTREAM_IOC_GET_AUDIO_DELAY_LIMIT_MS _IOR(AMSTREAM_IOC_MAGIC, 0xa3, unsigned long)
-+#define AMSTREAM_IOC_GET_AUDIO_CUR_DELAY_MS _IOR(AMSTREAM_IOC_MAGIC, 0xa4, unsigned long)
-+#define AMSTREAM_IOC_GET_VIDEO_CUR_DELAY_MS _IOR(AMSTREAM_IOC_MAGIC, 0xa5, unsigned long)
-+#define AMSTREAM_IOC_GET_AUDIO_AVG_BITRATE_BPS _IOR(AMSTREAM_IOC_MAGIC, 0xa6, unsigned long)
-+#define AMSTREAM_IOC_GET_VIDEO_AVG_BITRATE_BPS _IOR(AMSTREAM_IOC_MAGIC, 0xa7, unsigned long)
-+
-+#define AMAUDIO_IOC_MAGIC  'A'
-+#define AMAUDIO_IOC_SET_RESAMPLE_ENA        _IOW(AMAUDIO_IOC_MAGIC, 0x19, unsigned long)
-+#define AMAUDIO_IOC_GET_RESAMPLE_ENA        _IOR(AMAUDIO_IOC_MAGIC, 0x1a, unsigned long)
-+#define AMAUDIO_IOC_SET_RESAMPLE_TYPE       _IOW(AMAUDIO_IOC_MAGIC, 0x1b, unsigned long)
-+#define AMAUDIO_IOC_GET_RESAMPLE_TYPE       _IOR(AMAUDIO_IOC_MAGIC, 0x1c, unsigned long)
- 
- struct buf_status {
-     int size;
---- a/libamplayer/include/amcodec/amports/vformat.h
-+++ b/libamplayer/include/amcodec/amports/vformat.h
-@@ -85,6 +85,7 @@ typedef enum {
- #define CODEC_TAG_MP43      (0x3334504d)
- #define CODEC_TAG_M4S2      (0x3253344d)
- #define CODEC_TAG_DIV4      (0x34564944)
-+#define CODEC_TAG_divx       (0x78766964)
- #define CODEC_TAG_DIVX      (0x58564944)
- #define CODEC_TAG_DIV5      (0x35564944)
- #define CODEC_TAG_DX50      (0x30355844)
-@@ -108,5 +109,6 @@ typedef enum {
- #define CODEC_TAG_WVC1      (0x31435657)
- #define CODEC_TAG_WMVA      (0x41564d57)
- #define CODEC_TAG_FMP4      (0x34504d46)
-+#define CODEC_TAG_FVFW      (0x57465646)
- 
- #endif /* VFORMAT_H */
---- a/libamplayer/include/amcodec/codec.h
-+++ b/libamplayer/include/amcodec/codec.h
-@@ -86,8 +86,32 @@ int codec_set_sync_audio_discont(codec_para_t *pcodec, int discontinue);
- int codec_get_sync_audio_discont(codec_para_t *pcodec);
- int codec_set_sync_video_discont(codec_para_t *pcodec, int discontinue);
- int codec_get_sync_video_discont(codec_para_t *pcodec);
--
-+unsigned long codec_get_sync_audio_discont_diff(codec_para_t *pcodec);
-+unsigned long codec_get_sync_video_discont_diff(codec_para_t *pcodec);
-+int codec_set_sync_audio_discont_diff(codec_para_t *pcodec, unsigned long discontinue_diff);
-+int codec_set_sync_video_discont_diff(codec_para_t *pcodec, unsigned long discontinue_diff);
- int codec_get_sub_num(codec_para_t *pcodec);
- int codec_get_sub_info(codec_para_t *pcodec, subtitle_info_t *sub_info);
- 
-+int codec_set_av_threshold(codec_para_t *pcodec, int threshold);
-+
-+int codec_get_freerun_mode(codec_para_t *pcodec);
-+int codec_set_freerun_mode(codec_para_t *pcodec, unsigned int mode);
-+
-+int codec_init_audio_utils(codec_para_t *pcodec);
-+int codec_release_audio_utils(codec_para_t *pcodec);
-+int codec_set_audio_resample_ena(codec_para_t *pcodec, unsigned long mode);
-+int codec_get_audio_resample_ena(codec_para_t *pcodec);
-+int codec_set_audio_resample_type(codec_para_t *pcodec, unsigned long type);
-+
-+int codec_set_video_delay_limited_ms(codec_para_t *pcodec,int delay_ms);
-+int codec_get_video_delay_limited_ms(codec_para_t *pcodec,int *delay_ms);
-+int codec_set_audio_delay_limited_ms(codec_para_t *pcodec,int delay_ms);
-+int codec_get_audio_delay_limited_ms(codec_para_t *pcodec,int *delay_ms);
-+int codec_get_audio_cur_delay_ms(codec_para_t *pcodec,int *delay_ms);
-+int codec_get_video_cur_delay_ms(codec_para_t *pcodec,int *delay_ms);
-+int codec_get_video_cur_bitrate(codec_para_t *pcodec,int *bitrate);
-+int codec_get_audio_cur_bitrate(codec_para_t *pcodec,int *bitrate);
-+
-+int codec_set_vsync_upint(codec_para_t *pcodec, unsigned int mode);
- #endif
---- a/libamplayer/include/amcodec/codec_type.h
-+++ b/libamplayer/include/amcodec/codec_type.h
-@@ -7,7 +7,7 @@
- */
- /* Copyright (C) 2007-2011, Amlogic Inc.
- * All right reserved
--*
-+* 
- */
- #ifndef CODEC_TYPE_H_
- #define CODEC_TYPE_H_
-@@ -15,6 +15,7 @@
- #include "amports/amstream.h"
- #include "amports/vformat.h"
- #include "amports/aformat.h"
-+#include "ppmgr/ppmgr.h"
- 
- typedef int CODEC_HANDLE;
- 
-@@ -37,7 +38,7 @@ typedef struct {
-     unsigned int    status;  ///< status of video stream
-     unsigned int    ratio;   ///< aspect ratio of video source
-     void *          param;   ///< other parameters for video decoder
--    unsigned long long ratio64; ///< aspect ratio of video source
-+    unsigned long long    ratio64;   ///< aspect ratio of video source
- } dec_sysinfo_t;
- 
- typedef struct {
-@@ -48,7 +49,7 @@ typedef struct {
-     int codec_id;            ///< codec format id
-     int block_align;         ///< audio block align from ffmpeg
-     int extradata_size;      ///< extra data size
--    char extradata[AUDIO_EXTRA_DATA_SIZE];   ///< extra data information for decoder
-+    char extradata[AUDIO_EXTRA_DATA_SIZE];;   ///< extra data information for decoder
- } audio_info_t;
- 
- typedef struct {
-@@ -56,10 +57,14 @@ typedef struct {
-     CODEC_HANDLE cntl_handle;   ///< video control device handler
-     CODEC_HANDLE sub_handle;    ///< subtile device handler
-     stream_type_t stream_type;  ///< stream type(es, ps, rm, ts)
--    unsigned int has_video:1;   ///< stream has video(1) or not(0)
--    unsigned int has_audio:1;   ///< stream has audio(1) or not(0)
--    unsigned int has_sub:1;     ///< stream has subtitle(1) or not(0)
--    unsigned int noblock:1;     ///< codec device is NONBLOCK(1) or not(0)
-+unsigned int has_video:
-+    1;                          ///< stream has video(1) or not(0)
-+unsigned int  has_audio:
-+    1;                          ///< stream has audio(1) or not(0)
-+unsigned int has_sub:
-+    1;                          ///< stream has subtitle(1) or not(0)
-+unsigned int noblock:
-+    1;                          ///< codec device is NONBLOCK(1) or not(0)
-     int video_type;             ///< stream video type(H264, VC1...)
-     int audio_type;             ///< stream audio type(PCM, WMA...)
-     int sub_type;               ///< stream subtitle type(TXT, SSA...)
-@@ -73,17 +78,20 @@ typedef struct {
-     dec_sysinfo_t am_sysinfo;   ///< system information for video
-     audio_info_t audio_info;    ///< audio information pass to audiodsp
-     int packet_size;            ///< data size per packet
--    int avsync_threshold;       ///<for adec in ms>
--    void * adec_priv;           ///<for adec>
-+    int avsync_threshold;    ///<for adec in ms>
-+    void * adec_priv;          ///<for adec>
-+    int SessionID;
-+	int dspdec_not_supported;//check some profile that audiodsp decoder can not support,we switch to arm decoder
-+	int switch_audio_flag;		//<switch audio flag switching(1) else(0)
- } codec_para_t;
- 
--typedef struct
-+typedef struct 
- {
--    signed char id;
-+    signed char id;      
-     unsigned char width;
-     unsigned char height;
--    unsigned char type;
--} subtitle_info_t;
-+	unsigned char type;    
-+}subtitle_info_t;
- #define MAX_SUB_NUM			(32)
- 
- #define IS_VALID_PID(t)     (t>=0 && t<=0x1fff)
-@@ -95,10 +103,13 @@ typedef struct
- typedef struct {
-     int sample_rate;         ///< audio stream sample rate
-     int channels;            ///< audio stream channels
--    int format;              ///< codec format id
--    int handle;              ///< codec device handler
-+    int format;            ///< codec format id
-+    int handle;        ///< codec device handler
-     int extradata_size;      ///< extra data size
-     char extradata[AUDIO_EXTRA_DATA_SIZE];
-+	int SessionID;
-+	int dspdec_not_supported;//check some profile that audiodsp decoder can not support,we switch to arm decoder	
-+	int droppcm_flag;				// drop pcm flag, if switch audio (1)
- } arm_audio_info;
- 
- //audio decoder type, default arc
-new file mode 100644
---- /dev/null
-+++ b/libamplayer/include/amcodec/ppmgr/ppmgr.h
-@@ -0,0 +1,24 @@
-+/**
-+* @file ppmgr.h
-+* @brief  Porting from ppmgr driver for codec ioctl commands
-+* @author Tim Yao <timyao at amlogic.com>
-+* @version 1.0.0
-+* @date 2011-02-24
-+*/
-+/* Copyright (C) 2007-2011, Amlogic Inc.
-+* All right reserved
-+* 
-+*/
-+
-+#ifndef PPMGR_H
-+#define PPMGR_H
-+
-+#define PPMGR_IOC_MAGIC  'P'
-+//#define PPMGR_IOC_2OSD0		_IOW(PPMGR_IOC_MAGIC, 0x00, unsigned int)
-+//#define PPMGR_IOC_ENABLE_PP _IOW(PPMGR_IOC_MAGIC,0X01,unsigned int)
-+//#define PPMGR_IOC_CONFIG_FRAME  _IOW(PPMGR_IOC_MAGIC,0X02,unsigned int)
-+#define PPMGR_IOC_GET_ANGLE  _IOR(PPMGR_IOC_MAGIC,0X03,unsigned long)
-+#define PPMGR_IOC_SET_ANGLE  _IOW(PPMGR_IOC_MAGIC,0X04,unsigned long)
-+
-+#endif /* PPMGR_H */
-+
---- a/libamplayer/include/amplayer/message.h
-+++ b/libamplayer/include/amplayer/message.h
-@@ -1,7 +1,7 @@
- #ifndef PLAYER_MESSAGE_H
- #define PLAYER_MESSAGE_H
- 
--#define MESSAGE_MAX 4
-+#define MESSAGE_MAX 8
- 
- #define CTRL_CMD_RESPONSE   (0xffff)
- 
-@@ -41,6 +41,7 @@ typedef enum {
-     CMD_SET_STEREO      = (1 << 14),   
-     CMD_EN_AUTOBUF      = (1 << 15),
-     CMD_SET_AUTOBUF_LEV = (1 << 16),
-+    CMD_SET_FREERUN_MODE = (1 << 17),
-     CMD_MODE_MAX        = (1 << 31),
- } ctrl_mode_t;
- 
-@@ -85,6 +86,5 @@ typedef struct {
- int message_free(player_cmd_t * cmd);
- player_cmd_t * message_alloc(void);
- int cmd2str(player_cmd_t *cmd, char *buf);
--
- #endif
- 
---- a/libamplayer/include/amplayer/player.h
-+++ b/libamplayer/include/amplayer/player.h
-@@ -6,7 +6,7 @@
- #include <player_type.h>
- #include <player_error.h>
- #include <message.h>
--
-+#include <player_dump.h>
- 
- #ifdef  __cplusplus
- extern "C" {
-@@ -52,7 +52,8 @@ int 	audio_right_mono(int pid);
- int 	audio_stereo(int pid);
- int 	audio_set_spectrum_switch(int pid,int isStart,int interval);
- int 	player_register_update_callback(callback_t *cb,update_state_fun_t up_fn,int interval_s);
--char 	*player_status2str(player_status status);
-+char *player_status2str(player_status status);
-+char *player_value2str(char *key, int value);
- int 	player_cache_system_init(int enable,const char*dir,int max_size,int block_size);
- 
- //control interface
-new file mode 100644
---- /dev/null
-+++ b/libamplayer/include/amplayer/player_ctrl.h
-@@ -0,0 +1,4 @@
-+/*
-+Just for old code compatible,no this header file may get compare error.
-+we can add more player controls to here later.
-+*/
-new file mode 100644
---- /dev/null
-+++ b/libamplayer/include/amplayer/player_dump.h
-@@ -0,0 +1,14 @@
-+#ifndef _PLAYER_DUMP_H_
-+#define _PLAYER_DUMP_H_
-+#ifdef  __cplusplus
-+extern "C" {
-+#endif
-+ 
-+int player_dump_playinfo(int pid, int fd);
-+int player_dump_bufferinfo(int pid, int fd);
-+int player_dump_tsyncinfo(int pid, int fd);
-+#ifdef  __cplusplus
-+}
-+#endif
-+#endif
-+
---- a/libamplayer/include/amplayer/player_set_sys.h
-+++ b/libamplayer/include/amplayer/player_set_sys.h
-@@ -40,6 +40,7 @@ int set_black_policy(int blackout);
- int get_black_policy();
- int get_karaok_flag();
- int set_tsync_enable(int enable);
-+int get_tsync_enable(void);
- int set_tsync_discontinue(int enable);
- int get_pts_discontinue();
- int set_fb0_blank(int blank);
-@@ -61,8 +62,6 @@ int set_fb1_scale_height(int height);
- int check_audiodsp_fatal_err(void);
- int set_stb_source_hiu(void);
- int set_stb_demux_source_hiu(void);
--int get_stb_demux_source(char *strval, int size);
--int get_stb_source(char *strval, int size);
- 
- int set_subtitle_enable(int num);
- int set_subtitle_curr(int num);
-@@ -72,6 +71,8 @@ int check_file_same(char *filename2);
- int set_amutils_enable(int isOn);
- int set_amutils_cmd(const char* cmd);
- int get_amutils_cmd(char* cmd);
-+int check_audio_output();
-+
- 
- #ifdef  __cplusplus
- }
---- a/libamplayer/include/amplayer/player_thumbnail.h
-+++ b/libamplayer/include/amplayer/player_thumbnail.h
-@@ -19,6 +19,7 @@ int thumbnail_get_key_data(void* handle, char* key, const void** data, int* data
- void thumbnail_get_video_rotation(void *handle, int* rotation);
- int thumbnail_decoder_close(void *handle);
- void thumbnail_res_free(void* handle);
-+int thumbnail_get_tracks_info(void *handle, int *vtracks,int *atracks,int *stracks);
- 
- #ifdef  __cplusplus
- }
---- a/libamplayer/include/amplayer/player_type.h
-+++ b/libamplayer/include/amplayer/player_type.h
-@@ -5,14 +5,7 @@
- #include <stream_format.h>
- 
- #define MSG_SIZE                    64
--#if defined(HAS_AMLPLAYER_CHAPTERS)
--#define MAX_CHAPTERS                64
--#endif
--#if defined(HAS_AMLPLAYER_VIDEO_STREAMS10)
- #define MAX_VIDEO_STREAMS           10
--#else
--#define MAX_VIDEO_STREAMS           8
--#endif
- #define MAX_AUDIO_STREAMS           8
- #define MAX_SUB_INTERNAL            8
- #define MAX_SUB_EXTERNAL            24
-@@ -33,7 +26,7 @@ typedef enum
- 	PLAYER_INITING  	= 0x10001,
- 	PLAYER_TYPE_REDY  = 0x10002,
- 	PLAYER_INITOK   	= 0x10003,	
--
-+        
- 	/******************************
- 	* 0x2000x: 
- 	* playback status
-@@ -51,7 +44,7 @@ typedef enum
- 
- 	PLAYER_PLAY_NEXT	= 0x20009,	
- 	PLAYER_BUFFER_OK	= 0x2000a,	
--	PLAYER_FOUND_SUB	= 0x2000b,
-+	PLAYER_FOUND_SUB	= 0x2000b,	
- 
- 	/******************************
- 	* 0x3000x: 
-@@ -120,9 +113,6 @@ typedef struct
-     aformat_t aformat;
-     int duration;
- 	audio_tag_info *audio_tag;    
--#if defined(HAS_AMLPLAYER_AUDIO_LANG)
--    char audio_language[4];
--#endif
- }maudio_info_t;
- 
- typedef struct
-@@ -157,33 +147,15 @@ typedef struct
-     int cur_sub_index;	
-     int seekable;
-     int drm_check;
--#if defined(HAS_AMLPLAYER_VIDEO_STREAMS10)
--    int t1;
--    int t2;
--#endif
--#if defined(HAS_AMLPLAYER_CHAPTERS)
--    int has_chapter;
--    int total_chapter_num;
--#endif
-+	int adif_file_flag;
- }mstream_info_t;
- 
--#if defined(HAS_AMLPLAYER_CHAPTERS)
--typedef struct
--{
--    char    *name;
--    int64_t seekto_ms;
--} mchapter_info_t;
--#endif
--
- typedef struct
- {	
- 	mstream_info_t stream_info;
- 	mvideo_info_t *video_info[MAX_VIDEO_STREAMS];
- 	maudio_info_t *audio_info[MAX_AUDIO_STREAMS];
-     msub_info_t *sub_info[MAX_SUB_STREAMS];
--#if defined(HAS_AMLPLAYER_CHAPTERS)
--	mchapter_info_t *chapter_info[MAX_CHAPTERS];
--#endif
- }media_info_t;
- 
- typedef struct player_info
-@@ -210,6 +182,7 @@ typedef struct player_info
- 	int64_t	bufed_pos;
- 	int	bufed_time;/* Second*/
-     unsigned int drm_rental;
-+	int64_t download_speed; //download speed
- }player_info_t;
- 
- typedef struct pid_info
-@@ -252,13 +225,14 @@ typedef struct
-     int vbufsize;
-     int vdatasize;
-     int abufused;
--    int abufsize;
--    int adatasize;
-+    int abufsize;	
-+    int adatasize;	
-     int sbufused;
--    int sbufsize;
--    int sdatasize;
-+    int sbufsize;	
-+    int sdatasize;		
- }hwbufstats_t;
- 
-+
- typedef struct
- {
-     update_state_fun_t update_statue_callback;
-@@ -275,7 +249,7 @@ typedef struct
- 	int	video_index;						//video track, no assigned, please set to -1
- 	int	audio_index;						//audio track, no assigned, please set to -1
- 	int sub_index;							//subtitle track, no assigned, please set to -1
--	float t_pos;							//start postion, use second as unit
-+	float t_pos;								//start postion, use second as unit
- 	int	read_max_cnt;						//read retry maxium counts, if exceed it, return error
- 	int avsync_threshold;                             //for adec av sync threshold in ms
- 	union
---- a/libamplayer/include/amplayer/stream_format.h
-+++ b/libamplayer/include/amplayer/stream_format.h
-@@ -37,7 +37,9 @@ typedef enum
-     ASF_FILE        = 17,
-     STREAM_FILE     = 18,
-     APE_FILE		= 19,        
--    FILE_MAX		= 20,        
-+    AMR_FILE        = 20,
-+    AVS_FILE		= 21, 
-+    FILE_MAX		= 22,        
- }pfile_type;
- 
- #endif
diff --git a/tools/depends/target/libamplayer/android-4.1-to-4.2.patch b/tools/depends/target/libamplayer/android-4.1-to-4.2.patch
deleted file mode 100644
index b79a310..0000000
--- a/tools/depends/target/libamplayer/android-4.1-to-4.2.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- a/libamplayer/include/amcodec/codec_type.h
-+++ b/libamplayer/include/amcodec/codec_type.h
-@@ -56,6 +56,7 @@ typedef struct {
-     CODEC_HANDLE handle;        ///< codec device handler
-     CODEC_HANDLE cntl_handle;   ///< video control device handler
-     CODEC_HANDLE sub_handle;    ///< subtile device handler
-+    CODEC_HANDLE audio_utils_handle;  ///< audio utils handler
-     stream_type_t stream_type;  ///< stream type(es, ps, rm, ts)
- unsigned int has_video:
-     1;                          ///< stream has video(1) or not(0)
---- a/libamplayer/include/amplayer/player_type.h
-+++ b/libamplayer/include/amplayer/player_type.h
-@@ -204,7 +204,7 @@ typedef struct player_file_type
- #define STATE_PRE(sta) (sta>>16)
- #define PLAYER_THREAD_IS_INITING(sta)	(STATE_PRE(sta)==0x1)
- #define PLAYER_THREAD_IS_RUNNING(sta)	(STATE_PRE(sta)==0x2)
--#define PLAYER_THREAD_IS_STOPPED(sta)	(STATE_PRE(sta)==0x3)
-+#define PLAYER_THREAD_IS_STOPPED(sta)  (sta==PLAYER_EXIT)
- 
- typedef int (*update_state_fun_t)(int pid,player_info_t *) ;
- typedef int (*notify_callback)(int pid,int msg,unsigned long ext1,unsigned long ext2);
-@@ -217,6 +217,7 @@ typedef enum
-	PLAYER_EVENTS_FILE_TYPE,				///<ext1=player_file_type_t*,ext2=0
-	PLAYER_EVENTS_HTTP_WV,				        ///<(need use DRMExtractor),ext1=0, ext2=0
-	PLAYER_EVENTS_HWBUF_DATA_SIZE_CHANGED,		///<(need use DRMExtractor),ext1=0, ext2=0
-+       PLAYER_EVENTS_NOT_SUPPORT_SEEKABLE,     //not support seek;
- }player_events;
- 
- typedef struct
-@@ -284,6 +285,7 @@ typedef struct
- 	int buffing_starttime_s;			//for rest buffing_middle,buffering seconds data to start.
- 	int buffing_force_delay_s;
- 	int lowbuffermode_flag;
-+	int lowbuffermode_limited_ms;
- 	int reserved [56];					//reserved  for furthur used,some one add more ,can del reserved num
- 	int SessionID;
-  }play_control_t; 
-
diff --git a/tools/depends/target/libamplayer/android-4.2-to-4.4.patch b/tools/depends/target/libamplayer/android-4.2-to-4.4.patch
deleted file mode 100644
index 8c3fad0..0000000
--- a/tools/depends/target/libamplayer/android-4.2-to-4.4.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/libamplayer/include/amcodec/amports/vformat.h
-+++ b/libamplayer/include/amcodec/amports/vformat.h
-@@ -49,6 +49,8 @@ typedef enum {
-     VIDEO_DEC_FORMAT_WVC1,
-     VIDEO_DEC_FORMAT_SW,
-     VIDEO_DEC_FORMAT_AVS,
-+    VIDEO_DEC_FORMAT_H264_4K2K,
-+    VIDEO_DEC_FORMAT_HEVC,
-     VIDEO_DEC_FORMAT_MAX
- } vdec_type_t;
- 
-@@ -64,6 +65,8 @@ typedef enum {
-     VFORMAT_AVS,
-     VFORMAT_SW,
-     VFORMAT_H264MVC,
-+    VFORMAT_H264_4K2K,
-+    VFORMAT_HEVC,
-     VFORMAT_UNSUPPORT,
-     VFORMAT_MAX
- } vformat_t;
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amcodec/amports/aformat.h b/tools/depends/target/libamplayer/libamplayer/include/amcodec/amports/aformat.h
deleted file mode 100644
index 25cb852..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amcodec/amports/aformat.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
-* @file aformat.h
-* @brief  Porting from decoder driver for audio format
-* @author Tim Yao <timyao at amlogic.com>
-* @version 1.0.0
-* @date 2011-02-24
-*/
-/* Copyright (C) 2007-2011, Amlogic Inc.
-* All right reserved
-* 
-*/
-
-/*
- * AMLOGIC Audio/Video streaming port driver.
- *
- * 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 named License,
- * or 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
- *
- * Author:  Tim Yao <timyao at amlogic.com>
- *
- */
-
-#ifndef AFORMAT_H
-#define AFORMAT_H
-
-typedef enum {
-    AFORMAT_UNKNOWN = -1,
-    AFORMAT_MPEG   = 0,
-    AFORMAT_PCM_S16LE = 1,
-    AFORMAT_AAC   = 2,
-    AFORMAT_AC3   = 3,
-    AFORMAT_ALAW = 4,
-    AFORMAT_MULAW = 5,
-    AFORMAT_DTS = 6,
-    AFORMAT_PCM_S16BE = 7,
-    AFORMAT_FLAC = 8,
-    AFORMAT_COOK = 9,
-    AFORMAT_PCM_U8 = 10,
-    AFORMAT_ADPCM = 11,
-    AFORMAT_AMR  = 12,
-    AFORMAT_RAAC  = 13,
-    AFORMAT_WMA  = 14,
-    AFORMAT_WMAPRO   = 15,
-    AFORMAT_PCM_BLURAY  = 16,
-    AFORMAT_ALAC  = 17,
-    AFORMAT_VORBIS    = 18,
-    AFORMAT_AAC_LATM   = 19,
-    AFORMAT_APE   = 20,
-    AFORMAT_UNSUPPORT ,
-    AFORMAT_MAX    
-
-} aformat_t;
-
-#define AUDIO_EXTRA_DATA_SIZE   (4096)
-#define IS_AFMT_VALID(afmt)	((afmt > AFORMAT_UNKNOWN) && (afmt < AFORMAT_MAX))
-    
-#define IS_AUIDO_NEED_EXT_INFO(afmt) ((afmt == AFORMAT_ADPCM) \
-								 ||(afmt == AFORMAT_WMA) \
-								 ||(afmt == AFORMAT_WMAPRO) \
-								 ||(afmt == AFORMAT_PCM_S16BE) \
-								 ||(afmt == AFORMAT_PCM_S16LE) \
-								 ||(afmt == AFORMAT_PCM_U8) \
-								 ||(afmt == AFORMAT_PCM_BLURAY) \
-								 ||(afmt == AFORMAT_AMR)\
-								 ||(afmt == AFORMAT_ALAC)\
-								 ||(afmt == AFORMAT_AC3) \
-								 ||(afmt == AFORMAT_APE) \
-								 ||(afmt == AFORMAT_FLAC) )
-
-
-#define IS_AUDIO_NOT_SUPPORT_EXCEED_2CH(afmt) ((afmt == AFORMAT_RAAC) \
-										||(afmt == AFORMAT_COOK) \
-										||(afmt == AFORMAT_FLAC))
-
-#define IS_AUIDO_NEED_PREFEED_HEADER(afmt) ((afmt == AFORMAT_VORBIS) )
-
-#endif /* AFORMAT_H */
-
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amcodec/amports/amstream.h b/tools/depends/target/libamplayer/libamplayer/include/amcodec/amports/amstream.h
deleted file mode 100644
index 09f6a4a..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amcodec/amports/amstream.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/**
-* @file amstream.h
-* @brief  Porting from decoder driver for codec ioctl commands
-* @author Tim Yao <timyao at amlogic.com>
-* @version 1.0.0
-* @date 2011-02-24
-*/
-/* Copyright (C) 2007-2011, Amlogic Inc.
-* All right reserved
-* 
-*/
-
-/*
- * AMLOGIC Audio/Video streaming port driver.
- *
- * 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 named License,
- * or 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
- *
- * Author:  Tim Yao <timyao at amlogic.com>
- *
- */
-
-#ifndef AMSTREAM_H
-#define AMSTREAM_H
-
-#define PORT_FLAG_IN_USE    0x0001
-#define PORT_FLAG_VFORMAT   0x0002
-#define PORT_FLAG_AFORMAT   0x0004
-#define PORT_FLAG_FORMAT    (PORT_FLAG_VFORMAT | PORT_FLAG_AFORMAT)
-#define PORT_FLAG_VID       0x0008
-#define PORT_FLAG_AID       0x0010
-#define PORT_FLAG_ID        (PORT_FLAG_VID | PORT_FLAG_AID)
-#define PORT_FLAG_INITED    0x100
-
-#define PORT_TYPE_VIDEO     0x01
-#define PORT_TYPE_AUDIO     0x02
-#define PORT_TYPE_MPTS      0x04
-#define PORT_TYPE_MPPS      0x08
-#define PORT_TYPE_ES        0x10
-#define PORT_TYPE_RM        0x20
-
-#define AMSTREAM_IOC_MAGIC  'S'
-
-#define AMSTREAM_IOC_VB_START   _IOW(AMSTREAM_IOC_MAGIC, 0x00, int)
-#define AMSTREAM_IOC_VB_SIZE    _IOW(AMSTREAM_IOC_MAGIC, 0x01, int)
-#define AMSTREAM_IOC_AB_START   _IOW(AMSTREAM_IOC_MAGIC, 0x02, int)
-#define AMSTREAM_IOC_AB_SIZE    _IOW(AMSTREAM_IOC_MAGIC, 0x03, int)
-#define AMSTREAM_IOC_VFORMAT    _IOW(AMSTREAM_IOC_MAGIC, 0x04, int)
-#define AMSTREAM_IOC_AFORMAT    _IOW(AMSTREAM_IOC_MAGIC, 0x05, int)
-#define AMSTREAM_IOC_VID        _IOW(AMSTREAM_IOC_MAGIC, 0x06, int)
-#define AMSTREAM_IOC_AID        _IOW(AMSTREAM_IOC_MAGIC, 0x07, int)
-#define AMSTREAM_IOC_VB_STATUS  _IOR(AMSTREAM_IOC_MAGIC, 0x08, unsigned long)
-#define AMSTREAM_IOC_AB_STATUS  _IOR(AMSTREAM_IOC_MAGIC, 0x09, unsigned long)
-#define AMSTREAM_IOC_SYSINFO    _IOW(AMSTREAM_IOC_MAGIC, 0x0a, int)
-#define AMSTREAM_IOC_ACHANNEL   _IOW(AMSTREAM_IOC_MAGIC, 0x0b, int)
-#define AMSTREAM_IOC_SAMPLERATE _IOW(AMSTREAM_IOC_MAGIC, 0x0c, int)
-#define AMSTREAM_IOC_DATAWIDTH  _IOW(AMSTREAM_IOC_MAGIC, 0x0d, int)
-#define AMSTREAM_IOC_TSTAMP     _IOW(AMSTREAM_IOC_MAGIC, 0x0e, unsigned long)
-#define AMSTREAM_IOC_VDECSTAT   _IOR(AMSTREAM_IOC_MAGIC, 0x0f, unsigned long)
-#define AMSTREAM_IOC_ADECSTAT   _IOR(AMSTREAM_IOC_MAGIC, 0x10, unsigned long)
-#define AMSTREAM_IOC_PORT_INIT  _IO(AMSTREAM_IOC_MAGIC, 0x11)
-#define AMSTREAM_IOC_TRICKMODE  _IOW(AMSTREAM_IOC_MAGIC, 0x12, unsigned long)
-#define AMSTREAM_IOC_AUDIO_INFO  _IOW(AMSTREAM_IOC_MAGIC, 0x13, unsigned long)
-#define AMSTREAM_IOC_TRICK_STAT  _IOR(AMSTREAM_IOC_MAGIC, 0x14, unsigned long)
-#define AMSTREAM_IOC_AUDIO_RESET _IO(AMSTREAM_IOC_MAGIC, 0x15)
-#define AMSTREAM_IOC_SID         _IOW(AMSTREAM_IOC_MAGIC, 0x16, int)
-#define AMSTREAM_IOC_VPAUSE      _IOW(AMSTREAM_IOC_MAGIC, 0x17, int)
-#define AMSTREAM_IOC_AVTHRESH    _IOW(AMSTREAM_IOC_MAGIC, 0x18, int)
-#define AMSTREAM_IOC_SYNCTHRESH  _IOW(AMSTREAM_IOC_MAGIC, 0x19, int)
-#define AMSTREAM_IOC_SUB_RESET   _IOW(AMSTREAM_IOC_MAGIC, 0x1a, int)
-#define AMSTREAM_IOC_SUB_LENGTH  _IOR(AMSTREAM_IOC_MAGIC, 0x1b, unsigned long)
-#define AMSTREAM_IOC_SET_DEC_RESET _IOW(AMSTREAM_IOC_MAGIC, 0x1c, int)
-#define AMSTREAM_IOC_TS_SKIPBYTE _IOW(AMSTREAM_IOC_MAGIC, 0x1d, int)
-#define AMSTREAM_IOC_SUB_TYPE    _IOW(AMSTREAM_IOC_MAGIC, 0x1e, int)
-#define AMSTREAM_IOC_APTS             _IOR(AMSTREAM_IOC_MAGIC, 0x40, unsigned long)
-#define AMSTREAM_IOC_VPTS             _IOR(AMSTREAM_IOC_MAGIC, 0x41, unsigned long)
-#define AMSTREAM_IOC_PCRSCR           _IOR(AMSTREAM_IOC_MAGIC, 0x42, unsigned long)
-#define AMSTREAM_IOC_SYNCENABLE      _IOW(AMSTREAM_IOC_MAGIC, 0x43, unsigned long)
-#define AMSTREAM_IOC_GET_SYNC_ADISCON  _IOR(AMSTREAM_IOC_MAGIC, 0x44, unsigned long)
-#define AMSTREAM_IOC_SET_SYNC_ADISCON  _IOW(AMSTREAM_IOC_MAGIC, 0x45, unsigned long)
-#define AMSTREAM_IOC_GET_SYNC_VDISCON  _IOR(AMSTREAM_IOC_MAGIC, 0x46, unsigned long)
-#define AMSTREAM_IOC_SET_SYNC_VDISCON  _IOW(AMSTREAM_IOC_MAGIC, 0x47, unsigned long)
-#define AMSTREAM_IOC_GET_VIDEO_DISABLE  _IOR(AMSTREAM_IOC_MAGIC, 0x48, unsigned long)
-#define AMSTREAM_IOC_SET_VIDEO_DISABLE  _IOW(AMSTREAM_IOC_MAGIC, 0x49, unsigned long)
-#define AMSTREAM_IOC_SET_PCRSCR       _IOW(AMSTREAM_IOC_MAGIC, 0x4a, unsigned long)
-#define AMSTREAM_IOC_GET_VIDEO_AXIS   _IOR(AMSTREAM_IOC_MAGIC, 0x4b, unsigned long)
-#define AMSTREAM_IOC_SET_VIDEO_AXIS   _IOW(AMSTREAM_IOC_MAGIC, 0x4c, unsigned long)
-#define AMSTREAM_IOC_SUB_NUM	_IOR(AMSTREAM_IOC_MAGIC, 0x50, unsigned long)
-#define AMSTREAM_IOC_SUB_INFO	_IOR(AMSTREAM_IOC_MAGIC, 0x51, unsigned long)
-
-#define AMSTREAM_IOC_SET_DEMUX  _IOW(AMSTREAM_IOC_MAGIC, 0x90, unsigned long)
-
-struct buf_status {
-    int size;
-    int data_len;
-    int free_len;
-    unsigned int read_pointer;
-    unsigned int write_pointer;
-};
-
-
-struct vdec_status {
-    unsigned int width;
-    unsigned int height;
-    unsigned int fps;
-    unsigned int error_count;
-    unsigned int status;
-};
-
-struct adec_status {
-    unsigned int channels;
-    unsigned int sample_rate;
-    unsigned int resolution;
-    unsigned int error_count;
-    unsigned int status;
-};
-
-struct am_io_param {
-    union {
-        int data;
-        int id;//get bufstatus? //or others
-    };
-
-    int len; //buffer size;
-
-    union {
-        char buf[1];
-        struct buf_status status;
-        struct vdec_status vstatus;
-        struct adec_status astatus;
-    };
-};
-void set_vdec_func(int (*vdec_func)(struct vdec_status *));
-void set_adec_func(int (*adec_func)(struct adec_status *));
-
-#endif /* AMSTREAM_H */
-
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amcodec/amports/vformat.h b/tools/depends/target/libamplayer/libamplayer/include/amcodec/amports/vformat.h
deleted file mode 100644
index ed00219..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amcodec/amports/vformat.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/**
-* @file vformat.h
-* @brief  Porting from decoder driver for video format
-* @author Tim Yao <timyao at amlogic.com>
-* @version 1.0.0
-* @date 2011-02-24
-*/
-/* Copyright (C) 2007-2011, Amlogic Inc.
-* All right reserved
-* 
-*/
-
-/*
- * AMLOGIC Audio/Video streaming port driver.
- *
- * 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 named License,
- * or 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
- *
- * Author:  Tim Yao <timyao at amlogic.com>
- *
- */
-
-#ifndef VFORMAT_H
-#define VFORMAT_H
-
-typedef enum {
-    VIDEO_DEC_FORMAT_UNKNOW,
-    VIDEO_DEC_FORMAT_MPEG4_3,
-    VIDEO_DEC_FORMAT_MPEG4_4,
-    VIDEO_DEC_FORMAT_MPEG4_5,
-    VIDEO_DEC_FORMAT_H264,
-    VIDEO_DEC_FORMAT_MJPEG,
-    VIDEO_DEC_FORMAT_MP4,
-    VIDEO_DEC_FORMAT_H263,
-    VIDEO_DEC_FORMAT_REAL_8,
-    VIDEO_DEC_FORMAT_REAL_9,
-    VIDEO_DEC_FORMAT_WMV3,
-    VIDEO_DEC_FORMAT_WVC1,
-    VIDEO_DEC_FORMAT_SW,
-    VIDEO_DEC_FORMAT_AVS,
-    VIDEO_DEC_FORMAT_MAX
-} vdec_type_t;
-
-typedef enum {
-    VFORMAT_UNKNOWN = -1,
-    VFORMAT_MPEG12 = 0,
-    VFORMAT_MPEG4,
-    VFORMAT_H264,
-    VFORMAT_MJPEG,
-    VFORMAT_REAL,
-    VFORMAT_JPEG,
-    VFORMAT_VC1,
-    VFORMAT_AVS,
-    VFORMAT_SW,
-    VFORMAT_H264MVC,
-    VFORMAT_UNSUPPORT,
-    VFORMAT_MAX
-} vformat_t;
-
-#define IS_VFMT_VALID(vfmt)	((vfmt > VFORMAT_UNKNOWN) && (vfmt < VFORMAT_MAX))
-#define IS_NEED_VDEC_INFO(vfmt) ((vfmt == VFORMAT_MPEG4) || (vfmt == VFORMAT_REAL))
-
-#define CODEC_TAG_MJPEG     (0x47504a4d)
-#define CODEC_TAG_mjpeg     (0x47504a4c)
-#define CODEC_TAG_jpeg      (0x6765706a)
-#define CODEC_TAG_mjpa      (0x61706a6d)
-#define CODEC_TAG_XVID      (0x44495658)
-#define CODEC_TAG_xvid      (0x64697678)
-#define CODEC_TAG_XVIX      (0x58495658)
-#define CODEC_TAG_xvix      (0x78697678)
-#define CODEC_TAG_MP4       (0x8e22ada)
-#define CODEC_TAG_COL1      (0x314c4f43)
-#define CODEC_TAG_DIV3      (0x33564944)
-#define CODEC_TAG_MP43      (0x3334504d)
-#define CODEC_TAG_M4S2      (0x3253344d)
-#define CODEC_TAG_DIV4      (0x34564944)
-#define CODEC_TAG_DIVX      (0x58564944)
-#define CODEC_TAG_DIV5      (0x35564944)
-#define CODEC_TAG_DX50      (0x30355844)
-#define CODEC_TAG_DIV6      (0x36564944)
-#define CODEC_TAG_RMP4      (0x34504d52)
-#define CODEC_TAG_MP42      (0x3234504d)
-#define CODEC_TAG_MPG4      (0x3447504d)
-#define CODEC_TAG_MP4V      (0x5634504d)
-#define CODEC_TAG_mp4v      (0x7634706d)
-#define CODEC_TAG_AVC1      (0x31435641)
-#define CODEC_TAG_avc1      (0x31637661)
-#define CODEC_TAG_H264      (0x34363248)
-#define CODEC_TAG_h264      (0x34363268)
-#define CODEC_TAG_H263      (0x33363248)
-#define CODEC_TAG_h263      (0x33363268)
-#define CODEC_TAG_s263      (0x33363273)
-#define CODEC_TAG_F263      (0x33363246)
-#define CODEC_TAG_WMV1      (0x31564d57)
-#define CODEC_TAG_WMV2      (0x32564d57)
-#define CODEC_TAG_WMV3      (0x33564d57)
-#define CODEC_TAG_WVC1      (0x31435657)
-#define CODEC_TAG_WMVA      (0x41564d57)
-#define CODEC_TAG_FMP4      (0x34504d46)
-
-#endif /* VFORMAT_H */
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec.h b/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec.h
deleted file mode 100644
index 187d4d5..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
-* @file codec.h
-* @brief  Function prototypes of codec lib
-* @author Zhang Chen <chen.zhang at amlogic.com>
-* @version 1.0.0
-* @date 2011-02-24
-*/
-/* Copyright (C) 2007-2011, Amlogic Inc.
-* All right reserved
-*
-*/
-#ifndef CODEC_CTRL_H_
-#define CODEC_CTRL_H_
-
-#include <codec_type.h>
-#include <codec_error.h>
-
-
-int codec_init(codec_para_t *);
-int codec_close(codec_para_t *);
-void codec_audio_basic_init(void);
-void codec_close_audio(codec_para_t *);
-void codec_resume_audio(codec_para_t *, unsigned int);
-int codec_reset(codec_para_t *);
-int codec_init_sub(codec_para_t *);
-int codec_open_sub_read(void);
-int codec_close_sub(codec_para_t *);
-int codec_close_sub_fd(CODEC_HANDLE);
-int codec_reset_subtile(codec_para_t *pcodec);
-int codec_poll_sub(codec_para_t *);
-int codec_poll_sub_fd(CODEC_HANDLE, int);
-int codec_get_sub_size(codec_para_t *);
-int codec_get_sub_size_fd(CODEC_HANDLE);
-int codec_read_sub_data(codec_para_t *, char *, unsigned int);
-int codec_read_sub_data_fd(CODEC_HANDLE, char *, unsigned int);
-int codec_write_sub_data(codec_para_t *, char *, unsigned int);
-int codec_init_cntl(codec_para_t *);
-int codec_close_cntl(codec_para_t *);
-int codec_poll_cntl(codec_para_t *);
-int codec_get_cntl_state(codec_para_t *);
-int codec_set_cntl_mode(codec_para_t *, unsigned int);
-int codec_set_cntl_avthresh(codec_para_t *, unsigned int);
-int codec_set_cntl_syncthresh(codec_para_t *pcodec, unsigned int syncthresh);
-int codec_reset_audio(codec_para_t *pcodec);
-int codec_set_audio_pid(codec_para_t *pcodec);
-int codec_set_sub_id(codec_para_t *pcodec);
-int codec_set_sub_type(codec_para_t *pcodec);
-int codec_audio_reinit(codec_para_t *pcodec);
-int codec_set_dec_reset(codec_para_t *pcodec);
-
-int codec_write(codec_para_t *pcodec, void *buffer, int len);
-int codec_checkin_pts(codec_para_t *pcodec, unsigned long pts);
-int codec_get_vbuf_state(codec_para_t *, struct buf_status *);
-int codec_get_abuf_state(codec_para_t *, struct buf_status *);
-int codec_get_vdec_state(codec_para_t *, struct vdec_status *);
-int codec_get_adec_state(codec_para_t *, struct adec_status *);
-
-int codec_pause(codec_para_t *);
-int codec_resume(codec_para_t *);
-int codec_audio_search(codec_para_t *p);
-int codec_set_mute(codec_para_t *p, int mute);
-int codec_get_volume_range(codec_para_t *, int *min, int *max);
-int codec_set_volume(codec_para_t *, float val);
-int codec_get_volume(codec_para_t *, float *val);
-int codec_set_lrvolume(codec_para_t *, float lvol,float rvol);
-int codec_get_lrvolume(codec_para_t *, float *lvol,float* rvol);
-int codec_get_mutesta(codec_para_t *);
-int codec_set_volume_balance(codec_para_t *, int); /*left£¨0-100)right*/
-int codec_swap_left_right(codec_para_t *);
-int codec_left_mono(codec_para_t *p);
-int codec_right_mono(codec_para_t *p);
-int codec_stereo(codec_para_t *p);
-int codec_get_soundtrack(codec_para_t *p,int* strack);
-int codec_audio_automute(void *priv, int auto_mute);
-int codec_audio_spectrum_switch(codec_para_t *p, int isStart, int interval);
-int codec_audio_isready(codec_para_t *p);
-int codec_audio_get_nb_frames(codec_para_t *p);
-int codec_audio_set_audioinfo(codec_para_t *p);
-
-int codec_get_apts(codec_para_t *pcodec);
-int codec_get_vpts(codec_para_t *pcodec);
-int codec_get_pcrscr(codec_para_t *pcodec);
-int codec_set_pcrscr(codec_para_t *pcodec, int val);
-int codec_set_syncenable(codec_para_t *pcodec, int enable);
-int codec_set_sync_audio_discont(codec_para_t *pcodec, int discontinue);
-int codec_get_sync_audio_discont(codec_para_t *pcodec);
-int codec_set_sync_video_discont(codec_para_t *pcodec, int discontinue);
-int codec_get_sync_video_discont(codec_para_t *pcodec);
-
-int codec_get_sub_num(codec_para_t *pcodec);
-int codec_get_sub_info(codec_para_t *pcodec, subtitle_info_t *sub_info);
-
-#endif
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec_error.h b/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec_error.h
deleted file mode 100644
index 0d6df8f..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec_error.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
-* @file codec_error.h
-* @brief  Codec error type definitions
-* @author Zhang Chen <chen.zhang at amlogic.com>
-* @version 1.0.0
-* @date 2011-02-24
-*/
-/* Copyright (C) 2007-2011, Amlogic Inc.
-* All right reserved
-* 
-*/
-
-#ifndef CODEC_ERROR_H_
-#define CODEC_ERROR_H_
-
-#define C_PAE                               (0x01000000)
-
-#define CODEC_ERROR_NONE                    ( 0)
-#define CODEC_ERROR_INVAL                   (C_PAE | 1)
-#define CODEC_ERROR_NOMEM                   (C_PAE | 2)
-#define CODEC_ERROR_BUSY                    (C_PAE | 3)
-#define CODEC_ERROR_IO                      (C_PAE | 4)
-#define CODEC_ERROR_PARAMETER               (C_PAE | 5)
-#define CODEC_ERROR_AUDIO_TYPE_UNKNOW       (C_PAE | 6)
-#define CODEC_ERROR_VIDEO_TYPE_UNKNOW       (C_PAE | 7)
-#define CODEC_ERROR_STREAM_TYPE_UNKNOW      (C_PAE | 8)
-#define CODEC_ERROR_VDEC_TYPE_UNKNOW        (C_PAE | 9)
-
-#define CODEC_ERROR_INIT_FAILED             (C_PAE | 10)
-#define CODEC_ERROR_SET_BUFSIZE_FAILED      (C_PAE | 11)
-#define CODEC_OPEN_HANDLE_FAILED            (C_PAE | 12)
-
-
-
-
-#endif
-
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec_msg.h b/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec_msg.h
deleted file mode 100644
index f898af3..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec_msg.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
-* @file codec_msg.h
-* @brief  Function prototype of codec error
-* @author Zhang Chen <chen.zhang at amlogic.com>
-* @version 1.0.0
-* @date 2011-02-24
-*/
-/* Copyright (C) 2007-2011, Amlogic Inc.
-* All right reserved
-* 
-*/
-#ifndef CODEC_MSG_H
-#define CODEC_MSG_H
-
-const char * codec_error_msg(int error);
-int system_error_to_codec_error(int error);
-void print_error_msg(int error, int syserr, char *func, int line);
-
-#endif
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec_type.h b/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec_type.h
deleted file mode 100644
index 5d61ca8..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec_type.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
-* @file codec_type.h
-* @brief  Definitions of codec type and structures
-* @author Zhang Chen <chen.zhang at amlogic.com>
-* @version 1.0.0
-* @date 2011-02-24
-*/
-/* Copyright (C) 2007-2011, Amlogic Inc.
-* All right reserved
-*
-*/
-#ifndef CODEC_TYPE_H_
-#define CODEC_TYPE_H_
-
-#include "amports/amstream.h"
-#include "amports/vformat.h"
-#include "amports/aformat.h"
-
-typedef int CODEC_HANDLE;
-
-typedef enum {
-    STREAM_TYPE_UNKNOW,
-    STREAM_TYPE_ES_VIDEO,
-    STREAM_TYPE_ES_AUDIO,
-    STREAM_TYPE_ES_SUB,
-    STREAM_TYPE_PS,
-    STREAM_TYPE_TS,
-    STREAM_TYPE_RM,
-} stream_type_t;
-
-typedef struct {
-    unsigned int    format;  ///< video format, such as H264, MPEG2...
-    unsigned int    width;   ///< video source width
-    unsigned int    height;  ///< video source height
-    unsigned int    rate;    ///< video source frame duration
-    unsigned int    extra;   ///< extra data information of video stream
-    unsigned int    status;  ///< status of video stream
-    unsigned int    ratio;   ///< aspect ratio of video source
-    void *          param;   ///< other parameters for video decoder
-    unsigned long long ratio64; ///< aspect ratio of video source
-} dec_sysinfo_t;
-
-typedef struct {
-    int valid;               ///< audio extradata valid(1) or invalid(0), set by dsp
-    int sample_rate;         ///< audio stream sample rate
-    int channels;            ///< audio stream channels
-    int bitrate;             ///< audio stream bit rate
-    int codec_id;            ///< codec format id
-    int block_align;         ///< audio block align from ffmpeg
-    int extradata_size;      ///< extra data size
-    char extradata[AUDIO_EXTRA_DATA_SIZE];   ///< extra data information for decoder
-} audio_info_t;
-
-typedef struct {
-    CODEC_HANDLE handle;        ///< codec device handler
-    CODEC_HANDLE cntl_handle;   ///< video control device handler
-    CODEC_HANDLE sub_handle;    ///< subtile device handler
-    stream_type_t stream_type;  ///< stream type(es, ps, rm, ts)
-    unsigned int has_video:1;   ///< stream has video(1) or not(0)
-    unsigned int has_audio:1;   ///< stream has audio(1) or not(0)
-    unsigned int has_sub:1;     ///< stream has subtitle(1) or not(0)
-    unsigned int noblock:1;     ///< codec device is NONBLOCK(1) or not(0)
-    int video_type;             ///< stream video type(H264, VC1...)
-    int audio_type;             ///< stream audio type(PCM, WMA...)
-    int sub_type;               ///< stream subtitle type(TXT, SSA...)
-    int video_pid;              ///< stream video pid
-    int audio_pid;              ///< stream audio pid
-    int sub_pid;                ///< stream subtitle pid
-    int audio_channels;         ///< stream audio channel number
-    int audio_samplerate;       ///< steram audio sample rate
-    int vbuf_size;              ///< video buffer size of codec device
-    int abuf_size;              ///< audio buffer size of codec device
-    dec_sysinfo_t am_sysinfo;   ///< system information for video
-    audio_info_t audio_info;    ///< audio information pass to audiodsp
-    int packet_size;            ///< data size per packet
-    int avsync_threshold;       ///<for adec in ms>
-    void * adec_priv;           ///<for adec>
-} codec_para_t;
-
-typedef struct
-{
-    signed char id;
-    unsigned char width;
-    unsigned char height;
-    unsigned char type;
-} subtitle_info_t;
-#define MAX_SUB_NUM			(32)
-
-#define IS_VALID_PID(t)     (t>=0 && t<=0x1fff)
-#define IS_VALID_STREAM(t)  (t>0 && t<=0x1fff)
-#define IS_VALID_ATYPE(t)   (t>=0 && t<AFORMAT_MAX)
-#define IS_VALID_VTYPE(t)   (t>=0 && t<VFORMAT_MAX)
-
-//pass to arm audio decoder
-typedef struct {
-    int sample_rate;         ///< audio stream sample rate
-    int channels;            ///< audio stream channels
-    int format;              ///< codec format id
-    int handle;              ///< codec device handler
-    int extradata_size;      ///< extra data size
-    char extradata[AUDIO_EXTRA_DATA_SIZE];
-} arm_audio_info;
-
-//audio decoder type, default arc
-#define AUDIO_ARC_DECODER 0
-#define AUDIO_ARM_DECODER 1
-#define AUDIO_FFMPEG_DECODER 2
-#endif
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amplayer/log_print.h b/tools/depends/target/libamplayer/libamplayer/include/amplayer/log_print.h
deleted file mode 100644
index 773727f..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amplayer/log_print.h
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef PLAYER_LOG_H
-#define PLAYER_LOG_H
-
-#define MAX_LOG_SIZE	(20*1024)
-
-__attribute__ ((format (printf, 2, 3)))
-void log_lprint(const int level, const char *fmt, ...);
-
-
-#define AM_LOG_PANIC 	0
-#define AM_LOG_FATAL 	8
-#define AM_LOG_ERROR 	16
-#define AM_LOG_WARNING 	24
-#define AM_LOG_INFO 	32
-#define AM_LOG_VERBOSE 	40
-#define AM_LOG_DEBUG 	60
-#define AM_LOG_DEBUG1 	70
-#define AM_LOG_DEBUG2 	80
-#define AM_LOG_TRACE 	90
-
-
-#define log_print(fmt...) 	log_lprint(0,##fmt)
-#define log_error(fmt...) 	log_lprint(AM_LOG_ERROR,##fmt)
-#define log_warning(fmt...) log_lprint(AM_LOG_WARNING,##fmt)
-#define log_info(fmt...) 	log_lprint(AM_LOG_INFO,##fmt)
-/*default global_level=5,
-if the level<global_level print out
-*/
-#define log_debug(fmt...) 	log_lprint(AM_LOG_DEBUG,##fmt)
-#define log_debug1(fmt...) 	log_lprint(AM_LOG_DEBUG1,##fmt)
-#define log_debug2(fmt...) 	log_lprint(AM_LOG_DEBUG2,##fmt)
-#define log_trace(fmt...) 	log_lprint(AM_LOG_TRACE,##fmt)
-
-#define  DEBUG_PN() log_print("[%s:%d]\n", __FUNCTION__, __LINE__)
-
-void log_close(void);
-int log_open(const char *name);
-int update_loglevel_setting(void);
-#endif
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amplayer/message.h b/tools/depends/target/libamplayer/libamplayer/include/amplayer/message.h
deleted file mode 100644
index 0ddedf1..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amplayer/message.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef PLAYER_MESSAGE_H
-#define PLAYER_MESSAGE_H
-
-#define MESSAGE_MAX 4
-
-#define CTRL_CMD_RESPONSE   (0xffff)
-
-typedef enum {
-    CMD_EXIT            = (1 << 0),
-    CMD_PLAY            = (1 << 1),
-    CMD_PLAY_START      = (1 << 2),
-    CMD_STOP            = (1 << 3),
-    CMD_START           = (1 << 4),
-    CMD_NEXT            = (1 << 5),
-    CMD_PREV            = (1 << 6),
-    CMD_PAUSE           = (1 << 7),
-    CMD_RESUME          = (1 << 8),
-    CMD_SEARCH          = (1 << 9),
-    CMD_FF              = (1 << 10),
-    CMD_FB              = (1 << 11),
-    CMD_SWITCH_AID      = (1 << 12),
-    CMD_SWITCH_SID      = (1 << 13),    
-    CMD_CTRL_MAX        = (1 << 31),
-} ctrl_cmd_t;
-
-typedef enum {
-    CMD_LOOP            = (1 << 0),
-    CMD_NOLOOP          = (1 << 1),
-    CMD_BLACKOUT        = (1 << 2),
-    CMD_NOBLACK         = (1 << 3),
-    CMD_NOAUDIO         = (1 << 4),
-    CMD_NOVIDEO         = (1 << 5),
-    CMD_MUTE            = (1 << 6),
-    CMD_UNMUTE          = (1 << 7),
-    CMD_SET_VOLUME      = (1 << 8),
-    CMD_SPECTRUM_SWITCH = (1 << 9),
-    CMD_SET_BALANCE     = (1 << 10),
-    CMD_SWAP_LR         = (1 << 11),
-    CMD_LEFT_MONO       = (1 << 12),
-    CMD_RIGHT_MONO      = (1 << 13),
-    CMD_SET_STEREO      = (1 << 14),   
-    CMD_EN_AUTOBUF      = (1 << 15),
-    CMD_SET_AUTOBUF_LEV = (1 << 16),
-    CMD_MODE_MAX        = (1 << 31),
-} ctrl_mode_t;
-
-typedef enum {
-    CMD_GET_VOLUME     = (1 << 0),
-    CMD_GET_VOL_RANGE  = (1 << 1),
-    CMD_GET_PLAY_STA   = (1 << 2),
-    CMD_GET_CURTIME    = (1 << 3),
-    CMD_GET_DURATION   = (1 << 4),
-    CMD_GET_MEDIA_INFO = (1 << 5),
-    CMD_LIST_PID       = (1 << 6),
-    CMD_GET_MAX        = (1 << 31),
-} get_info_t;
-
-typedef struct {
-    float min;
-    float max;
-} volume_range_t;
-
-typedef struct {
-    ctrl_cmd_t ctrl_cmd;
-    get_info_t info_cmd;
-    ctrl_mode_t set_mode;
-    int pid;
-    int cid;
-    union {
-        char *filename;
-        char *file_list;
-        int param;
-        float f_param;
-    };
-    union {
-        int param1;
-        float f_param1;
-    };
-    union {
-        int param2;
-        float f_param2;
-    };
-} player_cmd_t;
-
-int message_free(player_cmd_t * cmd);
-player_cmd_t * message_alloc(void);
-int cmd2str(player_cmd_t *cmd, char *buf);
-
-#endif
-
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amplayer/player.h b/tools/depends/target/libamplayer/libamplayer/include/amplayer/player.h
deleted file mode 100644
index b3eedc9..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amplayer/player.h
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef _PLAYER_H_
-#define _PLAYER_H_
-
-
-#include <codec.h>
-#include <player_type.h>
-#include <player_error.h>
-#include <message.h>
-
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
- 
-int 	player_init();
-int     player_start(play_control_t *p,unsigned long  priv);
-int 	player_stop(int pid);
-int 	player_stop_async(int pid);
-int     player_exit(int pid);
-int 	player_pause(int pid);
-int	 	player_resume(int pid);
-int 	player_timesearch(int pid,float s_time);
-int     player_forward(int pid,int speed);
-int     player_backward(int pid,int speed);
-int     player_aid(int pid,int audio_id);
-int     player_sid(int pid,int sub_id);
-int 	player_progress_exit(void);
-int     player_list_allpid(pid_info_t *pid);
-int     check_pid_valid(int pid);
-int 	player_get_play_info(int pid,player_info_t *info);
-int 	player_get_media_info(int pid,media_info_t *minfo);
-int 	player_video_overlay_en(unsigned enable);
-int 	player_start_play(int pid);
-int 	player_send_message(int pid, player_cmd_t *cmd);
-player_status 	player_get_state(int pid);
-unsigned int 	player_get_extern_priv(int pid);
-int     player_enable_autobuffer(int pid, int enable);
-int     player_set_autobuffer_level(int pid, float min, float middle, float max);
-
-int 	audio_set_mute(int pid,int mute);
-int 	audio_get_volume_range(int pid,float *min,float *max);
-int 	audio_set_volume(int pid,float val);
-int 	audio_get_volume(int pid, float *val);
-
-int 	audio_set_lrvolume(int pid,float lvol,float rvol);
-int 	audio_get_lrvolume(int pid, float* lvol,float* rvol);
-
-int 	audio_set_volume_balance(int pid,int balance);
-int 	audio_swap_left_right(int pid);
-int 	audio_left_mono(int pid);
-int 	audio_right_mono(int pid);
-int 	audio_stereo(int pid);
-int 	audio_set_spectrum_switch(int pid,int isStart,int interval);
-int 	player_register_update_callback(callback_t *cb,update_state_fun_t up_fn,int interval_s);
-char 	*player_status2str(player_status status);
-int 	player_cache_system_init(int enable,const char*dir,int max_size,int block_size);
-
-//control interface
-int     player_loop(int pid);
-int     player_noloop(int pid);
-
-int 	check_url_type(char *filename);
-int 	play_list_player(play_control_t *pctrl,unsigned long priv);
-
-//freescale
-int 	enable_freescale(int cfg);
-int 	disable_freescale(int cfg);
-int   disable_freescale_MBX();
-int   enable_2Xscale();
-int   enable_2XYscale();
-int   enable_freescale_MBX();
-int   disable_2X_2XYscale();
-int   GL_2X_scale(int mSwitch);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_error.h b/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_error.h
deleted file mode 100644
index 0d22211..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_error.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef _PLAYER_ERROR_H_
-#define _PLAYER_ERROR_H_
-
-#define P_PRE       (0x02000000)
-#define F_PRE       (0x03000000)
-#define X_PRE       (0x04000000)
-#define D_PRE       (0x05000000)
-
-#define PLAYER_SUCCESS          (0)
-#define PLAYER_FAILED           (-(P_PRE|0x01))
-#define PLAYER_NOMEM            (-(P_PRE|0x02))
-#define PLAYER_EMPTY_P          (-(P_PRE|0x03))
-#define PLAYER_NOT_VALID_PID    (-(P_PRE|0x04))
-#define PLAYER_CAN_NOT_CREAT_THREADS    (-(P_PRE|0x05))
-#define PLAYER_ERROR_PARAM      (-(P_PRE|0x06))
-#define PLAYER_ERROR_CALLBACK   (-(P_PRE|0x07))
-
-#define PLAYER_RD_FAILED        (-(P_PRE|0x11))
-#define PLAYER_RD_EMPTYP        (-(P_PRE|0x12))
-#define PLAYER_RD_TIMEOUT       (-(P_PRE|0x13))
-#define PLAYER_RD_AGAIN         (-(P_PRE|0x14))
-
-#define PLAYER_WR_FAILED        (-(P_PRE|0x21))
-#define PLAYER_WR_EMPTYP        (-(P_PRE|0x22))
-#define PLAYER_WR_AGAIN			(-(P_PRE|0x23))
-#define PLAYER_WR_FINISH        (P_PRE|0x1)
-
-#define PLAYER_PTS_ERROR        (-(P_PRE|0x31))
-#define PLAYER_NO_DECODER       (-(P_PRE|0x32))
-#define DECODER_RESET_FAILED    (-(P_PRE|0x33))
-#define DECODER_INIT_FAILED     (-(P_PRE|0x34))
-#define PLAYER_UNSUPPORT        (-(P_PRE|0x35))
-#define PLAYER_UNSUPPORT_VIDEO  (-(P_PRE|0x36))
-#define PLAYER_UNSUPPORT_AUDIO  (-(P_PRE|0x37))
-#define PLAYER_SEEK_OVERSPILL   (-(P_PRE|0x38))
-#define PLAYER_CHECK_CODEC_ERROR  (-(P_PRE|0x39))
-#define PLAYER_INVALID_CMD      (-(P_PRE|0x40))
-#define PLAYER_REAL_AUDIO_FAILED (-(P_PRE|0x41))
-#define PLAYER_ADTS_NOIDX       (-(P_PRE|0x42))
-#define PLAYER_SEEK_FAILED      (-(P_PRE|0x43))
-#define PLAYER_NO_VIDEO         (-(P_PRE|0x44))
-#define PLAYER_NO_AUDIO         (-(P_PRE|0x45))
-#define PLAYER_SET_NOVIDEO      (-(P_PRE|0x46))
-#define PLAYER_SET_NOAUDIO      (-(P_PRE|0x47))
-#define PLAYER_FFFB_UNSUPPORT   (-(P_PRE|0x48))
-#define PLAYER_UNSUPPORT_VCODEC (-(P_PRE|0x49))
-#define PLAYER_UNSUPPORT_ACODEC (-(P_PRE|0x4a))
-
-#define FFMPEG_SUCCESS          (0)
-#define FFMPEG_OPEN_FAILED      (-(F_PRE|0x1))
-#define FFMPEG_PARSE_FAILED     (-(F_PRE|0x2))
-#define FFMPEG_EMP_POINTER      (-(F_PRE|0x3))
-#define FFMPEG_NO_FILE          (-(F_PRE|0x4))
-
-#define DIVX_SUCCESS            (0)
-#define DIVX_AUTHOR_ERR         (-(X_PRE|0x1))
-#define DIVX_EXPIRED            (-(X_PRE|0x2))
-
-#define DRM_NOERROR             (0)
-#define DRM_UNSUPPORT           (-(D_PRE|0x1))
-
-char * player_error_msg(int error);
-#endif
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_id.h b/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_id.h
deleted file mode 100644
index 45ae74d..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_id.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef PLAYER_ID_MGT__
-#define PLAYER_ID_MGT__
-
-int player_request_pid(void);
-int player_release_pid(int pid);
-int player_init_pid_data(int pid,void * data);
-void * player_open_pid_data(int pid);
-int player_close_pid_data(int pid);
-int player_id_pool_init(void);
-int player_list_pid(char id[],int size);
-
-#endif
-
-
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_set_sys.h b/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_set_sys.h
deleted file mode 100644
index c47dfd2..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_set_sys.h
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef _PLAYER_SET_DISP_H_
-#define _PLAYER_SET_DISP_H_
-
-#define MID_800_400_FREESCALE (0x10001) //mid 800*400
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-typedef enum
-{
-    DISP_MODE_480I  = 1,
-    DISP_MODE_480P  = 2,
-    DISP_MODE_576I  = 3,
-    DISP_MODE_576P  = 4,
-    DISP_MODE_720P  = 5,
-    DISP_MODE_1080I = 6,
-    DISP_MODE_1080P = 7
-} display_mode;
-
-typedef struct {
-    display_mode disp_mode;
-    int osd_disble_coordinate[8];
-    int osd_enable_coordinate[8];
-    int video_enablecoordinate[4];
-    int fb0_freescale_width;
-    int fb0_freescale_height;
-    int fb1_freescale_width;
-    int fb1_freescale_height;
-} freescale_setting_t;
-
-
-
-int set_sysfs_str(const char *path, const char *val);
-int  get_sysfs_str(const char *path, char *valstr, int size);
-int set_sysfs_int(const char *path, int val);
-int get_sysfs_int(const char *path);
-
-int set_black_policy(int blackout);
-int get_black_policy();
-int get_karaok_flag();
-int set_tsync_enable(int enable);
-int set_tsync_discontinue(int enable);
-int get_pts_discontinue();
-int set_fb0_blank(int blank);
-int set_fb1_blank(int blank);
-int set_subtitle_num(int num);
-int av_get_subtitle_curr();
-int set_subtitle_startpts(int pts);
-int set_subtitle_fps(int fps);
-int set_subtitle_subtype(int subtype);
-void get_display_mode(char *mode);
-int set_fb0_freescale(int freescale);
-int set_fb1_freescale(int freescale);
-int set_display_axis(int *coordinate);
-int set_video_axis(int *coordinate);
-int set_fb0_scale_width(int width);
-int set_fb0_scale_height(int height);
-int set_fb1_scale_width(int width);
-int set_fb1_scale_height(int height);
-int check_audiodsp_fatal_err(void);
-int set_stb_source_hiu(void);
-int set_stb_demux_source_hiu(void);
-int get_stb_demux_source(char *strval, int size);
-int get_stb_source(char *strval, int size);
-
-int set_subtitle_enable(int num);
-int set_subtitle_curr(int num);
-int check_file_same(char *filename2);
-
-//player sysfs API channel
-int set_amutils_enable(int isOn);
-int set_amutils_cmd(const char* cmd);
-int get_amutils_cmd(char* cmd);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_thumbnail.h b/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_thumbnail.h
deleted file mode 100644
index d1387e2..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_thumbnail.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef PLAYER_THUMBNAIL_H
-#define PLAYER_THUMBNAIL_H
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-void * thumbnail_res_alloc(void);
-int thumbnail_find_stream_info(void *handle, const char* filename);
-int thumbnail_find_stream_info_end(void *handle);
-int thumbnail_decoder_open(void *handle, const char* filename);
-int thumbnail_extract_video_frame(void * handle, int64_t time, int flag);
-int thumbnail_read_frame(void *handle, char* buffer);
-void thumbnail_get_video_size(void *handle, int* width, int* height);
-float thumbnail_get_aspect_ratio(void *handle);
-void thumbnail_get_duration(void *handle, int64_t *duration);
-int thumbnail_get_key_metadata(void* handle, char* key, const char** value);
-int thumbnail_get_key_data(void* handle, char* key, const void** data, int* data_size);
-void thumbnail_get_video_rotation(void *handle, int* rotation);
-int thumbnail_decoder_close(void *handle);
-void thumbnail_res_free(void* handle);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_type.h b/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_type.h
deleted file mode 100644
index 37ad847..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amplayer/player_type.h
+++ /dev/null
@@ -1,317 +0,0 @@
-#ifndef _PLAYER_TYPE_H_
-#define _PLAYER_TYPE_H_
-
-#include <libavformat/avformat.h>
-#include <stream_format.h>
-
-#define MSG_SIZE                    64
-#if defined(HAS_AMLPLAYER_CHAPTERS)
-#define MAX_CHAPTERS                64
-#endif
-#if defined(HAS_AMLPLAYER_VIDEO_STREAMS10)
-#define MAX_VIDEO_STREAMS           10
-#else
-#define MAX_VIDEO_STREAMS           8
-#endif
-#define MAX_AUDIO_STREAMS           8
-#define MAX_SUB_INTERNAL            8
-#define MAX_SUB_EXTERNAL            24
-#define MAX_SUB_STREAMS             (MAX_SUB_INTERNAL + MAX_SUB_EXTERNAL)
-#define MAX_PLAYER_THREADS          32
-
-#define CALLBACK_INTERVAL			(300)
-
-//#define DEBUG_VARIABLE_DUR
-
-typedef enum
-{      
-	/******************************
-	* 0x1000x: 
-	* player do parse file
-	* decoder not running
-	******************************/
-	PLAYER_INITING  	= 0x10001,
-	PLAYER_TYPE_REDY  = 0x10002,
-	PLAYER_INITOK   	= 0x10003,	
-
-	/******************************
-	* 0x2000x: 
-	* playback status
-	* decoder is running
-	******************************/
-	PLAYER_RUNNING  	= 0x20001,
-	PLAYER_BUFFERING 	= 0x20002,
-	PLAYER_PAUSE    	= 0x20003,
-	PLAYER_SEARCHING	= 0x20004,
-	
-	PLAYER_SEARCHOK 	= 0x20005,
-	PLAYER_START    	= 0x20006,	
-	PLAYER_FF_END   	= 0x20007,
-	PLAYER_FB_END   	= 0x20008,
-
-	PLAYER_PLAY_NEXT	= 0x20009,	
-	PLAYER_BUFFER_OK	= 0x2000a,	
-	PLAYER_FOUND_SUB	= 0x2000b,
-
-	/******************************
-	* 0x3000x: 
-	* player will exit	
-	******************************/
-	PLAYER_ERROR		= 0x30001,
-	PLAYER_PLAYEND  	= 0x30002,	
-	PLAYER_STOPED   	= 0x30003,  
-	PLAYER_EXIT   		= 0x30004, 
-
-    /******************************
-     * 0x4000x:
-     * divx drm
-     * decoder will exit or give
-     * a message dialog
-     * ****************************/
-    PLAYER_DIVX_AUTHORERR   =   0x40001,
-    PLAYER_DIVX_RENTAL_EXPIRED  =   0x40002,
-    PLAYER_DIVX_RENTAL_VIEW =   0x40003,
-}player_status;
-
-
-typedef struct
-{   
-	int index;
-    int id;    
-    int width;
-    int height;
-    int aspect_ratio_num;
-    int aspect_ratio_den;
-    int frame_rate_num;
-    int frame_rate_den;
-	int bit_rate;
-    vformat_t format;
-    int duartion;
-    unsigned int video_rotation_degree;
-}mvideo_info_t;
-
-typedef enum
-{
-    ACOVER_NONE   = 0,
-    ACOVER_JPG    ,
-    ACOVER_PNG    ,
-}audio_cover_type;
-
-typedef struct
-{
-    char title[512];
-    char author[512];
-    char album[512];
-    char comment[512];
-    char year[4];  
-    int track;     
-    char genre[32]; 
-    char copyright[512];
-    audio_cover_type pic; 
-}audio_tag_info;
-
-typedef struct
-{    
-    int index;
-    int id;
-    int channel;
-    int sample_rate;
-    int bit_rate;
-    aformat_t aformat;
-    int duration;
-	audio_tag_info *audio_tag;    
-#if defined(HAS_AMLPLAYER_AUDIO_LANG)
-    char audio_language[4];
-#endif
-}maudio_info_t;
-
-typedef struct
-{
-    int index;
-    char id;
-    char internal_external; //0:internal_sub 1:external_sub       
-    unsigned short width;
-    unsigned short height;
-	unsigned int sub_type;
-    char resolution;
-    long long subtitle_size;  
-    char *sub_language;   
-}msub_info_t;
-
-typedef struct
-{	
-    char *filename;
-    int  duration;  
-	long long  file_size;
-    pfile_type type;
-	int bitrate;
-    int has_video;
-    int has_audio;
-    int has_sub;
-    int nb_streams;
-    int total_video_num;
-    int cur_video_index;
-    int total_audio_num;
-    int cur_audio_index;
-    int total_sub_num;      
-    int cur_sub_index;	
-    int seekable;
-    int drm_check;
-#if defined(HAS_AMLPLAYER_VIDEO_STREAMS10)
-    int t1;
-    int t2;
-#endif
-#if defined(HAS_AMLPLAYER_CHAPTERS)
-    int has_chapter;
-    int total_chapter_num;
-#endif
-}mstream_info_t;
-
-#if defined(HAS_AMLPLAYER_CHAPTERS)
-typedef struct
-{
-    char    *name;
-    int64_t seekto_ms;
-} mchapter_info_t;
-#endif
-
-typedef struct
-{	
-	mstream_info_t stream_info;
-	mvideo_info_t *video_info[MAX_VIDEO_STREAMS];
-	maudio_info_t *audio_info[MAX_AUDIO_STREAMS];
-    msub_info_t *sub_info[MAX_SUB_STREAMS];
-#if defined(HAS_AMLPLAYER_CHAPTERS)
-	mchapter_info_t *chapter_info[MAX_CHAPTERS];
-#endif
-}media_info_t;
-
-typedef struct player_info
-{
-	char *name;
-	player_status last_sta;
-	player_status status;		   /*stop,pause	*/
-	int full_time;	   /*Seconds	*/
-    int full_time_ms;  /* mSeconds */
-	int current_time;  /*Seconds	*/
-	int current_ms;	/*ms*/
-	int last_time;		
-	int error_no;  
-	int start_time;
-	int first_time;
-	int pts_video;
-	//int pts_pcrscr;
-	unsigned int current_pts;
-	long curtime_old_time;    
-	unsigned int video_error_cnt;
-	unsigned int audio_error_cnt;
-	float audio_bufferlevel; // relative value
-	float video_bufferlevel; // relative value
-	int64_t	bufed_pos;
-	int	bufed_time;/* Second*/
-    unsigned int drm_rental;
-}player_info_t;
-
-typedef struct pid_info
-{
-    int num;
-    int pid[MAX_PLAYER_THREADS];
-}pid_info_t;
-
-typedef struct player_file_type
-{
-	const char *fmt_string;
-	int video_tracks;
-	int audio_tracks;
-	int subtitle_tracks;
-	/**/
-}player_file_type_t;
-
-
-#define STATE_PRE(sta) (sta>>16)
-#define PLAYER_THREAD_IS_INITING(sta)	(STATE_PRE(sta)==0x1)
-#define PLAYER_THREAD_IS_RUNNING(sta)	(STATE_PRE(sta)==0x2)
-#define PLAYER_THREAD_IS_STOPPED(sta)	(STATE_PRE(sta)==0x3)
-
-typedef int (*update_state_fun_t)(int pid,player_info_t *) ;
-typedef int (*notify_callback)(int pid,int msg,unsigned long ext1,unsigned long ext2);
-typedef enum
-{      
-	PLAYER_EVENTS_PLAYER_INFO=1,			///<ext1=player_info*,ext2=0,same as update_statue_callback 
-	PLAYER_EVENTS_STATE_CHANGED,			///<ext1=new_state,ext2=0,
-	PLAYER_EVENTS_ERROR,					///<ext1=error_code,ext2=message char *
-	PLAYER_EVENTS_BUFFERING,				///<ext1=buffered=d,d={0-100},ext2=0,
-	PLAYER_EVENTS_FILE_TYPE,				///<ext1=player_file_type_t*,ext2=0
-	PLAYER_EVENTS_HTTP_WV,				        ///<(need use DRMExtractor),ext1=0, ext2=0
-	PLAYER_EVENTS_HWBUF_DATA_SIZE_CHANGED,		///<(need use DRMExtractor),ext1=0, ext2=0
-}player_events;
-
-typedef struct
-{
-    int vbufused;
-    int vbufsize;
-    int vdatasize;
-    int abufused;
-    int abufsize;
-    int adatasize;
-    int sbufused;
-    int sbufsize;
-    int sdatasize;
-}hwbufstats_t;
-
-typedef struct
-{
-    update_state_fun_t update_statue_callback;
-    int update_interval;
-    long callback_old_time;
-	notify_callback	   notify_fn;
-}callback_t;
-
-typedef struct
- {
-	char  *file_name;						//file url
-    char  *headers;							//file name's authentication information,maybe used in network streaming
-	//List  *play_list;
-	int	video_index;						//video track, no assigned, please set to -1
-	int	audio_index;						//audio track, no assigned, please set to -1
-	int sub_index;							//subtitle track, no assigned, please set to -1
-	float t_pos;							//start postion, use second as unit
-	int	read_max_cnt;						//read retry maxium counts, if exceed it, return error
-	int avsync_threshold;                             //for adec av sync threshold in ms
-	union
-	{     
-		struct{
-			unsigned int loop_mode:1;		//file loop mode 0:loop 1:not loop
-			unsigned int nosound:1;			//0:play with audio  1:play without audio
-			unsigned int novideo:1;			//0:play with video  1:play without video
-			unsigned int hassub:1;			//0:ignore subtitle	 1:extract subtitle if have
-			unsigned int need_start:1;/*If set need_start, we need call	player_start_play to playback*/
-			#ifdef DEBUG_VARIABLE_DUR
-			unsigned int is_variable:1;		//0:extrack duration from header 1:update duration during playback
-			#endif
-			unsigned int displast_frame : 1;//0:black out when player exit	1:keep last frame when player exit
-		};
-		int mode;							//no use
-	};  
-	callback_t callback_fn;					//callback function
-	int byteiobufsize;						//byteio buffer size used in ffmpeg
-	int loopbufsize;						//loop buffer size used in ffmpeg
-	int enable_rw_on_pause;					//no use
-	/*
-	data%<min && data% <max  enter buffering;
-	data% >middle exit buffering;
-	*/
-	int auto_buffing_enable;				 //auto buffering switch
-	float buffing_min;						 //auto buffering low limit
-	float buffing_middle;					 //auto buffering middle limit
-	float buffing_max;						 //auto buffering high limit
-	int is_playlist;						 //no use
-	int is_type_parser;						 //is try to get file type 
-	int buffing_starttime_s;			//for rest buffing_middle,buffering seconds data to start.
-	int buffing_force_delay_s;
-	int lowbuffermode_flag;
-	int reserved [56];					//reserved  for furthur used,some one add more ,can del reserved num
-	int SessionID;
- }play_control_t; 
-
-#endif
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amplayer/stream_format.h b/tools/depends/target/libamplayer/libamplayer/include/amplayer/stream_format.h
deleted file mode 100644
index 5444f52..0000000
--- a/tools/depends/target/libamplayer/libamplayer/include/amplayer/stream_format.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef _STREAM_FORMAT_H_
-#define _STREAM_FORMAT_H_
-
-#include "amports/vformat.h"
-#include "amports/aformat.h"
-
-typedef enum 
-{
-	NONE = 0,
-	ID3V1,
-	ID3V2,
-	APEV1,
-	APEV2,
-	WMATAG,
-	MPEG4TAG,
-}audio_tag_type;
-
-typedef enum 
-{
-    UNKNOWN_FILE 	= 0,
-    AVI_FILE 		= 1,
-    MPEG_FILE		= 2,
-    WAV_FILE		= 3,
-    MP3_FILE		= 4,
-    AAC_FILE		= 5,
-    AC3_FILE		= 6,
-    RM_FILE			= 7,
-    DTS_FILE		= 8,        
-    MKV_FILE		= 9,    
-    MOV_FILE        = 10,
-    MP4_FILE		= 11,		
-    FLAC_FILE		= 12,
-    H264_FILE		= 13,
-    M2V_FILE        = 14,
-    FLV_FILE		= 15,
-    P2P_FILE        = 16,
-    ASF_FILE        = 17,
-    STREAM_FILE     = 18,
-    APE_FILE		= 19,        
-    FILE_MAX		= 20,        
-}pfile_type;
-
-#endif
diff --git a/tools/depends/target/libass/Makefile b/tools/depends/target/libass/Makefile
deleted file mode 100644
index 8df2cec..0000000
--- a/tools/depends/target/libass/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libass
-VERSION=0.10.1
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --disable-enca
-
-LIBDYLIB=$(PLATFORM)/$(LIBNAME)/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/libass.la $(PREFIX)/lib/libass.so $(PREFIX)/lib/libass.so.4
-	mv -f $(PREFIX)/lib/libass.so.4.1.0 $(PREFIX)/lib/libass.so
-	$(RPL) -e "libass.so.4" "libass.so\x00\x00" $(PREFIX)/lib/libass.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libass.so | grep ibrary
-endif
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libbluray/Makefile b/tools/depends/target/libbluray/Makefile
deleted file mode 100644
index 80c2732..0000000
--- a/tools/depends/target/libbluray/Makefile
+++ /dev/null
@@ -1,48 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libbluray
-VERSION=0.2.1
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.bz2
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) --exec-prefix=$(PREFIX) \
-  --disable-examples --disable-doxygen-doc
-
-LIBDYLIB=$(PLATFORM)/src/.libs/libbluray.la
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	# libbluray has borked Makefile.am with respect to CFLAGS, remove the offending line
-	sed -i -e "s|CFLAGS=|#CFLAGS=|" $(PLATFORM)/src/Makefile.am
-	sed -i -e "s|CFLAGS=|#CFLAGS=|" $(PLATFORM)/src/examples/Makefile.am
-	cd $(PLATFORM); ./bootstrap
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/libbluray.la $(PREFIX)/lib/libbluray.so $(PREFIX)/lib/libbluray.so.1
-	mv -f $(PREFIX)/lib/libbluray.so.1.0.0 $(PREFIX)/lib/libbluray.so
-	$(RPL) -e "libbluray.so.1" "libbluray.so\x00\x00" $(PREFIX)/lib/libbluray.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libbluray.so | grep ibrary
-endif
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/libcdio-gplv3/Makefile b/tools/depends/target/libcdio-gplv3/Makefile
deleted file mode 100644
index b90db66..0000000
--- a/tools/depends/target/libcdio-gplv3/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libcdio
-VERSION=0.90
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX)  --with-cd-drive=no --with-cd-info=no --with-cd-paranoia=no \
-          --with-cdda-player=no --with-cd-read=no --with-iso-info=no --with-iso-read=no --disable-example-progs \
-          --disable-cpp-progs --disable-cxx --disable-shared
-
-LIBDYLIB=$(PLATFORM)/lib/driver/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p0 < ../osx.patch
-	cd $(PLATFORM); $(AUTORECONF) -vif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)/lib
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM)/lib install
-	$(MAKE) -C $(PLATFORM)/include install
-	$(MAKE) -C $(PLATFORM) install-data-am
-	cp $(PLATFORM)/include/cdio/cdtext.h $(PREFIX)/include/cdio/
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libcdio-gplv3/osx.patch b/tools/depends/target/libcdio-gplv3/osx.patch
deleted file mode 100644
index f705973..0000000
--- a/tools/depends/target/libcdio-gplv3/osx.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- configure.ac	2012-10-27 17:07:45.000000000 +0200
-+++ configure.ac.new	2012-10-28 11:07:00.000000000 +0100
-@@ -352,14 +352,14 @@
- esac
- AC_SUBST(native_abs_top_srcdir)
- 
--case $host_os in
-+case $host in
-      aix*)
-        ## Don't use AIX driver until starts to really work
-        ## cd_drivers="${cd_drivers}, AIX"
-        ## AC_DEFINE([HAVE_AIX_CDROM], [1],
-        ##     [Define 1 if you have AIX CD-ROM support])
-        ;;
--     darwin[[6-9]].*|darwin1[[0-2]].*)
-+     *86*-apple-darwin*)
-        AC_CHECK_HEADERS(IOKit/IOKitLib.h CoreFoundation/CFBase.h, 
-                         [have_iokit_h="yes"])
-        if test "x$have_iokit_h" = "xyes" ; then 
diff --git a/tools/depends/target/libcdio/Makefile b/tools/depends/target/libcdio/Makefile
deleted file mode 100644
index c56e2c7..0000000
--- a/tools/depends/target/libcdio/Makefile
+++ /dev/null
@@ -1,48 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include configure.patch Makefile
-
-# lib name, version
-LIBNAME=libcdio
-VERSION=0.80
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX)  --with-cd-drive=no --with-cd-info=no --with-cd-paranoia=no \
-          --with-cdda-player=no --with-cd-read=no --with-iso-info=no --with-iso-read=no --disable-example-progs \
-          --disable-cpp-progs --disable-cxx --disable-shared
-
-LIBDYLIB=$(PLATFORM)/lib/driver/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p0 < ../configure.patch
-	cd $(PLATFORM); patch -p0 < ../cross.patch
-	cd $(PLATFORM); $(AUTORECONF) -vif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)/lib
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM)/lib install
-	$(MAKE) -C $(PLATFORM)/include install
-	$(MAKE) -C $(PLATFORM) install-data-am
-	cp $(PLATFORM)/include/cdio/cdtext.h $(PREFIX)/include/cdio/
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libcdio/configure.patch b/tools/depends/target/libcdio/configure.patch
deleted file mode 100644
index a4110ef..0000000
--- a/tools/depends/target/libcdio/configure.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure.ac	2012-05-27 15:06:13.044747493 -0400
-+++ configure.ac	2012-05-27 15:05:52.364747505 -0400
-@@ -378,7 +378,7 @@
-      ;;
-      linux*|uclinux)
-         AC_CHECK_HEADERS(linux/version.h linux/major.h)
--        AC_CHECK_HEADERS(linux/cdrom.h, [have_linux_cdrom_h="yes"])
-+        AC_CHECK_HEADERS(linux/cdrom.h, [have_linux_cdrom_h="no"])
- 	if test "x$have_linux_cdrom_h" = "xyes" ; then
- 	   AC_TRY_COMPILE(,[
- #include <linux/cdrom.h>
diff --git a/tools/depends/target/libcdio/cross.patch b/tools/depends/target/libcdio/cross.patch
deleted file mode 100644
index d5e17ce..0000000
--- a/tools/depends/target/libcdio/cross.patch
+++ /dev/null
@@ -1,109 +0,0 @@
---- configure.ac	2013-03-10 19:25:36.396466337 -0400
-+++ configure.ac	2013-03-10 19:24:34.906466376 -0400
-@@ -269,37 +269,6 @@
- fi
- dnl empty_array_size
- 
--dnl bitfield order
--AC_MSG_CHECKING(bitfield ordering in structs)
--AC_TRY_RUN([
--int
-- main() {
--  struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
--#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
--  __attribute__((packed))
--#endif
--  bf = { 1,1,1,1 };
--  if (sizeof (bf) != 1) return 1;
--  return *((unsigned char*) &bf) != 0x4b; }
--], bf_lsbf=1, AC_TRY_RUN([ 
--int
--main() {
--  struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
--#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
--  __attribute__((packed))
--#endif
--  bf = { 1,1,1,1 };
--  if (sizeof (bf) != 1) return 1;
--  return *((unsigned char*) &bf) != 0xa5; }
--], bf_lsbf=0, AC_MSG_ERROR([unsupported bitfield ordering])))
--if test "x$bf_lsbf" = "x1"; then
-- AC_MSG_RESULT(LSBF)
-- AC_DEFINE(BITFIELD_LSBF, [], [compiler does least-significant bit first in struct bitfields])
--else
-- AC_MSG_RESULT(MSBF)
--fi
--dnl
--
- dnl AM_PROG_LIBTOOL tests whether we have GNU ld
- dnl this must come before checking --with-versioned-libs
- dnl which requires GNU ld.
-@@ -466,24 +435,6 @@
- 	;;
- esac
- 
--AC_MSG_CHECKING(extern long timezone variable)
--AC_TRY_RUN([
--#ifdef NEED_TIMEZONEVAR
--#define timezonevar 1
--#endif
--
--#include <time.h>
--extern long timezone;
--int main(int argc, char **argv) {
--  long test_timezone = timezone;
--  return 0; 
--}
--], [AC_MSG_RESULT(yes); 
--   AC_DEFINE([HAVE_TIMEZONE_VAR], 1, 
--	[Define if you have an extern long timenzone variable.])],
--   [AC_MSG_RESULT(no)])
--dnl
--
- AC_SUBST(LINUX_CDROM_TIMEOUT)
- AC_SUBST(DARWIN_PKG_LIB_HACK)
- AC_SUBST(HAVE_BSDI_CDROM)
-@@ -508,43 +459,6 @@
-                  ,
-                  [#include <time.h>])
- 
--if test $ac_cv_member_struct_tm_tm_gmtoff = yes ; then
--  AC_MSG_CHECKING([whether time.h defines daylight and timezone variables])
--  AC_TRY_RUN([
--#include <time.h>
--
--
--       extern char *tzname[2];
--       extern long timezone;
--       extern int daylight;
--
--int
-- main() {
--  return (timezone != 0) + daylight;
--}
--  ],[AC_DEFINE(HAVE_DAYLIGHT, 1,
--   [Define if time.h defines extern long timezone and int daylight vars.])
--   has_daylight=yes
--   ],[has_daylight=no])
--  AC_MSG_RESULT($has_daylight)
--  AC_MSG_CHECKING([whether time.h defines tzname variable])
--  AC_TRY_RUN([
--#include <time.h>
--
--
--       extern char *tzname[2];
--
--int
-- main() {
--  return (tzname != NULL);
--}
--  ],[AC_DEFINE(HAVE_TZNAME, 1,
--   [Define if time.h defines extern extern char *tzname[2] variable])
--   has_tzname=yes
--   ],[has_tzname=no])
--   AC_MSG_RESULT($has_tzname)
--fi
--
- AC_ARG_ENABLE(joliet,
- 	AS_HELP_STRING([--disable-joliet], [don't include Joliet extension support (default enabled)]),
- 	[enable_joliet=$enableval],
diff --git a/tools/depends/target/libcec/Makefile b/tools/depends/target/libcec/Makefile
deleted file mode 100644
index 6c72240..0000000
--- a/tools/depends/target/libcec/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libcec
-VERSION=2.2.0
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE)-3.tar.gz
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) --disable-rpi \
-
-LIBDYLIB=$(PLATFORM)/src/lib/.libs/libcec.la
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(AUTORECONF) -vif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)/src/lib
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM)/src/lib install
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/libcec.la $(PREFIX)/lib/libcec.so $(PREFIX)/lib/libcec.so.2
-	mv -f $(PREFIX)/lib/libcec.so.2.0.1 $(PREFIX)/lib/libcec.so
-	$(RPL) -e "libcec.so.2" "libcec.so\x00\x00" $(PREFIX)/lib/libcec.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libcec.so | grep ibrary
-endif
-	touch $@
-
-clean:
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libffi/01_ios_arm_align_fix.patch b/tools/depends/target/libffi/01_ios_arm_align_fix.patch
deleted file mode 100644
index 6a1aeb3..0000000
--- a/tools/depends/target/libffi/01_ios_arm_align_fix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -ru iphoneos5.1_armv7-target/src/arm/sysv.S iphoneos5.1_armv7-target.patched/src/arm/sysv.S
---- src/arm/sysv.S	2012-04-12 10:46:06.000000000 +0800
-+++ src/arm/sysv.S	2013-03-15 09:43:06.000000000 +0800
-@@ -113,7 +113,7 @@
- #if defined(__thumb__) && !defined(__THUMB_INTERWORK__)
- .macro	ARM_FUNC_START name
- 	.text
--	.align 0
-+	.align 2
- 	.thumb
- 	.thumb_func
- #ifdef __APPLE__
-@@ -136,7 +136,7 @@
- #else
- .macro	ARM_FUNC_START name
- 	.text
--	.align 0
-+	.align 2
- 	.arm
- #ifdef __APPLE__
- 	ENTRY($0)
diff --git a/tools/depends/target/libffi/Makefile b/tools/depends/target/libffi/Makefile
deleted file mode 100644
index 3a4ed47..0000000
--- a/tools/depends/target/libffi/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libffi
-VERSION=3.0.11
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE= ./configure --prefix=$(PREFIX) --disable-shared --disable-builddir 
-ifeq ($(OS), ios)
-CONFIGURE+=CFLAGS=-no-integrated-as
-endif
-
-
-LIBDYLIB=$(PLATFORM)/.libs/$(LIBNAME).a
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p0 < ../01_ios_arm_align_fix.patch
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -j 1 -C $(PLATFORM)
-	touch $@
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	mkdir -p $(PREFIX)/include/ffi
-	cp $(PREFIX)/lib/$(SOURCE)/include/* $(PREFIX)/include/ffi/
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/libflac/Makefile b/tools/depends/target/libflac/Makefile
deleted file mode 100644
index 96eb423..0000000
--- a/tools/depends/target/libflac/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile nasm.patch
-
-# lib name, version
-LIBNAME=flac
-VERSION=1.2.1
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-export NASM=
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --disable-xmms-plugin --disable-cpplibs --disable-asm-optimizations
-
-LIBDYLIB=$(PLATFORM)/src/libFLAC/.libs/libFLAC.a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p1 < ../autoreconf.patch
-	cd $(PLATFORM); patch -p0 < ../nasm.patch
-	cd $(PLATFORM); $(AUTORECONF) -vif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libflac/autoreconf.patch b/tools/depends/target/libflac/autoreconf.patch
deleted file mode 100644
index 3a04931..0000000
--- a/tools/depends/target/libflac/autoreconf.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From: Erik de Castro Lopo <erikd at mega-nerd.com>
-Date: Mon, 13 Feb 2012 08:55:46 +0000 (+1100)
-Subject: Fix for autoreconf failures.
-X-Git-Url: https://git.xiph.org/?p=flac.git;a=commitdiff_plain;h=e38026a52c34008bcf9126f61ee63b58168facf9
-
-Fix for autoreconf failures.
-
-Fixes "undefined macro: AM_PATH_XMMS" and similar errors which cause
-autoreconf to fail.
-
-From Sebastian Andrzej Siewior <bigeasy at linutronix.de> via Debian.
----
-
-diff --git a/Makefile.am b/Makefile.am
-index d106d9f..0a65206 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -30,6 +30,8 @@
- 
- AUTOMAKE_OPTIONS = foreign 1.7
- 
-+ACLOCAL_AMFLAGS = -I m4
-+
- SUBDIRS = doc include m4 man src examples test build obj
- 
- DISTCLEANFILES = libtool-disable-static
-diff --git a/configure.in b/configure.in
-index 63a0984..f56c188 100644
---- a/configure.in
-+++ b/configure.in
-@@ -33,6 +33,7 @@ sed -e 's/^build_old_libs=yes/build_old_libs=no/' libtool > libtool-disable-stat
- chmod +x libtool-disable-static
- 
- AC_SUBST(ACLOCAL_AMFLAGS, "-I m4")
-+AC_CONFIG_MACRO_DIR([m4])
- 
- AM_PROG_AS
- AC_PROG_CXX
diff --git a/tools/depends/target/libflac/nasm.patch b/tools/depends/target/libflac/nasm.patch
deleted file mode 100644
index 0371cb9..0000000
--- a/tools/depends/target/libflac/nasm.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -ruN configure.in configure.in
---- configure.in	2007-09-13 11:48:42.000000000 -0400
-+++ configure.in	2012-06-10 20:13:50.543973093 -0400
-@@ -269,10 +269,6 @@
- # only matters for x86
- AC_CHECK_PROGS(NASM, nasm)
- AM_CONDITIONAL(FLaC__HAS_NASM, test -n "$NASM")
--if test -n "$NASM" ; then
--AC_DEFINE(FLAC__HAS_NASM)
--AH_TEMPLATE(FLAC__HAS_NASM, [define if you are compiling for x86 and have the NASM assembler])
--fi
- 
- # only matters for PowerPC
- AC_CHECK_PROGS(AS, as, as)
diff --git a/tools/depends/target/libgcrypt/01-inline-gcc.patch b/tools/depends/target/libgcrypt/01-inline-gcc.patch
deleted file mode 100644
index 3a0fe01..0000000
--- a/tools/depends/target/libgcrypt/01-inline-gcc.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 5abc06114e91beca0177331e1c79815f5fb6d7be Mon Sep 17 00:00:00 2001
-From: Werner Koch <wk at gnupg.org>
-Date: Thu, 8 Nov 2012 15:38:44 +0100
-Subject: [PATCH] Fix extern inline use for gcc > 4.3 in c99 mode
-
-* mpi/mpi-inline.h [!G10_MPI_INLINE_DECL]: Take care of changed extern
-inline semantics in gcc.
---
-
-I am not use how this will work out with non-gcc. However, we had no
-problems in the past and thus this change is the least invasive for
-non-gcc compilers.
-
-GnuPG-bug-id: 1406, 1435
----
- mpi/mpi-inline.h |    9 ++++++++-
- 1 files changed, 8 insertions(+), 1 deletions(-)
-
-diff --git a/mpi/mpi-inline.h b/mpi/mpi-inline.h
-index 88d9f56..94e2aec 100644
---- a/mpi/mpi-inline.h
-+++ b/mpi/mpi-inline.h
-@@ -28,8 +28,15 @@
- #ifndef G10_MPI_INLINE_H
- #define G10_MPI_INLINE_H
- 
-+/* Starting with gcc 4.3 "extern inline" conforms in c99 mode to the
-+   c99 semantics.  To keep the useful old semantics we use an
-+   attribute.  */
- #ifndef G10_MPI_INLINE_DECL
--#define G10_MPI_INLINE_DECL  extern __inline__
-+# ifdef __GNUC_STDC_INLINE__
-+#  define G10_MPI_INLINE_DECL  extern inline __attribute__ ((__gnu_inline__))
-+# else
-+#  define G10_MPI_INLINE_DECL  extern __inline__
-+# endif
- #endif
- 
- G10_MPI_INLINE_DECL  mpi_limb_t
--- 
-1.7.2.5
-
diff --git a/tools/depends/target/libgcrypt/02-armasm.patch b/tools/depends/target/libgcrypt/02-armasm.patch
deleted file mode 100644
index cb0f6b9..0000000
--- a/tools/depends/target/libgcrypt/02-armasm.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- mpi/longlong.h	2005-07-29 09:31:17.000000000 -0400
-+++ mpi/longlong.h	2013-01-20 15:18:22.000000000 -0500
-@@ -223,15 +223,24 @@
- 	   : "r" ((USItype)(a)),                                        \
- 	     "r" ((USItype)(b))                                         \
- 	   : "r0", "r1", "r2")
--#else
-+#elif defined(__APPLE__)
- #define umul_ppmm(xh, xl, a, b)                                         \
--  __asm__ ("%@ Inlined umul_ppmm\n"                                     \
--	   "umull %r1, %r0, %r2, %r3"                                   \
-+  __asm__ ("@ Inlined umul_ppmm\n"                                      \
-+	   "umull %1, %0, %2, %3"                                       \
- 		   : "=&r" ((USItype)(xh)),                             \
- 		     "=r" ((USItype)(xl))                               \
- 		   : "r" ((USItype)(a)),                                \
- 		     "r" ((USItype)(b))                                 \
- 		   : "r0", "r1")
-+#else
-+#define umul_ppmm(xh, xl, a, b)                                         \
-+  __asm__ ("%@ Inlined umul_ppmm\n"                                     \
-+          "umull %r1, %r0, %r2, %r3"                                    \
-+                   : "=&r" ((USItype)(xh)),                             \
-+                     "=r" ((USItype)(xl))                               \
-+                   : "r" ((USItype)(a)),                                \
-+                     "r" ((USItype)(b))                                 \
-+		   : "r0", "r1")
- #endif
- #define UMUL_TIME 20
- #define UDIV_TIME 100
diff --git a/tools/depends/target/libgcrypt/03-gcrypt-android-select.patch b/tools/depends/target/libgcrypt/03-gcrypt-android-select.patch
deleted file mode 100644
index 5965496..0000000
--- a/tools/depends/target/libgcrypt/03-gcrypt-android-select.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- src/gcrypt.h.in	2007-12-03 03:48:19.000000000 -0500
-+++ src/gcrypt.h.in	2013-01-21 00:31:48.772740461 -0500
-@@ -41,6 +41,10 @@
- 
- #include <sys/time.h>
- 
-+#if defined(ANDROID)
-+#include <sys/select.h>
-+#endif
-+
- /* This is required for error code compatibility. */
- #define _GCRY_ERR_SOURCE_DEFAULT GPG_ERR_SOURCE_GCRYPT
- 
diff --git a/tools/depends/target/libgcrypt/04-oflagmunging.patch b/tools/depends/target/libgcrypt/04-oflagmunging.patch
deleted file mode 100644
index 98ec8d3..0000000
--- a/tools/depends/target/libgcrypt/04-oflagmunging.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- cipher/Makefile.am.orig	2013-03-23 23:55:30.000000000 +0100
-+++ cipher/Makefile.am	2013-03-24 00:03:34.000000000 +0100
-@@ -68,7 +68,7 @@
- camellia.c camellia.h camellia-glue.c
- 
- if ENABLE_O_FLAG_MUNGING
--o_flag_munging = sed -e 's/-O[2-9s]*/-O1/g'
-+o_flag_munging = sed -e 's/ -O[2-9s]* / -O1 /g'
- else
- o_flag_munging = cat
- endif
---- cipher/Makefile.in.orig	2013-03-24 00:03:10.000000000 +0100
-+++ cipher/Makefile.in	2013-03-24 00:03:25.000000000 +0100
-@@ -274,7 +274,7 @@
- camellia.c camellia.h camellia-glue.c
- 
- @ENABLE_O_FLAG_MUNGING_FALSE at o_flag_munging = cat
-- at ENABLE_O_FLAG_MUNGING_TRUE@o_flag_munging = sed -e 's/-O[2-9s]*/-O1/g'
-+ at ENABLE_O_FLAG_MUNGING_TRUE@o_flag_munging = sed -e 's/ -O[2-9s]* / -O1 /g'
- all: all-am
- 
- .SUFFIXES:
diff --git a/tools/depends/target/libgcrypt/Makefile b/tools/depends/target/libgcrypt/Makefile
deleted file mode 100644
index 3e21bd5..0000000
--- a/tools/depends/target/libgcrypt/Makefile
+++ /dev/null
@@ -1,48 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include 03-gcrypt-android-select.patch Makefile
-
-# lib name, version
-LIBNAME=libgcrypt
-VERSION=1.4.5
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.bz2
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --disable-shared \
-
-ifeq ($(OS),osx)
-CONFIGURE+=--disable-asm
-endif
-
-LIBDYLIB=$(PLATFORM)/src/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p1 < ../01-inline-gcc.patch
-	cd $(PLATFORM); patch -p0 < ../02-armasm.patch
-	cd $(PLATFORM); patch -p0 < ../03-gcrypt-android-select.patch
-	cd $(PLATFORM); patch -p0 < ../04-oflagmunging.patch
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/libgpg-error/Makefile b/tools/depends/target/libgpg-error/Makefile
deleted file mode 100644
index fa6ffd5..0000000
--- a/tools/depends/target/libgpg-error/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libgpg-error
-VERSION=1.12
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.bz2
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) \
-  --disable-languages \
-  --disable-nls --disable-shared
-
-LIBDYLIB=$(PLATFORM)/src/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/libiconv/Makefile b/tools/depends/target/libiconv/Makefile
deleted file mode 100644
index 9aa023d..0000000
--- a/tools/depends/target/libiconv/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libiconv
-VERSION=1.14
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) build-aux/; \
-          cp -f $(CONFIG_SUB) $(CONFIG_GUESS) libcharset/build-aux/; \
-          ./configure --prefix=$(PREFIX) --disable-shared --enable-extra-encodings
-
-LIBDYLIB=$(PLATFORM)/lib/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libjpeg-turbo/Makefile b/tools/depends/target/libjpeg-turbo/Makefile
deleted file mode 100644
index 6e767a4..0000000
--- a/tools/depends/target/libjpeg-turbo/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libjpeg-turbo
-VERSION=1.2.0
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(LIBNAME)-$(VERSION).tar.gz
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --with-jpeg8 --disable-shared
-
-export CFLAGS=-O3
-
-LIBDYLIB=$(PLATFORM)/.libs/libjpeg.a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -j 1 -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/liblzo2/Makefile b/tools/depends/target/liblzo2/Makefile
deleted file mode 100644
index 9a670ed..0000000
--- a/tools/depends/target/liblzo2/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=lzo
-VERSION=2.06
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) autoconf/; \
-          ./configure --prefix=$(PREFIX)
-
-LIBDYLIB=$(PLATFORM)/src/.libs/lib$(LIBNAME)2.a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libmicrohttpd/Makefile b/tools/depends/target/libmicrohttpd/Makefile
deleted file mode 100644
index 719fcae..0000000
--- a/tools/depends/target/libmicrohttpd/Makefile
+++ /dev/null
@@ -1,52 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include fix-android-include.patch Makefile
-
-# lib name, version
-LIBNAME=libmicrohttpd
-VERSION=0.4.6
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --disable-shared
-
-# internal memmem sym collides with internal gnutils memmem
-# when built on 10.6.8, strip it.
-ifeq ($(OS), osx)
-STRIP_MEMMEM=-$(AR) d $(PLATFORM)/src/daemon/.libs/libmicrohttpd.a memmem.o
-endif
-
-
-LIBDYLIB=$(PLATFORM)/src/daemon/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p0 < ../fix-android-include.patch
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)/src/daemon
-	$(MAKE) -C $(PLATFORM)/src/include install
-	$(STRIP_MEMMEM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	rm -f $(PREFIX)/lib/libmicrohttpd.so $(PREFIX)/lib/libmicrohttpd.so.5 $(PREFIX)/lib/libmicrohttpd.so.5.2.1
-	$(MAKE) -C $(PLATFORM)/src/daemon install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libmicrohttpd/fix-android-include.patch b/tools/depends/target/libmicrohttpd/fix-android-include.patch
deleted file mode 100644
index 10eaa25..0000000
--- a/tools/depends/target/libmicrohttpd/fix-android-include.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff -ruN src/daemon/daemon.c src/daemon/daemon.c
---- src/daemon/daemon.c	2012-05-07 17:21:43.695832026 -0400
-+++ src/daemon/daemon.c	2012-05-07 17:20:20.365832079 -0400
-@@ -244,7 +244,9 @@
-   MHD_ip_count_lock (daemon);
- 
-   /* Search for the IP address */
-+#if !defined(ANDROID)
-   node = (void*)TSEARCH (key, &daemon->per_ip_connection_count, MHD_ip_addr_compare);
-+#endif
-   if (!node)
-     {
- #if HAVE_MESSAGES
-@@ -296,7 +298,9 @@
-   MHD_ip_count_lock (daemon);
- 
-   /* Search for the IP address */
-+#if !defined(ANDROID)
-   node = (void*)TFIND (&search_key, &daemon->per_ip_connection_count, MHD_ip_addr_compare);
-+#endif
- 
-   /* Something's wrong if we couldn't find an IP address
-    * that was previously added */
-diff -ruN src/include/platform.h src/include/platform.h
---- src/include/platform.h	2012-05-07 17:34:57.345831526 -0400
-+++ src/include/platform.h	2012-05-07 17:20:20.375832079 -0400
-@@ -53,7 +53,7 @@
- #include <errno.h>
- #include <fcntl.h>
- #include <signal.h>
--#if !defined(MINGW) && !defined(__SYMBIAN32__)
-+#if !defined(MINGW) && !defined(__SYMBIAN32__) && !defined(ANDROID)
- #include <search.h>
- #endif
- #include <stddef.h>
diff --git a/tools/depends/target/libmodplug/Makefile b/tools/depends/target/libmodplug/Makefile
deleted file mode 100644
index 31197eb..0000000
--- a/tools/depends/target/libmodplug/Makefile
+++ /dev/null
@@ -1,48 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libmodplug
-VERSION=0.8.7
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX)
-
-LIBDYLIB=$(PLATFORM)/src/.libs/$(LIBNAME).la
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(AUTORECONF) -vif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/libmodplug.la $(PREFIX)/lib/libmodplug.so $(PREFIX)/lib/libmodplug.so.0
-	mv -f $(PREFIX)/lib/libmodplug.so.0.0.0 $(PREFIX)/lib/libmodplug.so
-	$(RPL) -e "libmodplug.so.0" "libmodplug.so\x00\x00" $(PREFIX)/lib/libmodplug.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libmodplug.so | grep ibrary
-endif
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libmp3lame/Makefile b/tools/depends/target/libmp3lame/Makefile
deleted file mode 100644
index 666939e..0000000
--- a/tools/depends/target/libmp3lame/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=lame
-VERSION=3.99.5
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --disable-gtktest --disable-frontend --disable-decoder
-
-LIBDYLIB=$(PLATFORM)/libmp3lame/.libs/libmp3lame.a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)/libmp3lame
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM)/include install
-	$(MAKE) -C $(PLATFORM)/libmp3lame install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/libmpeg2/01-libmpeg2-add-asm-leading-underscores.patch b/tools/depends/target/libmpeg2/01-libmpeg2-add-asm-leading-underscores.patch
deleted file mode 100644
index f8bf8d3..0000000
--- a/tools/depends/target/libmpeg2/01-libmpeg2-add-asm-leading-underscores.patch
+++ /dev/null
@@ -1,62 +0,0 @@
---- libmpeg2-0.5.1.org/libmpeg2/motion_comp_arm_s.S	2008-07-09 15:16:05.000000000 -0400
-+++ libmpeg2-0.5.1/libmpeg2/motion_comp_arm_s.S	2013-01-18 01:53:04.692900836 -0500
-@@ -23,8 +23,13 @@
- 
- @ ----------------------------------------------------------------
- 	.align
--	.global MC_put_o_16_arm
-+#if defined(__APPLE__) && defined(__arm__)
-+	.global _MC_put_o_16_arm
-+_MC_put_o_16_arm:
-+#else
-+        .global MC_put_o_16_arm
- MC_put_o_16_arm:
-+#endif
- 	@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
- 	pld [r1]
-         stmfd sp!, {r4-r11, lr} @ R14 is also called LR
-@@ -83,8 +88,13 @@
- 
- @ ----------------------------------------------------------------
- 	.align
--	.global MC_put_o_8_arm
-+#if defined(__APPLE__) && defined(__arm__)
-+	.global _MC_put_o_8_arm
-+_MC_put_o_8_arm:
-+#else
-+        .global MC_put_o_8_arm
- MC_put_o_8_arm:
-+#endif
- 	@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
- 	pld [r1]
-         stmfd sp!, {r4-r10, lr} @ R14 is also called LR
-@@ -152,8 +162,13 @@
- .endm
- 
- 	.align
--	.global MC_put_x_16_arm
-+#if defined(__APPLE__) && defined(__arm__)
-+	.global _MC_put_x_16_arm
-+_MC_put_x_16_arm:
-+#else
-+        .global MC_put_x_16_arm
- MC_put_x_16_arm:
-+#endif
- 	@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
- 	pld [r1]
-         stmfd sp!, {r4-r11,lr} @ R14 is also called LR
-@@ -244,8 +259,13 @@
- 
- @ ----------------------------------------------------------------
- 	.align
--	.global MC_put_x_8_arm
-+#if defined(__APPLE__) && defined(__arm__)
-+	.global _MC_put_x_8_arm
-+_MC_put_x_8_arm:
-+#else
-+        .global MC_put_x_8_arm
- MC_put_x_8_arm:
-+#endif
- 	@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
- 	pld [r1]
-         stmfd sp!, {r4-r11,lr} @ R14 is also called LR
diff --git a/tools/depends/target/libmpeg2/02-neon.patch b/tools/depends/target/libmpeg2/02-neon.patch
deleted file mode 100644
index 329551b..0000000
--- a/tools/depends/target/libmpeg2/02-neon.patch
+++ /dev/null
@@ -1,385 +0,0 @@
-Index: include/mpeg2.h
-===================================================================
---- include/mpeg2.h	(révision 1193)
-+++ include/mpeg2.h	(copie de travail)
-@@ -164,6 +164,7 @@
- #define MPEG2_ACCEL_SPARC_VIS 1
- #define MPEG2_ACCEL_SPARC_VIS2 2
- #define MPEG2_ACCEL_ARM 1
-+#define MPEG2_ACCEL_ARM_NEON 2
- #define MPEG2_ACCEL_DETECT 0x80000000
- 
- uint32_t mpeg2_accel (uint32_t accel);
-Index: libmpeg2/motion_comp_neon.c
-===================================================================
---- libmpeg2/motion_comp_neon.c	(révision 0)
-+++ libmpeg2/motion_comp_neon.c	(révision 0)
-@@ -0,0 +1,302 @@
-+/*
-+ * motion_comp_neon.c
-+ * Copyright (C) 2009 Rémi Denis-Courmont
-+ *
-+ * This file is part of mpeg2dec, a free MPEG-2 video stream decoder.
-+ * See http://libmpeg2.sourceforge.net/ for updates.
-+ *
-+ * mpeg2dec 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.
-+ *
-+ * mpeg2dec is distributed in the hope that 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 mpeg2dec; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-+ */
-+
-+#include "config.h"
-+
-+#if defined(ARCH_ARM)
-+
-+#include <stdint.h>
-+#include <string.h>
-+
-+#include "mpeg2.h"
-+#include "attributes.h"
-+#include "mpeg2_internal.h"
-+
-+/* dest = ref */
-+static void MC_put_o_16_neon (uint8_t * dest, const uint8_t * ref,
-+			      const int stride, int height)
-+{
-+    do {
-+	memcpy (dest, ref, 16);
-+	ref += stride;
-+	dest += stride;
-+    } while (--height);
-+}
-+
-+static void MC_put_o_8_neon (uint8_t * dest, const uint8_t * ref,
-+			     const int stride, int height)
-+{
-+    do {
-+	memcpy (dest, ref, 8);
-+	ref += stride;
-+	dest += stride;
-+    } while (--height);
-+}
-+
-+/* dest = (src1 + src2 + 1) / 2 */
-+static void MC_avg_1_16_neon (uint8_t * dest, const uint8_t * src1,
-+			      const uint8_t * src2,
-+			      const int stride, unsigned height)
-+{
-+    do {
-+	asm volatile (
-+	    "vld1.u8 {q0}, [%[src1]]\n"
-+	    "vld1.u8 {q1}, [%[src2]]\n"
-+	    "vrhadd.u8 q0, q0, q1\n"
-+	    /* XXX: three cycles stall */
-+	    "vst1.u8 {q0}, [%[dest]]\n"
-+	    :
-+	    : [dest]"r"(dest), [src1]"r"(src1), [src2]"r"(src2)
-+	    : "memory", "q0", "q1");
-+	src1 += stride;
-+	src2 += stride;
-+	dest += stride;
-+    } while (--height);
-+}
-+
-+static void MC_avg_1_8_neon (uint8_t * dest, const uint8_t * src1,
-+			     const uint8_t * src2,
-+			     const int stride, unsigned height)
-+{
-+    do {
-+	asm volatile (
-+	    "vld1.u8 {d0}, [%[src1]]\n"
-+	    "vld1.u8 {d1}, [%[src2]]\n"
-+	    "vrhadd.u8 d0, d0, d1\n"
-+	    "vst1.u8 {d0}, [%[dest]]\n"
-+	    :
-+	    : [dest]"r"(dest), [src1]"r"(src1), [src2]"r"(src2)
-+	    : "memory", "q0");
-+	
-+	src1 += stride;
-+	src2 += stride;
-+	dest += stride;
-+    } while (--height);
-+}
-+
-+/* dest = (dest + ((src1 + src2 + 1) / 2) + 1) / 2 */
-+static void MC_avg_2_16_neon (uint8_t * dest, const uint8_t * src1,
-+			      const uint8_t * src2,
-+			      const int stride, unsigned height)
-+{
-+    do {
-+	asm volatile (
-+	    "vld1.u8 {q0}, [%[src1]]\n"
-+	    "vld1.u8 {q1}, [%[src2]]\n"
-+	    "vrhadd.u8 q0, q0, q1\n"
-+	    "vld1.u8 {q2}, [%[dest]]\n"
-+	    /* XXX: one cycle stall */
-+	    "vrhadd.u8 q0, q0, q2\n"
-+	    /* XXX: three cycles stall */
-+	    "vst1.u8 {q0}, [%[dest]]\n"
-+	    :
-+	    : [dest]"r"(dest), [src1]"r"(src1), [src2]"r"(src2)
-+	    : "memory", "q0", "q1", "q2");
-+	src1 += stride;
-+	src2 += stride;
-+	dest += stride;
-+    } while (--height);
-+}
-+
-+static void MC_avg_2_8_neon (uint8_t * dest, const uint8_t * src1,
-+			     const uint8_t * src2,
-+			     const int stride, unsigned height)
-+{
-+    do {
-+	asm volatile (
-+	    "vld1.u8 {d0}, [%[src1]]\n"
-+	    "vld1.u8 {d1}, [%[src2]]\n"
-+	    "vrhadd.u8 d0, d0, d1\n"
-+	    "vld1.u8 {d2}, [%[dest]]\n"
-+	    "vrhadd.u8 d0, d0, d2\n"
-+	    "vst1.u8 {d0}, [%[dest]]\n"
-+	    :
-+	    : [dest]"r"(dest), [src1]"r"(src1), [src2]"r"(src2)
-+	    : "memory", "q0", "d2");
-+	src1 += stride;
-+	src2 += stride;
-+	dest += stride;
-+    } while (--height);
-+}
-+
-+static void MC_avg_o_16_neon (uint8_t * dest, const uint8_t * ref,
-+			      const int stride, int height)
-+{
-+    MC_avg_1_16_neon (dest, dest, ref, stride, height);
-+}
-+
-+static void MC_avg_o_8_neon (uint8_t * dest, const uint8_t * ref,
-+			     const int stride, int height)
-+{
-+    MC_avg_1_8_neon (dest, dest, ref, stride, height);
-+}
-+
-+static void MC_put_x_16_neon (uint8_t * dest, const uint8_t * ref,
-+			      const int stride, int height)
-+{
-+    MC_avg_1_16_neon (dest, ref, ref + 1, stride, height);
-+}
-+
-+static void MC_put_x_8_neon (uint8_t * dest, const uint8_t * ref,
-+			     const int stride, int height)
-+{
-+    MC_avg_1_8_neon (dest, ref, ref + 1, stride, height);
-+}
-+
-+static void MC_avg_x_16_neon (uint8_t * dest, const uint8_t * ref,
-+			      const int stride, int height)
-+{
-+    MC_avg_2_16_neon (dest, ref, ref + 1, stride, height);
-+}
-+
-+static void MC_avg_x_8_neon (uint8_t * dest, const uint8_t * ref,
-+			     const int stride, int height)
-+{
-+    MC_avg_2_8_neon (dest, ref, ref + 1, stride, height);
-+}
-+
-+static void MC_put_y_16_neon (uint8_t * dest, const uint8_t * ref,
-+			      const int stride, int height)
-+{
-+    MC_avg_1_16_neon (dest, ref, ref + stride, stride, height);
-+}
-+static void MC_put_y_8_neon (uint8_t * dest, const uint8_t * ref,
-+			     const int stride, int height)
-+{
-+    MC_avg_1_8_neon (dest, ref, ref + stride, stride, height);
-+}
-+
-+static void MC_avg_y_16_neon (uint8_t * dest, const uint8_t * ref,
-+			      const int stride, int height)
-+{
-+    MC_avg_2_16_neon (dest, ref, ref + stride, stride, height);
-+}
-+
-+static void MC_avg_y_8_neon (uint8_t * dest, const uint8_t * ref,
-+			     const int stride, int height)
-+{
-+    MC_avg_2_8_neon (dest, ref, ref + stride, stride, height);
-+}
-+
-+static void MC_put_xy_16_neon (uint8_t * dest, const uint8_t * ref,
-+			       const int stride, int height)
-+{
-+    do {
-+	asm volatile (
-+	    "vld1.u8 {q0}, [%[ref]]\n"
-+	    "vld1.u8 {q1}, [%[refx]]\n"
-+	    "vrhadd.u8 q0, q0, q1\n"
-+	    "vld1.u8 {q2}, [%[refy]]\n"
-+	    "vld1.u8 {q3}, [%[refxy]]\n"
-+	    "vrhadd.u8 q2, q2, q3\n"
-+	    /* XXX: three cycles stall */
-+	    "vrhadd.u8 q0, q0, q2\n"
-+	    /* XXX: three cycles stall */
-+	    "vst1.u8 {q0}, [%[dest]]\n"
-+	    :
-+	    : [dest]"r"(dest), [ref]"r"(ref), [refx]"r"(ref + 1),
-+		       [refy]"r"(ref + stride), [refxy]"r"(ref + stride + 1)
-+	    : "memory", "q0", "q1", "q2", "q3");
-+	ref += stride;
-+	dest += stride;
-+    } while (--height);
-+}
-+
-+static void MC_put_xy_8_neon (uint8_t * dest, const uint8_t * ref,
-+			      const int stride, int height)
-+{
-+    do {
-+	asm volatile (
-+	    "vld1.u8 {d0}, [%[ref]]\n"
-+	    "vld1.u8 {d1}, [%[refx]]\n"
-+	    "vrhadd.u8 d0, d0, d1\n"
-+	    "vld1.u8 {d2}, [%[refy]]\n"
-+	    "vld1.u8 {d3}, [%[refxy]]\n"
-+	    "vrhadd.u8 d2, d2, d3\n"
-+	    /* XXX: three cycles stall */
-+	    "vrhadd.u8 d0, d0, d2\n"
-+	    /* XXX: three cycles stall */
-+	    "vst1.u8 {d0}, [%[dest]]\n"
-+	    :
-+	    : [dest]"r"(dest), [ref]"r"(ref), [refx]"r"(ref + 1),
-+		       [refy]"r"(ref + stride), [refxy]"r"(ref + stride + 1)
-+	    : "memory", "q0", "q1");
-+	ref += stride;
-+	dest += stride;
-+    } while (--height);
-+}
-+
-+static void MC_avg_xy_16_neon (uint8_t * dest, const uint8_t * ref,
-+			       const int stride, int height)
-+{
-+    do {
-+ 	asm volatile (
-+	    "vld1.u8 {q0}, [%[ref]]\n"
-+	    "vld1.u8 {q1}, [%[refx]]\n"
-+	    "vrhadd.u8 q0, q0, q1\n"
-+	    "vld1.u8 {q2}, [%[refy]]\n"
-+	    "vld1.u8 {q3}, [%[refxy]]\n"
-+	    "vrhadd.u8 q2, q2, q3\n"
-+	    "vld1.u8 {q4}, [%[dest]]\n"
-+	    /* XXX: one cycle stall */
-+	    "vrhadd.u8 q0, q0, q2\n"
-+	    /* XXX: three cycles stall */
-+	    "vrhadd.u8 q0, q4, q0\n"
-+	    "vst1.u8 {q0}, [%[dest]]\n"
-+	    :
-+	    : [dest]"r"(dest), [ref]"r"(ref), [refx]"r"(ref + 1),
-+		       [refy]"r"(ref + stride), [refxy]"r"(ref + stride + 1)
-+	    : "memory", "q0", "q1", "q2", "q3", "q4");
-+	ref += stride;
-+	dest += stride;
-+    } while (--height);
-+}
-+
-+static void MC_avg_xy_8_neon (uint8_t * dest, const uint8_t * ref,
-+			      const int stride, int height)
-+{
-+    do {
-+	asm volatile (
-+	    "vld1.u8 {d0}, [%[ref]]\n"
-+	    "vld1.u8 {d1}, [%[refx]]\n"
-+	    "vrhadd.u8 d0, d0, d1\n"
-+	    "vld1.u8 {d2}, [%[refy]]\n"
-+	    "vld1.u8 {d3}, [%[refxy]]\n"
-+	    "vrhadd.u8 d2, d2, d3\n"
-+	    "vld1.u8 {d4}, [%[dest]]\n"
-+	    /* XXX: one cycle stall */
-+	    "vrhadd.u8 d0, d0, d2\n"
-+	    /* XXX: three cycles stall */
-+	    "vrhadd.u8 d0, d4, d0\n"
-+	    "vst1.u8 {d0}, [%[dest]]\n"
-+	    :
-+	    : [dest]"r"(dest), [ref]"r"(ref), [refx]"r"(ref + 1),
-+		       [refy]"r"(ref + stride), [refxy]"r"(ref + stride + 1)
-+	    : "memory", "q0", "q1", "d4");
-+	ref += stride;
-+	dest += stride;
-+    } while (--height);
-+}
-+
-+MPEG2_MC_EXTERN (neon)
-+
-+#endif /* ARCH_ARM */
-
-Modification de propriétés sur libmpeg2/motion_comp_neon.c
-___________________________________________________________________
-Ajouté : svn:eol-style
-   + native
-
-Index: libmpeg2/mpeg2_internal.h
-===================================================================
---- libmpeg2/mpeg2_internal.h	(révision 1193)
-+++ libmpeg2/mpeg2_internal.h	(copie de travail)
-@@ -313,5 +313,6 @@
- extern mpeg2_mc_t mpeg2_mc_alpha;
- extern mpeg2_mc_t mpeg2_mc_vis;
- extern mpeg2_mc_t mpeg2_mc_arm;
-+extern mpeg2_mc_t mpeg2_mc_neon;
- 
- #endif /* LIBMPEG2_MPEG2_INTERNAL_H */
-Index: libmpeg2/motion_comp.c
-===================================================================
---- libmpeg2/motion_comp.c	(révision 1193)
-+++ libmpeg2/motion_comp.c	(copie de travail)
-@@ -58,6 +58,11 @@
-     else
- #endif
- #ifdef ARCH_ARM
-+#ifdef ARCH_ARM
-+    if (accel & MPEG2_ACCEL_ARM)
-+        mpeg2_mc = mpeg2_mc_neon;
-+    else
-+#endif
-     if (accel & MPEG2_ACCEL_ARM) {
- 	mpeg2_mc = mpeg2_mc_arm;
-     } else
-Index: libmpeg2/Makefile.am
-===================================================================
---- libmpeg2/Makefile.am	(révision 1193)
-+++ libmpeg2/Makefile.am	(copie de travail)
-@@ -14,7 +14,7 @@
- 			  motion_comp_vis.c motion_comp_arm.c \
- 			  cpu_accel.c cpu_state.c
- if ARCH_ARM
--libmpeg2arch_la_SOURCES += motion_comp_arm_s.S
-+libmpeg2arch_la_SOURCES += motion_comp_arm_s.S motion_comp_neon.c
- endif
- libmpeg2arch_la_CFLAGS = $(OPT_CFLAGS) $(ARCH_OPT_CFLAGS) $(LIBMPEG2_CFLAGS)
- 
-Index: configure.ac
-===================================================================
---- configure.ac	(révision 1193)
-+++ configure.ac	(copie de travail)
-@@ -103,7 +103,14 @@
- 	AC_DEFINE([ARCH_ALPHA],,[alpha architecture]);;
-     arm*)
- 	arm_conditional=:
--	AC_DEFINE([ARCH_ARM],,[ARM architecture]);;
-+	AC_DEFINE([ARCH_ARM],,[ARM architecture])
-+        AC_MSG_CHECKING([if inline ARM Advanced SIMD assembly is supported])
-+        AC_TRY_COMPILE([],
-+           [asm ("vqmovun.s64 d0, q1":::"d0");],
-+           [AC_DEFINE([ARCH_ARM_NEON],, [ARM Advanced SIMD assembly])
-+            AC_MSG_RESULT(yes)],
-+           [AC_MSG_RESULT(no)])
-+        ;;
-     esac
- elif test x"$CC" = x"tendracc"; then
-     dnl TenDRA portability checking compiler
diff --git a/tools/depends/target/libmpeg2/03-config-fix.patch b/tools/depends/target/libmpeg2/03-config-fix.patch
deleted file mode 100644
index 98f766e..0000000
--- a/tools/depends/target/libmpeg2/03-config-fix.patch
+++ /dev/null
@@ -1,208 +0,0 @@
---- a/libmpeg2/Makefile.in	2011-01-29 10:17:27.000000000 +0100
-+++ b/libmpeg2/Makefile.in	2011-01-29 10:28:26.000000000 +0100
-@@ -1,8 +1,8 @@
--# Makefile.in generated by automake 1.10.1 from Makefile.am.
-+# Makefile.in generated by automake 1.10 from Makefile.am.
- # @configure_input@
- 
- # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
--# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
-+# 2003, 2004, 2005, 2006  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.
-@@ -33,14 +33,17 @@
- POST_UNINSTALL = :
- build_triplet = @build@
- host_triplet = @host@
-- at ARCH_ARM_TRUE@am__append_1 = motion_comp_arm_s.S
-+ at ARCH_ARM_TRUE@am__append_1 = motion_comp_arm_s.S motion_comp_neon.c
- subdir = libmpeg2
- DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- 	$(srcdir)/libmpeg2.pc.in
- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
- am__aclocal_m4_deps = $(top_srcdir)/m4/cflags.m4 \
- 	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/keywords.m4 \
--	$(top_srcdir)/m4/nonpic.m4 $(top_srcdir)/configure.ac
-+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nonpic.m4 \
-+	$(top_srcdir)/configure.ac
- am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- 	$(ACLOCAL_M4)
- mkinstalldirs = $(install_sh) -d
-@@ -66,8 +69,9 @@
- am__libmpeg2arch_la_SOURCES_DIST = motion_comp_mmx.c idct_mmx.c \
- 	motion_comp_altivec.c idct_altivec.c motion_comp_alpha.c \
- 	idct_alpha.c motion_comp_vis.c motion_comp_arm.c cpu_accel.c \
--	cpu_state.c motion_comp_arm_s.S
-- at ARCH_ARM_TRUE@am__objects_1 = motion_comp_arm_s.lo
-+	cpu_state.c motion_comp_arm_s.S motion_comp_neon.c
-+ at ARCH_ARM_TRUE@am__objects_1 = motion_comp_arm_s.lo \
-+ at ARCH_ARM_TRUE@	libmpeg2arch_la-motion_comp_neon.lo
- am_libmpeg2arch_la_OBJECTS = libmpeg2arch_la-motion_comp_mmx.lo \
- 	libmpeg2arch_la-idct_mmx.lo \
- 	libmpeg2arch_la-motion_comp_altivec.lo \
-@@ -82,7 +86,7 @@
- libmpeg2arch_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libmpeg2arch_la_CFLAGS) \
- 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
--DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)/include
-+DEFAULT_INCLUDES = -I. -I$(top_builddir)/include at am__isrc@
- depcomp = $(SHELL) $(top_srcdir)/.auto/depcomp
- am__depfiles_maybe = depfiles
- CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-@@ -135,29 +139,25 @@
- CFLAGS = @CFLAGS@
- CPP = @CPP@
- CPPFLAGS = @CPPFLAGS@
--CXX = @CXX@
--CXXCPP = @CXXCPP@
--CXXDEPMODE = @CXXDEPMODE@
--CXXFLAGS = @CXXFLAGS@
- CYGPATH_W = @CYGPATH_W@
- DEFS = @DEFS@
- DEPDIR = @DEPDIR@
- DLLTOOL = @DLLTOOL@
- DSYMUTIL = @DSYMUTIL@
--ECHO = @ECHO@
-+DUMPBIN = @DUMPBIN@
- ECHO_C = @ECHO_C@
- ECHO_N = @ECHO_N@
- ECHO_T = @ECHO_T@
- EGREP = @EGREP@
- EXEEXT = @EXEEXT@
--F77 = @F77@
--FFLAGS = @FFLAGS@
-+FGREP = @FGREP@
- GREP = @GREP@
- INSTALL = @INSTALL@
- INSTALL_DATA = @INSTALL_DATA@
- INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-+LD = @LD@
- LDFLAGS = @LDFLAGS@
- LIBMPEG2_CFLAGS = @LIBMPEG2_CFLAGS@
- LIBOBJS = @LIBOBJS@
-@@ -165,16 +165,20 @@
- LIBTOOL = @LIBTOOL@
- LIBVO_CFLAGS = @LIBVO_CFLAGS@
- LIBVO_LIBS = @LIBVO_LIBS@
-+LIPO = @LIPO@
- LN_S = @LN_S@
- LTLIBOBJS = @LTLIBOBJS@
- MAINT = @MAINT@
- MAKEINFO = @MAKEINFO@
- MKDIR_P = @MKDIR_P@
- MPEG2DEC_CFLAGS = @MPEG2DEC_CFLAGS@
-+NM = @NM@
- NMEDIT = @NMEDIT@
- OBJDUMP = @OBJDUMP@
- OBJEXT = @OBJEXT@
- OPT_CFLAGS = @OPT_CFLAGS@
-+OTOOL = @OTOOL@
-+OTOOL64 = @OTOOL64@
- PACKAGE = @PACKAGE@
- PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
- PACKAGE_NAME = @PACKAGE_NAME@
-@@ -199,8 +203,7 @@
- abs_top_builddir = @abs_top_builddir@
- abs_top_srcdir = @abs_top_srcdir@
- ac_ct_CC = @ac_ct_CC@
--ac_ct_CXX = @ac_ct_CXX@
--ac_ct_F77 = @ac_ct_F77@
-+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
- am__include = @am__include@
- am__leading_dot = @am__leading_dot@
- am__quote = @am__quote@
-@@ -231,6 +234,7 @@
- libexecdir = @libexecdir@
- localedir = @localedir@
- localstatedir = @localstatedir@
-+lt_ECHO = @lt_ECHO@
- mandir = @mandir@
- mkdir_p = @mkdir_p@
- oldincludedir = @oldincludedir@
-@@ -301,8 +305,8 @@
- 	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- 	  if test -f $$p; then \
- 	    f=$(am__strip_dir) \
--	    echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
--	    $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
-+	    echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
-+	    $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
- 	  else :; fi; \
- 	done
- 
-@@ -310,8 +314,8 @@
- 	@$(NORMAL_UNINSTALL)
- 	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- 	  p=$(am__strip_dir) \
--	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
--	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
-+	  echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
-+	  $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
- 	done
- 
- clean-libLTLIBRARIES:
-@@ -355,6 +359,7 @@
- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmpeg2arch_la-motion_comp_altivec.Plo at am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmpeg2arch_la-motion_comp_arm.Plo at am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmpeg2arch_la-motion_comp_mmx.Plo at am__quote@
-+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmpeg2arch_la-motion_comp_neon.Plo at am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmpeg2arch_la-motion_comp_vis.Plo at am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/motion_comp.Plo at am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/motion_comp_arm_s.Plo at am__quote@
-@@ -472,6 +477,13 @@
- @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- @am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmpeg2arch_la_CFLAGS) $(CFLAGS) -c -o libmpeg2arch_la-cpu_state.lo `test -f 'cpu_state.c' || echo '$(srcdir)/'`cpu_state.c
- 
-+libmpeg2arch_la-motion_comp_neon.lo: motion_comp_neon.c
-+ at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmpeg2arch_la_CFLAGS) $(CFLAGS) -MT libmpeg2arch_la-motion_comp_neon.lo -MD -MP -MF $(DEPDIR)/libmpeg2arch_la-motion_comp_neon.Tpo -c -o libmpeg2arch_la-motion_comp_neon.lo `test -f 'motion_comp_neon.c' || echo '$(srcdir)/'`motion_comp_neon.c
-+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libmpeg2arch_la-motion_comp_neon.Tpo $(DEPDIR)/libmpeg2arch_la-motion_comp_neon.Plo
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='motion_comp_neon.c' object='libmpeg2arch_la-motion_comp_neon.lo' libtool=yes @AMDEPBACKSLASH@
-+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmpeg2arch_la_CFLAGS) $(CFLAGS) -c -o libmpeg2arch_la-motion_comp_neon.lo `test -f 'motion_comp_neon.c' || echo '$(srcdir)/'`motion_comp_neon.c
-+
- mostlyclean-libtool:
- 	-rm -f *.lo
- 
-@@ -570,8 +582,8 @@
- 	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; }; }'`; \
-+	  $(AWK) '    { files[$$0] = 1; } \
-+	       END { for (i in files) print i; }'`; \
- 	mkid -fID $$unique
- tags: TAGS
- 
-@@ -596,8 +608,8 @@
- 	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; }; }'`; \
-+	  $(AWK) '    { files[$$0] = 1; } \
-+	       END { 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) \
-@@ -607,12 +619,13 @@
- CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
- 		$(TAGS_FILES) $(LISP)
- 	tags=; \
-+	here=`pwd`; \
- 	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; }; }'`; \
-+	  $(AWK) '    { files[$$0] = 1; } \
-+	       END { for (i in files) print i; }'`; \
- 	test -z "$(CTAGS_ARGS)$$tags$$unique" \
- 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- 	     $$tags $$unique
diff --git a/tools/depends/target/libmpeg2/04-clang-fix.patch b/tools/depends/target/libmpeg2/04-clang-fix.patch
deleted file mode 100644
index e55de5b..0000000
--- a/tools/depends/target/libmpeg2/04-clang-fix.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- /configure.ac	2013-10-09 22:39:08.000000000 +0400
-+++ /configure.ac	2013-06-24 20:34:58.000000000 +0400
-@@ -149,7 +149,6 @@ AC_CHECK_GENERATE_INTTYPES([include])
- 
- dnl Checks for typedefs, structures, and compiler characteristics.
- AC_C_CONST
--AC_C_ALWAYS_INLINE
- AC_C_RESTRICT
- AC_C_BUILTIN_EXPECT
- AC_C_BIGENDIAN
diff --git a/tools/depends/target/libmpeg2/05-upstream-motion_comp_arm_s.S-is-not-PIC-enough.patch b/tools/depends/target/libmpeg2/05-upstream-motion_comp_arm_s.S-is-not-PIC-enough.patch
deleted file mode 100644
index aa28ed8..0000000
--- a/tools/depends/target/libmpeg2/05-upstream-motion_comp_arm_s.S-is-not-PIC-enough.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-Index: libmpeg2/motion_comp_arm_s.S
-===================================================================
---- libmpeg2/motion_comp_arm_s.S	(revision 1205)
-+++ libmpeg2/motion_comp_arm_s.S	(working copy)
-@@ -29,9 +29,13 @@
- 	pld [r1]
-         stmfd sp!, {r4-r11, lr} @ R14 is also called LR
- 	and r4, r1, #3
--	adr r5, MC_put_o_16_arm_align_jt
--	add r5, r5, r4, lsl #2
--	ldr pc, [r5]
-+	ldrb r4, [pc, r4]
-+	add pc, pc, r4, lsl #2
-+	.byte (MC_put_o_16_arm_align0 - 0f)>>2
-+	.byte (MC_put_o_16_arm_align1 - 0f)>>2
-+	.byte (MC_put_o_16_arm_align2 - 0f)>>2
-+	.byte (MC_put_o_16_arm_align3 - 0f)>>2
-+0:
- 
- MC_put_o_16_arm_align0:
- 	ldmia r1, {r4-r7}
-@@ -75,11 +79,6 @@
- 1:	PROC(24)
- 	bne 1b
-         ldmfd sp!, {r4-r11, pc} @@ update PC with LR content.
--MC_put_o_16_arm_align_jt:
--	.word MC_put_o_16_arm_align0
--	.word MC_put_o_16_arm_align1
--	.word MC_put_o_16_arm_align2
--	.word MC_put_o_16_arm_align3
- 
- @ ----------------------------------------------------------------
- 	.align
-@@ -89,9 +88,14 @@
- 	pld [r1]
-         stmfd sp!, {r4-r10, lr} @ R14 is also called LR
- 	and r4, r1, #3
--	adr r5, MC_put_o_8_arm_align_jt
--	add r5, r5, r4, lsl #2
--	ldr pc, [r5]
-+	ldrb r4, [pc, r4]
-+	add pc, pc, r4, lsl #2
-+	.byte (MC_put_o_8_arm_align0 - 0f)>>2
-+	.byte (MC_put_o_8_arm_align1 - 0f)>>2
-+	.byte (MC_put_o_8_arm_align2 - 0f)>>2
-+	.byte (MC_put_o_8_arm_align3 - 0f)>>2
-+0:
-+
- MC_put_o_8_arm_align0:
- 	ldmia r1, {r4-r5}
- 	add r1, r1, r2
-@@ -133,12 +137,6 @@
- 	bne 1b
-         ldmfd sp!, {r4-r10, pc} @@ update PC with LR content.
- 
--MC_put_o_8_arm_align_jt:
--	.word MC_put_o_8_arm_align0
--	.word MC_put_o_8_arm_align1
--	.word MC_put_o_8_arm_align2
--	.word MC_put_o_8_arm_align3
--
- @ ----------------------------------------------------------------
- .macro	AVG_PW rW1, rW2
- 	mov \rW2, \rW2, lsl #24
-@@ -157,12 +155,17 @@
- 	@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
- 	pld [r1]
-         stmfd sp!, {r4-r11,lr} @ R14 is also called LR
-+	ldr r11, 0f
- 	and r4, r1, #3
--	adr r5, MC_put_x_16_arm_align_jt
--	ldr r11, [r5]
- 	mvn r12, r11
--	add r5, r5, r4, lsl #2
--	ldr pc, [r5, #4]
-+	ldrb r4, [pc, r4]
-+	add pc, pc, r4, lsl #2
-+	.byte (MC_put_x_16_arm_align0 - 0f)>>2
-+	.byte (MC_put_x_16_arm_align1 - 0f)>>2
-+	.byte (MC_put_x_16_arm_align2 - 0f)>>2
-+	.byte (MC_put_x_16_arm_align3 - 0f)>>2
-+0:
-+	  .word 0x01010101
- 
- .macro	ADJ_ALIGN_QW shift, R0, R1, R2, R3, R4
- 	mov \R0, \R0, lsr #(\shift)
-@@ -235,12 +238,6 @@
- 	add r0, r0, r2
- 	bne 1b
-         ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.
--MC_put_x_16_arm_align_jt:
--	.word 0x01010101
--	.word MC_put_x_16_arm_align0
--	.word MC_put_x_16_arm_align1
--	.word MC_put_x_16_arm_align2
--	.word MC_put_x_16_arm_align3
- 
- @ ----------------------------------------------------------------
- 	.align
-@@ -249,12 +246,17 @@
- 	@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
- 	pld [r1]
-         stmfd sp!, {r4-r11,lr} @ R14 is also called LR
-+	ldr r11, 0f
- 	and r4, r1, #3
--	adr r5, MC_put_x_8_arm_align_jt
--	ldr r11, [r5]
- 	mvn r12, r11
--	add r5, r5, r4, lsl #2
--	ldr pc, [r5, #4]
-+	ldrb r4, [pc, r4]
-+	add pc, pc, r4, lsl #2
-+	.byte (MC_put_x_8_arm_align0 - 0f)>>2
-+	.byte (MC_put_x_8_arm_align1 - 0f)>>2
-+	.byte (MC_put_x_8_arm_align2 - 0f)>>2
-+	.byte (MC_put_x_8_arm_align3 - 0f)>>2
-+0:
-+	  .word 0x01010101
- 
- .macro	ADJ_ALIGN_DW shift, R0, R1, R2
- 	mov \R0, \R0, lsr #(\shift)
-@@ -315,9 +317,3 @@
- 	add r0, r0, r2
- 	bne 1b
-         ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.
--MC_put_x_8_arm_align_jt:
--	.word 0x01010101
--	.word MC_put_x_8_arm_align0
--	.word MC_put_x_8_arm_align1
--	.word MC_put_x_8_arm_align2
--	.word MC_put_x_8_arm_align3
-
diff --git a/tools/depends/target/libmpeg2/06-motion_comp_arm_s.S-even_more_pic.patch b/tools/depends/target/libmpeg2/06-motion_comp_arm_s.S-even_more_pic.patch
deleted file mode 100644
index 5b71828..0000000
--- a/tools/depends/target/libmpeg2/06-motion_comp_arm_s.S-even_more_pic.patch
+++ /dev/null
@@ -1,98 +0,0 @@
---- libmpeg2/motion_comp_arm_s.S	2014-09-24 23:27:41.000000000 +0200
-+++ libmpeg2/motion_comp_arm_s.S	2014-09-24 23:01:06.000000000 +0200
-@@ -22,7 +22,7 @@
- 	.text
- 
- @ ----------------------------------------------------------------
--	.align
-+	.align 2
- #if defined(__APPLE__) && defined(__arm__)
- 	.global _MC_put_o_16_arm
- _MC_put_o_16_arm:
-@@ -36,10 +36,10 @@
- 	and r4, r1, #3
- 	ldrb r4, [pc, r4]
- 	add pc, pc, r4, lsl #2
--	.byte (MC_put_o_16_arm_align0 - 0f)>>2
--	.byte (MC_put_o_16_arm_align1 - 0f)>>2
--	.byte (MC_put_o_16_arm_align2 - 0f)>>2
--	.byte (MC_put_o_16_arm_align3 - 0f)>>2
-+	.byte (MC_put_o_16_arm_align0 - MC_put_o_16_arm_align0)>>2
-+	.byte (MC_put_o_16_arm_align1 - MC_put_o_16_arm_align1)>>2
-+	.byte (MC_put_o_16_arm_align2 - MC_put_o_16_arm_align2)>>2
-+	.byte (MC_put_o_16_arm_align3 - MC_put_o_16_arm_align3)>>2
- 0:
- 
- MC_put_o_16_arm_align0:
-@@ -86,7 +86,7 @@
-         ldmfd sp!, {r4-r11, pc} @@ update PC with LR content.
- 
- @ ----------------------------------------------------------------
--	.align
-+	.align 2
- #if defined(__APPLE__) && defined(__arm__)
- 	.global _MC_put_o_8_arm
- _MC_put_o_8_arm:
-@@ -100,10 +100,10 @@
- 	and r4, r1, #3
- 	ldrb r4, [pc, r4]
- 	add pc, pc, r4, lsl #2
--	.byte (MC_put_o_8_arm_align0 - 0f)>>2
--	.byte (MC_put_o_8_arm_align1 - 0f)>>2
--	.byte (MC_put_o_8_arm_align2 - 0f)>>2
--	.byte (MC_put_o_8_arm_align3 - 0f)>>2
-+	.byte (MC_put_o_8_arm_align0 - MC_put_o_8_arm_align0)>>2
-+	.byte (MC_put_o_8_arm_align1 - MC_put_o_8_arm_align1)>>2
-+	.byte (MC_put_o_8_arm_align2 - MC_put_o_8_arm_align2)>>2
-+	.byte (MC_put_o_8_arm_align3 - MC_put_o_8_arm_align3)>>2
- 0:
- 
- MC_put_o_8_arm_align0:
-@@ -159,7 +159,7 @@
- 	add \rW2, \rW2, r10
- .endm
- 
--	.align
-+	.align 2
- #if defined(__APPLE__) && defined(__arm__)
- 	.global _MC_put_x_16_arm
- _MC_put_x_16_arm:
-@@ -175,10 +175,10 @@
- 	mvn r12, r11
- 	ldrb r4, [pc, r4]
- 	add pc, pc, r4, lsl #2
--	.byte (MC_put_x_16_arm_align0 - 0f)>>2
--	.byte (MC_put_x_16_arm_align1 - 0f)>>2
--	.byte (MC_put_x_16_arm_align2 - 0f)>>2
--	.byte (MC_put_x_16_arm_align3 - 0f)>>2
-+	.byte (MC_put_x_16_arm_align0 - MC_put_x_16_arm_align0)>>2
-+	.byte (MC_put_x_16_arm_align1 - MC_put_x_16_arm_align1)>>2
-+	.byte (MC_put_x_16_arm_align2 - MC_put_x_16_arm_align2)>>2
-+	.byte (MC_put_x_16_arm_align3 - MC_put_x_16_arm_align3)>>2
- 0:
- 	  .word 0x01010101
- 
-@@ -255,7 +255,7 @@
-         ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.
- 
- @ ----------------------------------------------------------------
--	.align
-+	.align 2
- #if defined(__APPLE__) && defined(__arm__)
- 	.global _MC_put_x_8_arm
- _MC_put_x_8_arm:
-@@ -271,10 +271,10 @@
- 	mvn r12, r11
- 	ldrb r4, [pc, r4]
- 	add pc, pc, r4, lsl #2
--	.byte (MC_put_x_8_arm_align0 - 0f)>>2
--	.byte (MC_put_x_8_arm_align1 - 0f)>>2
--	.byte (MC_put_x_8_arm_align2 - 0f)>>2
--	.byte (MC_put_x_8_arm_align3 - 0f)>>2
-+	.byte (MC_put_x_8_arm_align0 - MC_put_x_8_arm_align0)>>2
-+	.byte (MC_put_x_8_arm_align1 - MC_put_x_8_arm_align1)>>2
-+	.byte (MC_put_x_8_arm_align2 - MC_put_x_8_arm_align2)>>2
-+	.byte (MC_put_x_8_arm_align3 - MC_put_x_8_arm_align3)>>2
- 0:
- 	  .word 0x01010101
- 
diff --git a/tools/depends/target/libmpeg2/Makefile b/tools/depends/target/libmpeg2/Makefile
deleted file mode 100644
index 0f4fe5b..0000000
--- a/tools/depends/target/libmpeg2/Makefile
+++ /dev/null
@@ -1,72 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libmpeg2
-VERSION=0.5.1
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .auto/ ; \
-          ./configure --prefix=$(PREFIX) --disable-sdl
-
-LIBDYLIB=$(PLATFORM)/$(LIBNAME)/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-ifeq ($(OS),ios)
-	cd $(PLATFORM); patch -p1 < ../01-libmpeg2-add-asm-leading-underscores.patch
-	cd $(PLATFORM); patch -p0 < ../02-neon.patch
-	cd $(PLATFORM); patch -p1 < ../03-config-fix.patch
-endif
-	cd $(PLATFORM); patch -p1 < ../04-clang-fix.patch
-	cd $(PLATFORM); patch -p0 < ../05-upstream-motion_comp_arm_s.S-is-not-PIC-enough.patch
-ifeq ($(OS),ios)
-	case $(XCODE_VERSION) in \
-	4.* | 4.*.*) \
-	;;\
-	*) \
-	cd $(PLATFORM); patch -p0 < ../06-motion_comp_arm_s.S-even_more_pic.patch \
-	;;\
-	esac
-endif
-	cd $(PLATFORM); $(AUTORECONF) -vif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/libmpeg2.la $(PREFIX)/lib/libmpeg2.so $(PREFIX)/lib/libmpeg2.so.0
-	mv -f $(PREFIX)/lib/libmpeg2.so.0.1.0 $(PREFIX)/lib/libxbmpeg2.so
-	ln -sf $(PREFIX)/lib/libxbmpeg2.so $(PREFIX)/lib/libmpeg2.so
-	$(RPL) -e "libmpeg2.so.0" "libxbmpeg2.so" $(PREFIX)/lib/libxbmpeg2.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libxbmpeg2.so | grep ibrary
-	#
-	rm -f $(PREFIX)/lib/libmpeg2convert.la $(PREFIX)/lib/libmpeg2convert.so $(PREFIX)/lib/libmpeg2convert.so.0
-	mv -f $(PREFIX)/lib/libmpeg2convert.so.0.0.0 $(PREFIX)/lib/libxbmpeg2convert.so
-	ln -sf $(PREFIX)/lib/libxbmpeg2convert.so $(PREFIX)/lib/libmpeg2convert.so
-	$(RPL) -e "libmpeg2convert.so.0" "libxbmpeg2convert.so" $(PREFIX)/lib/libxbmpeg2convert.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libxbmpeg2convert.so | grep ibrary
-	#
-endif
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libnfs/Makefile b/tools/depends/target/libnfs/Makefile
deleted file mode 100644
index e39d00c..0000000
--- a/tools/depends/target/libnfs/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libnfs
-VERSION=1.6.0
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX)
-
-LIBDYLIB=$(PLATFORM)/lib/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	-rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); ./bootstrap
-	cd $(PLATFORM); patch -p0 < ../timeval.patch
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/libnfs.la $(PREFIX)/lib/libnfs.so $(PREFIX)/lib/libnfs.so.1
-	mv -f $(PREFIX)/lib/libnfs.so.1.0.6 $(PREFIX)/lib/libnfs.so
-	$(RPL) -e "libnfs.so.1" "libnfs.so\x00\x00" $(PREFIX)/lib/libnfs.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libnfs.so | grep ibrary
-endif
-	touch $@
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -r .installed-$(PLATFORM)
-	rm -rf $(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/libnfs/timeval.patch b/tools/depends/target/libnfs/timeval.patch
deleted file mode 100644
index 7f453d6..0000000
--- a/tools/depends/target/libnfs/timeval.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- include/nfsc/libnfs.h.orig	2013-05-28 21:59:32.000000000 +0200
-+++ include/nfsc/libnfs.h	2013-05-28 21:59:56.000000000 +0200
-@@ -18,12 +18,7 @@
-  * This is the highlevel interface to access NFS resources using a posix-like interface
-  */
- #include <stdint.h>
--#if defined(ANDROID)
- #include <sys/time.h>
--#endif
--#if defined(AROS)
--#include <sys/time.h>
--#endif
- 
- struct nfs_context;
- struct rpc_context;
diff --git a/tools/depends/target/libogg/Makefile b/tools/depends/target/libogg/Makefile
deleted file mode 100644
index e7d8867..0000000
--- a/tools/depends/target/libogg/Makefile
+++ /dev/null
@@ -1,48 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libogg
-VERSION=1.1.4
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX)
-
-LIBDYLIB=$(PLATFORM)/src/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/libogg.la $(PREFIX)/lib/libogg.so $(PREFIX)/lib/libogg.so.0
-	mv -f $(PREFIX)/lib/libogg.so.0.6.0 $(PREFIX)/lib/libxbogg.so
-	ln -sf $(PREFIX)/lib/libxbogg.so $(PREFIX)/lib/libogg.so
-	$(RPL) -e "libogg.so.0" "libxbogg.so" $(PREFIX)/lib/libxbogg.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libxbogg.so | grep ibrary
-endif
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libomxil-bellagio/Makefile b/tools/depends/target/libomxil-bellagio/Makefile
deleted file mode 100644
index 7c64058..0000000
--- a/tools/depends/target/libomxil-bellagio/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include android-fix-build.patch Makefile oscl/*
-
-# lib name, version
-LIBNAME=libomxil-bellagio
-VERSION=0.9.3
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(LIBNAME)-$(VERSION).tar.gz
-# configuration settings
-CFLAGS+=-I$(CURDIR)/oscl
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --disable-shared \
-           --enable-android
-
-LIBDYLIB=$(PLATFORM)/src/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) "$(BASE_URL)/$(ARCHIVE)"
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p1 < ../android-fix-build.patch
-	cd $(PLATFORM); autoreconf -vif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -j 1 -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/libomxil-bellagio/android-fix-build.patch b/tools/depends/target/libomxil-bellagio/android-fix-build.patch
deleted file mode 100644
index a6e61db..0000000
--- a/tools/depends/target/libomxil-bellagio/android-fix-build.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -ruN armeabi-v7a/configure.ac armeabi-v7a-good/configure.ac
---- armeabi-v7a/configure.ac	2011-05-20 01:44:18.000000000 -0400
-+++ armeabi-v7a-good/configure.ac	2012-06-19 01:58:45.483524179 -0400
-@@ -5,7 +5,7 @@
- AC_PREREQ([2.59])
- 
- AC_CONFIG_HEADERS([config.h])
--CFLAGS="${CFLAGS} -Wall -Werror"
-+CFLAGS="${CFLAGS} -Wall"
- 
- ################################################################################
- # Set the shared versioning info, according to section 6.3 of the libtool info #
-@@ -149,8 +149,6 @@
- # Check for libraries                                                          #
- ################################################################################
- 
--AC_CHECK_LIB([pthread], [pthread_create])
--
- # Check for libdl
- AC_SEARCH_LIBS([dlopen], [dl], [], [AC_MSG_ERROR([libdl is required])])
- 
-diff -ruN armeabi-v7a/src/Makefile.am armeabi-v7a-good/src/Makefile.am
---- armeabi-v7a/src/Makefile.am	2011-05-20 01:28:17.000000000 -0400
-+++ armeabi-v7a-good/src/Makefile.am	2012-06-19 01:59:23.603524155 -0400
-@@ -27,7 +27,7 @@
- 
- libomxil_bellagio_la_CFLAGS = -I$(top_srcdir)/include -I$(srcdir)/base -I$(srcdir)/core_extensions \
-                               -DINSTALL_PATH_STR=\"$(plugindir)\" -DOMX_LOADERS_DIRNAME=\"$(libdir)/omxloaders\/\"
--libomxil_bellagio_la_LIBADD = base/libomxbase.la core_extensions/libomxcoreext.la -lpthread
-+libomxil_bellagio_la_LIBADD = base/libomxbase.la core_extensions/libomxcoreext.la
- libomxil_bellagio_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
- 
- include_extradir = $(includedir)/bellagio
diff --git a/tools/depends/target/libomxil-bellagio/oscl/oscl_base_macros.h b/tools/depends/target/libomxil-bellagio/oscl/oscl_base_macros.h
deleted file mode 100644
index 30fc868..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/oscl_base_macros.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2010 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//               O S C L B A S E _ M A C R O S
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-/*! \addtogroup osclbase OSCL Base
- *
- * @{
- */
-
-
-/*! \file oscl_base_macros.h
-    \brief This file defines common macros and constants for basic compilation support.
-*/
-
-#ifndef OSCL_BASE_MACROS_H_INCLUDED
-#define OSCL_BASE_MACROS_H_INCLUDED
-
-// Pick up any platform-specific definitions for the common
-// macros.
-#include "osclconfig.h"
-
-// Define default values for the common macros
-#ifndef OSCL_EXPORT_REF
-#define OSCL_EXPORT_REF
-#endif
-
-#ifndef OSCL_IMPORT_REF
-#define OSCL_IMPORT_REF
-#endif
-
-//! The NULL_TERM_CHAR is used to terminate c-style strings.
-//static const char NULL_TERM_CHAR = '\0';
-#ifndef NULL_TERM_CHAR
-#define NULL_TERM_CHAR '\0'
-#endif
-
-//! if the NULL macro isn't already defined, then define it as zero.
-#ifndef NULL
-#define NULL (0)
-#endif
-
-#if (OSCL_DISABLE_INLINES)
-#define OSCL_INLINE
-#define OSCL_COND_EXPORT_REF OSCL_EXPORT_REF
-#define OSCL_COND_IMPORT_REF OSCL_IMPORT_REF
-#else
-#define OSCL_INLINE inline
-#define OSCL_COND_EXPORT_REF
-#define OSCL_COND_IMPORT_REF
-#endif
-
-//this macro may not be defined in all configurations
-//so a default is defined here.
-
-//! Type casting macros
-/*!
-  \param type   Destination type of cast
-  \param exp    Expression to cast
-*/
-
-#define OSCL_CONST_CAST(type,exp)           ((type)(exp))
-#define OSCL_STATIC_CAST(type,exp)          ((type)(exp))
-#define OSCL_REINTERPRET_CAST(type,exp)     ((type)(exp))
-#define OSCL_DYNAMIC_CAST(type, exp)        ((type)(exp))
-#define OSCL_VIRTUAL_BASE(type)               type
-
-
-/**
- * The following two macros are used to avoid compiler warnings.
- *
- * OSCL_UNUSED_ARG(vbl) is used to "reference" an otherwise unused
- *   parameter or variable, often one which is used only in an
- *   OSCL_ASSERT and thus unreferenced in release mode
- * OSCL_UNUSED_RETURN(val) provides a "return" of a value, in places
- *   which will not actually be executed, such as after an
- *   OSCL_LEAVE or Thread::exit or abort.  The value needs to
- *   be of an appropriate type for the current function, though
- *   zero will usually suffice.  Note that OSCL_UNUSED_RETURN
- *   will not be necessary for 'void' functions, as there is no
- *   requirement for a value-return operation.
- */
-#define OSCL_UNUSED_ARG(vbl) (void)(vbl)
-#define OSCL_UNUSED_RETURN(value) return value
-
-/* The __TFS__ macro is used to optionally expand to "<>" depending on the
- * compiler.  Some compilers require it to indicate that the friend function
- * is a template function as specified in the standard, but others don't
- * like it so it will handled with a macro expansion that depends on the
- * compiler.
- */
-#ifndef __TFS__
-#define __TFS__
-#endif
-
-#define OSCL_MIN(a,b) ((a) < (b) ? (a) : (b))
-#define OSCL_MAX(a,b) ((a) > (b) ? (a) : (b))
-#define OSCL_ABS(a) ((a) > (0) ? (a) : -(a))
-
-// the syntax for explicitly calling the destructor varies on some platforms
-// below is the default syntax as defined in the C++ standard
-#ifndef OSCL_TEMPLATED_DESTRUCTOR_CALL
-#define OSCL_TEMPLATED_DESTRUCTOR_CALL(type,simple_type) type :: ~simple_type ()
-#endif
-
-
-/*
- * The OSCL_UNSIGNED_CONST macro is used to optionally add a suffix to the
- * end of integer constants to identify them as unsigned constants.  It is
- * usually only necessary to do that for very large constants that are too
- * big to fit within the range of a signed integer. Some compilers will issue
- * warnings for that.  The default behavior will be to add no suffix.
- */
-
-#ifndef OSCL_UNSIGNED_CONST
-#define OSCL_UNSIGNED_CONST(x) x
-#endif
-
-/*
- * These macros are used by MTP to avoid byte aligning structures.
- */
-#ifndef OSCL_PACKED_VAR
-#define OSCL_PACKED_VAR     "error"
-#endif
-
-
-/* The following macros enumerate the possible values of the build flag PV_COMPILER */
-
-#define EPV_ARM_GNUC  1 /* for GNU compiler */
-#define EPV_ARM_RVCT  2 /* for RVCT compiler from ARM */
-#define EPV_ARM_MSEVC 3 /* for MS Embedded VC compiler */
-
-/* PV_COMPILER value must be set to build command.
-   In addition, PV_CPU_ARCH_VERSION must be defined to take on an integer value that specifies the version of target
-   ARM architecture. */
-
-
-/*! @} */
-
-#endif  // OSCL_BASE_MACROS_H_INCLUDED
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig.h
deleted file mode 100644
index e664e19..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2010 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//     O S C L C O N F I G   ( P L A T F O R M   C O N F I G   I N F O )
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-/*! \file osclconfig.h
- *  \brief This file contains configuration information for the linux platform
- *
- */
-
-#ifndef OSCLCONFIG_H_INCLUDED
-#define OSCLCONFIG_H_INCLUDED
-
-// system includes for dynamic registry
-#include <dirent.h>
-#include <dlfcn.h>
-
-#define OSCL_HAS_ANDROID_SUPPORT 1
-#define OSCL_HAS_ANDROID_FILE_IO_SUPPORT 1
-
-#define OSCL_EXPORT_REF __attribute__ ((visibility("default")))
-#define OSCL_IMPORT_REF __attribute__ ((visibility("default")))
-
-// include common include for determining sizes from limits.h
-#include "osclconfig_limits_typedefs.h"
-
-//This switch turns off some profiling and debug settings
-#ifndef OSCL_RELEASE_BUILD
-#ifdef NDEBUG
-#define OSCL_RELEASE_BUILD 1
-#else
-#define OSCL_RELEASE_BUILD 0
-#endif
-#endif
-
-#ifndef PVLOGGER_INST_LEVEL
-#if (OSCL_RELEASE_BUILD)
-//Release mode logging - should be kept minimum
-#define PVLOGGER_INST_LEVEL 2
-#else
-//full logging
-#define PVLOGGER_INST_LEVEL 5
-#endif
-#endif
-
-// include common unix definitions
-#include "osclconfig_unix_android.h"
-
-// define the suffix for unsigned constants
-#define OSCL_UNSIGNED_CONST(x) x##u
-
-// override the common definition for
-#undef OSCL_NATIVE_UINT64_TYPE
-#define OSCL_NATIVE_UINT64_TYPE    u_int64_t
-
-// include the definitions for the processor
-#include "osclconfig_ix86.h"
-
-// the syntax for explicitly calling the destructor varies on some platforms
-// below is the default syntax as defined by another ARM project
-#define OSCL_TEMPLATED_DESTRUCTOR_CALL(type,simple_type) ~type ()
-
-
-/* The __TFS__ macro is used to optionally expand to "<>" depending on the
- * compiler.  Some compilers require it to indicate that the friend function
- * is a template function as specified in the standard, but others don't
- * like it so it will handled with a macro expansion that depends on the
- * compiler.
- */
-#define __TFS__ <>
-
-#define OSCL_HAS_PRAGMA_PACK 0
-#define OSCL_HAS_PACKED_STRUCT 1
-#define OSCL_PACKED_VAR(x)  x __attribute__((packed))
-#define OSCL_PACKED_STRUCT_BEGIN
-#define OSCL_PACKED_STRUCT_END  __attribute__((packed))
-
-//set this to 1 to enable OSCL_ASSERT in release builds.
-#define OSCL_ASSERT_ALWAYS 0
-
-
-// check all osclconfig required macros are defined
-#include "osclconfig_check.h"
-
-#endif
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_ansi_memory.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_ansi_memory.h
deleted file mode 100644
index fb53ea1..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_ansi_memory.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//     O S C L C O N F I G _ A N S I _ M E M O R Y
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-/*! \file osclconfig_ansi_memory.h
- *  \brief This file contains common typedefs based on the ANSI C limits.h header
- *
- *  This header file should work for any ANSI C compiler to determine the
- *  proper native C types to use for OSCL integer types.
- */
-
-
-#ifndef OSCLCONFIG_ANSI_MEMORY_H_INCLUDED
-#define OSCLCONFIG_ANSI_MEMORY_H_INCLUDED
-
-#include <memory.h>
-typedef size_t oscl_memsize_t;
-#define OSCL_HAS_ANSI_MEMORY_FUNCS 1
-
-
-#endif
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_check.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_check.h
deleted file mode 100644
index 19d0b63..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_check.h
+++ /dev/null
@@ -1,423 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2010 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-
-#ifndef OSCLCONFIG_CHECK_H_INCLUDED
-#define OSCLCONFIG_CHECK_H_INCLUDED
-
-/*! \addtogroup osclconfig OSCL config
- *
- * @{
- */
-
-/**
-\def Make sure the basic types are defined,
-either in osclconfig_limits_typedefs.h or elsewhere.
-*/
-typedef int8 __int8__check__;
-typedef uint8 __uint8__check__;
-typedef int16 __int16__check__;
-typedef uint16 __uint16__check__;
-typedef int32 __int32__check__;
-typedef uint32 __uint32__check__;
-
-/**
-\def OSCL_ASSERT_ALWAYS macro should be set to 0 or 1.
-When set to 1, OSCL_ASSERT will be compiled in release mode as well
-as debug mode.
-*/
-#ifndef OSCL_ASSERT_ALWAYS
-#error "ERROR: OSCL_ASSERT_ALWAYS has to be defined to either 1 or 0."
-#endif
-
-
-/**
-\def OSCL_DISABLE_INLINES macro should be set to 1 if
-the target compiler supports 'inline' function definitions.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_DISABLE_INLINES
-#error "ERROR: OSCL_DISABLE_INLINES has to be defined to either 1 or 0."
-#endif
-
-/**
-\def OSCL_HAS_ANSI_STDLIB_SUPPORT macro should be set to 1 if
-the target compiler supports ANSI C standard lib functions.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_ANSI_STDLIB_SUPPORT
-#error "ERROR: OSCL_HAS_ANSI_STDLIB_SUPPORT has to be defined to either 1 or 0."
-#endif
-
-/**
-\def OSCL_HAS_ANSI_STDIO_SUPPORT macro should be set to 1 if
-the target compiler supports ANSI C standard I/O functions.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_ANSI_STDIO_SUPPORT
-#error "ERROR: OSCL_HAS_ANSI_STDIO_SUPPORT has to be defined to either 1 or 0."
-#endif
-
-/**
-\def OSCL_HAS_ANSI_STRING_SUPPORT macro should be set to 1 if
-the target compiler supports ANSI C standard string functions.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_ANSI_STRING_SUPPORT
-#error "ERROR: OSCL_HAS_ANSI_STRING_SUPPORT has to be defined to either 1 or 0."
-#endif
-
-/**
-\def OSCL_HAS_UNICODE_SUPPORT macro should be set to 1 if
-the target platform has a native 16-bit (wide) character type.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_UNICODE_SUPPORT
-#error "ERROR: OSCL_HAS_UNICODE_SUPPORT has to be defined to either 1 or 0."
-#endif
-
-/**
-\def _STRLIT macro should be set to an expression to convert
-a constant character string into a string literal type
-appropriate for the platform.
-Otherwise it should be set to 0.
-*/
-#ifndef _STRLIT
-#error "ERROR: _STRLIT has to be defined."
-#endif
-
-/**
-\def _STRLIT_CHAR macro should be set to an expression to convert
-a constant character string into a char string literal type
-appropriate for the platform.
-Otherwise it should be set to 0.
-*/
-#ifndef _STRLIT_CHAR
-#error "ERROR: _STRLIT_CHAR has to be defined."
-#endif
-
-/**
-When OSCL_HAS_UNICODE_SUPPORT==1,
-\def _STRLIT_WCHAR macro should be set to an expression to convert
-a constant character string into a wchar string literal type
-appropriate for the platform.
-Otherwise it should be set to 0.
-*/
-#if (OSCL_HAS_UNICODE_SUPPORT) && !defined(_STRLIT_WCHAR)
-#error "ERROR: _STRLIT_WCHAR has to be defined"
-#endif
-
-/**
-When OSCL_HAS_UNICODE_SUPPORT==1,
-\def OSCL_NATIVE_WCHAR_TYPE macro should be set to
-the native wide character type for the platform.
-Otherwise it should be set to 0.
-*/
-#if (OSCL_HAS_UNICODE_SUPPORT) && !defined(OSCL_NATIVE_WCHAR_TYPE)
-#error "ERROR: OSCL_NATIVE_WCHAR_TYPE has to be defined."
-#endif
-
-/**
-\def OSCL_HAS_MSWIN_SUPPORT macro should be set to 1 if
-the target platform supports the Win32 API.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_MSWIN_SUPPORT
-#error "ERROR: OSCL_HAS_MSWIN_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-\def OSCL_HAS_MSWIN_PARTIAL_SUPPORT macro should be set to 1 if
-the target platform supports the WinMobile API.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_MSWIN_PARTIAL_SUPPORT
-#error "ERROR: OSCL_HAS_MSWIN_PARTIAL_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-\def OSCL_HAS_UNIX_SUPPORT macro should be set to 1 if
-the target platform supports the Unix API.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_UNIX_SUPPORT
-#error "ERROR: OSCL_HAS_UNIX_SUPPORT has to be defined to either 1 or 0."
-#endif
-
-/**
-\def OSCL_HAS_SYMBIAN_SUPPORT macro should be set to 1 if
-the target platform supports the Symbian API.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_SYMBIAN_SUPPORT
-#error "ERROR: OSCL_HAS_SYMBIAN_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-\def OSCL_HAS_ANDROID_SUPPORT macro should be set to 1 if
-the target platform supports the Android API.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_ANDROID_SUPPORT
-#error "ERROR: OSCL_HAS_ANDROID_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-\def OSCL_HAS_IPHONE_SUPPORT macro should be set to 1 if
-the target platform supports the iPhone API.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_IPHONE_SUPPORT
-#error "ERROR: OSCL_HAS_IPHONE_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-\def OSCL_INTEGERS_WORD_ALIGNED macro should be set to 1 if
-the target platform requires integers to be word-aligned in memory.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_INTEGERS_WORD_ALIGNED
-#error "ERROR: OSCL_INTEGERS_WORD_ALIGNED has to be defined to either 1 or 0."
-#endif
-
-/**
-\def OSCL_BYTE_ORDER_BIG_ENDIAN macro should be set to 1 if
-the target platform uses big-endian byte order in memory.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_BYTE_ORDER_BIG_ENDIAN
-#error "ERROR: OSCL_BYTE_ORDER_BIG_ENDIAN has to be defined to either 1 or 0."
-#endif
-
-/**
-\def OSCL_BYTE_ORDER_LITTLE_ENDIAN macro should be set to 1 if
-the target platform uses little-endian byte order in memory.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_BYTE_ORDER_LITTLE_ENDIAN
-#error "ERROR: OSCL_BYTE_ORDER_LITTLE_ENDIAN has to be defined to either 1 or 0."
-#endif
-
-/**
-\def Either OSCL_BYTE_ORDER_BIG_ENDIAN must be set to 1
-or else OSCL_BYTE_ORDER_LITTLE_ENDIAN must be set to 1.
-*/
-#if !(OSCL_BYTE_ORDER_BIG_ENDIAN) && !(OSCL_BYTE_ORDER_LITTLE_ENDIAN)
-#error "ERROR: either OSCL_BYTE_ORDER_LITTLE_ENDIAN or else OSCL_BYTE_ORDER_BIG_ENDIAN must be 1."
-#endif
-#if (OSCL_BYTE_ORDER_BIG_ENDIAN) && (OSCL_BYTE_ORDER_LITTLE_ENDIAN)
-#error "ERROR: either OSCL_BYTE_ORDER_LITTLE_ENDIAN or else OSCL_BYTE_ORDER_BIG_ENDIAN must be 1."
-#endif
-
-/**
-\def OSCL_HAS_GLOBAL_VARIABLE_SUPPORT macro should be set to 1 if
-the target platform allows global variable definitions.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_GLOBAL_VARIABLE_SUPPORT
-#error "ERROR: OSCL_HAS_GLOBAL_VARIABLE_SUPPORT has to be defined to either 1 or 0."
-#endif
-
-/**
-Note: only one byte order mode can be defined per platform.
-*/
-#if (OSCL_BYTE_ORDER_LITTLE_ENDIAN) && (OSCL_BYTE_ORDER_BIG_ENDIAN)
-#error "ERROR: Multiple selection for OSCL_BYTE_ORDER."
-#endif
-
-/**
-\def OSCL_HAS_ANSI_STRING_SUPPORT macro should be set to 1 if
-the target platform supports C standard string functions (string.h).
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_ANSI_STRING_SUPPORT
-#error "ERROR: OSCL_HAS_ANSI_STRING_SUPPORT has to be defined to either 1 or 0."
-#endif
-
-/**
-\def OSCL_NATIVE_INT64_TYPE has to be defined to the native
-signed 64-bit integer type.
-*/
-#ifndef OSCL_NATIVE_INT64_TYPE
-#error "ERROR: OSCL_NATIVE_INT64_TYPE has to be defined."
-#endif
-
-/**
-\def OSCL_NATIVE_UINT64_TYPE has to be defined to the native
-unsigned 64-bit integer type.
-*/
-#ifndef OSCL_NATIVE_UINT64_TYPE
-#error "ERROR: OSCL_NATIVE_UINT64_TYPE has to be defined."
-#endif
-
-/**
-\def INT64(x) has to be defined to the expression for a signed
-64-bit literal.
-*/
-#ifndef INT64
-#error "ERROR: INT64(x) has to be defined."
-#endif
-
-/**
-\def UINT64(x) has to be defined to the expression for an unsigned
-64-bit literal.
-*/
-#ifndef UINT64
-#error "ERROR: UINT64(x) has to be defined."
-#endif
-
-/**
-\def INT64_HILO(high,low) has to be defined to an expression
-to create a signed 64-bit integer from 2 32-bit integers.
-*/
-#ifndef INT64_HILO
-#error "ERROR: INT64_HILO(high,low) has to be defined."
-#endif
-
-/**
-\def UINT64_HILO(high,low) has to be defined to an expression
-to create an unsigned 64-bit integer from 2 32-bit integers.
-*/
-#ifndef UINT64_HILO
-#error "ERROR: UINT64_HILO(high,low) has to be defined."
-#endif
-
-/**
-\def OSCL_MEMFRAG_PTR_BEFORE_LEN macro should be set to 1 if
-memory fragements data structures, such as used by sendmsg
-(i.e., the iovec data structures), should use ptr before length.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_MEMFRAG_PTR_BEFORE_LEN
-#error "ERROR: OSCL_MEMFRAG_PTR_BEFORE_LEN has to be defined to either 0 or 1"
-#endif
-
-/**
-\def OSCL_HAS_TLS_SUPPORT macro should be set to 1 if
-the target platform has thread-local storage functions.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_TLS_SUPPORT
-#error "ERROR: OSCL_HAS_TLS_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-\def OSCL_TLS_IS_KEYED macro should be set to 1 if
-the target platform's thread local storage function requires an
-input key value to uniquely identify the TLS.
-If the thread local storage function does not require any key,
-or thread local storage is not supported, it should be set to 0.
-*/
-#ifndef OSCL_TLS_IS_KEYED
-#error "ERROR: OSCL_TLS_IS_KEYED has to be defined to either 1 or 0"
-#endif
-
-
-/**
-When OSCL_TLS_IS_KEYED==1,
-\def OSCL_TLS_STORE_FUNC macro must be set to an expression that will
-set the TLS value and evalutes to true on success, false on failure.
-The macro takes 2 input parameters (key, ptr).
-*/
-#if (OSCL_TLS_IS_KEYED) && !defined(OSCL_TLS_STORE_FUNC)
-#error "ERROR: OSCL_TLS_STORE_FUNC has to be defined"
-#endif
-
-/**
-When OSCL_TLS_IS_KEYED==1,
-\def OSCL_TLS_GET_FUNC macro should be set to an expression that
-returns the TLS value.
-The macro takes 1 input parameter (key).
-*/
-#if (OSCL_TLS_IS_KEYED) && !defined(OSCL_TLS_GET_FUNC)
-#error "ERROR: OSCL_TLS_GET_FUNC has to be defined"
-#endif
-
-/**
-When OSCL_TLS_IS_KEYED==1,
-\def OSCL_TLS_GET_FUNC macro should be set to an expression that
-creates a TLS entry and evalutes to true on success, false on failure.
-The macro takes 1 input parameter (key).
-*/
-#if (OSCL_TLS_IS_KEYED) && !defined(OSCL_TLS_KEY_CREATE_FUNC)
-#error "ERROR: OSCL_TLS_KEY_CREATE_FUNC has to be defined"
-#endif
-
-/**
-When OSCL_TLS_IS_KEYED==1,
-\def OSCL_TLS_GET_FUNC macro should be set to an expression that
-deletes a TLS entry.
-The macro takes 1 input parameter (key).
-*/
-#if (OSCL_TLS_IS_KEYED) && !defined(OSCL_TLS_KEY_DELETE_FUNC)
-#error "ERROR: OSCL_TLS_KEY_DELETE_FUNC has to be defined"
-#endif
-
-
-/**
-When OSCL_TLS_IS_KEYED==0,
-\def OSCL_TLS_STORE_FUNC macro must be set to an expression that will
-set the TLS value and evalutes to true on success, false on failure.
-The macro takes 1 input parameter (ptr).
-*/
-#if (OSCL_HAS_TLS_SUPPORT) && !(OSCL_TLS_IS_KEYED) && !defined(OSCL_TLS_STORE_FUNC)
-#error "ERROR: OSCL_TLS_STORE_FUNC has to be defined"
-#endif
-
-/**
-When OSCL_TLS_IS_KEYED==0,
-\def OSCL_TLS_GET_FUNC macro should be set to an expression that
-returns the TLS value.
-*/
-#if (OSCL_HAS_TLS_SUPPORT) && !(OSCL_TLS_IS_KEYED) && !defined(OSCL_TLS_GET_FUNC)
-#error "ERROR: OSCL_TLS_GET_FUNC has to be defined"
-#endif
-
-/**
-OSCL_HAS_BASIC_LOCK should be set to 1 if the platform has basic lock support.
-*/
-#if !defined(OSCL_HAS_BASIC_LOCK )
-#error "ERROR: OSCL_HAS_BASIC_LOCK must be defined to 0 or 1"
-#endif
-
-
-/**
-When OSCL_HAS_BASIC_LOCK is 1,
-type TOsclBasicLockObject should be defined as the type used as
-a mutex object or handle on the target platform.  It can
-be either typedef'd as a C-compilable type or can be #defined.
-Examples:
-typedef pthread_mutex_t TOsclBasicLockObject;
-#define TOsclBasicLockObject RMutex
-*/
-#if (OSCL_HAS_BASIC_LOCK) && !defined(TOsclBasicLockObject)
-typedef TOsclBasicLockObject __verify__TOsclBasicLockObject__defined__;
-#endif
-
-/**
-\def OSCL_HAS_PRAGMA_PACK macro should be set to 1 if the compiler supports
-pragma pack, 0 if it does not.
-*/
-#ifndef OSCL_HAS_PRAGMA_PACK
-#error "ERROR: OSCL_HAS_PRAGMA_PACK must be defined to 0 or 1"
-#endif
-
-/*! @} */
-
-#endif // OSCLCONFIG_CHECK_H_INCLUDED
-
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_compiler_warnings.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_compiler_warnings.h
deleted file mode 100644
index 28d7418..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_compiler_warnings.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//       O S C L C O N F I G _ C O M P I L E R  _ W A R N I N G S
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-/*! \file osclconfig_compiler_warnings.h
- *  \brief This file contains the ability to turn off/on compiler warnings
- *
- */
-
-// This macro enables the "#pragma GCC system_header" found in any header file that
-// includes this config file.
-// "#pragma GCC system_header" suppresses compiler warnings in the rest of that header
-// file by treating the header as a system header file.
-// For instance, foo.h has 30 lines, "#pragma GCC system_header" is inserted at line 10,
-// from line 11 to the end of file, all compiler warnings are disabled.
-// However, this does not affect any files that include foo.h.
-//
-#ifdef __GNUC__
-#define OSCL_DISABLE_GCC_WARNING_SYSTEM_HEADER
-#endif
-
-#define OSCL_FUNCTION_PTR(x) (&x)
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_error.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_error.h
deleted file mode 100644
index 6cdf86c..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_error.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//                O S C L C O N F I G _ E R R O R
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-/*! \file osclconfig_error.h
- *  \brief This file contains the common typedefs and header files needed to compile osclerror
- *
- */
-
-
-#ifndef OSCLCONFIG_ERROR_H_INCLUDED
-#define OSCLCONFIG_ERROR_H_INCLUDED
-
-#ifndef OSCLCONFIG_H_INCLUDED
-#include "osclconfig.h"
-#endif
-
-#define OSCL_HAS_EXCEPTIONS                     1
-#define OSCL_HAS_ERRNO_H                        1
-#define OSCL_HAS_SYMBIAN_ERRORTRAP      0
-#define OSCL_HAS_SETJMP_H 1
-
-// system header files
-#include <setjmp.h>
-#include <errno.h>
-
-
-// confirm that all definitions have been defined
-#include "osclconfig_error_check.h"
-
-#endif // OSCLCONFIG_ERROR_H_INCLUDED
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_error_check.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_error_check.h
deleted file mode 100644
index 301181e..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_error_check.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-
-#ifndef OSCLCONFIG_ERROR_CHECK_H_INCLUDED
-#define OSCLCONFIG_ERROR_CHECK_H_INCLUDED
-
-
-/**
-OSCL_HAS_EXCEPTIONS macro should be set to 1 if
-the target platform supports C++ exceptions (throw, catch).
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_EXCEPTIONS
-#error "ERROR: OSCL_HAS_EXCEPTIONS has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_EXCEPTIONS macro should be set to 1 if
-the target platform supports the POSIX-compliant errno.h header file.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_ERRNO_H
-#error "ERROR: OSCL_HAS_ERRNO_H has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_SYMBIAN_ERRORTRAP macro should be set to 1 if
-the target platform has Symbian leave, trap, and cleanup stack support.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_SYMBIAN_ERRORTRAP
-#error "ERROR: OSCL_HAS_SYMBIAN_ERRORTRAP has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_SETJMP_H macro should be set to 1 if
-the target platform supports the setjmp.h header file including
-the setjmp and longjmp functions.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_SETJMP_H
-#error "ERROR: OSCL_HAS_SETJMP_H has to be defined to either 1 or 0"
-#endif
-
-
-#endif //OSCLCONFIG_ERROR_CHECK_H_INCLUDED
-
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_global_new_delete.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_global_new_delete.h
deleted file mode 100644
index d3d0112..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_global_new_delete.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-#ifndef OSCLCONFIG_GLOBAL_NEW_DELETE_H_INCLUDED
-#define OSCLCONFIG_GLOBAL_NEW_DELETE_H_INCLUDED
-
-//This file contains overloads for the global new/delete operators
-//for use in configurations without a native new/delete operator,
-//or where it is desirable to overload the existing global new/delete
-//operators.  The implementation of the operators is in oscl_mem.cpp.
-
-void* operator new(size_t);
-void operator delete(void*);
-
-
-#endif
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_global_placement_new.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_global_placement_new.h
deleted file mode 100644
index 4ab19e7..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_global_placement_new.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-#ifndef OSCLCONFIG_GLOBAL_PLACEMENT_NEW_H_INCLUDED
-#define OSCLCONFIG_GLOBAL_PLACEMENT_NEW_H_INCLUDED
-
-//This file contains a definition of placement new operator
-//for use in configurations without a native placement new
-//operator definition.
-
-inline void* operator new(size_t, void* ptr)
-{
-    return ptr;
-}
-
-
-#endif
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_io.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_io.h
deleted file mode 100644
index bca1245..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_io.h
+++ /dev/null
@@ -1,309 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2010 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//     O S C L C O N F I G _ I O
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-/*! \file osclconfig_io.h
- *  \brief This file contains common typedefs based on the ANSI C limits.h header
- *
- *  This header file should work for any ANSI C compiler to determine the
- *  proper native C types to use for OSCL integer types.
- */
-
-
-#ifndef OSCLCONFIG_IO_H_INCLUDED
-#define OSCLCONFIG_IO_H_INCLUDED
-
-#ifndef OSCLCONFIG_H_INCLUDED
-#include "osclconfig.h"
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <netdb.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <errno.h>
-#include <sys/vfs.h>
-#include <dirent.h>
-//#include <glob.h>
-#if (OSCL_HAS_ANSI_STDLIB_SUPPORT)
-#if (OSCL_HAS_UNIX_SUPPORT)
-#include <sys/stat.h>
-#endif
-#endif
-
-//For File I/O
-#define OSCL_HAS_GLOB 0
-#define OSCL_HAS_ANSI_FILE_IO_SUPPORT 1
-#define OSCL_HAS_ANSI_64BIT_FILE_IO_SUPPORT 0
-#define OSCL_HAS_MSWIN_FILE_IO_SUPPORT 0
-#define OSCL_HAS_SYMBIAN_COMPATIBLE_IO_FUNCTION 0
-#define OSCL_HAS_NATIVE_FILE_CACHE_ENABLE 1
-#define OSCL_FILE_BUFFER_MAX_SIZE   32768
-#define OSCL_HAS_PV_FILE_CACHE  0
-#define OSCL_HAS_LARGE_FILE_SUPPORT 1
-
-//For Sockets
-#define OSCL_HAS_SYMBIAN_SOCKET_SERVER 0
-#define OSCL_HAS_SYMBIAN_DNS_SERVER 0
-#define OSCL_HAS_BERKELEY_SOCKETS 1
-#define OSCL_HAS_SOCKET_SUPPORT 1
-
-//basic socket types
-typedef int TOsclSocket;
-typedef struct sockaddr_in TOsclSockAddr;
-typedef socklen_t TOsclSockAddrLen;
-typedef struct ip_mreq TIpMReq;
-
-//Init addr macro, inet_addr returns an uint32
-#define OsclValidInetAddr(addr) (inet_addr(addr)!=INADDR_NONE)
-
-//address conversion macro-- from string to network address.
-#define OsclMakeSockAddr(sockaddr,port,addrstr,ok)\
-    sockaddr.sin_family=OSCL_AF_INET;\
-    sockaddr.sin_port=htons(port);\
-    int32 result=inet_aton((const char*)addrstr,&sockaddr.sin_addr);\
-    ok=(result!=0);
-
-//address conversion macro-- from network address to string
-#define OsclUnMakeSockAddr(sockaddr,addrstr)\
-    addrstr=inet_ntoa(sockaddr.sin_addr);
-//address conversion macro-- from string to inaddr
-#define OsclMakeInAddr(in_addr,addrstr,ok)\
-    int32 result = inet_aton((const char*)addrstr, &in_addr);\
-    ok=(result!=0);
-
-//address conversion macro-- from inaddr to string
-#define OsclUnMakeInAddr(in_addr,addrstr)\
-    addrstr=inet_ntoa(in_addr);
-
-//wrappers for berkeley socket calls
-#define OsclSetRecvBufferSize(s,val,ok,err) \
-        ok=(setsockopt(s,SOL_SOCKET,SO_RCVBUF,(char*)&val, sizeof(int)) !=-1);\
-        if (!ok)err=errno
-
-#define OsclBind(s,addr,ok,err)\
-    TOsclSockAddr* tmpadr = &addr;\
-    sockaddr* sadr = OSCL_STATIC_CAST(sockaddr*, tmpadr);\
-    ok=(bind(s,sadr,sizeof(addr))!=(-1));\
-    if (!ok)err=errno
-
-#define OsclSetSockOpt(s,optLevel,optName,optVal,optLen,ok,err)\
-    ok=(setsockopt(s,optLevel,optName,OSCL_STATIC_CAST(const char*,optVal),optLen) != (-1));\
-    if (!ok)err=errno
-#define OsclJoin(s,addr,ok,err)\
-{\
-        struct ip_mreq mreq; \
-            void* p = &addr; \
-        ok=(bind(s,(sockaddr*)p,sizeof(addr))!=(-1));\
-        mreq.imr_multiaddr.s_addr = addr.sin_addr.s_addr ; \
-        mreq.imr_interface.s_addr = htonl(INADDR_ANY); \
-        ok=(setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(struct ip_mreq))!=(-1)); \
-        if (!ok)err=errno;\
-}
-
-
-#define OsclListen(s,size,ok,err)\
-    ok=(listen(iSocket,qSize)!=(-1));\
-    if (!ok)err=errno
-
-#define OsclAccept(s,accept_s,ok,err,wouldblock)\
-    accept_s=accept(s,NULL,NULL);\
-    ok=(accept_s!=(-1));\
-    if (!ok){err=errno;wouldblock=(err==EAGAIN||err==EWOULDBLOCK);}
-
-#define OsclSetNonBlocking(s,ok,err)\
-    ok=(fcntl(s,F_SETFL,O_NONBLOCK)!=(-1));\
-    if (!ok)err=errno
-
-#define OsclShutdown(s,how,ok,err)\
-    ok=(shutdown(iSocket,how)!=(-1));\
-    if (!ok)err=errno
-
-#define OsclSocket(s,fam,type,prot,ok,err)\
-    s=socket(fam,type,prot);\
-    ok=(s!=(-1));\
-    if (!ok)err=errno
-
-#define OsclSendTo(s,buf,len,addr,ok,err,nbytes,wouldblock)\
-    TOsclSockAddr* tmpadr = &addr;\
-    sockaddr* sadr = OSCL_STATIC_CAST(sockaddr*, tmpadr);\
-    nbytes=sendto(s,(const void*)(buf),(size_t)(len),0,sadr,(socklen_t)sizeof(addr));\
-    ok=(nbytes!=(-1));\
-    if (!ok){err=errno;wouldblock=(err==EAGAIN||err==EWOULDBLOCK);}
-
-#define OsclSend(s,buf,len,ok,err,nbytes,wouldblock)\
-    nbytes=send(s,(const void*)(buf),(size_t)(len),0);\
-    ok=(nbytes!=(-1));\
-    if (!ok){err=errno;wouldblock=(err==EAGAIN||err==EWOULDBLOCK);}
-
-#define OsclCloseSocket(s,ok,err)\
-    ok=(close(s)!=(-1));\
-    if (!ok)err=errno
-
-#define OsclConnect(s,addr,ok,err,wouldblock)\
-    TOsclSockAddr* tmpadr = &addr;\
-    sockaddr* sadr = OSCL_STATIC_CAST(sockaddr*, tmpadr);\
-    ok=(connect(s,sadr,sizeof(addr))!=(-1));\
-    if (!ok){err=errno;wouldblock=(err==EINPROGRESS);}
-#define OsclGetPeerName(s,name,namelen,ok,err)\
-    ok=(getpeername(s,(sockaddr*)&name,(socklen_t*)&namelen) != (-1) );\
-    if (!ok)err=errno
-
-#define OsclGetAsyncSockErr(s,ok,err)\
-    int opterr;socklen_t optlen=sizeof(opterr);\
-    ok=(getsockopt(s,SOL_SOCKET,SO_ERROR,(void *)&opterr,&optlen)!=(-1));\
-    if(ok)err=opterr;else err=errno;
-
-#define OsclPipe(x)         pipe(x)
-#define OsclReadFD(fd,buf,cnt)  read(fd,buf,cnt)
-#define OsclWriteFD(fd,buf,cnt) write(fd,buf,cnt)
-
-//unix reports connect completion in write set in the getsockopt
-//error.
-#define OsclConnectComplete(s,wset,eset,success,fail,ok,err)\
-    success=fail=false;\
-    if (FD_ISSET(s,&eset))\
-    {fail=true;OsclGetAsyncSockErr(s,ok,err);}\
-    else if (FD_ISSET(s,&wset))\
-    {OsclGetAsyncSockErr(s,ok,err);if (ok && err==0)success=true;else fail=true;}
-
-#define OsclRecv(s,buf,len,ok,err,nbytes,wouldblock)\
-    nbytes=recv(s,(void *)(buf),(size_t)(len),0);\
-    ok=(nbytes!=(-1));\
-    if (!ok){err=errno;wouldblock=(err==EAGAIN);}
-
-#define OsclRecvFrom(s,buf,len,paddr,paddrlen,ok,err,nbytes,wouldblock)\
-{\
-void* p=paddr;\
-nbytes=recvfrom(s,(void*)(buf),(size_t)(len),0,(struct sockaddr*)p,paddrlen);\
-    ok=(nbytes!=(-1));\
-    if (!ok){err=errno;wouldblock=(err==EAGAIN);}\
-}
-
-
-#define OsclSocketSelect(nfds,rd,wr,ex,timeout,ok,err,nhandles)\
-    nhandles=select(nfds,&rd,&wr,&ex,&timeout);\
-    ok=(nhandles!=(-1));\
-    if (!ok)err=errno
-
-//there's not really any socket startup needed on unix, but
-//you need to define a signal handler for SIGPIPE to avoid
-//broken pipe crashes.
-#define OsclSocketStartup(ok)\
-    signal(SIGPIPE,SIG_IGN);\
-    ok=true
-
-#define OsclSocketCleanup(ok)\
-    signal(SIGPIPE,SIG_DFL);\
-    ok=true
-
-//hostent type
-typedef struct hostent TOsclHostent;
-
-//wrapper for gethostbyname
-#define OsclGethostbyname(name,hostent,ok,err)\
-    hostent=gethostbyname((const char*)name);\
-    ok=(hostent!=NULL);\
-    if (!ok)err=errno;
-
-//extract dotted address from a hostent
-#define OsclGetDottedAddr(hostent,dottedaddr,ok)\
-    long *_hostaddr=(long*)hostent->h_addr_list[0];\
-    struct in_addr _inaddr;\
-    _inaddr.s_addr=*_hostaddr;\
-    dottedaddr=inet_ntoa(_inaddr);\
-    ok=(dottedaddr!=NULL);
-
-//extract dotted address from a hostent into the vector of OsclNetworkAddress
-#define OsclGetDottedAddrVector(hostent,dottedaddr,dottedaddrvect,ok)\
-    if(dottedaddrvect)\
-    {\
-    long **_addrlist=(long**)hostent->h_addr_list;\
-    for(int i = 0; _addrlist[i] != NULL; i++){\
-        struct in_addr _inaddr;\
-        _inaddr.s_addr=*_addrlist[i];\
-        OsclNetworkAddress addr(inet_ntoa(_inaddr), 0);\
-        dottedaddrvect->push_back(addr);\
-    }\
-    if (!dottedaddrvect->empty())\
-        {dottedaddr->port = dottedaddrvect->front().port; dottedaddr->ipAddr.Set(dottedaddrvect->front().ipAddr.Str());}\
-    ok=(!dottedaddrvect->empty() && (((*dottedaddrvect)[0]).ipAddr.Str() != NULL));\
-    }\
-    else\
-    {\
-        char *add;\
-        OsclGetDottedAddr(hostent,add,ok);\
-        if(ok) dottedaddr->ipAddr.Set(add);\
-    }
-
-//socket shutdown codes
-#define OSCL_SD_RECEIVE SHUT_RD
-#define OSCL_SD_SEND SHUT_WR
-#define OSCL_SD_BOTH SHUT_RDWR
-
-//address family codes
-#define OSCL_AF_INET AF_INET
-
-//socket type codes
-#define OSCL_SOCK_STREAM SOCK_STREAM
-#define OSCL_SOCK_DATAGRAM SOCK_DGRAM
-
-//IP protocol codes
-#define OSCL_IPPROTO_IP  IPPROTO_IP
-#define OSCL_IPPROTO_TCP IPPROTO_TCP
-#define OSCL_IPPROTO_UDP IPPROTO_UDP
-
-//Socket option Levels
-#define OSCL_SOL_SOCKET SOL_SOCKET
-#define OSCL_SOL_IP     IPPROTO_IP
-#define OSCL_SOL_TCP    IPPROTO_TCP
-#define OSCL_SOL_UDP    IPPROTO_UDP
-
-//Socket Option Values (level = IP)
-#define OSCL_SOCKOPT_IP_MULTICAST_TTL   IP_MULTICAST_TTL
-#define OSCL_SOCKOPT_IP_ADDMEMBERSHIP   IP_ADD_MEMBERSHIP
-#define OSCL_SOCKOPT_IP_TOS             IP_TOS
-
-//Socket Option Values (level = Socket)
-#define OSCL_SOCKOPT_SOL_REUSEADDR      SO_REUSEADDR
-//End sockets
-
-// file IO support
-#if (OSCL_HAS_LARGE_FILE_SUPPORT)
-typedef off64_t TOsclFileOffset;
-#else
-typedef int32 TOsclFileOffset;
-#endif
-
-#include "osclconfig_io_check.h"
-
-#endif
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_io_check.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_io_check.h
deleted file mode 100644
index 22ddebb..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_io_check.h
+++ /dev/null
@@ -1,605 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-#ifndef OSCLCONFIG_IO_CHECK_H_INCLUDED
-#define OSCLCONFIG_IO_CHECK_H_INCLUDED
-
-/**
-OSCL_HAS_ANSI_FILE_IO_SUPPORT macro should be set to 1 if
-the target platform supports the ANSI C file I/O functions (fopen, fread, etc).
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_ANSI_FILE_IO_SUPPORT
-#error "ERROR: OSCL_HAS_ANSI_FILE_IO_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_ANSI_64BIT_FILE_IO_SUPPORT macro should be set to 1 if
-the target platform supports the 64-bit ANSI C file I/O functions (fopen, fread, etc).
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_ANSI_64BIT_FILE_IO_SUPPORT
-#error "ERROR: OSCL_HAS_ANSI_64BIT_FILE_IO_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_MSWIN_FILE_IO_SUPPORT macro should be set to 1 if
-the target platform supports the ANSI C file I/O functions (fopen, fread, etc).
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_MSWIN_FILE_IO_SUPPORT
-#error "ERROR: OSCL_HAS_MSWIN_FILE_IO_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_SYMBIAN_COMPATIBLE_IO_FUNCTION macro should be set to 1 if
-the target platform supports the Symbian file I/O functions (RFile, RFs).
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_SYMBIAN_COMPATIBLE_IO_FUNCTION
-#error "ERROR: OSCL_HAS_SYMBIAN_COMPATIBLE_IO_FUNCTION has to be defined to either 1 or 0"
-#endif
-
-/**
-On Symbian platforms only:
-OSCL_HAS_NATIVE_DUPLICATE_FILE_HANDLE  macro should be set to 1 if
-the target platform supports the Symbian file I/O function RFile::Duplicate.
-Otherwise it should be set to 0.
-*/
-#if (OSCL_HAS_SYMBIAN_COMPATIBLE_IO_FUNCTION)
-#ifndef OSCL_HAS_NATIVE_DUPLICATE_FILE_HANDLE
-#error "ERROR: OSCL_HAS_NATIVE_DUPLICATE_FILE_HANDLE has to be defined to either 1 or 0"
-#endif
-#endif
-
-
-/**
-OSCL_HAS_NATIVE_FILE_CACHE_ENABLE macro should be set to 1 if
-the target platform includes native file cache capability.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_NATIVE_FILE_CACHE_ENABLE
-#error "ERROR: OSCL_HAS_NATIVE_FILE_CACHE_ENABLE has to be defined to either 1 or 0"
-#endif
-
-
-/**
-OSCL_HAS_PV_FILE_CACHE macro should be set to 1 if
-the target platform includes PV file cache capability.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_PV_FILE_CACHE
-#error "ERROR: OSCL_HAS_PV_FILE_CACHE has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_LARGE_FILE_SUPPORT macro should be set to 1 if
-the target platform supports more than 32bit file I/O capability.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_LARGE_FILE_SUPPORT
-#error "ERROR: OSCL_HAS_LARGE_FILE_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-type TOsclFileOffset should be defined as the type used for file size
-and offsets on the target platform.
-Example:
-typedef size_t TOsclFileOffset;
-*/
-typedef TOsclFileOffset __verify__TOsclFileOffset__defined__;
-
-
-/**
-OSCL_FILE_BUFFER_MAX_SIZE macro should be set to
-the desired size of the file I/O cache in bytes.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_FILE_BUFFER_MAX_SIZE
-#error "ERROR: OSCL_FILE_BUFFER_MAX_SIZE has to be defined to a numeric value"
-#endif
-
-/**
-OSCL_HAS_SOCKET_SUPPORT macro should be set to 1 if
-the target platform supports sockets of any type.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_SOCKET_SUPPORT
-#error "ERROR: OSCL_HAS_SOCKET_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_SYMBIAN_SOCKET_SERVER macro should be set to
-1 if the platform supports Symbian socket API (RSocket, RSocketServ).
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_SYMBIAN_SOCKET_SERVER
-#error "ERROR: OSCL_HAS_SYMBIAN_SOCKET_SERVER has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_SYMBIAN_DNS_SERVER macro should be set to
-1 if the platform supports Symbian Host Resolver API (RHostResolver).
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_SYMBIAN_DNS_SERVER
-#error "ERROR: OSCL_HAS_SYMBIAN_DNS_SERVER has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_BERKELEY_SOCKETS macro should be set to
-1 if the platform supports Berkeley style socket API, including
-non-blocking I/O and a 'select' call.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_BERKELEY_SOCKETS
-#error "ERROR: OSCL_HAS_BERKELEY_SOCKETS has to be defined to either 1 or 0"
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-TOsclSocket typedef should be set to platform native socket type.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-typedef TOsclSocket __TOsclSocketCheck___;
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-TOsclSockAddr typedef should be set to platform native socket address type.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-typedef TOsclSockAddr __TOsclSockAddrCheck___;
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-TOsclSockAddrLen typedef should be set to platform native socket address
-length type.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-typedef TOsclSockAddrLen __TOsclSockAddrLenCheck___;
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclBind(s,addr,ok,err) must be defined to
-an expression that does a bind call.
-'s' and 'addr' are the socket and address parameters
-to the bind command.
-On success, 'ok' must be set to true.
-On failure, 'ok' must be set to false and 'err' must be set
-to the bind error.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclBind
-#error "ERROR: OsclBind(s,addr,ok,err) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclListen(s,size,ok,err) must be defined to
-an expression that does a listen call and sets 'ok' and 'err'
-to indicate the result.
-'s' and 'size' are the socket and queue size args to the listen
-call.
-On success, 'ok' must be set to true.
-On failure, 'ok' must be set to false and 'err' must be set
-to the listen error.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclListen
-#error "ERROR: OsclListen(s,size,ok,err) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclAccept(s,accept_s,ok,err,wouldblock) must be defined to
-an expression that does an accept call and sets 'ok', 'err',
-and 'wouldblock' to indicate the result.
-'s' and 'accept_s' are the socket and accept socket args to the
-accept call.
-On success, 'ok' must be set to true.
-On failure, 'ok' must be set to false and 'err' must be set
-to the accept error.  Additionally 'wouldblock' must be set to true
-if the error code indicates that the socket is non-blocking and
-would block, or to false otherwise.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclAccept
-#error "ERROR: OsclAccept(s,accept_s,ok,err,wouldblock) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclSetNonBlocking(s,ok,err) must be defined to
-an expression that sets socket 's' to non-blocking I/O mode
-and sets 'ok' and 'err' to indicate the result.
-On success, 'ok' must be set to true.
-On failure, 'ok' must be set to false and 'err' must be set
-to the error.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclSetNonBlocking
-#error "ERROR: OsclSetNonBlocking(s,ok,err) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclShutdown(s,how,ok,err) must be defined to
-an expression that does a shutdown call and sets 'ok' and 'err'
-to indicate the result.
-'s' and 'how' are the socket and shutdown type args to the
-shutdown call.
-On success, 'ok' must be set to true.
-On failure, 'ok' must be set to false and 'err' must be set
-to the shutdown error.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclShutdown
-#error "ERROR: OsclShutdown(s,how,ok,err) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclSocket(s,fam,type,prot,ok,err) must be defined to
-an expression that does a socket creation call and sets 'ok'
-and 'err' to indicate the result.
-'s', 'fam', 'type', and 'prot' are the socket, family, type, and
-protocol args to the socket call.
-On success, 'ok' must be set to true.
-On failure, 'ok' must be set to false and 'err' must be set
-to the socket error.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclSocket
-#error "ERROR: OsclSocket(s,fam,type,prot,ok,err) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclSendTo(s,buf,len,addr,ok,err,nbytes,wouldblock) must be defined
-to an expression that does a sendto call and sets 'ok, 'err', 'nbytes',
-and 'wouldblock' to indicate the result.
-'s', 'buf', 'len', 'flags' and 'addr' are the arguments to the sendto
-call.
-On success, 'ok' must be set to true, and 'nbytes' must be set to
-the number of bytes sent.
-On failure, 'ok' must be set to false 'err' must be set
-to the socket error.  Additionally 'wouldblock' must be set to true
-if the error code indicates that the socket is non-blocking and
-would block, or to false otherwise.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclSendTo
-#error "ERROR: OsclSendTo(s,buf,len,flags,addr,ok,err,nbytes,wouldblock) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclSend(s,buf,len,ok,err,nbytes,wouldblock) must be defined to
-an expression that does a send operation and sets 'ok, 'err', 'nbytes',
-and 'wouldblock' to indicate the result.
-'s', 'buf', and 'len' are the args to the send call.
-On success, 'ok' must be set to true, and 'nbytes' must be set to
-the number of bytes sent.
-On failure, 'ok' must be set to false 'err' must be set
-to the socket error.  Additionally 'wouldblock' must be set to true
-if the error code indicates that the socket is non-blocking and
-would block, or to false otherwise.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclSend
-#error "ERROR: OsclSend(s,buf,len,ok,err,nbytes,wouldblock) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclCloseSocket(s,ok,err) must be defined to
-an expression that closes socket 's' and sets 'ok and 'err'
-to indicate the result.
-On success, 'ok' must be set to true.
-On failure, 'ok' must be set to false and 'err' must be set
-to the close error.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclCloseSocket
-#error "ERROR: OsclCloseSocket(s,ok,err) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclConnect(s,addr,ok,err,wouldblock) must be defined to
-an expression that does a connect call and sets 'ok', 'err',
-and 'wouldblock' to indicate the result.
-'s' and 'addr' are the socket and address args to the connect call.
-On success, 'ok' must be set to true.
-On failure, 'ok' must be set to false 'err' must be set
-to the socket error.  Additionally 'wouldblock' must be set to true
-if the error code indicates that the socket is non-blocking and
-would block, or to false otherwise.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclConnect
-#error "ERROR: OsclConnect(s,addr,ok,err,wouldblock) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclConnectComplete(s,wset,eset,success,fail,ok,err) must be set
-to an expression that checks for completion of a connect operation
-on a non-blocking socket and sets 'success', 'fail', 'ok', and 'err'
-to indicate the result.
-'s' is the socket, 'wset' is the write set from the select call,
-'eset' is the exception set from the select call.
-If connect is not yet complete, 'success' and 'fail' must be
-set false.
-On connect success, 'success' must be set true.
-On conneect failure, 'success' must be set false, 'fail' must be
-set true. Additionally, the call attempts to retrieve the connect error.
-If the connect error is obtained, 'ok' is set true and 'err' contains
-the error.  If the connect error is not obtained, 'ok' is set false
-and 'err' is the error code from the attempt.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclConnectComplete
-#error "ERROR: OsclConnectComplete(s,wset,eset,success,fail,ok,err) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclRecv(s,buf,len,ok,err,nbytes,wouldblock) must be defined to
-an expression that does a recv call and sets 'ok', 'err', 'nbytes',
-and 'wouldblock' to indicate the result.
-'s', 'buf', and 'len' are the arguments to the recv call.
-On success, 'ok' must be set to true, and 'nbytes' must be set to
-the number of bytes received.
-On failure, 'ok' must be set to false 'err' must be set
-to the socket error.  Additionally 'wouldblock' must be set to true
-if the error code indicates that the socket is non-blocking and
-would block, or to false otherwise.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclRecv
-#error "ERROR: OsclRecv(s,buf,len,ok,err,nbytes,wouldblock) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclRecvFrom(s,buf,len,addr,addrlen,ok,err,nbytes,wouldblock) must be defined to
-an expression that does a recvfrom call and sets 'ok', 'err', 'nbytes',
-and 'wouldblock' to indicate the result.
-'s', 'buf', 'len', 'paddr', and 'paddrlen' are the arguments to the recvfrom call.
-On success, 'ok' must be set to true, 'nbytes' must be set to
-the number of bytes received, and 'paddr' must be set to the source address.
-On failure, 'ok' must be set to false 'err' must be set
-to the socket error.  Additionally 'wouldblock' must be set to true
-if the error code indicates that the socket is non-blocking and
-would block, or to false otherwise.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclRecvFrom
-#error "ERROR: OsclRecvFrom(s,buf,len,paddr,paddrlen,ok,err,nbytes,wouldblock) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclSocketSelect(nfds,rd,wr,ex,timeout,ok,err,nhandles) must be defined to
-an expression that does a select call and sets 'ok', 'err', and
-'nhandles' to indicate the result.
-'nfds', 'rd', 'wr', 'ex', and 'timeout' are the arguments to the
-select call.
-On success, 'ok' must be set to true, and 'nhandles' must be set to
-the number of socket handles with activitiy detected.
-On failure, 'ok' must be set to false 'err' must be set
-to the select error.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclSocketSelect
-#error "ERROR: OsclSocketSelect(nfds,rd,wr,ex,timeout,ok,err,nhandles) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclSocketStartup(ok) must be defined to
-an expression that does any necessary startup of the socket system
-and sets 'ok' to indicate the result.
-On success, 'ok' must be set to true.
-On failure, 'ok' must be set to false.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclSocketStartup
-#error "ERROR: OsclSocketStartup(ok) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclSocketCleanup(ok) must be defined to
-an expression that does any necessary cleanup of the socket system
-and sets 'ok' to indicate the result.
-On success, 'ok' must be set to true.
-On failure, 'ok' must be set to false.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclSocketCleanup
-#error "ERROR: OsclSocketCleanup(ok) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclGetAsyncSockErr(s,ok,err) must be defined to
-an expression that does a getsockopt call to retrieve a socket error
-and sets 'ok' and 'err' to indicate the result.
-'s' is the socket argument to the getsockopt call.
-On success, 'ok' must be set true and 'err' must be set to the
-error retrieved.
-On failure, 'ok' must be set false and 'err' must be set to the
-error from the getsockopt call.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclGetAsyncSockErr
-#error "ERROR: OsclGetAsyncSockErr(s,ok,err) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-TOsclHostent typedef should be set to platform native hostent type.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-typedef TOsclHostent __TOsclHostentCheck___;
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclGethostbyname(name,hostent,ok,err) must be defined to
-an expression that does a gethostbyname call on host 'name'
-and sets 'hostent', 'ok' and 'err' to indicate the result.
-'name' is the name argument to the gethostbyname call.
-On success, 'ok' must be set true and 'hostent' must be set to
-the TOsclHostent* retrieved.
-On failure, 'ok' must be set false and 'err' must be set to the
-error from the gethostbyname call.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclGethostbyname
-#error "ERROR: OsclGethostbyname(name,hostent,ok,err) has to be defined"
-#endif
-#endif
-
-/**
-For platforms with Berkeley type sockets,
-OsclGetDottedAddr(hostent,dottedaddr,ok) must be defined to
-an expression that does extracts an address in dotted decimal
-notation from a hostent structure.
-'hostent' is the TOsclHostent*,
-'dottedaddr' is a char* output containing the dotted address,
-and 'ok' is a bool that should be set true on success, false on failure.
-*/
-#if OSCL_HAS_BERKELEY_SOCKETS
-#ifndef OsclGetDottedAddr
-#error "ERROR: OsclGetDottedAddr(hostent,dottedaddr,ok) has to be defined"
-#endif
-#endif
-
-
-/**
-For platforms in which file descriptors created with a pipe() command can be
-used with the select() system call the following 3 macros must be defined
-*/
-
-#if OSCL_HAS_SELECTABLE_PIPES
-#ifndef OsclPipe
-#error "ERROR: OsclPipe(pipearray) has to be defined"
-#endif
-#endif
-
-#if OSCL_HAS_SELECTABLE_PIPES
-#ifndef OsclReadFD
-#error "ERROR: OsclReadFD(fd,buffer,cnt) has to be defined"
-#endif
-#endif
-
-#if OSCL_HAS_SELECTABLE_PIPES
-#ifndef OsclWriteFD
-#error "ERROR: OsclWriteFD(fd,buffer,cnt) has to be defined"
-#endif
-#endif
-
-#if OSCL_HAS_SOCKET_SUPPORT
-/**
-OsclValidInetAddr must be defined to a boolean expression to
-evaluate whether an address is proper IP4 format.
-'addr' is a char* containing the address string.
-*/
-#ifndef OsclValidInetAddr
-#error "ERROR: OsclValidInetAddr(addr) must be defined"
-#endif
-#endif
-
-#if OSCL_HAS_SOCKET_SUPPORT
-/**
-OSCL_SD_RECEIVE, OSCL_SD_SEND, and OSCL_SD_BOTH must be defined to
-the platform-specific socket shutdown codes.
-*/
-#ifndef OSCL_SD_RECEIVE
-#error "ERROR: OSCL_SD_RECEIVE has to be defined"
-#endif
-#ifndef OSCL_SD_SEND
-#error "ERROR: OSCL_SD_SEND has to be defined"
-#endif
-#ifndef OSCL_SD_BOTH
-#error "ERROR: OSCL_SD_BOTH has to be defined"
-#endif
-#endif
-
-#if OSCL_HAS_SOCKET_SUPPORT
-/**
-OSCL_AF_INET must be defined to the platform-specific
-network address family codes for INET.
-*/
-#ifndef OSCL_AF_INET
-#error "ERROR: OSCL_AF_INET has to be defined"
-#endif
-#endif
-
-#if OSCL_HAS_SOCKET_SUPPORT
-/**
-OSCL_SOCK_STREAM and OSCL_SOCK_DATAGRAM must be defined to
-the platform-specific socket type codes.
-*/
-#ifndef OSCL_SOCK_STREAM
-#error "ERROR: OSCL_SOCK_STREAM has to be defined"
-#endif
-#ifndef OSCL_SOCK_DATAGRAM
-#error "ERROR: OSCL_SOCK_DATAGRAM has to be defined"
-#endif
-#endif
-
-#if OSCL_HAS_SOCKET_SUPPORT
-/**
-OSCL_IPPROTO_TCP and OSCL_IPPROTO_UDP must be defined to
-the platform-specific IP protocol codes.
-*/
-#ifndef OSCL_IPPROTO_TCP
-#error "ERROR: OSCL_IPPROTO_TCP has to be defined"
-#endif
-#ifndef OSCL_IPPROTO_UDP
-#error "ERROR: OSCL_IPPROTO_UDP has to be defined"
-#endif
-#endif
-
-
-#endif // OSCLCONFIG_IO_CHECK_H_INCLUDED
-
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_ix86.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_ix86.h
deleted file mode 100644
index 87d7afb..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_ix86.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//     O S C L C O N F I G   ( P L A T F O R M   C O N F I G   I N F O )
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-/*! \file osclconfig_ix86.h
- *  \brief This file contains configuration information for the ix86 processor family
- *
- */
-
-#ifndef OSCLCONFIG_IX86_H_INCLUDED
-#define OSCLCONFIG_IX86_H_INCLUDED
-
-
-// Define macros for integer alignment and little endian byte order.
-#define OSCL_INTEGERS_WORD_ALIGNED               1
-#define OSCL_BYTE_ORDER_BIG_ENDIAN               0
-#define OSCL_BYTE_ORDER_LITTLE_ENDIAN            1
-
-
-#endif
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_lib.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_lib.h
deleted file mode 100644
index ee71a6a..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_lib.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2010 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//     O S C L C O N F I G _ L I B  ( P L A T F O R M   C O N F I G   I N F O )
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-/*! \file osclconfig_lib.h
-    \brief This file contains configuration information for the ANSI build.
-
-*/
-
-#ifndef OSCLCONFIG_LIB_H_INCLUDED
-#define OSCLCONFIG_LIB_H_INCLUDED
-
-
-
-//Set this to 1 to indicate this platform has oscllib support
-#define OSCL_HAS_RUNTIME_LIB_LOADING_SUPPORT    1
-#define PV_RUNTIME_LIB_FILENAME_EXTENSION "so"
-
-//Set this to 1 to enable looking for debug versions of libraries.
-//Use #ifndef to allow the compiler setting to override this definition
-#ifndef OSCL_LIB_READ_DEBUG_LIBS
-#if (OSCL_RELEASE_BUILD)
-#define OSCL_LIB_READ_DEBUG_LIBS 0
-#else
-#define OSCL_LIB_READ_DEBUG_LIBS 1
-#endif
-#endif
-
-// The path recursively from which the config files are picked up
-#ifndef PV_DYNAMIC_LOADING_CONFIG_FILE_PATH
-#ifdef ANDROID
-#define PV_DYNAMIC_LOADING_CONFIG_FILE_PATH "/system/etc"
-#else
-#define PV_DYNAMIC_LOADING_CONFIG_FILE_PATH "./"
-#endif
-#endif
-
-// check all osclconfig required macros are defined
-#include "osclconfig_lib_check.h"
-
-#endif // OSCLCONFIG_LIB_H_INCLUDED
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_lib_check.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_lib_check.h
deleted file mode 100644
index e4f7479..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_lib_check.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-
-#ifndef OSCLCONFIG_LIB_CHECK_H_INCLUDED
-#define OSCLCONFIG_LIB_CHECK_H_INCLUDED
-
-/*! \addtogroup osclconfig OSCL config
- *
- * @{
- */
-
-
-
-/**
-OSCL_HAS_RUNTIME_LIB_LOADING_SUPPORT should be set to 1 if the platform has basic explicit runtime DLL loading support.
-*/
-#if !defined(OSCL_HAS_RUNTIME_LIB_LOADING_SUPPORT )
-#error "ERROR: OSCL_HAS_RUNTIME_LIB_LOADING_SUPPORT must be defined to 0 or 1"
-#endif
-
-#if(OSCL_HAS_RUNTIME_LIB_LOADING_SUPPORT)
-/**
-** When OSCL_HAS_RUNTIME_LIB_LOADING_SUPPORT is 1,
-** OSCL_LIB_READ_DEBUG_LIBS should be set to 0 or 1.  Set to 1 to enable loading
-** debug versions of libs.
-*/
-#if !defined(OSCL_LIB_READ_DEBUG_LIBS)
-#error "ERROR: OSCL_LIB_READ_DEBUG_LIBS must be defined to 0 or 1"
-#endif
-
-/*
-** When OSCL_HAS_RUNTIME_LIB_LOADING_SUPPORT is 1,
-** PV_DYNAMIC_LOADING_CONFIG_FILE_PATH should be set.
-*/
-#if !defined(PV_DYNAMIC_LOADING_CONFIG_FILE_PATH)
-#error "ERROR: PV_DYNAMIC_LOADING_CONFIG_FILE_PATH must be set to a path where the config files are expected to be present"
-#endif
-
-/*
-** When OSCL_HAS_RUNTIME_LIB_LOADING_SUPPORT is 1,
-** PV_RUNTIME_LIB_FILENAME_EXTENSION should be set.
-*/
-#if !defined(PV_RUNTIME_LIB_FILENAME_EXTENSION)
-#error "ERROR: PV_RUNTIME_LIB_FILENAME_EXTENSION must be specified for use as the dynamic library file extension"
-#endif
-#endif // OSCL_HAS_RUNTIME_LIB_LOADING_SUPPORT
-
-/*! @} */
-
-#endif // OSCLCONFIG_LIB_CHECK_H_INCLUDED
-
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_limits_typedefs.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_limits_typedefs.h
deleted file mode 100644
index 4ce355d..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_limits_typedefs.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//     O S C L C O N F I G_ L I M I T S _ T Y P E D E F S
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-/*! \file osclconfig_limits_typedefs.h
- *  \brief This file contains common typedefs based on the ANSI C limits.h header
- *
- *  This header file should work for any ANSI C compiler to determine the
- *  proper native C types to use for OSCL integer types.
- */
-
-
-#ifndef OSCLCONFIG_LIMITS_TYPEDEFS_H_INCLUDED
-#define OSCLCONFIG_LIMITS_TYPEDEFS_H_INCLUDED
-
-
-#include <limits.h>
-
-// determine if char is signed or unsigned
-#if ( CHAR_MIN == 0 )
-#define OSCL_CHAR_IS_UNSIGNED 1
-#define OSCL_CHAR_IS_SIGNED   0
-#elif ( CHAR_MIN == SCHAR_MIN )
-#define OSCL_CHAR_IS_UNSIGNED 0
-#define OSCL_CHAR_IS_SIGNED   1
-#else
-#error "Cannot determine if char is signed or unsigned"
-#endif
-
-
-#if ( (CHAR_MAX == 255) || (CHAR_MAX == 127) )
-typedef signed char int8;
-typedef unsigned char uint8;
-#else
-#error "Cannot determine an 8-bit interger type"
-#endif
-
-
-#if ( SHRT_MAX == 32767 )
-typedef short int16;
-typedef unsigned short uint16;
-
-#elif ( INT_MAX == 32767 )
-typedef int int16;
-typedef unsigned int uint16;
-
-#else
-#error "Cannot determine 16-bit integer type"
-#endif
-
-
-
-#if ( INT_MAX == 2147483647 )
-typedef int int32;
-typedef unsigned int uint32;
-
-#elif ( LONG_MAX == 2147483647 )
-typedef long int32;
-typedef unsigned long uint32;
-
-#else
-#error "Cannot determine 32-bit integer type"
-#endif
-
-
-
-#endif
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_memory.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_memory.h
deleted file mode 100644
index b5c69d0..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_memory.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2010 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//             O S C L C O N F I G _ M E M O R Y
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-
-
-#ifndef OSCLCONFIG_MEMORY_H_INCLUDED
-#define OSCLCONFIG_MEMORY_H_INCLUDED
-
-
-#ifndef OSCLCONFIG_H_INCLUDED
-#include "osclconfig.h"
-#endif
-
-#ifndef OSCLCONFIG_ANSI_MEMORY_H_INCLUDED
-#include "osclconfig_ansi_memory.h"
-#endif
-
-/* OSCL_HAS_GLOBAL_NEW_DELETE - Enables or disables the definition of overloaded
- * global memory operators in oscl_mem.h
- *
- * Release Mode: OSCL_HAS_GLOBAL_NEW_DELETE 0
- * Debug Mode: OSCL_HAS_GLOBAL_NEW_DELETE 1
- */
-
-
-#if (OSCL_RELEASE_BUILD)
-#define OSCL_BYPASS_MEMMGT 1
-#define OSCL_HAS_GLOBAL_NEW_DELETE 0
-#else
-#define OSCL_BYPASS_MEMMGT 1  //Temporarily disabling
-#define OSCL_HAS_GLOBAL_NEW_DELETE 1
-#endif
-
-/* PVMEM_INST_LEVEL - Memory leak instrumentation level enables the compilation
- * of detailed memory leak info (filename + line number).
- * PVMEM_INST_LEVEL 0: Release mode.
- * PVMEM_INST_LEVEL 1: Debug mode.
- */
-
-#if(OSCL_RELEASE_BUILD)
-#define PVMEM_INST_LEVEL 0
-#else
-#define PVMEM_INST_LEVEL 1
-#endif
-
-#if(OSCL_HAS_GLOBAL_NEW_DELETE)
-//Detect if <new> or <new.h> is included anyplace to avoid a compile error.
-#if defined(_INC_NEW)
-#error Duplicate New Definition!
-#endif //_INC_NEW
-#if defined(_NEW_)
-#error Duplicate New Definition!
-#endif //_NEW_
-#endif //OSCL_HAS_GLOBAL_NEW_DELETE
-
-#ifdef __cplusplus
-#include <new> //for placement new
-#endif //__cplusplus
-
-//OSCL_HAS_HEAP_BASE_SUPPORT - Enables or disables overloaded memory operators in HeapBase class
-#define OSCL_HAS_HEAP_BASE_SUPPORT 1
-
-#define OSCL_HAS_SYMBIAN_MEMORY_FUNCS 0
-
-
-#include "osclconfig_memory_check.h"
-
-
-#endif
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_memory_check.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_memory_check.h
deleted file mode 100644
index 8903111..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_memory_check.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-
-#ifndef OSCLCONFIG_MEMORY_CHECK_H_INCLUDED
-#define OSCLCONFIG_MEMORY_CHECK_H_INCLUDED
-
-
-/**
-OSCL_BYPASS_MEMMGT macro should be set to 1 if
-it is desirable to bypass the PV memory management system and just
-use the native memory management.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_BYPASS_MEMMGT
-#error "ERROR: OSCL_BYPASS_MEMMGT has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_ANSI_MEMORY_FUNCS macro should be set to 1 if
-the target platform supports ANSI C memory functions (malloc, free, etc).
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_ANSI_MEMORY_FUNCS
-#error "ERROR: OSCL_HAS_ANSI_MEMORY_FUNCS has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_SYMBIAN_MEMORY_FUNCS macro should be set to 1 if
-the target platform supports Symbian memory functions User::Alloc, User::Free, etc.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_SYMBIAN_MEMORY_FUNCS
-#error "ERROR: OSCL_HAS_SYMBIAN_MEMORY_FUNCS has to be defined to either 1 or 0"
-#endif
-
-/*
- * OSCL_HAS_HEAP_BASE_SUPPORT macro should be set to 1 for the
- * platforms that allows inheritance from HeapBase class for
- * overloading of new/delete operators.
- */
-
-#ifndef OSCL_HAS_HEAP_BASE_SUPPORT
-#error "ERROR: OSCL_HAS_HEAP_BASE_SUPPORT has to be defined to either 1 or 0."
-#endif
-
-/*
- * OSCL_HAS_GLOBAL_NEW_DELETE macro should be set to 1 for the
- * platforms that allows overloading of new/delete operators.
- */
-
-#ifndef OSCL_HAS_GLOBAL_NEW_DELETE
-#error "ERROR: OSCL_HAS_GLOBAL_NEW_DELETE has to be defined to either 1 or 0."
-#endif
-
-#endif // OSCLCONFIG_MEMORY_CHECK_H_INCLUDED
-
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_no_os.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_no_os.h
deleted file mode 100644
index c1a06e3..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_no_os.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2010 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-
-#ifndef OSCLCONFIG_NO_OS_H_INCLUDED
-#define OSCLCONFIG_NO_OS_H_INCLUDED
-
-/*! \addtogroup osclconfig OSCL config
- *
- * @{
- */
-
-//a file to turn off ALL os-specific switches.
-
-//osclconfig
-#define OSCL_HAS_UNIX_SUPPORT               0
-#define OSCL_HAS_MSWIN_SUPPORT              0
-#define OSCL_HAS_MSWIN_PARTIAL_SUPPORT      0
-#define OSCL_HAS_SYMBIAN_SUPPORT            0
-#define OSCL_HAS_SAVAJE_SUPPORT             0
-#define OSCL_HAS_PV_C_OS_SUPPORT            0
-#define OSCL_HAS_ANDROID_SUPPORT            0
-#define OSCL_HAS_IPHONE_SUPPORT             0
-
-//osclconfig_error
-#define OSCL_HAS_SYMBIAN_ERRORTRAP 0
-
-//osclconfig_memory
-#define OSCL_HAS_SYMBIAN_MEMORY_FUNCS 0
-#define OSCL_HAS_PV_C_OS_API_MEMORY_FUNCS 0
-
-//osclconfig_time
-#define OSCL_HAS_PV_C_OS_TIME_FUNCS 0
-#define OSCL_HAS_UNIX_TIME_FUNCS    0
-
-//osclconfig_util
-#define OSCL_HAS_SYMBIAN_TIMERS 0
-#define OSCL_HAS_SYMBIAN_MATH   0
-
-//osclconfig_proc
-#define OSCL_HAS_SYMBIAN_SCHEDULER 0
-#define OSCL_HAS_SEM_TIMEDWAIT_SUPPORT 0
-#define OSCL_HAS_PTHREAD_SUPPORT 0
-
-//osclconfig_io
-#define OSCL_HAS_SYMBIAN_COMPATIBLE_IO_FUNCTION 0
-#define OSCL_HAS_SAVAJE_IO_SUPPORT 0
-#define OSCL_HAS_SYMBIAN_SOCKET_SERVER 0
-#define OSCL_HAS_SYMBIAN_DNS_SERVER 0
-#define OSCL_HAS_BERKELEY_SOCKETS 0
-
-
-/*! @} */
-
-#endif // OSCLCONFIG_CHECK_H_INCLUDED
-
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_proc.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_proc.h
deleted file mode 100644
index 9f43965..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_proc.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//     O S C L C O N F I G _ P R O C  ( P L A T F O R M   C O N F I G   I N F O )
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-/*! \file osclconfig_proc.h
- *  \brief This file contains configuration information for the linux platform
- *
- */
-
-#ifndef OSCLCONFIG_PROC_H_INCLUDED
-#define OSCLCONFIG_PROC_H_INCLUDED
-
-#ifndef OSCLCONFIG_H_INCLUDED
-#include "osclconfig.h"
-#endif
-
-#include "osclconfig_proc_unix_android.h"
-
-#include "osclconfig_proc_check.h"
-
-
-#endif
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_proc_check.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_proc_check.h
deleted file mode 100644
index 0cba8f2..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_proc_check.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-
-#ifndef OSCLCONFIG_PROC_CHECK_H_INCLUDED
-#define OSCLCONFIG_PROC_CHECK_H_INCLUDED
-
-/**
-OSCL_HAS_THREAD_SUPPORT macro should be set to 1 if
-the target platform supports threads.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_THREAD_SUPPORT
-#error "ERROR: OSCL_HAS_THREAD_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_NON_PREEMPTIVE_THREAD_SUPPORT macro should be set to 1 if
-the target platform supports non-pre-emptive threads.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_NON_PREEMPTIVE_THREAD_SUPPORT
-#error "ERROR: OSCL_HAS_NON_PREEMPTIVE_THREAD_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_SYMBIAN_SCHEDULER macro should be set to 1 if
-the target platform supports Symbian active object scheduler.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_SYMBIAN_SCHEDULER
-#error "ERROR: OSCL_HAS_SYMBIAN_SCHEDULER has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_SEM_TIMEDWAIT_SUPPORT macro should be set to 1 if
-the target platform supports POSIX-compliant semaphores (semaphore.h)
-with advanced realtime features including sem_timedwait.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_SEM_TIMEDWAIT_SUPPORT
-#error "ERROR: OSCL_HAS_SEM_TIMEDWAIT_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_PTHREAD_SUPPORT macro should be set to 1 if
-the target platform supports POSIX-compliand pthreads (pthread.h).
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_PTHREAD_SUPPORT
-#error "ERROR: OSCL_HAS_PTHREAD_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-type TOsclThreadId should be defined as the type used as
-a thread ID
-on the target platform.
-Example:
-typedef DWORD TOsclThreadId;
-*/
-typedef TOsclThreadId __verify__TOsclThreadId__defined__;
-
-/**
-type TOsclThreadFuncRet should be defined as the type used as
-a thread function return value
-on the target platform.
-Example:
-typedef DWORD TOsclThreadFuncRet;
-*/
-typedef TOsclThreadFuncRet __verify__TOsclThreadFuncRet__defined__;
-
-/**
-type TOsclThreadFuncArg should be defined as the type used as
-a thread function argument
-on the target platform.
-Example:
-typedef LPVOID TOsclThreadFuncArg;
-*/
-typedef TOsclThreadFuncArg __verify__TOsclThreadFuncArg__defined__;
-
-/**
-OSCL_THREAD_DECL macro should be defined to the
-necessary function declaration modifiers for thread routines,
-or a null macro if no modifiers are needed.
-Example:
-#define OSCL_THREAD_DECL WINAPI
-*/
-#ifndef OSCL_THREAD_DECL
-#error "ERROR: OSCL_THREAD_DECL has to be defined."
-#endif
-
-/**
-Example of a declaration of a thread routine called MyThreadMain using
-the Oscl definitions:
-
-static TOsclThreadFuncRet OSCL_THREAD_DECL MyThreadMain(TOsclThreadFuncArg arg);
-*/
-
-/**
-type TOsclThreadObject should be defined as the type used as
-a thread object or handle
-on the target platform.
-Example:
-typedef pthread_t TOsclThreadObject;
-*/
-typedef TOsclThreadObject __verify__TOsclThreadObject__defined__;
-
-/**
-type TOsclMutexObject should be defined as the type used as
-a mutex object or handle
-on the target platform.
-Example:
-typedef pthread_mutex_t TOsclMutexObject;
-*/
-typedef TOsclMutexObject __verify__TOsclMutexObject__defined__;
-
-/**
-type TOsclSemaphoreObject should be defined as the type used as
-a mutex object or handle
-on the target platform.
-Example:
-typedef sem_t TOsclSemaphoreObject;
-*/
-typedef TOsclSemaphoreObject __verify__TOsclSemaphoreObject__defined__;
-
-/**
-type TOsclConditionObject should be defined as the type used as
-a condition variable
-on the target platform.
-Example:
-typedef pthread_cond_t TOsclConditionObject;
-
-Note: Condition variables are only used with certain semaphore implementations.
-If the semaphore implementation does not require a condition variable,
-then this type can be defined as 'int' as follows:
-typedef int TOsclConditionObject; //not used
-*/
-typedef TOsclConditionObject __verify__TOsclConditionObject__defined__;
-
-
-#endif //OSCLCONFIG_PROC_CHECK_H_INCLUDED
-
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_proc_unix_android.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_proc_unix_android.h
deleted file mode 100644
index c5d05eb..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_proc_unix_android.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//     O S C L C O N F I G _ P R O C  ( P L A T F O R M   C O N F I G   I N F O )
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-/*! \file osclconfig_proc.h
- *  \brief This file contains configuration information for the linux platform
- *
- */
-
-#ifndef OSCLCONFIG_PROC_UNIX_ANDROID_H_INCLUDED
-#define OSCLCONFIG_PROC_UNIX_ANDROID_H_INCLUDED
-
-#define OSCL_HAS_SYMBIAN_SCHEDULER 0
-
-#define OSCL_HAS_THREAD_SUPPORT 1
-#define OSCL_HAS_NON_PREEMPTIVE_THREAD_SUPPORT 0
-
-//semaphore with advanced realtime features incl. timed wait.
-#define OSCL_HAS_SEM_TIMEDWAIT_SUPPORT 0
-//#include <time.h>
-//#include <semaphore.h>
-
-//pthreads
-#define OSCL_HAS_PTHREAD_SUPPORT 1
-#include <pthread.h>
-#include <errno.h>
-#include <signal.h>
-
-// threads, mutex, semaphores
-typedef pthread_t TOsclThreadId;
-typedef void* TOsclThreadFuncArg;
-typedef void* TOsclThreadFuncRet;
-#define OSCL_THREAD_DECL
-typedef pthread_t TOsclThreadObject;
-typedef pthread_mutex_t TOsclMutexObject;
-typedef int TOsclSemaphoreObject;
-typedef pthread_cond_t TOsclConditionObject;
-
-#endif
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_proc_unix_common.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_proc_unix_common.h
deleted file mode 100644
index 104a2cc..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_proc_unix_common.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//     O S C L C O N F I G _ P R O C  ( P L A T F O R M   C O N F I G   I N F O )
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-/*! \file osclconfig_proc.h
- *  \brief This file contains configuration information for the linux platform
- *
- */
-
-#ifndef OSCLCONFIG_PROC_UNIX_COMMON_H_INCLUDED
-#define OSCLCONFIG_PROC_UNIX_COMMON_H_INCLUDED
-
-#define OSCL_HAS_SYMBIAN_SCHEDULER 0
-
-#define OSCL_HAS_THREAD_SUPPORT 1
-#define OSCL_HAS_NON_PREEMPTIVE_THREAD_SUPPORT 0
-
-//semaphore with advanced realtime features incl. timed wait.
-#define OSCL_HAS_SEM_TIMEDWAIT_SUPPORT 1
-#include <time.h>
-#include <semaphore.h>
-
-//pthreads
-#define OSCL_HAS_PTHREAD_SUPPORT 1
-#include <pthread.h>
-#include <errno.h>
-
-// threads, mutex, semaphores
-typedef pthread_t TOsclThreadId;
-typedef void* TOsclThreadFuncArg;
-typedef void* TOsclThreadFuncRet;
-#define OSCL_THREAD_DECL
-typedef pthread_t TOsclThreadObject;
-typedef pthread_mutex_t TOsclMutexObject;
-typedef sem_t TOsclSemaphoreObject;
-typedef pthread_cond_t TOsclConditionObject;
-
-#endif
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_time.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_time.h
deleted file mode 100644
index cb53659..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_time.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2010 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//   O S C L C O N F I G _ T I M E   ( T I M E - D E F I N I T I O N S )
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-
-
-#ifndef OSCLCONFIG_TIME_H_INCLUDED
-#define OSCLCONFIG_TIME_H_INCLUDED
-
-
-#ifndef OSCLCONFIG_H_INCLUDED
-#include "osclconfig.h"
-#endif
-
-// system header files
-#include <time.h> // timeval
-#include <sys/time.h> // timercmp
-#include <unistd.h>
-
-
-
-#define OSCL_HAS_UNIX_TIME_FUNCS        1
-
-typedef struct timeval OsclBasicTimeStruct;
-typedef tm      OsclBasicDateTimeStruct;
-
-#include "osclconfig_time_check.h"
-
-#endif
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_time_check.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_time_check.h
deleted file mode 100644
index 0243d5c..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_time_check.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2010 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-
-//osclconfig: this build configuration file is for win32
-#ifndef OSCLCONFIG_TIME_CHECK_H_INCLUDED
-#define OSCLCONFIG_TIME_CHECK_H_INCLUDED
-
-
-/**
-OSCL_HAS_UNIX_TIME_FUNCS macro should be set to 1 if
-the target platform supports unix time of day functions.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_UNIX_TIME_FUNCS
-#error "ERROR: OSCL_HAS_UNIX_TIME_FUNCS has to be defined to either 1 or 0"
-#endif
-
-/**
-OsclBasicTimeStruct type should be defined to the platform-specific
-time of day type.
-*/
-typedef OsclBasicTimeStruct __Validate__BasicTimeStruct__;
-
-/**
-OsclBasicDateTimeStruct type should be defined to the platform-specific
-date + time type.
-*/
-typedef OsclBasicDateTimeStruct __Validate__BasicTimeDateStruct__;
-
-#endif //OSCLCONFIG_TIME_CHECK_H_INCLUDED
-
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_unix_android.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_unix_android.h
deleted file mode 100644
index f4508ac..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_unix_android.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2010 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//         O S C L C O N F I G _ U N I X _ C O M M O N
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-/*! \file osclconfig_limits_typedefs.h
- *  \brief This file contains common typedefs based on the ANSI C limits.h header
- *
- *  This header file should work for any ANSI C compiler to determine the
- *  proper native C types to use for OSCL integer types.
- */
-
-
-#ifndef OSCLCONFIG_UNIX_ANDROID_H_INCLUDED
-#define OSCLCONFIG_UNIX_ANDROID_H_INCLUDED
-
-
-// system header files
-#include <stdlib.h> // abort
-#include <stdarg.h> // va_list
-#include <sys/types.h>
-#include <stdio.h>
-//#include <wchar.h>
-#include <string.h>
-#include <unistd.h> //for sleep
-#include <pthread.h>
-#include <ctype.h> // for tolower and toupper
-#ifdef __cplusplus
-#include <new> //for placement new
-#endif
-#include <math.h>
-
-#define OSCL_DISABLE_INLINES                0
-
-#define OSCL_HAS_ANSI_STDLIB_SUPPORT        1
-#define OSCL_HAS_ANSI_MATH_SUPPORT          1
-#define OSCL_HAS_GLOBAL_VARIABLE_SUPPORT    1
-#define OSCL_HAS_ANSI_STRING_SUPPORT        1
-#define OSCL_HAS_ANSI_WIDE_STRING_SUPPORT   0
-#define OSCL_HAS_ANSI_STDIO_SUPPORT         1
-
-#define OSCL_MEMFRAG_PTR_BEFORE_LEN         1
-
-#define OSCL_HAS_UNIX_SUPPORT               1
-#define OSCL_HAS_MSWIN_SUPPORT              0
-#define OSCL_HAS_MSWIN_PARTIAL_SUPPORT    0
-#define OSCL_HAS_SYMBIAN_SUPPORT            0
-#define OSCL_HAS_IPHONE_SUPPORT        0
-
-
-// 64-bit int
-#define OSCL_NATIVE_INT64_TYPE     int64_t
-#define OSCL_NATIVE_UINT64_TYPE    uint64_t
-#define INT64(x) x##LL
-#define UINT64(x) x##ULL
-#define INT64_HILO(high,low) ((((high##LL))<<32)|low)
-#define UINT64_HILO(high,low) ((((high##ULL))<<32)|low)
-
-// character set.
-#define OSCL_HAS_UNICODE_SUPPORT            1
-#define OSCL_NATIVE_WCHAR_TYPE wchar_t
-#if (OSCL_HAS_UNICODE_SUPPORT)
-#define _STRLIT(x) L ## x
-#else
-#define _STRLIT(x) x
-#endif
-#define _STRLIT_CHAR(x) x
-#define _STRLIT_WCHAR(x) L ## x
-
-// Thread-local storage.  Unix has keyed TLS.
-#define OSCL_HAS_TLS_SUPPORT    1
-#define OSCL_TLS_IS_KEYED 1
-typedef pthread_key_t TOsclTlsKey ;
-#define OSCL_TLS_KEY_CREATE_FUNC(key) (pthread_key_create(&key,NULL)==0)
-#define OSCL_TLS_KEY_DELETE_FUNC(key) pthread_key_delete(key)
-#define OSCL_TLS_STORE_FUNC(key,ptr) (pthread_setspecific(key,(const void*)ptr)==0)
-#define OSCL_TLS_GET_FUNC(key) pthread_getspecific(key)
-
-//Basic lock
-#define OSCL_HAS_BASIC_LOCK 1
-#include <pthread.h>
-typedef pthread_mutex_t TOsclBasicLockObject;
-
-#endif // OSCLCONFIG_UNIX_COMMON_H_INCLUDED
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_unix_common.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_unix_common.h
deleted file mode 100644
index d795c49..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_unix_common.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2010 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-// -*- c++ -*-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-//         O S C L C O N F I G _ U N I X _ C O M M O N
-
-// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-/*! \file osclconfig_limits_typedefs.h
- *  \brief This file contains common typedefs based on the ANSI C limits.h header
- *
- *  This header file should work for any ANSI C compiler to determine the
- *  proper native C types to use for OSCL integer types.
- */
-
-
-#ifndef OSCLCONFIG_UNIX_COMMON_H_INCLUDED
-#define OSCLCONFIG_UNIX_COMMON_H_INCLUDED
-
-
-// system header files
-#include <stdlib.h> // abort
-#include <stdarg.h> // va_list
-#include <sys/types.h>
-#include <stdio.h>
-#include <wchar.h>
-#include <string.h>
-#include <unistd.h> //for sleep
-#include <pthread.h>
-#include <ctype.h> // for tolower and toupper
-#ifdef __cplusplus
-#include <new> //for placement new
-#endif
-#include <math.h>
-
-#define OSCL_DISABLE_INLINES                0
-
-#define OSCL_HAS_ANSI_STDLIB_SUPPORT        1
-#define OSCL_HAS_ANSI_MATH_SUPPORT          1
-#define OSCL_HAS_GLOBAL_VARIABLE_SUPPORT    1
-#define OSCL_HAS_ANSI_STRING_SUPPORT        1
-#define OSCL_HAS_ANSI_WIDE_STRING_SUPPORT   1
-#define OSCL_HAS_ANSI_STDIO_SUPPORT         1
-
-#define OSCL_MEMFRAG_PTR_BEFORE_LEN         1
-
-#define OSCL_HAS_UNIX_SUPPORT               1
-#define OSCL_HAS_MSWIN_SUPPORT              0
-#define OSCL_HAS_MSWIN_PARTIAL_SUPPORT    0
-#define OSCL_HAS_SYMBIAN_SUPPORT            0
-
-// 64-bit int
-#define OSCL_NATIVE_INT64_TYPE     int64_t
-#define OSCL_NATIVE_UINT64_TYPE    uint64_t
-#define INT64(x) x##LL
-#define UINT64(x) x##ULL
-#define INT64_HILO(high,low) ((((high##LL))<<32)|low)
-#define UINT64_HILO(high,low) ((((high##ULL))<<32)|low)
-
-// character set.
-#define OSCL_HAS_UNICODE_SUPPORT            1
-#define OSCL_NATIVE_WCHAR_TYPE wchar_t
-#if (OSCL_HAS_UNICODE_SUPPORT)
-#define _STRLIT(x) L ## x
-#else
-#define _STRLIT(x) x
-#endif
-#define _STRLIT_CHAR(x) x
-#define _STRLIT_WCHAR(x) L ## x
-
-// Thread-local storage.  Unix has keyed TLS.
-#define OSCL_HAS_TLS_SUPPORT    1
-#define OSCL_TLS_IS_KEYED 1
-typedef pthread_key_t TOsclTlsKey ;
-#define OSCL_TLS_KEY_CREATE_FUNC(key) (pthread_key_create(&key,NULL)==0)
-#define OSCL_TLS_KEY_DELETE_FUNC(key) pthread_key_delete(key)
-#define OSCL_TLS_STORE_FUNC(key,ptr) (pthread_setspecific(key,(const void*)ptr)==0)
-#define OSCL_TLS_GET_FUNC(key) pthread_getspecific(key)
-
-//Basic lock
-#define OSCL_HAS_BASIC_LOCK 1
-#include <pthread.h>
-typedef pthread_mutex_t TOsclBasicLockObject;
-
-#endif // OSCLCONFIG_UNIX_COMMON_H_INCLUDED
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_util.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_util.h
deleted file mode 100644
index a169848..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_util.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-#ifndef OSCLCONFIG_UTIL_H_INCLUDED
-#define OSCLCONFIG_UTIL_H_INCLUDED
-
-#ifndef OSCLCONFIG_H_INCLUDED
-#include "osclconfig.h"
-#endif
-
-#include <stdio.h> //sprintf
-#include <time.h>     // OSCL clock
-#include <sys/time.h> // timeval
-
-#define OSCL_CLOCK_HAS_DRIFT_CORRECTION 0
-#define OSCL_HAS_SYMBIAN_TIMERS 0
-#define OSCL_HAS_SYMBIAN_MATH   0
-
-#define OSCL_RAND_MAX           RAND_MAX
-
-//Define system sleep call for the tick count test here.
-#include <unistd.h>
-#define SLEEP_ONE_SEC sleep(1)
-
-
-#include "osclconfig_util_check.h"
-
-#endif
-
diff --git a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_util_check.h b/tools/depends/target/libomxil-bellagio/oscl/osclconfig_util_check.h
deleted file mode 100644
index f615c4a..0000000
--- a/tools/depends/target/libomxil-bellagio/oscl/osclconfig_util_check.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- * -------------------------------------------------------------------
- */
-#ifndef OSCLCONFIG_UTIL_CHECK_H_INCLUDED
-#define OSCLCONFIG_UTIL_CHECK_H_INCLUDED
-
-/**
-OSCL_HAS_SYMBIAN_TIMERS macro should be set to 1 if
-the target platform supports Symbian timers (RTimer).
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_SYMBIAN_TIMERS
-#error "ERROR: OSCL_HAS_SYMBIAN_TIMERS has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_SYMBIAN_MATH macro should be set to 1 if
-the target platform supports Symbian <e32math.h> features.
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_SYMBIAN_MATH
-#error "ERROR: OSCL_HAS_SYMBIAN_MATH has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_HAS_ANSI_MATH_SUPPORT macro should be set to 1 if
-the target platform supports the ANSI C math functions (math.h)
-Otherwise it should be set to 0.
-*/
-#ifndef OSCL_HAS_ANSI_MATH_SUPPORT
-#error "ERROR: OSCL_HAS_ANSI_MATH_SUPPORT has to be defined to either 1 or 0"
-#endif
-
-/**
-OSCL_CLOCK_HAS_DRIFT_CORRECTION macro should be set to 1 if the target platform
-has drift correction Otherwise it should be set to 0.
-*/
-#ifndef OSCL_CLOCK_HAS_DRIFT_CORRECTION
-#error "ERROR: OSCL_CLOCK_HAS_DRIFT_CORRECTION has to be defined to either 1 or 0"
-#endif
-
-#endif // OSCLCONFIG_UTIL_CHECK_H_INCLUDED
-
-
diff --git a/tools/depends/target/libplist/0001-dontbuildswig.patch b/tools/depends/target/libplist/0001-dontbuildswig.patch
deleted file mode 100644
index 7ff491d..0000000
--- a/tools/depends/target/libplist/0001-dontbuildswig.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/CMakeLists.txt	2011-08-18 21:45:33.000000000 +0200
-+++ b/CMakeLists.txt	2011-08-18 21:45:16.000000000 +0200
-@@ -36,7 +36,7 @@
- ADD_SUBDIRECTORY( test )
- 
- IF ( SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND )
--	ADD_SUBDIRECTORY( swig )
-+#	ADD_SUBDIRECTORY( swig )
- ENDIF ( SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND )
- 
- # add uninstall target
diff --git a/tools/depends/target/libplist/0002-fixclang.diff b/tools/depends/target/libplist/0002-fixclang.diff
deleted file mode 100644
index b4dd32a..0000000
--- a/tools/depends/target/libplist/0002-fixclang.diff
+++ /dev/null
@@ -1,57 +0,0 @@
---- /libcnary/node.c	2011-06-25 05:00:48.000000000 +0400
-+++ /libcnary/node.c	2013-03-19 20:34:11.000000000 +0400
-@@ -95,16 +95,17 @@
- }
- 
- int node_detach(node_t* parent, node_t* child) {
--	if (!parent || !child) return 0;
--	if (node_list_remove(parent->children, child) == 0) {
-+	if (!parent || !child) return -1;
-+	int index = node_list_remove(parent->children, child);
-+	if (index >= 0) {
- 		parent->count--;
- 	}
--	return 0;
-+	return index;
- }
- 
- int node_insert(node_t* parent, unsigned int index, node_t* child)
- {
--	if (!parent || !child) return;
-+	if (!parent || !child) return -1;
- 	child->isLeaf = TRUE;
- 	child->isRoot = FALSE;
- 	child->parent = parent;
-@@ -209,7 +210,7 @@
- node_t* node_copy_deep(node_t* node, copy_func_t copy_func)
- {
- 	if (!node) return NULL;
--	void *data;
-+	void *data = NULL;
- 	if (copy_func) {
- 		data = copy_func(node->data);
- 	}
- 	
---- /src/base64.c	2013-10-06 23:14:24.000000000 +0400
-+++ /src/base64.c	2013-03-19 20:34:11.000000000 +0400
-@@ -104,9 +104,9 @@
- 
- unsigned char *base64decode(const char *buf, size_t *size)
- {
--	if (!buf) return;
-+	if (!buf) return NULL;
- 	size_t len = strlen(buf);
--	if (len <= 0) return;
-+	if (len <= 0) return NULL;
- 	unsigned char *outbuf = (unsigned char*)malloc((len/4)*3+3);
- 
- 	unsigned char *line;
-@@ -114,7 +114,7 @@
- 
- 	line = (unsigned char*)strtok((char*)buf, "\r\n\t ");
- 	while (line) {
--		p+=base64decode_block(outbuf+p, line, strlen((char*)line));
-+		p+=base64decode_block(outbuf+p, (const char*)line, strlen((char*)line));
- 
- 		// get next line of base64 encoded block
- 		line = (unsigned char*)strtok(NULL, "\r\n\t ");
\ No newline at end of file
diff --git a/tools/depends/target/libplist/Makefile b/tools/depends/target/libplist/Makefile
deleted file mode 100644
index d830cef..0000000
--- a/tools/depends/target/libplist/Makefile
+++ /dev/null
@@ -1,54 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include 0001-dontbuildswig.patch Makefile
-
-# lib name, version
-LIBNAME=libplist
-VERSION=1.6
-SOURCE=$(LIBNAME)-$(VERSION)
-FILENAME=v$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-ifeq ($(findstring osx,x86-osx), osx)
-LIBDYLIB=$(PLATFORM)/build/src/libplist++.dylib
-else
-LIBDYLIB=$(PLATFORM)/build/src/libplist++.so
-endif
-CFLAGS+=-fvisibility=default
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p1 < ../0001-dontbuildswig.patch
-	cd $(PLATFORM); patch -p1 < ../0002-fixclang.diff
-	cd $(PLATFORM); sed -ie 's/TARGET_LINK_LIBRARIES( plist \(.*\))/TARGET_LINK_LIBRARIES( plist \1 z m)  /' src/CMakeLists.txt
-	cd $(PLATFORM); rm -rf build; mkdir -p build
-	cd $(PLATFORM)/build; $(CMAKE) VERBOSE=1 -DCMAKE_C_FLAGS="$(CFLAGS)" -DCMAKE_LD_FLAGS="$(LDFLAGS)" ..
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -j 1 -C $(PLATFORM)/build VERBOSE=1
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM)/build install
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/libplist.la $(PREFIX)/lib/libplist.so $(PREFIX)/lib/libplist.so.1
-	mv -f $(PREFIX)/lib/libplist.so.1.1.6 $(PREFIX)/lib/libplist.so
-	$(RPL) -e "libplist.so.1" "libplist.so\x00\x00" $(PREFIX)/lib/libplist.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libplist.so | grep ibrary
-
-	rm -f $(PREFIX)/lib/libplist++.la $(PREFIX)/lib/libplist++.so $(PREFIX)/lib/libplist++.so.1
-	mv -f $(PREFIX)/lib/libplist++.so.1.1.6 $(PREFIX)/lib/libplist++.so
-	$(RPL) -e "libplist++.so.1" "libplist++.so\x00\x00" $(PREFIX)/lib/libplist++.so
-	$(RPL) -e "libplist.so.1" "libplist.so\x00\x00" $(PREFIX)/lib/libplist++.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libplist++.so | grep ibrary
-endif
-	touch $@
-
-clean:
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libpng/Makefile b/tools/depends/target/libpng/Makefile
deleted file mode 100644
index 5467abf..0000000
--- a/tools/depends/target/libpng/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libpng
-#VERSION=1.4.4
-VERSION=1.5.13
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --disable-shared
-
-LIBDYLIB=$(PLATFORM)/.libs/$(LIBNAME)15.a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/librtmp/Makefile b/tools/depends/target/librtmp/Makefile
deleted file mode 100644
index 271873e..0000000
--- a/tools/depends/target/librtmp/Makefile
+++ /dev/null
@@ -1,55 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile prefix.patch
-
-# lib name, version
-LIBNAME=rtmpdump
-VERSION=e0056c51cc1710c9a44d2a2c4e2f344fa9cabcf4
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-# configuration settings
-LIBDYLIB=$(PLATFORM)/librtmp/librtmp.a
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-SYS=posix
-ifeq ($(OS),ios)
-  SYS=darwin
-endif
-ifeq ($(OS),osx)
-  SYS=darwin
-endif
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p0 < ../prefix.patch
-	cd $(PLATFORM); patch -p1 < ../librtmp-60-second-fix.patch
-	cd $(PLATFORM)/librtmp; patch -p0 < ../../libm.patch
-	sed -i -e 's|CC=|#CC=|' $(PLATFORM)/librtmp/Makefile
-	sed -i -e 's|LD=|#LD=|' $(PLATFORM)/librtmp/Makefile
-	sed -i -e 's|AR=|#AR=|' $(PLATFORM)/librtmp/Makefile
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE)  PREFIX=$(PREFIX) SYS=$(SYS) CC="$(CC)" LD="$(LD)" AR="$(AR)" XCFLAGS="$(CFLAGS)" XLDFLAGS="$(LDFLAGS)" -C $(PLATFORM)/librtmp
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) SYS=$(SYS) prefix=$(PREFIX) -C $(PLATFORM)/librtmp install
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/librtmp.la $(PREFIX)/lib/librtmp.so
-	mv -f $(PREFIX)/lib/librtmp.so.0 $(PREFIX)/lib/librtmp.so
-	$(RPL) -e "librtmp.so.0" "librtmp.so\x00\x00" $(PREFIX)/lib/librtmp.so
-	-$(READELF) --dynamic $(PREFIX)/lib/librtmp.so | grep ibrary
-endif
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/librtmp/libm.patch b/tools/depends/target/librtmp/libm.patch
deleted file mode 100644
index d86485b..0000000
--- a/tools/depends/target/librtmp/libm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- Makefile.old	2013-06-04 17:35:58.000000000 +0200
-+++ Makefile	2013-06-04 17:36:13.000000000 +0200
-@@ -25,7 +25,7 @@
- REQ_GNUTLS=gnutls
- REQ_OPENSSL=libssl,libcrypto
- LIBZ=-lz
--LIBS_posix=
-+LIBS_posix=-lm
- LIBS_darwin=
- LIBS_mingw=-lws2_32 -lwinmm -lgdi32
- LIB_GNUTLS=-lgnutls -lhogweed -lnettle -lgmp $(LIBZ)
diff --git a/tools/depends/target/librtmp/librtmp-60-second-fix.patch b/tools/depends/target/librtmp/librtmp-60-second-fix.patch
deleted file mode 100644
index 2914fc1..0000000
--- a/tools/depends/target/librtmp/librtmp-60-second-fix.patch
+++ /dev/null
@@ -1,1913 +0,0 @@
-diff --git a/librtmp/amf.c b/librtmp/amf.c
-index ce84f81..a25bc04 100644
---- a/librtmp/amf.c
-+++ b/librtmp/amf.c
-@@ -610,6 +610,9 @@ AMFProp_Decode(AMFObjectProperty *prop, const char *pBuffer, int nSize,
-       return -1;
-     }
- 
-+  if (*pBuffer == AMF_NULL)
-+    bDecodeName = 0;
-+
-   if (bDecodeName && nSize < 4)
-     {				/* at least name (length + at least 1 byte) and 1 byte of data */
-       RTMP_Log(RTMP_LOGDEBUG,
-@@ -801,8 +804,8 @@ AMFProp_Dump(AMFObjectProperty *prop)
-     }
-   else
-     {
--      name.av_val = "no-name.";
--      name.av_len = sizeof("no-name.") - 1;
-+      name.av_val = "no-name";
-+      name.av_len = sizeof("no-name") - 1;
-     }
-   if (name.av_len > 18)
-     name.av_len = 18;
-diff --git a/librtmp/dh.h b/librtmp/dh.h
-index 9959532..e29587b 100644
---- a/librtmp/dh.h
-+++ b/librtmp/dh.h
-@@ -61,7 +61,7 @@ static int MDH_generate_key(MDH *dh)
-   MP_set(&dh->ctx.P, dh->p);
-   MP_set(&dh->ctx.G, dh->g);
-   dh->ctx.len = 128;
--  dhm_make_public(&dh->ctx, 1024, out, 1, havege_rand, &RTMP_TLS_ctx->hs);
-+  dhm_make_public(&dh->ctx, 1024, out, 1, havege_random, &RTMP_TLS_ctx->hs);
-   MP_new(dh->pub_key);
-   MP_new(dh->priv_key);
-   MP_set(dh->pub_key, &dh->ctx.GX);
-diff --git a/librtmp/handshake.h b/librtmp/handshake.h
-index 0438486..102ba82 100644
---- a/librtmp/handshake.h
-+++ b/librtmp/handshake.h
-@@ -965,8 +965,18 @@ HandShake(RTMP * r, int FP9HandShake)
-     __FUNCTION__);
-   RTMP_LogHex(RTMP_LOGDEBUG, reply, RTMP_SIG_SIZE);
- #endif
--  if (!WriteN(r, (char *)reply, RTMP_SIG_SIZE))
--    return FALSE;
-+  if (r->Link.CombineConnectPacket)
-+    {
-+      char *HandshakeResponse = malloc(RTMP_SIG_SIZE);
-+      memcpy(HandshakeResponse, (char *) reply, RTMP_SIG_SIZE);
-+      r->Link.HandshakeResponse.av_val = HandshakeResponse;
-+      r->Link.HandshakeResponse.av_len = RTMP_SIG_SIZE;
-+    }
-+  else
-+    {
-+      if (!WriteN(r, (char *) reply, RTMP_SIG_SIZE))
-+        return FALSE;
-+    }
- 
-   /* 2nd part of handshake */
-   if (ReadN(r, (char *)serversig, RTMP_SIG_SIZE) != RTMP_SIG_SIZE)
-diff --git a/librtmp/hashswf.c b/librtmp/hashswf.c
-index 9f4e2c0..eeed34c 100644
---- a/librtmp/hashswf.c
-+++ b/librtmp/hashswf.c
-@@ -70,7 +70,7 @@ extern TLS_CTX RTMP_TLS_ctx;
- 
- #endif /* CRYPTO */
- 
--#define	AGENT	"Mozilla/5.0"
-+#define	AGENT	"Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0"
- 
- HTTPResult
- HTTP_get(struct HTTP_ctx *http, const char *url, HTTP_read_callback *cb)
-@@ -528,7 +528,7 @@ RTMP_HashSWF(const char *url, unsigned int *size, unsigned char *hash,
- 
- 	  if (strncmp(buf, "url: ", 5))
- 	    continue;
--	  if (strncmp(buf + 5, url, hlen))
-+	  if (strncmp(buf + 5, url, strlen(buf + 5) - 1))
- 	    continue;
- 	  r1 = strrchr(buf, '/');
- 	  i = strlen(r1);
-diff --git a/librtmp/log.c b/librtmp/log.c
-index 0012985..856e3e4 100644
---- a/librtmp/log.c
-+++ b/librtmp/log.c
-@@ -52,8 +52,8 @@ static void rtmp_log_default(int level, const char *format, va_list vl)
- 	vsnprintf(str, MAX_PRINT_LEN-1, format, vl);
- 
- 	/* Filter out 'no-name' */
--	if ( RTMP_debuglevel<RTMP_LOGALL && strstr(str, "no-name" ) != NULL )
--		return;
-+	if (RTMP_debuglevel < RTMP_LOGDEBUG && strstr(str, "no-name") != NULL)
-+	  return;
- 
- 	if ( !fmsg ) fmsg = stderr;
- 
-diff --git a/librtmp/rtmp.c b/librtmp/rtmp.c
-index 52d0254..bef37aa 100644
---- a/librtmp/rtmp.c
-+++ b/librtmp/rtmp.c
-@@ -27,6 +27,7 @@
- #include <stdlib.h>
- #include <string.h>
- #include <assert.h>
-+#include <math.h>
- 
- #include "rtmp_sys.h"
- #include "log.h"
-@@ -45,6 +46,7 @@ TLS_CTX RTMP_TLS_ctx;
- 
- #define RTMP_SIG_SIZE 1536
- #define RTMP_LARGE_HEADER_SIZE 12
-+#define HEX2BIN(a) (((a)&0x40)?((a)&0xf)+9:((a)&0xf))
- 
- static const int packetSize[] = { 12, 8, 4, 1 };
- 
-@@ -97,6 +99,9 @@ static int SendFCSubscribe(RTMP *r, AVal *subscribepath);
- static int SendPlay(RTMP *r);
- static int SendBytesReceived(RTMP *r);
- static int SendUsherToken(RTMP *r, AVal *usherToken);
-+static int SendInvoke(RTMP *r, AVal *Command, int queue);
-+static int SendGetStreamLength(RTMP *r);
-+static int strsplit(char *src, int srclen, char delim, char ***params);
- 
- #if 0				/* unused */
- static int SendBGHasStream(RTMP *r, double dId, AVal *playpath);
-@@ -259,6 +264,8 @@ RTMP_Init(RTMP *r)
-   r->m_fVideoCodecs = 252.0;
-   r->Link.timeout = 30;
-   r->Link.swfAge = 30;
-+  r->Link.CombineConnectPacket = TRUE;
-+  r->Link.ConnectPacket = FALSE;
- }
- 
- void
-@@ -337,6 +344,7 @@ RTMP_SetupStream(RTMP *r,
- 		 AVal *flashVer,
- 		 AVal *subscribepath,
- 		 AVal *usherToken,
-+		 AVal *WeebToken,
- 		 int dStart,
- 		 int dStop, int bLiveStream, long int timeout)
- {
-@@ -359,6 +367,8 @@ RTMP_SetupStream(RTMP *r,
-     RTMP_Log(RTMP_LOGDEBUG, "subscribepath : %s", subscribepath->av_val);
-   if (usherToken && usherToken->av_val)
-     RTMP_Log(RTMP_LOGDEBUG, "NetStream.Authenticate.UsherToken : %s", usherToken->av_val);
-+  if (WeebToken && WeebToken->av_val)
-+    RTMP_Log(RTMP_LOGDEBUG, "WeebToken: %s", WeebToken->av_val);
-   if (flashVer && flashVer->av_val)
-     RTMP_Log(RTMP_LOGDEBUG, "flashVer : %s", flashVer->av_val);
-   if (dStart > 0)
-@@ -426,6 +436,8 @@ RTMP_SetupStream(RTMP *r,
-     r->Link.subscribepath = *subscribepath;
-   if (usherToken && usherToken->av_len)
-     r->Link.usherToken = *usherToken;
-+  if (WeebToken && WeebToken->av_len)
-+    r->Link.WeebToken = *WeebToken;
-   r->Link.seekTime = dStart;
-   r->Link.stopTime = dStop;
-   if (bLiveStream)
-@@ -483,14 +495,22 @@ static struct urlopt {
-   	"Stream is live, no seeking possible" },
-   { AVC("subscribe"), OFF(Link.subscribepath), OPT_STR, 0,
-   	"Stream to subscribe to" },
--  { AVC("jtv"), OFF(Link.usherToken),          OPT_STR, 0,
--	"Justin.tv authentication token" },
--  { AVC("token"),     OFF(Link.token),	       OPT_STR, 0,
-+  { AVC("jtv"),       OFF(Link.usherToken),    OPT_STR, 0,
-+        "Justin.tv authentication token"},
-+  { AVC("weeb"),      OFF(Link.WeebToken),     OPT_STR, 0,
-+        "Weeb.tv authentication token"},
-+  { AVC("token"),     OFF(Link.token),         OPT_STR, 0,
-   	"Key for SecureToken response" },
-   { AVC("swfVfy"),    OFF(Link.lFlags),        OPT_BOOL, RTMP_LF_SWFV,
-   	"Perform SWF Verification" },
-   { AVC("swfAge"),    OFF(Link.swfAge),        OPT_INT, 0,
-   	"Number of days to use cached SWF hash" },
-+#ifdef CRYPTO
-+  { AVC("swfsize"),   OFF(Link.swfSize),       OPT_INT, 0,
-+        "Size of the decompressed SWF file"},
-+  { AVC("swfhash"),   OFF(Link.swfHash),       OPT_STR, 0,
-+        "SHA256 hash of the decompressed SWF file"},
-+#endif
-   { AVC("start"),     OFF(Link.seekTime),      OPT_INT, 0,
-   	"Stream start position in milliseconds" },
-   { AVC("stop"),      OFF(Link.stopTime),      OPT_INT, 0,
-@@ -751,9 +771,16 @@ int RTMP_SetupURL(RTMP *r, char *url)
-     }
- 
- #ifdef CRYPTO
--  if ((r->Link.lFlags & RTMP_LF_SWFV) && r->Link.swfUrl.av_len)
--    RTMP_HashSWF(r->Link.swfUrl.av_val, &r->Link.SWFSize,
--	  (unsigned char *)r->Link.SWFHash, r->Link.swfAge);
-+  RTMP_Log(RTMP_LOGDEBUG, "Khalsa: %d %d %s\n", r->Link.swfSize, r->Link.swfHash.av_len, r->Link.swfHash.av_val);
-+  if (r->Link.swfSize && r->Link.swfHash.av_len)
-+    {
-+      int i, j = 0;
-+      for (i = 0; i < r->Link.swfHash.av_len; i += 2)
-+        r->Link.SWFHash[j++] = (HEX2BIN(r->Link.swfHash.av_val[i]) << 4) | HEX2BIN(r->Link.swfHash.av_val[i + 1]);
-+      r->Link.SWFSize = (uint32_t) r->Link.swfSize;
-+    }
-+  else if ((r->Link.lFlags & RTMP_LF_SWFV) && r->Link.swfUrl.av_len)
-+    RTMP_HashSWF(r->Link.swfUrl.av_val, &r->Link.SWFSize, (unsigned char *) r->Link.SWFHash, r->Link.swfAge);
- #endif
- 
-   if (r->Link.port == 0)
-@@ -854,6 +881,8 @@ RTMP_Connect0(RTMP *r, struct sockaddr * service)
-   }
- 
-   setsockopt(r->m_sb.sb_socket, IPPROTO_TCP, TCP_NODELAY, (char *) &on, sizeof(on));
-+  if (r->Link.protocol & RTMP_FEATURE_HTTP)
-+    setsockopt(r->m_sb.sb_socket, SOL_SOCKET, SO_KEEPALIVE, (char *) &on, sizeof (on));
- 
-   return TRUE;
- }
-@@ -1308,8 +1337,24 @@ ReadN(RTMP *r, char *buffer, int n)
- 		  return 0;
- 		}
- 	    }
--	  if (r->m_resplen && !r->m_sb.sb_size)
--	    RTMPSockBuf_Fill(&r->m_sb);
-+
-+          // Try to fill the whole buffer. previous buffer needs to be consumed
-+          // completely before receiving new data.
-+          if (r->m_resplen && (r->m_sb.sb_size <= 0))
-+            {
-+              do
-+                {
-+                  nBytes = RTMPSockBuf_Fill(&r->m_sb);
-+                  if (nBytes == -1)
-+                    {
-+                      if (!r->m_sb.sb_timedout)
-+                        RTMP_Close(r);
-+                      return 0;
-+                    }
-+                }
-+              while (r->m_resplen && (r->m_sb.sb_size < r->m_resplen) && (nBytes > 0));
-+            }
-+
-           avail = r->m_sb.sb_size;
- 	  if (avail > r->m_resplen)
- 	    avail = r->m_resplen;
-@@ -1336,10 +1381,9 @@ ReadN(RTMP *r, char *buffer, int n)
- 	  r->m_sb.sb_size -= nRead;
- 	  nBytes = nRead;
- 	  r->m_nBytesIn += nRead;
--	  if (r->m_bSendCounter
--	      && r->m_nBytesIn > ( r->m_nBytesInSent + r->m_nClientBW / 10))
--	    if (!SendBytesReceived(r))
--	        return FALSE;
-+          if (r->m_bSendCounter && r->m_nBytesIn > (r->m_nBytesInSent + r->m_nClientBW / 10))
-+            if (!SendBytesReceived(r))
-+              return FALSE;
- 	}
-       /*RTMP_Log(RTMP_LOGDEBUG, "%s: %d bytes\n", __FUNCTION__, nBytes); */
- #ifdef _DEBUG
-@@ -1390,6 +1434,16 @@ WriteN(RTMP *r, const char *buffer, int n)
-     }
- #endif
- 
-+  if (r->Link.ConnectPacket)
-+    {
-+      char *ConnectPacket = malloc(r->Link.HandshakeResponse.av_len + n);
-+      memcpy(ConnectPacket, r->Link.HandshakeResponse.av_val, r->Link.HandshakeResponse.av_len);
-+      memcpy(ConnectPacket + r->Link.HandshakeResponse.av_len, ptr, n);
-+      ptr = ConnectPacket;
-+      n += r->Link.HandshakeResponse.av_len;
-+      r->Link.ConnectPacket = FALSE;
-+    }
-+
-   while (n > 0)
-     {
-       int nBytes;
-@@ -1455,6 +1509,9 @@ SendConnectPacket(RTMP *r, RTMPPacket *cp)
-   char pbuf[4096], *pend = pbuf + sizeof(pbuf);
-   char *enc;
- 
-+  if (r->Link.CombineConnectPacket)
-+    r->Link.ConnectPacket = TRUE;
-+
-   if (cp)
-     return RTMP_SendPacket(r, cp, TRUE);
- 
-@@ -1667,7 +1724,7 @@ SendUsherToken(RTMP *r, AVal *usherToken)
-   packet.m_hasAbsTimestamp = 0;
-   packet.m_body = pbuf + RTMP_MAX_HEADER_SIZE;
- 
--  RTMP_Log(RTMP_LOGDEBUG, "UsherToken: %s", usherToken->av_val);
-+  RTMP_Log(RTMP_LOGDEBUG, "UsherToken: %.*s", usherToken->av_len, usherToken->av_val);
-   enc = packet.m_body;
-   enc = AMF_EncodeString(enc, pend, &av_NetStream_Authenticate_UsherToken);
-   enc = AMF_EncodeNumber(enc, pend, ++r->m_numInvokes);
-@@ -2096,10 +2153,8 @@ SendPlay(RTMP *r)
-     enc = AMF_EncodeNumber(enc, pend, -1000.0);
-   else
-     {
--      if (r->Link.seekTime > 0.0)
--	enc = AMF_EncodeNumber(enc, pend, r->Link.seekTime);	/* resume from here */
--      else
--	enc = AMF_EncodeNumber(enc, pend, 0.0);	/*-2000.0);*/ /* recorded as default, -2000.0 is not reliable since that freezes the player if the stream is not found */
-+      if (r->Link.seekTime > 0.0 || r->Link.stopTime)
-+        enc = AMF_EncodeNumber(enc, pend, r->Link.seekTime); /* resume from here */
-     }
-   if (!enc)
-     return FALSE;
-@@ -2215,7 +2270,7 @@ RTMP_SendCtrl(RTMP *r, short nType, unsigned int nObject, unsigned int nTime)
-   int nSize;
-   char *buf;
- 
--  RTMP_Log(RTMP_LOGDEBUG, "sending ctrl. type: 0x%04x", (unsigned short)nType);
-+  RTMP_Log(RTMP_LOGDEBUG, "sending ctrl, type: 0x%04x", (unsigned short)nType);
- 
-   packet.m_nChannel = 0x02;	/* control channel (ping) */
-   packet.m_headerType = RTMP_PACKET_SIZE_MEDIUM;
-@@ -2247,8 +2302,8 @@ RTMP_SendCtrl(RTMP *r, short nType, unsigned int nObject, unsigned int nTime)
-     }
-   else if (nType == 0x1A)
-     {
--	  *buf = nObject & 0xff;
--	}
-+      *buf = nObject & 0xff;
-+    }
-   else
-     {
-       if (nSize > 2)
-@@ -2305,6 +2360,7 @@ AV_clear(RTMP_METHOD *vals, int num)
-   free(vals);
- }
- 
-+SAVC(onBWCheck);
- SAVC(onBWDone);
- SAVC(onFCSubscribe);
- SAVC(onFCUnsubscribe);
-@@ -2314,24 +2370,26 @@ SAVC(_error);
- SAVC(close);
- SAVC(code);
- SAVC(level);
-+SAVC(description);
- SAVC(onStatus);
- SAVC(playlist_ready);
- static const AVal av_NetStream_Failed = AVC("NetStream.Failed");
- static const AVal av_NetStream_Play_Failed = AVC("NetStream.Play.Failed");
--static const AVal av_NetStream_Play_StreamNotFound =
--AVC("NetStream.Play.StreamNotFound");
--static const AVal av_NetConnection_Connect_InvalidApp =
--AVC("NetConnection.Connect.InvalidApp");
-+static const AVal av_NetStream_Play_StreamNotFound = AVC("NetStream.Play.StreamNotFound");
-+static const AVal av_NetConnection_Connect_InvalidApp = AVC("NetConnection.Connect.InvalidApp");
- static const AVal av_NetStream_Play_Start = AVC("NetStream.Play.Start");
- static const AVal av_NetStream_Play_Complete = AVC("NetStream.Play.Complete");
- static const AVal av_NetStream_Play_Stop = AVC("NetStream.Play.Stop");
- static const AVal av_NetStream_Seek_Notify = AVC("NetStream.Seek.Notify");
- static const AVal av_NetStream_Pause_Notify = AVC("NetStream.Pause.Notify");
--static const AVal av_NetStream_Play_PublishNotify =
--AVC("NetStream.Play.PublishNotify");
--static const AVal av_NetStream_Play_UnpublishNotify =
--AVC("NetStream.Play.UnpublishNotify");
-+static const AVal av_NetStream_Play_PublishNotify = AVC("NetStream.Play.PublishNotify");
-+static const AVal av_NetStream_Play_UnpublishNotify = AVC("NetStream.Play.UnpublishNotify");
- static const AVal av_NetStream_Publish_Start = AVC("NetStream.Publish.Start");
-+static const AVal av_NetConnection_confStream = AVC("NetConnection.confStream");
-+static const AVal av_verifyClient = AVC("verifyClient");
-+static const AVal av_sendStatus = AVC("sendStatus");
-+static const AVal av_getStreamLength = AVC("getStreamLength");
-+static const AVal av_ReceiveCheckPublicStatus = AVC("ReceiveCheckPublicStatus");
- 
- /* Returns 0 for OK/Failed/error, 1 for 'Stop or Complete' */
- static int
-@@ -2341,6 +2399,11 @@ HandleInvoke(RTMP *r, const char *body, unsigned int nBodySize)
-   AVal method;
-   double txn;
-   int ret = 0, nRes;
-+  char pbuf[256], *pend = pbuf + sizeof (pbuf), *enc, **params = NULL;
-+  char *host = r->Link.hostname.av_len ? r->Link.hostname.av_val : "";
-+  char *pageUrl = r->Link.pageUrl.av_len ? r->Link.pageUrl.av_val : "";
-+  int param_count;
-+  AVal av_Command, av_Response;
-   if (body[0] != 0x02)		/* make sure it is a string method name we start with */
-     {
-       RTMP_Log(RTMP_LOGWARNING, "%s, Sanity failed. no string method in invoke packet",
-@@ -2402,23 +2465,137 @@ HandleInvoke(RTMP *r, const char *body, unsigned int nBodySize)
- 	      RTMP_SendServerBW(r);
- 	      RTMP_SendCtrl(r, 3, 0, 300);
- 	    }
--	  RTMP_SendCreateStream(r);
--
--	  if (!(r->Link.protocol & RTMP_FEATURE_WRITE))
--	    {
--	      /* Authenticate on Justin.tv legacy servers before sending FCSubscribe */
--	      if (r->Link.usherToken.av_len)
--	        SendUsherToken(r, &r->Link.usherToken);
--	      /* Send the FCSubscribe if live stream or if subscribepath is set */
--	      if (r->Link.subscribepath.av_len)
--	        SendFCSubscribe(r, &r->Link.subscribepath);
--	      else if (r->Link.lFlags & RTMP_LF_LIVE)
--	        SendFCSubscribe(r, &r->Link.playpath);
--	    }
--	}
-+          if (strstr(host, "tv-stream.to") || strstr(pageUrl, "tv-stream.to"))
-+            {
-+              static char auth[] = {'h', 0xC2, 0xA7, '4', 'j', 'h', 'H', '4', '3', 'd'};
-+              AVal av_auth;
-+              SAVC(requestAccess);
-+              av_auth.av_val = auth;
-+              av_auth.av_len = sizeof (auth);
-+
-+              enc = pbuf;
-+              enc = AMF_EncodeString(enc, pend, &av_requestAccess);
-+              enc = AMF_EncodeNumber(enc, pend, ++r->m_numInvokes);
-+              *enc++ = AMF_NULL;
-+              enc = AMF_EncodeString(enc, pend, &av_auth);
-+              av_Command.av_val = pbuf;
-+              av_Command.av_len = enc - pbuf;
-+              SendInvoke(r, &av_Command, FALSE);
-+
-+              SAVC(getConnectionCount);
-+              enc = pbuf;
-+              enc = AMF_EncodeString(enc, pend, &av_getConnectionCount);
-+              enc = AMF_EncodeNumber(enc, pend, ++r->m_numInvokes);
-+              *enc++ = AMF_NULL;
-+              av_Command.av_val = pbuf;
-+              av_Command.av_len = enc - pbuf;
-+              SendInvoke(r, &av_Command, FALSE);
-+
-+              SendGetStreamLength(r);
-+            }
-+          else if (strstr(host, "jampo.com.ua") || strstr(pageUrl, "jampo.com.ua"))
-+            {
-+              SendGetStreamLength(r);
-+            }
-+          else if (strstr(host, "streamscene.cc") || strstr(pageUrl, "streamscene.cc")
-+                   || strstr(host, "tsboard.tv") || strstr(pageUrl, "teamstream.in"))
-+            {
-+              SAVC(r);
-+              enc = pbuf;
-+              enc = AMF_EncodeString(enc, pend, &av_r);
-+              enc = AMF_EncodeNumber(enc, pend, ++r->m_numInvokes);
-+              *enc++ = AMF_NULL;
-+              av_Command.av_val = pbuf;
-+              av_Command.av_len = enc - pbuf;
-+              SendInvoke(r, &av_Command, FALSE);
-+
-+              SendGetStreamLength(r);
-+            }
-+          else if (strstr(host, "chaturbate.com") || strstr(pageUrl, "chaturbate.com"))
-+            {
-+              AVal av_ModelName;
-+              SAVC(CheckPublicStatus);
-+
-+              if (strlen(pageUrl) > 7)
-+                {
-+                  strsplit(pageUrl + 7, FALSE, '/', &params);
-+                  av_ModelName.av_val = params[1];
-+                  av_ModelName.av_len = strlen(params[1]);
-+
-+                  enc = pbuf;
-+                  enc = AMF_EncodeString(enc, pend, &av_CheckPublicStatus);
-+                  enc = AMF_EncodeNumber(enc, pend, ++r->m_numInvokes);
-+                  *enc++ = AMF_NULL;
-+                  enc = AMF_EncodeString(enc, pend, &av_ModelName);
-+                  av_Command.av_val = pbuf;
-+                  av_Command.av_len = enc - pbuf;
-+
-+                  SendInvoke(r, &av_Command, FALSE);
-+                }
-+              else
-+                {
-+                  RTMP_Log(RTMP_LOGERROR, "you must specify the pageUrl");
-+                  RTMP_Close(r);
-+                }
-+            }
-+          /* Weeb.tv specific authentication */
-+          else if (r->Link.WeebToken.av_len)
-+            {
-+              AVal av_Token, av_Username, av_Password;
-+              SAVC(determineAccess);
-+
-+              param_count = strsplit(r->Link.WeebToken.av_val, FALSE, ';', &params);
-+              if (param_count >= 1)
-+                {
-+                  av_Token.av_val = params[0];
-+                  av_Token.av_len = strlen(params[0]);
-+                }
-+              if (param_count >= 2)
-+                {
-+                  av_Username.av_val = params[1];
-+                  av_Username.av_len = strlen(params[1]);
-+                }
-+              if (param_count >= 3)
-+                {
-+                  av_Password.av_val = params[2];
-+                  av_Password.av_len = strlen(params[2]);
-+                }
-+
-+              enc = pbuf;
-+              enc = AMF_EncodeString(enc, pend, &av_determineAccess);
-+              enc = AMF_EncodeNumber(enc, pend, ++r->m_numInvokes);
-+              *enc++ = AMF_NULL;
-+              enc = AMF_EncodeString(enc, pend, &av_Token);
-+              enc = AMF_EncodeString(enc, pend, &av_Username);
-+              enc = AMF_EncodeString(enc, pend, &av_Password);
-+              av_Command.av_val = pbuf;
-+              av_Command.av_len = enc - pbuf;
-+
-+              RTMP_Log(RTMP_LOGDEBUG, "WeebToken: %s", r->Link.WeebToken.av_val);
-+              SendInvoke(r, &av_Command, FALSE);
-+            }
-+          else
-+            RTMP_SendCreateStream(r);
-+        }
-+      else if (AVMATCH(&methodInvoked, &av_getStreamLength))
-+        {
-+          RTMP_SendCreateStream(r);
-+        }
-       else if (AVMATCH(&methodInvoked, &av_createStream))
--	{
--	  r->m_stream_id = (int)AMFProp_GetNumber(AMF_GetProp(&obj, NULL, 3));
-+        {
-+          r->m_stream_id = (int) AMFProp_GetNumber(AMF_GetProp(&obj, NULL, 3));
-+
-+          if (!(r->Link.protocol & RTMP_FEATURE_WRITE))
-+            {
-+              /* Authenticate on Justin.tv legacy servers before sending FCSubscribe */
-+              if (r->Link.usherToken.av_len)
-+                SendUsherToken(r, &r->Link.usherToken);
-+              /* Send the FCSubscribe if live stream or if subscribepath is set */
-+              if (r->Link.subscribepath.av_len)
-+                SendFCSubscribe(r, &r->Link.subscribepath);
-+              else if ((r->Link.lFlags & RTMP_LF_LIVE) && (!r->Link.WeebToken.av_len))
-+                SendFCSubscribe(r, &r->Link.playpath);
-+            }
- 
- 	  if (r->Link.protocol & RTMP_FEATURE_WRITE)
- 	    {
-@@ -2441,7 +2618,7 @@ HandleInvoke(RTMP *r, const char *body, unsigned int nBodySize)
-     }
-   else if (AVMATCH(&method, &av_onBWDone))
-     {
--	  if (!r->m_nBWCheckCounter)
-+      if (!r->m_nBWCheckCounter)
-         SendCheckBW(r);
-     }
-   else if (AVMATCH(&method, &av_onFCSubscribe))
-@@ -2457,7 +2634,7 @@ HandleInvoke(RTMP *r, const char *body, unsigned int nBodySize)
-     {
-       SendPong(r, txn);
-     }
--  else if (AVMATCH(&method, &av__onbwcheck))
-+  else if (AVMATCH(&method, &av__onbwcheck) || AVMATCH(&method, &av_onBWCheck))
-     {
-       SendCheckBWResult(r, txn);
-     }
-@@ -2473,20 +2650,63 @@ HandleInvoke(RTMP *r, const char *body, unsigned int nBodySize)
-     }
-   else if (AVMATCH(&method, &av__error))
-     {
--      RTMP_Log(RTMP_LOGERROR, "rtmp server sent error");
-+      double code = 0;
-+      unsigned int parsedPort;
-+      AMFObject obj2;
-+      AMFObjectProperty p;
-+      AVal redirect;
-+      SAVC(ex);
-+      SAVC(redirect);
-+
-+      AMFProp_GetObject(AMF_GetProp(&obj, NULL, 3), &obj2);
-+      if (RTMP_FindFirstMatchingProperty(&obj2, &av_ex, &p))
-+        {
-+          AMFProp_GetObject(&p, &obj2);
-+          if (RTMP_FindFirstMatchingProperty(&obj2, &av_code, &p))
-+            code = AMFProp_GetNumber(&p);
-+          if (code == 302 && RTMP_FindFirstMatchingProperty(&obj2, &av_redirect, &p))
-+            {
-+              AMFProp_GetString(&p, &redirect);
-+              r->Link.redirected = TRUE;
-+
-+              char *url = malloc(redirect.av_len + sizeof ("/playpath"));
-+              strncpy(url, redirect.av_val, redirect.av_len);
-+              url[redirect.av_len] = '\0';
-+              r->Link.tcUrl.av_val = url;
-+              r->Link.tcUrl.av_len = redirect.av_len;
-+              strcat(url, "/playpath");
-+              RTMP_ParseURL(url, &r->Link.protocol, &r->Link.hostname, &parsedPort, &r->Link.playpath0, &r->Link.app);
-+              r->Link.port = parsedPort;
-+            }
-+        }
-+      if (r->Link.redirected)
-+        RTMP_Log(RTMP_LOGINFO, "rtmp server sent redirect");
-+      else
-+        RTMP_Log(RTMP_LOGERROR, "rtmp server sent error");
-     }
-   else if (AVMATCH(&method, &av_close))
-     {
--      RTMP_Log(RTMP_LOGERROR, "rtmp server requested close");
--      RTMP_Close(r);
-+      if (r->Link.redirected)
-+        {
-+          RTMP_Log(RTMP_LOGINFO, "trying to connect with redirected url");
-+          RTMP_Close(r);
-+          r->Link.redirected = FALSE;
-+          RTMP_Connect(r, NULL);
-+        }
-+      else
-+        {
-+          RTMP_Log(RTMP_LOGERROR, "rtmp server requested close");
-+          RTMP_Close(r);
-+        }
-     }
-   else if (AVMATCH(&method, &av_onStatus))
-     {
-       AMFObject obj2;
--      AVal code, level;
-+      AVal code, level, description;
-       AMFProp_GetObject(AMF_GetProp(&obj, NULL, 3), &obj2);
-       AMFProp_GetString(AMF_GetProp(&obj2, &av_code, -1), &code);
-       AMFProp_GetString(AMF_GetProp(&obj2, &av_level, -1), &level);
-+      AMFProp_GetString(AMF_GetProp(&obj2, &av_description, -1), &description);
- 
-       RTMP_Log(RTMP_LOGDEBUG, "%s, onStatus: %s", __FUNCTION__, code.av_val);
-       if (AVMATCH(&code, &av_NetStream_Failed)
-@@ -2550,6 +2770,45 @@ HandleInvoke(RTMP *r, const char *body, unsigned int nBodySize)
- 	    r->m_pausing = 3;
- 	  }
- 	}
-+
-+      else if (AVMATCH(&code, &av_NetConnection_confStream))
-+        {
-+#ifdef CRYPTO
-+          static const char hexdig[] = "0123456789abcdef";
-+          SAVC(cf_stream);
-+          int i;
-+          char hash_hex[33] = {0};
-+          unsigned char hash[16];
-+          AVal auth;
-+          param_count = strsplit(description.av_val, description.av_len, ':', &params);
-+          if (param_count >= 3)
-+            {
-+              char *buf = malloc(strlen(params[0]) + r->Link.playpath.av_len + 1);
-+              strcpy(buf, params[0]);
-+              strncat(buf, r->Link.playpath.av_val, r->Link.playpath.av_len);
-+              md5_hash((unsigned char *) buf, strlen(buf), hash);
-+              for (i = 0; i < 16; i++)
-+                {
-+                  hash_hex[i * 2] = hexdig[0x0f & (hash[i] >> 4)];
-+                  hash_hex[i * 2 + 1] = hexdig[0x0f & (hash[i])];
-+                }
-+              auth.av_val = &hash_hex[atoi(params[1]) - 1];
-+              auth.av_len = atoi(params[2]);
-+              RTMP_Log(RTMP_LOGDEBUG, "Khalsa: %.*s", auth.av_len, auth.av_val);
-+
-+              enc = pbuf;
-+              enc = AMF_EncodeString(enc, pend, &av_cf_stream);
-+              enc = AMF_EncodeNumber(enc, pend, txn);
-+              *enc++ = AMF_NULL;
-+              enc = AMF_EncodeString(enc, pend, &auth);
-+              av_Command.av_val = pbuf;
-+              av_Command.av_len = enc - pbuf;
-+
-+              SendInvoke(r, &av_Command, FALSE);
-+              free(buf);
-+            }
-+#endif
-+        }
-     }
-   else if (AVMATCH(&method, &av_playlist_ready))
-     {
-@@ -2563,6 +2822,74 @@ HandleInvoke(RTMP *r, const char *body, unsigned int nBodySize)
- 	    }
-         }
-     }
-+  else if (AVMATCH(&method, &av_verifyClient))
-+    {
-+      double VerificationNumber = AMFProp_GetNumber(AMF_GetProp(&obj, NULL, 3));
-+      RTMP_Log(RTMP_LOGDEBUG, "VerificationNumber: %.2f", VerificationNumber);
-+
-+      enc = pbuf;
-+      enc = AMF_EncodeString(enc, pend, &av__result);
-+      enc = AMF_EncodeNumber(enc, pend, txn);
-+      *enc++ = AMF_NULL;
-+      enc = AMF_EncodeNumber(enc, pend, exp(atan(sqrt(VerificationNumber))) + 1);
-+      av_Response.av_val = pbuf;
-+      av_Response.av_len = enc - pbuf;
-+
-+      AMF_Decode(&obj, av_Response.av_val, av_Response.av_len, FALSE);
-+      AMF_Dump(&obj);
-+      SendInvoke(r, &av_Response, FALSE);
-+    }
-+  else if (AVMATCH(&method, &av_sendStatus))
-+    {
-+      if (r->Link.WeebToken.av_len)
-+        {
-+          AVal av_Authorized = AVC("User.hasAccess");
-+          AVal av_TransferLimit = AVC("User.noPremium.limited");
-+          AVal av_UserLimit = AVC("User.noPremium.tooManyUsers");
-+          AVal av_TimeLeft = AVC("timeLeft");
-+          AVal av_Status, av_ReconnectionTime;
-+
-+          AMFObject Status;
-+          AMFProp_GetObject(AMF_GetProp(&obj, NULL, 3), &Status);
-+          AMFProp_GetString(AMF_GetProp(&Status, &av_code, -1), &av_Status);
-+          RTMP_Log(RTMP_LOGINFO, "%.*s", av_Status.av_len, av_Status.av_val);
-+          if (AVMATCH(&av_Status, &av_Authorized))
-+            {
-+              RTMP_Log(RTMP_LOGINFO, "Weeb.tv authentication successful");
-+              RTMP_SendCreateStream(r);
-+            }
-+          else if (AVMATCH(&av_Status, &av_UserLimit))
-+            {
-+              RTMP_Log(RTMP_LOGINFO, "No free slots available");
-+              RTMP_Close(r);
-+            }
-+          else if (AVMATCH(&av_Status, &av_TransferLimit))
-+            {
-+              AMFProp_GetString(AMF_GetProp(&Status, &av_TimeLeft, -1), &av_ReconnectionTime);
-+              RTMP_Log(RTMP_LOGINFO, "Viewing limit exceeded. try again in %.*s minutes.", av_ReconnectionTime.av_len, av_ReconnectionTime.av_val);
-+              RTMP_Close(r);
-+            }
-+        }
-+    }
-+  else if (AVMATCH(&method, &av_ReceiveCheckPublicStatus))
-+    {
-+      AVal Status;
-+      AMFProp_GetString(AMF_GetProp(&obj, NULL, 3), &Status);
-+      strsplit(Status.av_val, Status.av_len, ',', &params);
-+      if (strcmp(params[0], "0") == 0)
-+        {
-+          RTMP_Log(RTMP_LOGINFO, "Model status is %s", params[1]);
-+          RTMP_Close(r);
-+        }
-+      else
-+        {
-+          AVal Playpath;
-+          Playpath.av_val = params[1];
-+          Playpath.av_len = strlen(params[1]);
-+          RTMP_ParsePlaypath(&Playpath, &r->Link.playpath);
-+          RTMP_SendCreateStream(r);
-+        }
-+    }
-   else
-     {
- 
-@@ -2748,7 +3075,7 @@ HandleCtrl(RTMP *r, const RTMPPacket *packet)
-   unsigned int tmp;
-   if (packet->m_body && packet->m_nBodySize >= 2)
-     nType = AMF_DecodeInt16(packet->m_body);
--  RTMP_Log(RTMP_LOGDEBUG, "%s, received ctrl. type: %d, len: %d", __FUNCTION__, nType,
-+  RTMP_Log(RTMP_LOGDEBUG, "%s, received ctrl, type: %d, len: %d", __FUNCTION__, nType,
-       packet->m_nBodySize);
-   /*RTMP_LogHex(packet.m_body, packet.m_nBodySize); */
- 
-@@ -2856,15 +3183,15 @@ HandleCtrl(RTMP *r, const RTMPPacket *packet)
-       RTMP_Log(RTMP_LOGDEBUG, "%s, SWFVerification ping received: ", __FUNCTION__);
-       if (packet->m_nBodySize > 2 && packet->m_body[2] > 0x01)
- 	{
--	  RTMP_Log(RTMP_LOGERROR,
--            "%s: SWFVerification Type %d request not supported! Patches welcome...",
--	    __FUNCTION__, packet->m_body[2]);
-+          RTMP_Log(RTMP_LOGERROR,
-+                   "%s: SWFVerification Type %d request not supported, attempting to use SWFVerification Type 1! Patches welcome...",
-+                   __FUNCTION__, packet->m_body[2]);
- 	}
- #ifdef CRYPTO
-       /*RTMP_LogHex(packet.m_body, packet.m_nBodySize); */
- 
-       /* respond with HMAC SHA256 of decompressed SWF, key is the 30byte player key, also the last 30 bytes of the server handshake are applied */
--      else if (r->Link.SWFSize)
-+      if (r->Link.SWFSize)
- 	{
- 	  RTMP_SendCtrl(r, 0x1B, 0, 0);
- 	}
-@@ -3142,8 +3469,18 @@ HandShake(RTMP *r, int FP9HandShake)
-       serversig[4], serversig[5], serversig[6], serversig[7]);
- 
-   /* 2nd part of handshake */
--  if (!WriteN(r, serversig, RTMP_SIG_SIZE))
--    return FALSE;
-+  if (r->Link.CombineConnectPacket)
-+    {
-+      char *HandshakeResponse = malloc(RTMP_SIG_SIZE);
-+      memcpy(HandshakeResponse, (char *) serversig, RTMP_SIG_SIZE);
-+      r->Link.HandshakeResponse.av_val = HandshakeResponse;
-+      r->Link.HandshakeResponse.av_len = RTMP_SIG_SIZE;
-+    }
-+  else
-+    {
-+      if (!WriteN(r, (char *) serversig, RTMP_SIG_SIZE))
-+        return FALSE;
-+    }
- 
-   if (ReadN(r, serversig, RTMP_SIG_SIZE) != RTMP_SIG_SIZE)
-     return FALSE;
-@@ -3709,12 +4046,11 @@ HTTP_Post(RTMP *r, RTMPTCmd cmd, const char *buf, int len)
-   char hbuf[512];
-   int hlen = snprintf(hbuf, sizeof(hbuf), "POST /%s%s/%d HTTP/1.1\r\n"
-     "Host: %.*s:%d\r\n"
--    "Accept: */*\r\n"
--    "User-Agent: Shockwave Flash\n"
--    "Connection: Keep-Alive\n"
-+    "User-Agent: Shockwave Flash\r\n"
-+    "Connection: Keep-Alive\r\n"
-     "Cache-Control: no-cache\r\n"
--    "Content-type: application/x-fcs\r\n"
--    "Content-length: %d\r\n\r\n", RTMPT_cmds[cmd],
-+    "Content-Type: application/x-fcs\r\n"
-+    "Content-Length: %d\r\n\r\n", RTMPT_cmds[cmd],
-     r->m_clientID.av_val ? r->m_clientID.av_val : "",
-     r->m_msgCounter, r->Link.hostname.av_len, r->Link.hostname.av_val,
-     r->Link.port, len);
-@@ -3749,6 +4085,14 @@ HTTP_read(RTMP *r, int fill)
-   if (!ptr)
-     return -1;
-   ptr += 4;
-+  int resplen = r->m_sb.sb_size - (ptr - r->m_sb.sb_start);
-+  if (hlen < 4096)
-+    while (resplen < hlen)
-+      {
-+        if (RTMPSockBuf_Fill(&r->m_sb) == -1)
-+          return -1;
-+        resplen = r->m_sb.sb_size - (ptr - r->m_sb.sb_start);
-+      }
-   r->m_sb.sb_size -= ptr - r->m_sb.sb_start;
-   r->m_sb.sb_start = ptr;
-   r->m_unackd--;
-@@ -4301,13 +4645,21 @@ fail:
- 		  r->m_read.status = nRead;
- 		  goto fail;
- 		}
--	      /* buffer overflow, fix buffer and give up */
--	      if (r->m_read.buf < mybuf || r->m_read.buf > end) {
--	      	mybuf = realloc(mybuf, cnt + nRead);
--		memcpy(mybuf+cnt, r->m_read.buf, nRead);
--		r->m_read.buf = mybuf+cnt+nRead;
--	        break;
--	      }
-+              /* buffer overflow, fix buffer and give up */
-+              if (r->m_read.buf < mybuf || r->m_read.buf > end)
-+                {
-+                  if (!cnt)
-+                    {
-+                      mybuf = realloc(mybuf, sizeof (flvHeader) + cnt + nRead);
-+                      memcpy(mybuf, flvHeader, sizeof (flvHeader));
-+                      cnt += sizeof (flvHeader);
-+                    }
-+                  else
-+                    mybuf = realloc(mybuf, cnt + nRead);
-+                  memcpy(mybuf + cnt, r->m_read.buf, nRead);
-+                  r->m_read.buf = mybuf + cnt + nRead;
-+                  break;
-+                }
- 	      cnt += nRead;
- 	      r->m_read.buf += nRead;
- 	      r->m_read.buflen -= nRead;
-@@ -4458,3 +4810,90 @@ RTMP_Write(RTMP *r, const char *buf, int size)
-     }
-   return size+s2;
- }
-+
-+static int
-+SendInvoke(RTMP *r, AVal *Command, int queue)
-+{
-+  RTMPPacket packet;
-+  char pbuf[512], *enc;
-+
-+  packet.m_nChannel = 0x03; /* control channel (invoke) */
-+  packet.m_headerType = RTMP_PACKET_SIZE_MEDIUM;
-+  packet.m_packetType = RTMP_PACKET_TYPE_INVOKE;
-+  packet.m_nTimeStamp = 0;
-+  packet.m_nInfoField2 = 0;
-+  packet.m_hasAbsTimestamp = 0;
-+  packet.m_body = pbuf + RTMP_MAX_HEADER_SIZE;
-+
-+  enc = packet.m_body;
-+  if (Command->av_len)
-+    {
-+      memcpy(enc, Command->av_val, Command->av_len);
-+      enc += Command->av_len;
-+    }
-+  else
-+    return FALSE;
-+  packet.m_nBodySize = enc - packet.m_body;
-+
-+  return RTMP_SendPacket(r, &packet, queue);
-+}
-+
-+static int
-+strsplit(char *src, int srclen, char delim, char ***params)
-+{
-+  char *sptr, *srcbeg, *srcend, *dstr;
-+  int count = 1, i = 0, len = 0;
-+
-+  if (src == NULL)
-+    return 0;
-+  if (!srclen)
-+    srclen = strlen(src);
-+  srcbeg = src;
-+  srcend = srcbeg + srclen;
-+  sptr = srcbeg;
-+
-+  /* count the delimiters */
-+  while (sptr < srcend)
-+    {
-+      if (*sptr++ == delim)
-+        count++;
-+    }
-+  sptr = srcbeg;
-+  *params = calloc(count, sizeof (size_t));
-+  char **param = *params;
-+
-+  for (i = 0; i < (count - 1); i++)
-+    {
-+      dstr = strchr(sptr, delim);
-+      len = dstr - sptr;
-+      param[i] = calloc(len + 1, sizeof (char));
-+      strncpy(param[i], sptr, len);
-+      sptr += len + 1;
-+    }
-+
-+  /* copy the last string */
-+  if (sptr <= srcend)
-+    {
-+      len = srclen - (sptr - srcbeg);
-+      param[i] = calloc(len + 1, sizeof (char));
-+      strncpy(param[i], sptr, len);
-+    }
-+  return count;
-+}
-+
-+static int
-+SendGetStreamLength(RTMP *r)
-+{
-+  char pbuf[256], *pend = pbuf + sizeof (pbuf), *enc;
-+  AVal av_Command;
-+
-+  enc = pbuf;
-+  enc = AMF_EncodeString(enc, pend, &av_getStreamLength);
-+  enc = AMF_EncodeNumber(enc, pend, ++r->m_numInvokes);
-+  *enc++ = AMF_NULL;
-+  enc = AMF_EncodeString(enc, pend, &r->Link.playpath);
-+  av_Command.av_val = pbuf;
-+  av_Command.av_len = enc - pbuf;
-+
-+  return SendInvoke(r, &av_Command, TRUE);
-+}
-diff --git a/librtmp/rtmp.h b/librtmp/rtmp.h
-index 6b2ae5b..411b488 100644
---- a/librtmp/rtmp.h
-+++ b/librtmp/rtmp.h
-@@ -150,12 +150,14 @@ extern "C"
-     AVal playpath;	/* passed in explicitly */
-     AVal tcUrl;
-     AVal swfUrl;
-+    AVal swfHash;
-     AVal pageUrl;
-     AVal app;
-     AVal auth;
-     AVal flashVer;
-     AVal subscribepath;
-     AVal usherToken;
-+    AVal WeebToken;
-     AVal token;
-     AMFObject extras;
-     int edepth;
-@@ -172,9 +174,15 @@ extern "C"
-     int lFlags;
- 
-     int swfAge;
-+    int swfSize;
- 
-     int protocol;
-+    int ConnectPacket;
-+    int CombineConnectPacket;
-+    int redirected;
-     int timeout;		/* connection timeout in seconds */
-+    AVal Extras;
-+    AVal HandshakeResponse;
- 
-     unsigned short socksport;
-     unsigned short port;
-@@ -299,6 +307,7 @@ extern "C"
- 			AVal *flashVer,
- 			AVal *subscribepath,
- 			AVal *usherToken,
-+			AVal *WeebToken,
- 			int dStart,
- 			int dStop, int bLiveStream, long int timeout);
- 
-diff --git a/librtmp/rtmp_sys.h b/librtmp/rtmp_sys.h
-index c3fd4a6..1bfb562 100644
---- a/librtmp/rtmp_sys.h
-+++ b/librtmp/rtmp_sys.h
-@@ -64,6 +64,7 @@
- #include <polarssl/net.h>
- #include <polarssl/ssl.h>
- #include <polarssl/havege.h>
-+#include <polarssl/md5.h>
- typedef struct tls_ctx {
- 	havege_state hs;
- 	ssl_session ssn;
-@@ -71,7 +72,7 @@ typedef struct tls_ctx {
- #define TLS_CTX tls_ctx *
- #define TLS_client(ctx,s)	s = malloc(sizeof(ssl_context)); ssl_init(s);\
- 	ssl_set_endpoint(s, SSL_IS_CLIENT); ssl_set_authmode(s, SSL_VERIFY_NONE);\
--	ssl_set_rng(s, havege_rand, &ctx->hs);\
-+	ssl_set_rng(s, havege_random, &ctx->hs);\
- 	ssl_set_ciphersuites(s, ssl_default_ciphersuites);\
- 	ssl_set_session(s, 1, 600, &ctx->ssn)
- #define TLS_setfd(s,fd)	ssl_set_bio(s, net_recv, &fd, net_send, &fd)
-@@ -80,6 +81,7 @@ typedef struct tls_ctx {
- #define TLS_write(s,b,l)	ssl_write(s,(unsigned char *)b,l)
- #define TLS_shutdown(s)	ssl_close_notify(s)
- #define TLS_close(s)	ssl_free(s); free(s)
-+#define md5_hash(i, ilen, o) md5(i, ilen, o)
- 
- #elif defined(USE_GNUTLS)
- #include <gnutls/gnutls.h>
-@@ -95,6 +97,8 @@ typedef struct tls_ctx {
- #define TLS_write(s,b,l)	gnutls_record_send(s,b,l)
- #define TLS_shutdown(s)	gnutls_bye(s, GNUTLS_SHUT_RDWR)
- #define TLS_close(s)	gnutls_deinit(s)
-+#define md5_hash(i, ilen, o) gnutls_digest_algorithm_t algorithm = GNUTLS_DIG_MD5;\
-+                             gnutls_hash_fast(algorithm, i, ilen, o);
- 
- #else	/* USE_OPENSSL */
- #define TLS_CTX	SSL_CTX *
-@@ -105,6 +109,7 @@ typedef struct tls_ctx {
- #define TLS_write(s,b,l)	SSL_write(s,b,l)
- #define TLS_shutdown(s)	SSL_shutdown(s)
- #define TLS_close(s)	SSL_free(s)
-+#define md5_hash(i, ilen, o) MD5(i, ilen, o)
- 
- #endif
- #endif
-diff --git a/rtmpdump.c b/rtmpdump.c
-index e52f7d4..7bb0890 100644
---- a/rtmpdump.c
-+++ b/rtmpdump.c
-@@ -701,6 +701,8 @@ void usage(char *prog)
- 	  RTMP_LogPrintf
- 	    ("--jtv|-j JSON           Authentication token for Justin.tv legacy servers\n");
- 	  RTMP_LogPrintf
-+	    ("--weeb|-J string        Authentication token for weeb.tv servers\n");
-+	  RTMP_LogPrintf
- 	    ("--hashes|-#             Display progress with hashes, not with the byte counter\n");
- 	  RTMP_LogPrintf
- 	    ("--buffer|-b             Buffer time in milliseconds (default: %u)\n",
-@@ -747,7 +749,8 @@ main(int argc, char **argv)
-   AVal hostname = { 0, 0 };
-   AVal playpath = { 0, 0 };
-   AVal subscribepath = { 0, 0 };
--  AVal usherToken = { 0, 0 }; //Justin.tv auth token
-+  AVal usherToken = { 0, 0 }; // Justin.tv auth token
-+  AVal WeebToken = { 0, 0 };  // Weeb.tv auth token
-   int port = -1;
-   int protocol = RTMP_PROTOCOL_UNDEFINED;
-   int retries = 0;
-@@ -852,12 +855,13 @@ main(int argc, char **argv)
-     {"quiet", 0, NULL, 'q'},
-     {"verbose", 0, NULL, 'V'},
-     {"jtv", 1, NULL, 'j'},
-+    {"weeb", 1, NULL, 'J'},
-     {0, 0, 0, 0}
-   };
- 
-   while ((opt =
- 	  getopt_long(argc, argv,
--		      "hVveqzRr:s:t:p:a:b:f:o:u:C:n:c:l:y:Ym:k:d:A:B:T:w:x:W:X:S:#j:",
-+		      "hVveqzr:s:t:p:a:b:f:o:u:C:n:c:l:y:Ym:k:d:A:B:T:w:x:W:X:S:#j:J:",
- 		      longopts, NULL)) != -1)
-     {
-       switch (opt)
-@@ -1070,6 +1074,9 @@ main(int argc, char **argv)
- 	case 'j':
- 	  STR2AVAL(usherToken, optarg);
- 	  break;
-+	case 'J':
-+	  STR2AVAL(WeebToken, optarg);
-+	  break;
- 	default:
- 	  RTMP_LogPrintf("unknown option: %c\n", opt);
- 	  usage(argv[0]);
-@@ -1161,14 +1168,14 @@ main(int argc, char **argv)
- 
-   if (tcUrl.av_len == 0)
-     {
--	  tcUrl.av_len = strlen(RTMPProtocolStringsLower[protocol]) +
--	  	hostname.av_len + app.av_len + sizeof("://:65535/");
-+      tcUrl.av_len = strlen(RTMPProtocolStringsLower[protocol]) +
-+              hostname.av_len + app.av_len + sizeof ("://:65535/");
-       tcUrl.av_val = (char *) malloc(tcUrl.av_len);
--	  if (!tcUrl.av_val)
--	    return RD_FAILED;
-+      if (!tcUrl.av_val)
-+        return RD_FAILED;
-       tcUrl.av_len = snprintf(tcUrl.av_val, tcUrl.av_len, "%s://%.*s:%d/%.*s",
--	  	   RTMPProtocolStringsLower[protocol], hostname.av_len,
--		   hostname.av_val, port, app.av_len, app.av_val);
-+                              RTMPProtocolStringsLower[protocol], hostname.av_len,
-+                              hostname.av_val, port, app.av_len, app.av_val);
-     }
- 
-   int first = 1;
-@@ -1187,7 +1194,7 @@ main(int argc, char **argv)
- 
-   RTMP_SetupStream(&rtmp, protocol, &hostname, port, &sockshost, &playpath,
- 		   &tcUrl, &swfUrl, &pageUrl, &app, &auth, &swfHash, swfSize,
--		   &flashVer, &subscribepath, &usherToken, dSeek, dStopOffset, bLiveStream, timeout);
-+		   &flashVer, &subscribepath, &usherToken, &WeebToken, dSeek, dStopOffset, bLiveStream, timeout);
- 
-   /* Try to keep the stream moving if it pauses on us */
-   if (!bLiveStream && !bRealtimeStream && !(protocol & RTMP_FEATURE_HTTP))
-diff --git a/rtmpgw.c b/rtmpgw.c
-index 0cf56bb..cd4396d 100644
---- a/rtmpgw.c
-+++ b/rtmpgw.c
-@@ -95,7 +95,8 @@ typedef struct
-   AVal flashVer;
-   AVal token;
-   AVal subscribepath;
--  AVal usherToken; //Justin.tv auth token
-+  AVal usherToken; // Justin.tv auth token
-+  AVal WeebToken;  // Weeb.tv auth token
-   AVal sockshost;
-   AMFObject extras;
-   int edepth;
-@@ -553,7 +554,7 @@ void processTCPrequest(STREAMING_SERVER * server,	// server socket and state (ou
-   RTMP_Init(&rtmp);
-   RTMP_SetBufferMS(&rtmp, req.bufferTime);
-   RTMP_SetupStream(&rtmp, req.protocol, &req.hostname, req.rtmpport, &req.sockshost,
--		   &req.playpath, &req.tcUrl, &req.swfUrl, &req.pageUrl, &req.app, &req.auth, &req.swfHash, req.swfSize, &req.flashVer, &req.subscribepath, &req.usherToken, dSeek, req.dStopOffset,
-+		   &req.playpath, &req.tcUrl, &req.swfUrl, &req.pageUrl, &req.app, &req.auth, &req.swfHash, req.swfSize, &req.flashVer, &req.subscribepath, &req.usherToken, &req.WeebToken, dSeek, req.dStopOffset,
- 		   req.bLiveStream, req.timeout);
-   /* backward compatibility, we always sent this as true before */
-   if (req.auth.av_len)
-@@ -957,6 +958,9 @@ ParseOption(char opt, char *arg, RTMP_REQUEST * req)
-     case 'j':
-       STR2AVAL(req->usherToken, arg);
-       break;
-+    case 'J':
-+      STR2AVAL(req->WeebToken, arg);
-+      break;
-     default:
-       RTMP_LogPrintf("unknown option: %c, arg: %s\n", opt, arg);
-       return FALSE;
-@@ -1028,6 +1032,7 @@ main(int argc, char **argv)
-     {"quiet", 0, NULL, 'q'},
-     {"verbose", 0, NULL, 'V'},
-     {"jtv", 1, NULL, 'j'},
-+    {"weeb", 1, NULL, 'J'},
-     {0, 0, 0, 0}
-   };
- 
-@@ -1040,7 +1045,7 @@ main(int argc, char **argv)
- 
-   while ((opt =
- 	  getopt_long(argc, argv,
--		      "hvqVzr:s:t:p:a:f:u:n:c:l:y:m:d:D:A:B:T:g:w:x:W:X:S:j:", longopts,
-+		      "hvqVzr:s:t:p:a:f:u:n:c:l:y:m:d:D:A:B:T:g:w:x:W:X:S:j:J:", longopts,
- 		      NULL)) != -1)
-     {
-       switch (opt)
-@@ -1103,6 +1108,8 @@ main(int argc, char **argv)
- 	  RTMP_LogPrintf
- 	    ("--jtv|-j JSON           Authentication token for Justin.tv legacy servers\n");
- 	  RTMP_LogPrintf
-+	    ("--weeb|-J string        Authentication token for weeb.tv servers\n");
-+	  RTMP_LogPrintf
- 	    ("--buffer|-b             Buffer time in milliseconds (default: %u)\n\n",
- 	     defaultRTMPRequest.bufferTime);
- 
-diff --git a/rtmpsrv.c b/rtmpsrv.c
-index 9aa62f3..9ec8f23 100644
---- a/rtmpsrv.c
-+++ b/rtmpsrv.c
-@@ -96,9 +96,20 @@ STREAMING_SERVER *rtmpServer = 0;	// server structure pointer
- STREAMING_SERVER *startStreaming(const char *address, int port);
- void stopStreaming(STREAMING_SERVER * server);
- void AVreplace(AVal *src, const AVal *orig, const AVal *repl);
-+char *strreplace(char *srcstr, int srclen, char *orig, char *repl);
-+int file_exists(const char *fname);
-+int SendCheckBWResponse(RTMP *r, int oldMethodType, int onBWDoneInit);
-+AVal AVcopy(AVal src);
-+AVal StripParams(AVal *src);
- 
- static const AVal av_dquote = AVC("\"");
- static const AVal av_escdquote = AVC("\\\"");
-+#ifdef WIN32
-+static const AVal av_caret = AVC("^");
-+static const AVal av_esccaret = AVC("^^");
-+static const AVal av_pipe = AVC("|");
-+static const AVal av_escpipe = AVC("^|");
-+#endif
- 
- typedef struct
- {
-@@ -167,6 +178,10 @@ SAVC(level);
- SAVC(code);
- SAVC(description);
- SAVC(secureToken);
-+SAVC(_checkbw);
-+SAVC(_onbwdone);
-+SAVC(checkBandwidth);
-+SAVC(onBWDone);
- 
- static int
- SendConnectResult(RTMP *r, double txn)
-@@ -190,7 +205,7 @@ SendConnectResult(RTMP *r, double txn)
-   enc = AMF_EncodeNumber(enc, pend, txn);
-   *enc++ = AMF_OBJECT;
- 
--  STR2AVAL(av, "FMS/3,5,1,525");
-+  STR2AVAL(av, "FMS/3,5,7,7009");
-   enc = AMF_EncodeNamedString(enc, pend, &av_fmsVer, &av);
-   enc = AMF_EncodeNamedNumber(enc, pend, &av_capabilities, 31.0);
-   enc = AMF_EncodeNamedNumber(enc, pend, &av_mode, 1.0);
-@@ -212,7 +227,7 @@ SendConnectResult(RTMP *r, double txn)
-   enc = AMF_EncodeNamedString(enc, pend, &av_secureToken, &av);
- #endif
-   STR2AVAL(p.p_name, "version");
--  STR2AVAL(p.p_vu.p_aval, "3,5,1,525");
-+  STR2AVAL(p.p_vu.p_aval, "3,5,7,7009");
-   p.p_type = AMF_STRING;
-   obj.o_num = 1;
-   obj.o_props = &p;
-@@ -268,7 +283,7 @@ static int
- SendPlayStart(RTMP *r)
- {
-   RTMPPacket packet;
--  char pbuf[512], *pend = pbuf+sizeof(pbuf);
-+  char pbuf[1024], *pend = pbuf + sizeof (pbuf);
- 
-   packet.m_nChannel = 0x03;     // control channel (invoke)
-   packet.m_headerType = 1; /* RTMP_PACKET_SIZE_MEDIUM; */
-@@ -300,7 +315,7 @@ static int
- SendPlayStop(RTMP *r)
- {
-   RTMPPacket packet;
--  char pbuf[512], *pend = pbuf+sizeof(pbuf);
-+  char pbuf[1024], *pend = pbuf + sizeof (pbuf);
- 
-   packet.m_nChannel = 0x03;     // control channel (invoke)
-   packet.m_headerType = 1; /* RTMP_PACKET_SIZE_MEDIUM; */
-@@ -328,6 +343,49 @@ SendPlayStop(RTMP *r)
-   return RTMP_SendPacket(r, &packet, FALSE);
- }
- 
-+int
-+SendCheckBWResponse(RTMP *r, int oldMethodType, int onBWDoneInit)
-+{
-+  RTMPPacket packet;
-+  char pbuf[256], *pend = pbuf + sizeof (pbuf);
-+  char *enc;
-+
-+  packet.m_nChannel = 0x03; /* control channel (invoke) */
-+  packet.m_headerType = RTMP_PACKET_SIZE_MEDIUM;
-+  packet.m_packetType = RTMP_PACKET_TYPE_INVOKE;
-+  packet.m_nTimeStamp = 0;
-+  packet.m_nInfoField2 = 0;
-+  packet.m_hasAbsTimestamp = 0;
-+  packet.m_body = pbuf + RTMP_MAX_HEADER_SIZE;
-+
-+  enc = packet.m_body;
-+  if (oldMethodType)
-+    {
-+      enc = AMF_EncodeString(enc, pend, &av__onbwdone);
-+      enc = AMF_EncodeNumber(enc, pend, 0);
-+      *enc++ = AMF_NULL;
-+      enc = AMF_EncodeNumber(enc, pend, 10240);
-+      enc = AMF_EncodeNumber(enc, pend, 10240);
-+    }
-+  else
-+    {
-+      enc = AMF_EncodeString(enc, pend, &av_onBWDone);
-+      enc = AMF_EncodeNumber(enc, pend, 0);
-+      *enc++ = AMF_NULL;
-+      if (!onBWDoneInit)
-+        {
-+          enc = AMF_EncodeNumber(enc, pend, 10240);
-+          enc = AMF_EncodeNumber(enc, pend, 10240);
-+          enc = AMF_EncodeNumber(enc, pend, 0);
-+          enc = AMF_EncodeNumber(enc, pend, 0);
-+        }
-+    }
-+
-+  packet.m_nBodySize = enc - packet.m_body;
-+
-+  return RTMP_SendPacket(r, &packet, FALSE);
-+}
-+
- static void
- spawn_dumper(int argc, AVal *av, char *cmd)
- {
-@@ -568,6 +626,7 @@ ServeInvoke(STREAMING_SERVER *server, RTMP * r, RTMPPacket *packet, unsigned int
- 	  server->arglen += countAMF(&r->Link.extras, &server->argc);
- 	}
-       SendConnectResult(r, txn);
-+      SendCheckBWResponse(r, FALSE, TRUE);
-     }
-   else if (AVMATCH(&method, &av_createStream))
-     {
-@@ -582,10 +641,22 @@ ServeInvoke(STREAMING_SERVER *server, RTMP * r, RTMPPacket *packet, unsigned int
-       AVal usherToken;
-       AMFProp_GetString(AMF_GetProp(&obj, NULL, 3), &usherToken);
-       AVreplace(&usherToken, &av_dquote, &av_escdquote);
-+#ifdef WIN32
-+      AVreplace(&usherToken, &av_caret, &av_esccaret);
-+      AVreplace(&usherToken, &av_pipe, &av_escpipe);
-+#endif
-       server->arglen += 6 + usherToken.av_len;
-       server->argc += 2;
-       r->Link.usherToken = usherToken;
-     }
-+  else if (AVMATCH(&method, &av__checkbw))
-+    {
-+      SendCheckBWResponse(r, TRUE, FALSE);
-+    }
-+  else if (AVMATCH(&method, &av_checkBandwidth))
-+    {
-+      SendCheckBWResponse(r, FALSE, FALSE);
-+    }
-   else if (AVMATCH(&method, &av_play))
-     {
-       char *file, *p, *q, *cmd, *ptr;
-@@ -599,6 +670,17 @@ ServeInvoke(STREAMING_SERVER *server, RTMP * r, RTMPPacket *packet, unsigned int
-       if (obj.o_num > 5)
- 	r->Link.length = AMFProp_GetNumber(AMF_GetProp(&obj, NULL, 5));
-       */
-+      double StartFlag = 0;
-+      AMFObjectProperty *Start = AMF_GetProp(&obj, NULL, 4);
-+      if (!(Start->p_type == AMF_INVALID))
-+        StartFlag = AMFProp_GetNumber(Start);
-+      r->Link.app = AVcopy(r->Link.app);
-+      if (StartFlag == -1000 || strstr(r->Link.app.av_val, "live"))
-+        {
-+          StartFlag = -1000;
-+          server->arglen += 7;
-+          server->argc += 1;
-+        }
-       if (r->Link.tcUrl.av_len)
- 	{
- 	  len = server->arglen + r->Link.playpath.av_len + 4 +
-@@ -616,6 +698,7 @@ ServeInvoke(STREAMING_SERVER *server, RTMP * r, RTMPPacket *packet, unsigned int
- 	  argv[argc].av_val = ptr + 1;
- 	  argv[argc++].av_len = 2;
- 	  argv[argc].av_val = ptr + 5;
-+	  r->Link.tcUrl = StripParams(&r->Link.tcUrl);
- 	  ptr += sprintf(ptr," -r \"%s\"", r->Link.tcUrl.av_val);
- 	  argv[argc++].av_len = r->Link.tcUrl.av_len;
- 
-@@ -640,6 +723,7 @@ ServeInvoke(STREAMING_SERVER *server, RTMP * r, RTMPPacket *packet, unsigned int
- 	      argv[argc].av_val = ptr + 1;
- 	      argv[argc++].av_len = 2;
- 	      argv[argc].av_val = ptr + 5;
-+	      r->Link.swfUrl = StripParams(&r->Link.swfUrl);
- 	      ptr += sprintf(ptr, " -W \"%s\"", r->Link.swfUrl.av_val);
- 	      argv[argc++].av_len = r->Link.swfUrl.av_len;
- 	    }
-@@ -662,10 +746,17 @@ ServeInvoke(STREAMING_SERVER *server, RTMP * r, RTMPPacket *packet, unsigned int
- 	      r->Link.usherToken.av_val = NULL;
- 	      r->Link.usherToken.av_len = 0;
- 	    }
--	  if (r->Link.extras.o_num) {
--	    ptr = dumpAMF(&r->Link.extras, ptr, argv, &argc);
--	    AMF_Reset(&r->Link.extras);
--	  }
-+          if (StartFlag == -1000)
-+            {
-+              argv[argc].av_val = ptr + 1;
-+              argv[argc++].av_len = 6;
-+              ptr += sprintf(ptr, " --live");
-+            }
-+          if (r->Link.extras.o_num)
-+            {
-+              ptr = dumpAMF(&r->Link.extras, ptr, argv, &argc);
-+              AMF_Reset(&r->Link.extras);
-+            }
- 	  argv[argc].av_val = ptr + 1;
- 	  argv[argc++].av_len = 2;
- 	  argv[argc].av_val = ptr + 5;
-@@ -673,7 +764,13 @@ ServeInvoke(STREAMING_SERVER *server, RTMP * r, RTMPPacket *packet, unsigned int
- 	    r->Link.playpath.av_len, r->Link.playpath.av_val);
- 	  argv[argc++].av_len = r->Link.playpath.av_len;
- 
--	  av = r->Link.playpath;
-+          if (r->Link.playpath.av_len)
-+            av = r->Link.playpath;
-+          else
-+            {
-+              av.av_val = "file";
-+              av.av_len = 4;
-+            }
- 	  /* strip trailing URL parameters */
- 	  q = memchr(av.av_val, '?', av.av_len);
- 	  if (q)
-@@ -725,7 +822,30 @@ ServeInvoke(STREAMING_SERVER *server, RTMP * r, RTMPPacket *packet, unsigned int
- 	  argv[argc++].av_len = 2;
- 	  argv[argc].av_val = file;
- 	  argv[argc].av_len = av.av_len;
--	  ptr += sprintf(ptr, " -o %s", file);
-+#ifdef VLC
-+          char *vlc;
-+          int didAlloc = FALSE;
-+
-+          if (getenv("VLC"))
-+            vlc = getenv("VLC");
-+          else if (getenv("ProgramFiles"))
-+            {
-+              vlc = malloc(512 * sizeof (char));
-+              didAlloc = TRUE;
-+              char *ProgramFiles = getenv("ProgramFiles");
-+              sprintf(vlc, "%s%s", ProgramFiles, " (x86)\\VideoLAN\\VLC\\vlc.exe");
-+              if (!file_exists(vlc))
-+                sprintf(vlc, "%s%s", ProgramFiles, "\\VideoLAN\\VLC\\vlc.exe");
-+            }
-+          else
-+            vlc = "C:\\Program Files\\VideoLAN\\VLC\\vlc.exe";
-+
-+          ptr += sprintf(ptr, " | %s -", vlc);
-+          if (didAlloc)
-+            free(vlc);
-+#else
-+          ptr += sprintf(ptr, " -o %s", file);
-+#endif
- 	  now = RTMP_GetTime();
- 	  if (now - server->filetime < DUPTIME && AVMATCH(&argv[argc], &server->filename))
- 	    {
-@@ -739,7 +859,23 @@ ServeInvoke(STREAMING_SERVER *server, RTMP * r, RTMPPacket *packet, unsigned int
- 	      server->filetime = now;
- 	      free(server->filename.av_val);
- 	      server->filename = argv[argc++];
--	      spawn_dumper(argc, argv, cmd);
-+#ifdef VLC
-+              FILE *vlc_cmdfile = fopen("VLC.bat", "w");
-+              char *vlc_batchcmd = strreplace(cmd, 0, "%", "%%");
-+              fprintf(vlc_cmdfile, "%s\n", vlc_batchcmd);
-+              fclose(vlc_cmdfile);
-+              free(vlc_batchcmd);
-+              spawn_dumper(argc, argv, "VLC.bat");
-+#else
-+              spawn_dumper(argc, argv, cmd);
-+#endif
-+
-+#ifdef WIN32
-+              // Dump command to batch file
-+              FILE *cmdfile = fopen("Command.bat", "a");
-+              fprintf(cmdfile, "%s\n", cmd);
-+              fclose(cmdfile);
-+#endif
- 	    }
- 
- 	  free(cmd);
-@@ -1178,3 +1314,115 @@ AVreplace(AVal *src, const AVal *orig, const AVal *repl)
-   src->av_val = dest;
-   src->av_len = dptr - dest;
- }
-+
-+char *
-+strreplace(char *srcstr, int srclen, char *orig, char *repl)
-+{
-+  char *ptr = NULL, *sptr = srcstr;
-+  int origlen = strlen(orig);
-+  int repllen = strlen(repl);
-+  if (!srclen)
-+    srclen = strlen(srcstr);
-+  char *srcend = srcstr + srclen;
-+  int dstbuffer = srclen / origlen * repllen;
-+  if (dstbuffer < srclen)
-+    dstbuffer = srclen;
-+  char *dststr = calloc(dstbuffer + 1, sizeof (char));
-+  char *dptr = dststr;
-+
-+  if ((ptr = strstr(srcstr, orig)))
-+    {
-+      while (ptr < srcend && (ptr = strstr(sptr, orig)))
-+        {
-+          int len = ptr - sptr;
-+          memcpy(dptr, sptr, len);
-+          sptr += len + origlen;
-+          dptr += len;
-+          memcpy(dptr, repl, repllen);
-+          dptr += repllen;
-+        }
-+      memcpy(dptr, sptr, srcend - sptr);
-+      return dststr;
-+    }
-+
-+  memcpy(dststr, srcstr, srclen);
-+  return dststr;
-+}
-+
-+AVal
-+StripParams(AVal *src)
-+{
-+  AVal str;
-+  if (src->av_val)
-+    {
-+      str.av_val = calloc(src->av_len + 1, sizeof (char));
-+      strncpy(str.av_val, src->av_val, src->av_len);
-+      str.av_len = src->av_len;
-+      char *start = str.av_val;
-+      char *end = start + str.av_len;
-+      char *ptr = start;
-+
-+      while (ptr < end)
-+        {
-+          if (*ptr == '?')
-+            {
-+              str.av_len = ptr - start;
-+              break;
-+            }
-+          ptr++;
-+        }
-+      memset(start + str.av_len, 0, 1);
-+
-+      char *dynamic = strstr(start, "[[DYNAMIC]]");
-+      if (dynamic)
-+        {
-+          dynamic -= 1;
-+          memset(dynamic, 0, 1);
-+          str.av_len = dynamic - start;
-+          end = start + str.av_len;
-+        }
-+
-+      char *import = strstr(start, "[[IMPORT]]");
-+      if (import)
-+        {
-+          str.av_val = import + 11;
-+          strcpy(start, "http://");
-+          str.av_val = strcat(start, str.av_val);
-+          str.av_len = strlen(str.av_val);
-+        }
-+      return str;
-+    }
-+  str = *src;
-+  return str;
-+}
-+
-+int
-+file_exists(const char *fname)
-+{
-+  FILE *file;
-+  if ((file = fopen(fname, "r")))
-+    {
-+      fclose(file);
-+      return TRUE;
-+    }
-+  return FALSE;
-+}
-+
-+AVal
-+AVcopy(AVal src)
-+{
-+  AVal dst;
-+  if (src.av_len)
-+    {
-+      dst.av_val = malloc(src.av_len + 1);
-+      memcpy(dst.av_val, src.av_val, src.av_len);
-+      dst.av_val[src.av_len] = '\0';
-+      dst.av_len = src.av_len;
-+    }
-+  else
-+    {
-+      dst.av_val = NULL;
-+      dst.av_len = 0;
-+    }
-+  return dst;
-+}
-diff --git a/rtmpsuck.c b/rtmpsuck.c
-index e886179..e80c686 100644
---- a/rtmpsuck.c
-+++ b/rtmpsuck.c
-@@ -143,15 +143,18 @@ SAVC(onStatus);
- SAVC(close);
- static const AVal av_NetStream_Failed = AVC("NetStream.Failed");
- static const AVal av_NetStream_Play_Failed = AVC("NetStream.Play.Failed");
--static const AVal av_NetStream_Play_StreamNotFound =
--AVC("NetStream.Play.StreamNotFound");
--static const AVal av_NetConnection_Connect_InvalidApp =
--AVC("NetConnection.Connect.InvalidApp");
-+static const AVal av_NetStream_Play_StreamNotFound = AVC("NetStream.Play.StreamNotFound");
-+static const AVal av_NetConnection_Connect_InvalidApp = AVC("NetConnection.Connect.InvalidApp");
- static const AVal av_NetStream_Play_Start = AVC("NetStream.Play.Start");
- static const AVal av_NetStream_Play_Complete = AVC("NetStream.Play.Complete");
- static const AVal av_NetStream_Play_Stop = AVC("NetStream.Play.Stop");
-+static const AVal av_NetStream_Authenticate_UsherToken = AVC("NetStream.Authenticate.UsherToken");
- 
- static const char *cst[] = { "client", "server" };
-+char *dumpAMF(AMFObject *obj, char *ptr);
-+char *strreplace(char *srcstr, int srclen, char *orig, char *repl);
-+AVal AVcopy(AVal src);
-+AVal StripParams(AVal *src);
- 
- // Returns 0 for OK/Failed/error, 1 for 'Stop or Complete'
- int
-@@ -198,26 +201,28 @@ ServeInvoke(STREAMING_SERVER *server, int which, RTMPPacket *pack, const char *b
-           if (cobj.o_props[i].p_type == AMF_STRING)
-             {
-               pval = cobj.o_props[i].p_vu.p_aval;
--              RTMP_LogPrintf("%.*s: %.*s\n", pname.av_len, pname.av_val, pval.av_len, pval.av_val);
-+              RTMP_LogPrintf("%10.*s : %.*s\n", pname.av_len, pname.av_val, pval.av_len, pval.av_val);
-             }
-           if (AVMATCH(&pname, &av_app))
-             {
--              server->rc.Link.app = pval;
-+              server->rc.Link.app = AVcopy(pval);
-               pval.av_val = NULL;
-             }
-           else if (AVMATCH(&pname, &av_flashVer))
-             {
--              server->rc.Link.flashVer = pval;
-+              server->rc.Link.flashVer = AVcopy(pval);
-               pval.av_val = NULL;
-             }
-           else if (AVMATCH(&pname, &av_swfUrl))
-             {
- #ifdef CRYPTO
-               if (pval.av_val)
--	        RTMP_HashSWF(pval.av_val, &server->rc.Link.SWFSize,
--		  (unsigned char *)server->rc.Link.SWFHash, 30);
-+                {
-+                  AVal swfUrl = StripParams(&pval);
-+                  RTMP_HashSWF(swfUrl.av_val, &server->rc.Link.SWFSize, (unsigned char *) server->rc.Link.SWFHash, 30);
-+                }
- #endif
--              server->rc.Link.swfUrl = pval;
-+              server->rc.Link.swfUrl = AVcopy(pval);
-               pval.av_val = NULL;
-             }
-           else if (AVMATCH(&pname, &av_tcUrl))
-@@ -225,7 +230,7 @@ ServeInvoke(STREAMING_SERVER *server, int which, RTMPPacket *pack, const char *b
-               char *r1 = NULL, *r2;
-               int len;
- 
--              server->rc.Link.tcUrl = pval;
-+              server->rc.Link.tcUrl = AVcopy(pval);
-               if ((pval.av_val[0] | 0x40) == 'r' &&
-                   (pval.av_val[1] | 0x40) == 't' &&
-                   (pval.av_val[2] | 0x40) == 'm' &&
-@@ -267,7 +272,7 @@ ServeInvoke(STREAMING_SERVER *server, int which, RTMPPacket *pack, const char *b
-             }
-           else if (AVMATCH(&pname, &av_pageUrl))
-             {
--              server->rc.Link.pageUrl = pval;
-+              server->rc.Link.pageUrl = AVcopy(pval);
-               pval.av_val = NULL;
-             }
-           else if (AVMATCH(&pname, &av_audioCodecs))
-@@ -287,14 +292,21 @@ ServeInvoke(STREAMING_SERVER *server, int which, RTMPPacket *pack, const char *b
-           if (pval.av_val)
-             free(pval.av_val);
-         }
-+
-       if (obj.o_num > 3)
-         {
--          if (AMFProp_GetBoolean(&obj.o_props[3]))
--            server->rc.Link.lFlags |= RTMP_LF_AUTH;
--          if (obj.o_num > 4)
--          {
--            AMFProp_GetString(&obj.o_props[4], &server->rc.Link.auth);
--          }
-+          int i = obj.o_num - 3;
-+          server->rc.Link.extras.o_num = i;
-+          server->rc.Link.extras.o_props = malloc(i * sizeof (AMFObjectProperty));
-+          memcpy(server->rc.Link.extras.o_props, obj.o_props + 3, i * sizeof (AMFObjectProperty));
-+          obj.o_num = 3;
-+        }
-+
-+      if (server->rc.Link.extras.o_num)
-+        {
-+          server->rc.Link.Extras.av_val = calloc(1024, sizeof (char));
-+          dumpAMF(&server->rc.Link.extras, server->rc.Link.Extras.av_val);
-+          server->rc.Link.Extras.av_len = strlen(server->rc.Link.Extras.av_val);
-         }
- 
-       if (!RTMP_Connect(&server->rc, pack))
-@@ -303,6 +315,16 @@ ServeInvoke(STREAMING_SERVER *server, int which, RTMPPacket *pack, const char *b
-           return 1;
-         }
-       server->rc.m_bSendCounter = FALSE;
-+
-+      if (server->rc.Link.extras.o_props)
-+        {
-+          AMF_Reset(&server->rc.Link.extras);
-+        }
-+    }
-+  else if (AVMATCH(&method, &av_NetStream_Authenticate_UsherToken))
-+    {
-+      AMFProp_GetString(AMF_GetProp(&obj, NULL, 3), &server->rc.Link.usherToken);
-+      RTMP_LogPrintf("%10s : %.*s\n", "usherToken", server->rc.Link.usherToken.av_len, server->rc.Link.usherToken.av_val);
-     }
-   else if (AVMATCH(&method, &av_play))
-     {
-@@ -323,6 +345,14 @@ ServeInvoke(STREAMING_SERVER *server, int which, RTMPPacket *pack, const char *b
-       if (!av.av_val)
-         goto out;
- 
-+      double StartFlag = 0;
-+      AMFObjectProperty *Start = AMF_GetProp(&obj, NULL, 4);
-+      if (!(Start->p_type == AMF_INVALID))
-+        StartFlag = AMFProp_GetNumber(Start);
-+      if (StartFlag == -1000 || strstr(server->rc.Link.app.av_val, "live"))
-+        StartFlag = -1000;
-+      RTMP_LogPrintf("%10s : %s\n", "live", (StartFlag == -1000) ? "yes" : "no");
-+
-       /* check for duplicates */
-       for (fl = server->f_head; fl; fl=fl->f_next)
-         {
-@@ -372,9 +402,51 @@ ServeInvoke(STREAMING_SERVER *server, int which, RTMPPacket *pack, const char *b
-       for (p=file; *p; p++)
-         if (*p == ':')
-           *p = '_';
--      RTMP_LogPrintf("Playpath: %.*s\nSaving as: %s\n",
--        server->rc.Link.playpath.av_len, server->rc.Link.playpath.av_val,
--        file);
-+      RTMP_LogPrintf("%10s : %.*s\n%10s : %s\n", "Playpath", server->rc.Link.playpath.av_len,
-+                     server->rc.Link.playpath.av_val, "Saving as", file);
-+
-+#ifdef WIN32
-+      // Dump command to batch file
-+      char *cmd = NULL, *ptr = NULL;
-+      AVal swfUrl, tcUrl;
-+
-+      cmd = calloc(2048, sizeof (char));
-+      ptr = cmd;
-+      tcUrl = StripParams(&server->rc.Link.tcUrl);
-+      swfUrl = StripParams(&server->rc.Link.swfUrl);
-+      ptr += sprintf(ptr, "rtmpdump -r \"%.*s\" -a \"%.*s\" -f \"%.*s\" -W \"%.*s\" -p \"%.*s\"",
-+                     tcUrl.av_len, tcUrl.av_val,
-+                     server->rc.Link.app.av_len, server->rc.Link.app.av_val,
-+                     server->rc.Link.flashVer.av_len, server->rc.Link.flashVer.av_val,
-+                     swfUrl.av_len, swfUrl.av_val,
-+                     server->rc.Link.pageUrl.av_len, server->rc.Link.pageUrl.av_val);
-+
-+      if (server->rc.Link.usherToken.av_val)
-+        {
-+          char *usherToken = strreplace(server->rc.Link.usherToken.av_val, server->rc.Link.usherToken.av_len, "\"", "\\\"");
-+          usherToken = strreplace(usherToken, 0, "^", "^^");
-+          usherToken = strreplace(usherToken, 0, "|", "^|");
-+          ptr += sprintf(ptr, " --jtv \"%s\"", usherToken);
-+          free(usherToken);
-+        }
-+
-+      if (server->rc.Link.Extras.av_len)
-+        {
-+          ptr += sprintf(ptr, "%.*s", server->rc.Link.Extras.av_len, server->rc.Link.Extras.av_val);
-+        }
-+
-+      if (StartFlag == -1000)
-+        ptr += sprintf(ptr, "%s", " --live");
-+      ptr += sprintf(ptr, " -y \"%.*s\"", server->rc.Link.playpath.av_len, server->rc.Link.playpath.av_val);
-+      ptr += sprintf(ptr, " -o \"%s.flv\"\n", file);
-+
-+      FILE *cmdfile = fopen("Command.bat", "a");
-+      fprintf(cmdfile, "%s", cmd);
-+      fclose(cmdfile);
-+
-+      free(cmd);
-+#endif
-+
-       out = fopen(file, "wb");
-       free(file);
-       if (!out)
-@@ -1196,3 +1268,146 @@ main(int argc, char **argv)
- #endif
-   return nStatus;
- }
-+
-+char *
-+dumpAMF(AMFObject *obj, char *ptr)
-+{
-+  int i;
-+  const char opt[] = "NBSO Z";
-+
-+  for (i = 0; i < obj->o_num; i++)
-+    {
-+      AMFObjectProperty *p = &obj->o_props[i];
-+      if (p->p_type > 5)
-+        continue;
-+      ptr += sprintf(ptr, " -C ");
-+      if (p->p_name.av_val)
-+        *ptr++ = 'N';
-+      *ptr++ = opt[p->p_type];
-+      *ptr++ = ':';
-+      if (p->p_name.av_val)
-+        ptr += sprintf(ptr, "%.*s:", p->p_name.av_len, p->p_name.av_val);
-+      switch (p->p_type)
-+        {
-+        case AMF_BOOLEAN:
-+          *ptr++ = p->p_vu.p_number != 0 ? '1' : '0';
-+          break;
-+        case AMF_STRING:
-+          memcpy(ptr, p->p_vu.p_aval.av_val, p->p_vu.p_aval.av_len);
-+          ptr += p->p_vu.p_aval.av_len;
-+          break;
-+        case AMF_NUMBER:
-+          ptr += sprintf(ptr, "%f", p->p_vu.p_number);
-+          break;
-+        case AMF_OBJECT:
-+          *ptr++ = '1';
-+          ptr = dumpAMF(&p->p_vu.p_object, ptr);
-+          ptr += sprintf(ptr, " -C O:0");
-+          break;
-+        case AMF_NULL:
-+        default:
-+          break;
-+        }
-+    }
-+  return ptr;
-+}
-+
-+char *
-+strreplace(char *srcstr, int srclen, char *orig, char *repl)
-+{
-+  char *ptr = NULL, *sptr = srcstr;
-+  int origlen = strlen(orig);
-+  int repllen = strlen(repl);
-+  if (!srclen)
-+    srclen = strlen(srcstr);
-+  char *srcend = srcstr + srclen;
-+  int dstbuffer = srclen / origlen * repllen;
-+  if (dstbuffer < srclen)
-+    dstbuffer = srclen;
-+  char *dststr = calloc(dstbuffer + 1, sizeof (char));
-+  char *dptr = dststr;
-+
-+  if ((ptr = strstr(srcstr, orig)))
-+    {
-+      while (ptr < srcend && (ptr = strstr(sptr, orig)))
-+        {
-+          int len = ptr - sptr;
-+          memcpy(dptr, sptr, len);
-+          sptr += len + origlen;
-+          dptr += len;
-+          memcpy(dptr, repl, repllen);
-+          dptr += repllen;
-+        }
-+      memcpy(dptr, sptr, srcend - sptr);
-+      return dststr;
-+    }
-+
-+  memcpy(dststr, srcstr, srclen);
-+  return dststr;
-+}
-+
-+AVal
-+StripParams(AVal *src)
-+{
-+  AVal str;
-+  if (src->av_val)
-+    {
-+      str.av_val = calloc(src->av_len + 1, sizeof (char));
-+      strncpy(str.av_val, src->av_val, src->av_len);
-+      str.av_len = src->av_len;
-+      char *start = str.av_val;
-+      char *end = start + str.av_len;
-+      char *ptr = start;
-+
-+      while (ptr < end)
-+        {
-+          if (*ptr == '?')
-+            {
-+              str.av_len = ptr - start;
-+              break;
-+            }
-+          ptr++;
-+        }
-+      memset(start + str.av_len, 0, 1);
-+
-+      char *dynamic = strstr(start, "[[DYNAMIC]]");
-+      if (dynamic)
-+        {
-+          dynamic -= 1;
-+          memset(dynamic, 0, 1);
-+          str.av_len = dynamic - start;
-+          end = start + str.av_len;
-+        }
-+
-+      char *import = strstr(start, "[[IMPORT]]");
-+      if (import)
-+        {
-+          str.av_val = import + 11;
-+          strcpy(start, "http://");
-+          str.av_val = strcat(start, str.av_val);
-+          str.av_len = strlen(str.av_val);
-+        }
-+      return str;
-+    }
-+  str = *src;
-+  return str;
-+}
-+
-+AVal
-+AVcopy(AVal src)
-+{
-+  AVal dst;
-+  if (src.av_len)
-+    {
-+      dst.av_val = malloc(src.av_len + 1);
-+      memcpy(dst.av_val, src.av_val, src.av_len);
-+      dst.av_val[src.av_len] = '\0';
-+      dst.av_len = src.av_len;
-+    }
-+  else
-+    {
-+      dst.av_val = NULL;
-+      dst.av_len = 0;
-+    }
-+  return dst;
-+}
diff --git a/tools/depends/target/librtmp/prefix.patch b/tools/depends/target/librtmp/prefix.patch
deleted file mode 100644
index 198a85c..0000000
--- a/tools/depends/target/librtmp/prefix.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- librtmp/Makefile     2010-06-30 15:58:35.000000000 -0400
-+++ librtmp/Makefile.2   2011-03-31 16:19:52.813884882 -0400
-@@ -1,6 +1,6 @@
- VERSION=v2.3
-
--prefix=/usr/local
-+prefix=$(PREFIX)
-
- CC=$(CROSS_COMPILE)gcc
- LD=$(CROSS_COMPILE)ld
diff --git a/tools/depends/target/libsdl/01-SDL_SetWidthHeight.patch b/tools/depends/target/libsdl/01-SDL_SetWidthHeight.patch
deleted file mode 100644
index 0e26023..0000000
--- a/tools/depends/target/libsdl/01-SDL_SetWidthHeight.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Index: include/SDL_video.h
-===================================================================
---- include/SDL_video.h	(revision 4116)
-+++ include/SDL_video.h	(working copy)
-@@ -324,6 +324,11 @@
- extern DECLSPEC SDL_Rect ** SDLCALL SDL_ListModes(SDL_PixelFormat *format, Uint32 flags);
- 
- /**
-+* Alter the width and height of the current surface to the given sizes.
-+*/
-+extern DECLSPEC void SDLCALL SDL_SetWidthHeight(int width, int height);
-+
-+/**
-  * Set up a video mode with the specified width, height and bits-per-pixel.
-  *
-  * If 'bpp' is 0, it is treated as the current display bits per pixel.
-
-Index: src/video/SDL_video.c
-===================================================================
---- src/video/SDL_video.c	(revision 4116)
-+++ src/video/SDL_video.c	(working copy)
-@@ -1956,3 +1956,11 @@
- 		return(0);
- 	}
- }
-+
-+void SDL_SetWidthHeight(int width, int height)
-+{
-+  if (current_video != NULL && current_video->screen != NULL) {
-+    current_video->screen->w = width;
-+    current_video->screen->h = height;
-+  }
-+}
diff --git a/tools/depends/target/libsdl/02-OSX_interpretKeyEvents.patch b/tools/depends/target/libsdl/02-OSX_interpretKeyEvents.patch
deleted file mode 100644
index 7c4c807..0000000
--- a/tools/depends/target/libsdl/02-OSX_interpretKeyEvents.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- src/video/quartz/SDL_QuartzEvents.m	2009-10-13 07:07:14.000000000 +0800
-+++ src/video/quartz/SDL_QuartzEvents.m	2013-08-03 09:12:27.000000000 +0800
-@@ -280,7 +280,11 @@
-         the scancode/keysym.
-     */
-     if (SDL_TranslateUNICODE && state == SDL_PRESSED) {
--        [field_edit interpretKeyEvents:[NSArray arrayWithObject:event]];
-+        NSResponder *firstResponder = [[NSApp keyWindow] firstResponder];
-+        if ([NSStringFromClass([firstResponder class]) isEqual:@"OSXTextInputResponder"])
-+          [firstResponder interpretKeyEvents:[NSArray arrayWithObject:event]];
-+        else
-+          [field_edit interpretKeyEvents:[NSArray arrayWithObject:event]];
-         chars = [ event characters ];
-         numChars = [ chars length ];
-         if (numChars > 0)
diff --git a/tools/depends/target/libsdl/03-mavericks-compile.patch b/tools/depends/target/libsdl/03-mavericks-compile.patch
deleted file mode 100644
index a2c40ce..0000000
--- a/tools/depends/target/libsdl/03-mavericks-compile.patch
+++ /dev/null
@@ -1,41 +0,0 @@
---- src/video/quartz/SDL_QuartzVideo.h	2012-01-19 07:30:06.000000000 +0100
-+++ src/video/quartz/SDL_QuartzVideo.h	2013-10-30 16:35:02.000000000 +0100
-@@ -91,7 +91,9 @@
-     CGDirectDisplayID  display;            /* 0 == main display (only support single display) */
-     const void         *mode;              /* current mode of the display */
-     const void         *save_mode;         /* original mode of the display */
-+#ifdef CGDirectPaletteRef
-     CGDirectPaletteRef palette;            /* palette of an 8-bit display */
-+#endif
-     NSOpenGLContext    *gl_context;        /* OpenGL rendering context */
-     NSGraphicsContext  *nsgfx_context;     /* Cocoa graphics context */
-     Uint32             width, height, bpp; /* frequently used data about the display */
---- src/video/quartz/SDL_QuartzVideo.m	2012-01-19 07:30:06.000000000 +0100
-+++ src/video/quartz/SDL_QuartzVideo.m	2013-10-30 16:39:21.000000000 +0100
-@@ -336,7 +336,7 @@
-     }
- #endif
- 
--#if (MAC_OS_X_VERSION_MIN_REQUIRED < 1070)
-+#if (MAC_OS_X_VERSION_MIN_REQUIRED < 1070) && defined(CGDirectPaletteRef)
-     if (!IS_LION_OR_LATER(this)) {
-         palette = CGPaletteCreateDefaultColorPalette();
-     }
-@@ -1244,7 +1244,7 @@
- static int QZ_SetColors (_THIS, int first_color, int num_colors,
-                          SDL_Color *colors)
- {
--#if (MAC_OS_X_VERSION_MIN_REQUIRED < 1070)
-+#if (MAC_OS_X_VERSION_MIN_REQUIRED < 1070) && defined(CGDirectPaletteRef)
-     /* we shouldn't have an 8-bit mode on Lion! */
-     if (!IS_LION_OR_LATER(this)) {
-         CGTableCount  index;
-@@ -1554,7 +1554,7 @@
-     else
-         QZ_UnsetVideoMode (this, TRUE, FALSE);
- 
--#if (MAC_OS_X_VERSION_MIN_REQUIRED < 1070)
-+#if (MAC_OS_X_VERSION_MIN_REQUIRED < 1070) && defined(CGDirectPaletteRef)
-     if (!IS_LION_OR_LATER(this)) {
-         CGPaletteRelease(palette);
-     }
diff --git a/tools/depends/target/libsdl/04-fix_external_screen_crash.patch b/tools/depends/target/libsdl/04-fix_external_screen_crash.patch
deleted file mode 100644
index b474e3a..0000000
--- a/tools/depends/target/libsdl/04-fix_external_screen_crash.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/video/quartz/SDL_QuartzWindow.m.orig	2013-10-31 04:29:45.000000000 -0700
-+++ src/video/quartz/SDL_QuartzWindow.m	2013-10-31 04:30:05.000000000 -0700
-@@ -87,7 +87,7 @@
-      SDL_VideoDevice *this = (SDL_VideoDevice*)current_video;
-
-     /* make sure pixels are fully opaque */
--    if (! ( SDL_VideoSurface->flags & SDL_OPENGL ) )
-+    if ( SDL_VideoSurface && ! ( SDL_VideoSurface->flags & SDL_OPENGL ) )
-         QZ_SetPortAlphaOpaque ();
-
-     /* save current visible SDL surface */
diff --git a/tools/depends/target/libsdl/05-x11-xdata32.patch b/tools/depends/target/libsdl/05-x11-xdata32.patch
deleted file mode 100644
index c619929..0000000
--- a/tools/depends/target/libsdl/05-x11-xdata32.patch
+++ /dev/null
@@ -1,43 +0,0 @@
---- a/configure.in	Wed Apr 17 00:56:53 2013 -0700
-+++ a/configure.in	Sun Jun 02 20:48:53 2013 +0600
-@@ -1169,6 +1169,17 @@ 
-             if test x$definitely_enable_video_x11_xrandr = xyes; then
-                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR)
-             fi
-+            AC_MSG_CHECKING(for const parameter to _XData32)
-+            have_const_param_xdata32=no
-+            AC_TRY_COMPILE([
-+              #include <X11/Xlibint.h>
-+              extern int _XData32(Display *dpy,register _Xconst long *data,unsigned len);
-+            ],[
-+            ],[
-+            have_const_param_xdata32=yes
-+            AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32)
-+            ])
-+            AC_MSG_RESULT($have_const_param_xdata32)
-         fi
-     fi
- }
---- a/include/SDL_config.h.in	Wed Apr 17 00:56:53 2013 -0700
-+++ a/include/SDL_config.h.in	Sun Jun 02 20:48:53 2013 +0600
-@@ -283,6 +283,7 @@ 
- #undef SDL_VIDEO_DRIVER_WINDIB
- #undef SDL_VIDEO_DRIVER_WSCONS
- #undef SDL_VIDEO_DRIVER_X11
-+#undef SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32
- #undef SDL_VIDEO_DRIVER_X11_DGAMOUSE
- #undef SDL_VIDEO_DRIVER_X11_DYNAMIC
- #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT
---- a/src/video/x11/SDL_x11sym.h	Wed Apr 17 00:56:53 2013 -0700
-+++ a/src/video/x11/SDL_x11sym.h	Sun Jun 02 20:48:53 2013 +0600
-@@ -165,7 +165,11 @@ 
-  */
- #ifdef LONG64
- SDL_X11_MODULE(IO_32BIT)
-+#if SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32
-+SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return)
-+#else
- SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
-+#endif
- SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),)
- #endif
diff --git a/tools/depends/target/libsdl/Makefile b/tools/depends/target/libsdl/Makefile
deleted file mode 100644
index 47c5fa2..0000000
--- a/tools/depends/target/libsdl/Makefile
+++ /dev/null
@@ -1,46 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include 01-SDL_SetWidthHeight.patch 02-OSX_interpretKeyEvents.patch 03-mavericks-compile.patch 05-x11-xdata32.patch Makefile
-
-# lib name, version
-LIBNAME=SDL
-VERSION=1.2.15
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) --disable-video-directfb
-ifneq ($(OS),linux)
-CONFIGURE += --without-x --disable-video-x11
-endif
-
-LIBDYLIB=$(PLATFORM)/build/.libs/lib$(LIBNAME).a
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p0 < ../01-SDL_SetWidthHeight.patch
-	cd $(PLATFORM); patch -p0 < ../02-OSX_interpretKeyEvents.patch
-	cd $(PLATFORM); patch -p0 < ../03-mavericks-compile.patch
-	cd $(PLATFORM); patch -p0 < ../04-fix_external_screen_crash.patch
-	cd $(PLATFORM); patch -p1 < ../05-x11-xdata32.patch
-	cd $(PLATFORM); ./autogen.sh
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -j 1 -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/libsdl2/Makefile b/tools/depends/target/libsdl2/Makefile
deleted file mode 100644
index 6c6eb5a..0000000
--- a/tools/depends/target/libsdl2/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=SDL2
-VERSION=2.0.3
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) --disable-video-directfb
-ifneq ($(OS),linux)
-CONFIGURE += --without-x --disable-video-x11
-endif
-
-LIBDYLIB=$(PLATFORM)/build/.libs/lib$(LIBNAME).a
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); ./autogen.sh
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/libsdl_image/Makefile b/tools/depends/target/libsdl_image/Makefile
deleted file mode 100644
index 4106247..0000000
--- a/tools/depends/target/libsdl_image/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-NATIVE_BUILD=1
-include ../../Makefile.include
-DEPS=Makefile
-
-# lib name, version
-LIBNAME=SDL_image
-VERSION=1.2.7
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) \
-   --disable-jpg-shared --disable-png-shared --disable-tif-shared --disable-sdltest
-
-LIBDYLIB=$(PLATFORM)/.libs/lib$(LIBNAME).so
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(PLATFORM) > .gitignore
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/libshairplay/02-fixipv4ipv6race.patch b/tools/depends/target/libshairplay/02-fixipv4ipv6race.patch
deleted file mode 100644
index 4580d3c..0000000
--- a/tools/depends/target/libshairplay/02-fixipv4ipv6race.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From ac9240fa569df5a10d534a4cd45740a44ee00f63 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?= <juhovh at iki.fi>
-Date: Mon, 24 Mar 2014 20:35:29 +0200
-Subject: [PATCH] Fix #23 on issue tracker.
-
-There is a race condition if IPv4 and IPv6 connections come at the same time.
----
- src/lib/httpd.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/lib/httpd.c b/src/lib/httpd.c
-index 1d9e7e2..f081c5e 100644
---- a/src/lib/httpd.c
-+++ b/src/lib/httpd.c
-@@ -237,7 +237,8 @@ struct httpd_s {
- 				continue;
- 			}
- 		}
--		if (httpd->server_fd6 != -1 && FD_ISSET(httpd->server_fd6, &rfds)) {
-+		if (httpd->open_connections < httpd->max_connections &&
-+		    httpd->server_fd6 != -1 && FD_ISSET(httpd->server_fd6, &rfds)) {
- 			ret = httpd_accept_connection(httpd, httpd->server_fd6, 1);
- 			if (ret == -1) {
- 				break;
--- 
-1.8.5.5
-
diff --git a/tools/depends/target/libshairplay/03-fixpasswordauthitunes.patch b/tools/depends/target/libshairplay/03-fixpasswordauthitunes.patch
deleted file mode 100644
index 2db60b3..0000000
--- a/tools/depends/target/libshairplay/03-fixpasswordauthitunes.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 8e6795779558d2828aef14078fefbcadd5323fa6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?= <juhovh at iki.fi>
-Date: Mon, 24 Mar 2014 21:43:59 +0200
-Subject: [PATCH] Make password authentication work on iTunes again, fixes #20.
-
----
- src/lib/raop.c | 11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/src/lib/raop.c b/src/lib/raop.c
-index e5c6539..a58e92f 100644
---- a/src/lib/raop.c.orig	2013-04-17 15:17:49.000000000 +0200
-+++ b/src/lib/raop.c	2014-03-24 23:22:30.000000000 +0100
-@@ -139,7 +139,7 @@
- 	}
- 
- 	res = http_response_init("RTSP/1.0", 200, "OK");
--	if (strlen(raop->password)) {
-+	if (strcmp(method, "OPTIONS") && strlen(raop->password)) {
- 		const char *authorization;
- 
- 		authorization = http_request_get_header(request, "Authorization");
diff --git a/tools/depends/target/libshairplay/Makefile b/tools/depends/target/libshairplay/Makefile
deleted file mode 100644
index 71dbbb6..0000000
--- a/tools/depends/target/libshairplay/Makefile
+++ /dev/null
@@ -1,51 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include 
-
-# lib name, version
-LIBNAME=shairplay
-VERSION=139d5ef
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.bz2
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX)
-
-
-LIBDYLIB=$(PLATFORM)/src/lib/.libs/libshairplay.a
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-ifeq ($(OS),ios)
-	cd $(PLATFORM); patch -p1 < ../xcode-llmvfix.patch
-endif
-	cd $(PLATFORM); patch -p1 < ../02-fixipv4ipv6race.patch
-	cd $(PLATFORM); patch -p1 < ../03-fixpasswordauthitunes.patch
-	cd $(PLATFORM); $(AUTORECONF) -vif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -j 1 -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/libshairplaylibshairplay.la $(PREFIX)/lib/libshairplay.so $(PREFIX)/lib/libshairplay.so.0
-	mv -f $(PREFIX)/lib/libshairplay.so.0.0.0 $(PREFIX)/lib/libshairplay.so
-	$(RPL) -e "libshairplay.so.0" "libshairplay.so\x00\x00" $(PREFIX)/lib/libshairplay.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libshairplay.so | grep ibrary
-endif
-
-	touch $@
-
-clean:
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libshairplay/xcode-llmvfix.patch b/tools/depends/target/libshairplay/xcode-llmvfix.patch
deleted file mode 100644
index 470c2d6..0000000
--- a/tools/depends/target/libshairplay/xcode-llmvfix.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/src/lib/dnssd.c	2013-10-26 16:39:10.000000000 -0400
-+++ b/src/lib/dnssd.c	2013-10-26 16:38:32.000000000 -0400
-@@ -12,6 +12,13 @@
-  *  Lesser General Public License for more details.
-  */
- 
-+#ifndef __has_feature         // Optional of course.
-+  #define __has_feature(x) 0  // Compatibility with non-clang compilers.
-+#endif
-+#ifndef __has_extension
-+  #define __has_extension __has_feature // Compatibility with pre-3.0 compilers.
-+#endif
-+
- #include <stdlib.h>
- #include <string.h>
- #include <stdio.h>
-
-
diff --git a/tools/depends/target/libssh/Makefile b/tools/depends/target/libssh/Makefile
deleted file mode 100644
index ae9d3f0..0000000
--- a/tools/depends/target/libssh/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile removelegacy.patch android.patch
-
-# lib name, version
-LIBNAME=libssh
-VERSION=0.5.0
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-LIBDYLIB=$(PLATFORM)/build/src/$(LIBNAME).a
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); rm -rf build; mkdir -p build
-	cd $(PLATFORM); patch -p0 < ../removelegacy.patch
-	cd $(PLATFORM); patch -p0 < ../android.patch
-	cd $(PLATFORM); patch -p0 < ../md5.patch
-	cd $(PLATFORM); patch -p1 < ../darwin.patch
-	sed -ie "s|-fstack-protector|-fnostack-protector|" "$(PLATFORM)/cmake/Modules/DefineCompilerFlags.cmake"
-	sed -ie "s|add_subdirectory(examples)||" "$(PLATFORM)/CMakeLists.txt"
-	cd $(PLATFORM)/build; $(CMAKE) -DWITH_STATIC_LIB=1 -DTHREADS_PTHREAD_ARG=0 VERBOSE=1 .. 
-
-$(LIBDYLIB): $(PLATFORM)
-	make -j 1 -C $(PLATFORM)/build
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	make -C $(PLATFORM)/build install
-	rm -f $(PREFIX)/lib/libssh.so $(PREFIX)/lib/libssh.so.4.2.0 $(PREFIX)/lib/libssh.so.4
-	rm -f $(PREFIX)/lib/libssh.*dylib*
-	touch $@
-
-clean:
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/libssh/android.patch b/tools/depends/target/libssh/android.patch
deleted file mode 100644
index 96bafd8..0000000
--- a/tools/depends/target/libssh/android.patch
+++ /dev/null
@@ -1,63 +0,0 @@
---- src/connect.c	2011-05-31 10:29:52.000000000 -0400
-+++ src/connect.c	2013-01-03 00:38:13.572737322 -0500
-@@ -159,7 +159,11 @@
-   int timeout_ms;
-   ssh_pollfd_t fds;
-   int rc = 0;
-+#ifdef ANDROID
-+  socklen_t len = sizeof(rc);
-+#else
-   unsigned int len = sizeof(rc);
-+#endif
- 
-   enter_function();
- 
---- src/misc.c	2011-05-31 10:29:52.000000000 -0400
-+++ src/misc.c	2013-01-03 00:37:37.652737345 -0500
-@@ -208,6 +208,9 @@
- 
- char *ssh_get_user_home_dir(void) {
-   char *szPath = NULL;
-+#ifdef ANDROID
-+  return strdup(getenv("HOME"));
-+#else
-   struct passwd pwd;
-   struct passwd *pwdbuf;
-   char buf[NSS_BUFLEN_PASSWD];
-@@ -219,7 +222,7 @@
-   }
- 
-   szPath = strdup(pwd.pw_dir);
--
-+#endif
-   return szPath;
- }
- 
-@@ -233,6 +236,19 @@
- }
- 
- char *ssh_get_local_username(ssh_session session) {
-+#ifdef ANDROID
-+    char *name = NULL;
-+    struct passwd *pwd = NULL;
-+    pwd = getpwuid(getuid());
-+    if ( pwd == NULL) {
-+        ssh_set_error(session, SSH_FATAL,
-+            "Couldn't retrieve information for current user!");
-+        return NULL;
-+    }
-+
-+    name = strdup(pwd->pw_name);
-+
-+#else
-     struct passwd pwd;
-     struct passwd *pwdbuf;
-     char buf[NSS_BUFLEN_PASSWD];
-@@ -248,6 +264,7 @@
- 
-     name = strdup(pwd.pw_name);
- 
-+#endif
-     if (name == NULL) {
-       ssh_set_error_oom(session);
-       return NULL;
diff --git a/tools/depends/target/libssh/darwin.patch b/tools/depends/target/libssh/darwin.patch
deleted file mode 100644
index 3288d29..0000000
--- a/tools/depends/target/libssh/darwin.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff --git a/include/libssh/misc.h b/include/libssh/misc.h
-index 9897c4e..fe4f602 100644
---- a/include/libssh/misc.h
-+++ b/include/libssh/misc.h
-@@ -35,8 +35,12 @@ int ssh_is_ipaddr_v4(const char *str);
- int ssh_is_ipaddr(const char *str);
- 
- /* macro for byte ordering */
-+#if !defined(ntohll)
- uint64_t ntohll(uint64_t);
-+#endif
-+#if !defined(htonll)
- #define htonll(x) ntohll(x)
-+#endif
- 
- /* list processing */
- 
-diff --git a/src/misc.c b/src/misc.c
-index 008be1b..3c2d8bb 100644
---- a/src/misc.c
-+++ b/src/misc.c
-@@ -286,6 +286,7 @@ int ssh_is_ipaddr(const char *str) {
- 
- #endif /* _WIN32 */
- 
-+#if !defined(ntohll)
- uint64_t ntohll(uint64_t a) {
- #ifdef WORDS_BIGENDIAN
-   return a;
-@@ -298,6 +299,7 @@ uint64_t ntohll(uint64_t a) {
-   return ((((uint64_t) low) << 32) | ( high));
- #endif
- }
-+#endif
- 
- char *ssh_lowercase(const char* str) {
-   char *new, *p;
diff --git a/tools/depends/target/libssh/md5.patch b/tools/depends/target/libssh/md5.patch
deleted file mode 100644
index b5985f0..0000000
--- a/tools/depends/target/libssh/md5.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -ruN include/libssh/wrapper.h include/libssh/wrapper.h
---- include/libssh/wrapper.h	2011-05-31 10:29:52.000000000 -0400
-+++ include/libssh/wrapper.h	2012-07-26 00:21:16.021511996 -0400
-@@ -26,7 +26,7 @@
- #include "libssh/libcrypto.h"
- #include "libssh/libgcrypt.h"
- 
--MD5CTX md5_init(void);
-+MD5CTX ssh_md5_init(void);
- void md5_update(MD5CTX c, const void *data, unsigned long len);
- void md5_final(unsigned char *md,MD5CTX c);
- SHACTX sha1_init(void);
-diff -ruN src/dh.c src/dh.c
---- src/dh.c	2011-05-31 10:29:52.000000000 -0400
-+++ src/dh.c	2012-07-26 00:19:52.961512049 -0400
-@@ -854,7 +854,7 @@
-     return SSH_ERROR;
-   }
- 
--  ctx = md5_init();
-+  ctx = ssh_md5_init();
-   if (ctx == NULL) {
-     SAFE_FREE(h);
-     return SSH_ERROR;
-diff -ruN src/kex.c src/kex.c
---- src/kex.c	2011-05-31 10:29:52.000000000 -0400
-+++ src/kex.c	2012-07-26 00:20:37.671512021 -0400
-@@ -509,7 +509,7 @@
-     ssh_string hostn) {
-   MD5CTX md5 = NULL;
- 
--  md5 = md5_init();
-+  md5 = ssh_md5_init();
-   if (md5 == NULL) {
-     return -1;
-   }
-diff -ruN src/keyfiles.c src/keyfiles.c
---- src/keyfiles.c	2011-05-31 10:29:52.000000000 -0400
-+++ src/keyfiles.c	2012-07-26 00:20:51.801512011 -0400
-@@ -223,7 +223,7 @@
-   unsigned int md_not_empty;
- 
-   for (j = 0, md_not_empty = 0; j < keylen; ) {
--    md = md5_init();
-+    md = ssh_md5_init();
-     if (md == NULL) {
-       return -1;
-     }
-diff -ruN src/libcrypto.c src/libcrypto.c
---- src/libcrypto.c	2011-05-31 10:29:52.000000000 -0400
-+++ src/libcrypto.c	2012-07-26 00:20:07.061512022 -0400
-@@ -89,7 +89,7 @@
-   SHA1(digest, len, hash);
- }
- 
--MD5CTX md5_init(void) {
-+MD5CTX ssh_md5_init(void) {
-   MD5CTX c = malloc(sizeof(*c));
-   if (c == NULL) {
-     return NULL;
-diff -ruN src/libgcrypt.c src/libgcrypt.c
---- src/libgcrypt.c	2011-05-31 10:29:52.000000000 -0400
-+++ src/libgcrypt.c	2012-07-26 00:20:19.401512036 -0400
-@@ -62,7 +62,7 @@
-   gcry_md_hash_buffer(GCRY_MD_SHA1, hash, digest, len);
- }
- 
--MD5CTX md5_init(void) {
-+MD5CTX ssh_md5_init(void) {
-   MD5CTX c = NULL;
-   gcry_md_open(&c, GCRY_MD_MD5, 0);
- 
diff --git a/tools/depends/target/libssh/removelegacy.patch b/tools/depends/target/libssh/removelegacy.patch
deleted file mode 100644
index 69683cb..0000000
--- a/tools/depends/target/libssh/removelegacy.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/CMakeLists.txt	2011-06-16 19:04:44.000000000 +0200
-+++ src/CMakeLists.txt	2011-06-16 19:03:40.000000000 +0200
-@@ -94,7 +94,6 @@
-   keyfiles.c
-   keys.c
-   known_hosts.c
--  legacy.c
-   libcrypto.c
-   libgcrypt.c
-   log.c
diff --git a/tools/depends/target/libssh2/Makefile b/tools/depends/target/libssh2/Makefile
deleted file mode 100644
index 91751d1..0000000
--- a/tools/depends/target/libssh2/Makefile
+++ /dev/null
@@ -1,52 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libssh2
-VERSION=1.2.7
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --with-openssl
-
-SHELL := /bin/bash
-RM    := rm -rf
-
-LIBDYLIB=$(PLATFORM)/src/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p0 < ../libdl.patch
-	cd $(PLATFORM); $(AUTORECONF) -vif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/libssh2.la $(PREFIX)/lib/libssh2.so $(PREFIX)/lib/libssh2.so.1
-	mv -f $(PREFIX)/lib/libssh2.so.1.0.1 $(PREFIX)/lib/libssh2.so
-	$(RPL) -e "libssh2.so.1" "libssh2.so\x00\x00" $(PREFIX)/lib/libssh2.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libssh2.so | grep ibrary
-endif
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libssh2/libdl.patch b/tools/depends/target/libssh2/libdl.patch
deleted file mode 100644
index ff70253..0000000
--- a/tools/depends/target/libssh2/libdl.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- configure.ac	2010-04-14 17:35:40.000000000 -0400
-+++ configure.ac	2013-01-14 14:59:23.183089017 -0500
-@@ -62,6 +62,7 @@
- 
- # Solaris has inet_addr() in -lnsl.
- AC_SEARCH_LIBS(inet_addr, nsl)
-+AC_SEARCH_LIBS(dlopen, dl)
- 
- AC_SUBST(LIBS)
- 
diff --git a/tools/depends/target/libusb/Makefile b/tools/depends/target/libusb/Makefile
deleted file mode 100644
index 56a5972..0000000
--- a/tools/depends/target/libusb/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libusb
-VERSION=0.1.12
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --disable-shared --disable-build-docs
-
-LIBDYLIB=$(PLATFORM)/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: $(LIBDYLIB) .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/libvorbis/Makefile b/tools/depends/target/libvorbis/Makefile
deleted file mode 100644
index b430ae3..0000000
--- a/tools/depends/target/libvorbis/Makefile
+++ /dev/null
@@ -1,58 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libvorbis
-VERSION=1.3.2
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-export LIBS=-lm
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --disable-oggtest --disable-docs --disable-examples
-
-LIBDYLIB=$(PLATFORM)/lib/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	sed -ie "s|SUBDIRS = m4 include vq lib examples test doc|SUBDIRS = m4 include lib|" "$(PLATFORM)/Makefile.in"
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-ifeq ($(OS),android)
-	rm -f $(PREFIX)/lib/libvorbis.la $(PREFIX)/lib/libvorbis.so $(PREFIX)/lib/libvorbis.so.0
-	mv -f $(PREFIX)/lib/libvorbis.so.0.4.5 $(PREFIX)/lib/libxbvorbis.so
-	ln -sf $(PREFIX)/lib/libxbvorbis.so $(PREFIX)/lib/libvorbis.so
-	$(RPL) -e "libvorbis.so.0" "libxbvorbis.so" $(PREFIX)/lib/libxbvorbis.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libxbvorbis.so | grep ibrary
-	#
-	rm -f $(PREFIX)/lib/libvorbisfile.la $(PREFIX)/lib/libvorbisfile.so $(PREFIX)/lib/libvorbisfile.so.3
-	mv -f $(PREFIX)/lib/libvorbisfile.so.3.3.4 $(PREFIX)/lib/libxbvorbisfile.so
-	ln -sf $(PREFIX)/lib/libxbvorbisfile.so $(PREFIX)/lib/libvorbisfile.so
-	$(RPL) -e "libvorbisfile.so.3" "libxbvorbisfile.so" $(PREFIX)/lib/libxbvorbisfile.so
-	$(RPL) -e "libvorbis.so.0" "libxbvorbis.so" $(PREFIX)/lib/libxbvorbisfile.so
-	-$(READELF) --dynamic $(PREFIX)/lib/libxbvorbisfile.so | grep ibrary
-	#
-endif
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libxml2/Makefile b/tools/depends/target/libxml2/Makefile
deleted file mode 100644
index abbf8d6..0000000
--- a/tools/depends/target/libxml2/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libxml2
-VERSION=2.7.6
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --without-python --without-iconv --disable-shared
-
-LIBDYLIB=$(PLATFORM)/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	sed -ie 's|runtest$(EXEEXT)||' "$(PLATFORM)/Makefile.in"
-	sed -ie 's|testrecurse$(EXEEXT)||' "$(PLATFORM)/Makefile.in"
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $(LIBDYLIB)
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libxslt/Makefile b/tools/depends/target/libxslt/Makefile
deleted file mode 100644
index 1ea6dba..0000000
--- a/tools/depends/target/libxslt/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libxslt
-VERSION=1.1.28
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --without-python --disable-shared   --with-debug --with-debugger --with-mem-debug --with-libxml-prefix=$(PREFIX)
-
-LIBDYLIB=$(PLATFORM)/$(LIBNAME)/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	sed -ie "s|runtest$$(EXEEXT)||" "$(PLATFORM)/Makefile.in"
-	sed -ie "s|testrecurse$$(EXEEXT)||" "$(PLATFORM)/Makefile.in"
-	sed -ie "s|xsltproc||" "$(PLATFORM)/Makefile.in"
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/libzip/Makefile b/tools/depends/target/libzip/Makefile
deleted file mode 100644
index 99a548e..0000000
--- a/tools/depends/target/libzip/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=libzip
-VERSION=0.10
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-        ./configure --prefix=$(PREFIX) --disable-shared
-
-LIBDYLIB=$(PLATFORM)/lib/.libs/$(LIBNAME).a
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	rm -f $(PREFIX)/lib/libzip.la $(PREFIX)/lib/libzip*.so*
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/mdnsresponder/01-android-embedded.patch b/tools/depends/target/mdnsresponder/01-android-embedded.patch
deleted file mode 100644
index e61c253..0000000
--- a/tools/depends/target/mdnsresponder/01-android-embedded.patch
+++ /dev/null
@@ -1,406 +0,0 @@
-diff -uPr ./mDNSCore/mDNSEmbeddedAPI.h ./mDNSCore/mDNSEmbeddedAPI.h
---- ./mDNSCore/mDNSEmbeddedAPI.h	2012-10-24 01:18:23.000000000 +0200
-+++ ./mDNSCore/mDNSEmbeddedAPI.h	2013-06-10 18:45:59.000000000 +0200
-@@ -1144,6 +1144,10 @@
-     McastResolver_FlagNew    = 2
- };
- 
-+// everyone loves proprietary language extensions in the global namespace
-+#ifdef _MSC_VER
-+#undef interface
-+#endif
- typedef struct McastResolver
- {
-     struct McastResolver *next;
-diff -uPr ./mDNSCore/mDnsEmbedded.c ./mDNSCore/mDnsEmbedded.c
---- ./mDNSCore/mDnsEmbedded.c	1970-01-01 01:00:00.000000000 +0100
-+++ ./mDNSCore/mDnsEmbedded.c	2013-06-10 18:45:59.000000000 +0200
-@@ -0,0 +1,145 @@
-+/**
-+ *  @file
-+ *  @brief      Wrapper for mDNSEmbeddedAPI with Bonjour.
-+ *  @author     2012 Stefan Radomski (stefan.radomski at cs.tu-darmstadt.de)
-+ *  @copyright  Simplified BSD
-+ *
-+ *  @cond
-+ *  This program is free software: you can redistribute it and/or modify
-+ *  it under the terms of the FreeBSD license as published by the FreeBSD
-+ *  project.
-+ *
-+ *  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.
-+ *
-+ *  You should have received a copy of the FreeBSD license along with this
-+ *  program. If not, see <http://www.opensource.org/licenses/bsd-license>.
-+ *  @endcond
-+ */
-+
-+#include <stdlib.h>
-+#include <assert.h>
-+#include <sys/select.h>
-+// include order matters
-+#include "mDNSEmbeddedAPI.h"
-+#ifdef WIN32
-+#include "../mDNSWindows/mDNSWin32.h"    // Defines the specific types needed to run mDNS on windows platforms
-+#else
-+#include <sys/time.h>
-+#include "../mDNSPosix/mDNSPosix.h"    // Defines the specific types needed to run mDNS on posix platforms
-+#endif
-+
-+#define RR_CACHE_SIZE 500
-+static CacheEntity rrcachestorage[RR_CACHE_SIZE];
-+mDNS mDNSStorage;
-+//struct mDNS_PlatformSupport_struct {};
-+static int mDNSIsInitialized = 0;
-+static mDNS_PlatformSupport platformSupport;
-+
-+const char ProgramName[] = "umundo";
-+extern mDNSexport void mDNSPosixGetFDSet(mDNS *m, int *nfds, fd_set *readfds, struct timeval *timeout);
-+extern mDNSexport void mDNSPosixProcessFDSet(mDNS *const m, fd_set *readfds);
-+
-+// promise compiler that these will be there
-+mDNSexport int embedded_mDNSmainLoop(struct timeval timeout);
-+
-+#if WIN32
-+mStatus mDNSPoll(DWORD msec);
-+static void	embedded_mDNSInit_ReportStatus( int inType, const char *inFormat, ... ) {
-+}
-+#endif
-+
-+mDNSexport int embedded_mDNSInit() {
-+	mStatus err;
-+	if (mDNSIsInitialized != 0) {
-+		return 0;
-+	}
-+
-+	mDNSPlatformMemZero( &mDNSStorage, sizeof(mDNSStorage));
-+	mDNSPlatformMemZero( &platformSupport, sizeof(platformSupport));
-+
-+	err = mDNS_Init(
-+		&mDNSStorage,
-+		&platformSupport,
-+		rrcachestorage,
-+		RR_CACHE_SIZE,
-+		mDNS_Init_AdvertiseLocalAddresses,
-+		mDNS_Init_NoInitCallback,
-+		mDNS_Init_NoInitCallbackContext
-+	);
-+	if (err)
-+		return err;
-+
-+#ifdef WIN32
-+	platformSupport.reportStatusFunc = embedded_mDNSInit_ReportStatus;
-+	err = SetupInterfaceList( &mDNSStorage );
-+	if (err)
-+		return err;
-+	err = uDNS_SetupDNSConfig( &mDNSStorage );
-+#endif
-+
-+	if (err == 0) {
-+		mDNSIsInitialized = 1;
-+	}
-+	return err;
-+}
-+
-+mDNSexport void embedded_mDNSExit() {
-+#ifdef WIN32
-+	struct timeval tv;
-+	tv.tv_sec  = 0;
-+	tv.tv_usec = 0;
-+//	mDNS_StartExit(&mDNSStorage);
-+//	embedded_mDNSmainLoop(tv);
-+//	mDNS_FinalExit(&mDNSStorage);
-+#else
-+	mDNS_Close(&mDNSStorage);
-+#endif
-+}
-+
-+#ifdef WIN32
-+mDNSexport int embedded_mDNSmainLoop(struct timeval timeout) {
-+	mDNS_Execute(&mDNSStorage);
-+	mDNSPoll(100);
-+//	Sleep(100);
-+	return 0;
-+}
-+
-+#else
-+
-+// From <mDNSDir>/ExampleClientApp.c
-+mDNSexport int embedded_mDNSmainLoop(struct timeval timeout) {
-+	int nfds = 0;
-+	fd_set readfds;
-+	int result;
-+
-+	// 1. Set up the fd_set as usual here.
-+	// This example client has no file descriptors of its own,
-+	// but a real application would call FD_SET to add them to the set here
-+	FD_ZERO(&readfds);
-+
-+	// 2. Set up the timeout.
-+	// This example client has no other work it needs to be doing,
-+	// so we set an effectively infinite timeout
-+//	timeout.tv_sec = 0x3FFFFFFF;
-+//	timeout.tv_usec = 0;
-+
-+	assert(timeout.tv_sec < 10);
-+	// 3. Give the mDNSPosix layer a chance to add its information to the fd_set and timeout
-+	mDNSPosixGetFDSet(&mDNSStorage, &nfds, &readfds, &timeout);
-+
-+	// 4. Call select as normal
-+	result = select(nfds, &readfds, NULL, NULL, &timeout);
-+
-+	if (result > 0) {
-+		// 5. Call mDNSPosixProcessFDSet to let the mDNSPosix layer do its work
-+		mDNSPosixProcessFDSet(&mDNSStorage, &readfds);
-+
-+		// 6. This example client has no other work it needs to be doing,
-+		// but a real client would do its work here
-+		// ... (do work) ...
-+	}
-+	return result;
-+}
-+#endif
-diff -uPr ./mDNSCore/mDnsEmbedded.h ./mDNSCore/mDnsEmbedded.h
---- ./mDNSCore/mDnsEmbedded.h	1970-01-01 01:00:00.000000000 +0100
-+++ ./mDNSCore/mDnsEmbedded.h	2013-06-10 18:45:59.000000000 +0200
-@@ -0,0 +1,32 @@
-+/*                                                                                                                                                                                        
-+ *      Copyright (C) 2005-2013 Team XBMC                                                                                                                                                 
-+ *      http://xbmc.org                                                                                                                                                               
-+ *                                                                                                                                                                                        
-+ *  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 XBMC; see the file COPYING.  If not, see                                                                                                                                   
-+ *  <http://www.gnu.org/licenses/>.                                                                                                                                                       
-+ *                                                                                                                                                                                        
-+ */
-+
-+#ifndef _MDNSEMBEDDED_H_
-+#define _MDNSEMBEDDED_H_
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+int embedded_mDNSInit();
-+void embedded_mDNSExit();
-+int embedded_mDNSmainLoop(struct timeval timeout);
-+#ifdef __cplusplus
-+}
-+#endif
-+#endif //_MDNSEMBEDDED_H_
-diff -uPr ./mDNSPosix/mDNSPosix.h ./mDNSPosix/mDNSPosix.h
---- ./mDNSPosix/mDNSPosix.h	2011-12-02 01:39:45.000000000 +0100
-+++ ./mDNSPosix/mDNSPosix.h	2013-06-10 18:45:59.000000000 +0200
-@@ -25,6 +25,10 @@
- extern "C" {
- #endif
- 
-+#ifdef ANDROID
-+#include <fcntl.h>
-+#endif
-+
- // PosixNetworkInterface is a record extension of the core NetworkInterfaceInfo
- // type that supports extra fields needed by the Posix platform.
- //
-diff -uPr ./mDNSShared/dnssd_clientshim.c ./mDNSShared/dnssd_clientshim.c
---- ./mDNSShared/dnssd_clientshim.c	2013-04-10 01:09:07.000000000 +0200
-+++ ./mDNSShared/dnssd_clientshim.c	2013-06-10 18:53:18.000000000 +0200
-@@ -25,6 +25,13 @@
- 
- #include "dns_sd.h"             // Defines the interface to the client layer above
- #include "mDNSEmbeddedAPI.h"        // The interface we're building on top of
-+#ifndef _MSC_VER
-+#include <sys/socket.h>
-+#include <netinet/in.h>
-+#else
-+#include <winsock2.h>
-+#endif
-+
- extern mDNS mDNSStorage;        // We need to pass the address of this storage to the lower-layer functions
- 
- #if MDNS_BUILDINGSHAREDLIBRARY || MDNS_BUILDINGSTUBLIBRARY
-@@ -71,6 +78,14 @@
- typedef struct
- {
-     mDNS_DirectOP_Dispose  *disposefn;
-+    DNSServiceRef                aQuery;
-+    DNSServiceGetAddrInfoReply   callback;
-+    void                         *context;
-+} mDNS_DirectOP_GetAddrInfo;
-+
-+typedef struct
-+{
-+    mDNS_DirectOP_Dispose  *disposefn;
-     DNSServiceResolveReply callback;
-     void                   *context;
-     const ResourceRecord   *SRV;
-@@ -399,7 +414,7 @@
- 
-     // Check parameters
-     if (!regtype[0] || !MakeDomainNameFromDNSNameString(&t, regtype))      { errormsg = "Illegal regtype"; goto badparam; }
--    if (!MakeDomainNameFromDNSNameString(&d, *domain ? domain : "local.")) { errormsg = "Illegal domain";  goto badparam; }
-+    if (!MakeDomainNameFromDNSNameString(&d, (domain && *domain) ? domain : "local.")) { errormsg = "Illegal domain";  goto badparam; }
- 
-     // Allocate memory, and handle failure
-     x = (mDNS_DirectOP_Browse *)mDNSPlatformMemAllocate(sizeof(*x));
-@@ -668,7 +683,7 @@
-     x->q.ExpectUnique        = mDNSfalse;
-     x->q.ForceMCast          = (flags & kDNSServiceFlagsForceMulticast) != 0;
-     x->q.ReturnIntermed      = (flags & kDNSServiceFlagsReturnIntermediates) != 0;
--    x->q.SuppressUnsable     = (flags & kDNSServiceFlagsSuppressUnusable) != 0;
-+    x->q.SuppressUnusable    = (flags & kDNSServiceFlagsSuppressUnusable) != 0;
-     x->q.SearchListIndex     = 0;
-     x->q.AppendSearchDomains = 0;
-     x->q.RetryWithSearchDomains = mDNSfalse;
-diff -uPr ./mDNSShared/dns_sd.h ./mDNSShared/dns_sd.h
---- ./mDNSShared/dns_sd.h	2013-04-10 01:08:48.000000000 +0200
-+++ ./mDNSShared/dns_sd.h	2013-06-10 18:45:59.000000000 +0200
-@@ -93,7 +93,7 @@
- /* standard calling convention under Win32 is __stdcall */
- /* Note: When compiling Intel EFI (Extensible Firmware Interface) under MS Visual Studio, the */
- /* _WIN32 symbol is defined by the compiler even though it's NOT compiling code for Windows32 */
--#if defined(_WIN32) && !defined(EFI32) && !defined(EFI64)
-+#if defined(_WIN32) && !defined(EFI32) && !defined(EFI64) && !defined(DISC_BONJOUR_EMBED)
- #define DNSSD_API __stdcall
- #else
- #define DNSSD_API
-diff -uPr ./mDNSShared/dnssd_ipc.h ./mDNSShared/dnssd_ipc.h
---- ./mDNSShared/dnssd_ipc.h	2012-07-12 23:57:14.000000000 +0200
-+++ ./mDNSShared/dnssd_ipc.h	2013-06-10 18:45:59.000000000 +0200
-@@ -29,6 +29,11 @@
- #ifndef DNSSD_IPC_H
- #define DNSSD_IPC_H
- 
-+#ifdef ANDROID
-+#include <sys/socket.h>
-+#include <sys/un.h>
-+#endif
-+
- #include "dns_sd.h"
- 
- //
-diff -uPr ./mDNSShared/PlatformCommon.c ./mDNSShared/PlatformCommon.c
---- ./mDNSShared/PlatformCommon.c	2012-01-18 03:45:05.000000000 +0100
-+++ ./mDNSShared/PlatformCommon.c	2013-06-10 19:24:58.064683350 +0200
-@@ -15,6 +15,8 @@
-  * limitations under the License.
-  */
- 
-+#include "DNSCommon.h"
-+
- #include <stdio.h>              // Needed for fopen() etc.
- #include <unistd.h>             // Needed for close()
- #include <string.h>             // Needed for strlen() etc.
-@@ -24,9 +26,12 @@
- #include <syslog.h>
- 
- #include "mDNSEmbeddedAPI.h"    // Defines the interface provided to the client layer above
--#include "DNSCommon.h"
- #include "PlatformCommon.h"
- 
-+#ifdef ANDROID
-+#include <android/log.h>
-+#endif
-+
- #ifdef NOT_HAVE_SOCKLEN_T
- typedef unsigned int socklen_t;
- #endif
-@@ -143,13 +148,20 @@
- #if MDNS_DEBUGMSGS
- mDNSexport void mDNSPlatformWriteDebugMsg(const char *msg)
- {
-+#ifdef ANDROID
-+       __android_log_print(ANDROID_LOG_DEBUG, "bonjour", "%s", msg);
-+#else
-     fprintf(stderr,"%s\n", msg);
-     fflush(stderr);
-+#endif
- }
- #endif
- 
- mDNSexport void mDNSPlatformWriteLogMsg(const char *ident, const char *buffer, mDNSLogLevel_t loglevel)
- {
-+#ifdef ANDROID
-+       __android_log_print(ANDROID_LOG_DEBUG, "bonjour", "%s", buffer);
-+#else
- #if APPLE_OSX_mDNSResponder && LogTimeStamps
-     extern mDNS mDNSStorage;
-     extern mDNSu32 mDNSPlatformClockDivisor;
-@@ -193,4 +205,5 @@
- #endif
-         syslog(syslog_level, "%s", buffer);
-     }
-+#endif
- }
-diff -uPr ./mDNSShared/uds_daemon.h ./mDNSShared/uds_daemon.h
---- ./mDNSShared/uds_daemon.h	2012-07-12 23:57:14.000000000 +0200
-+++ ./mDNSShared/uds_daemon.h	2013-06-10 18:45:59.000000000 +0200
-@@ -22,6 +22,11 @@
- 
-  */
- 
-+#ifdef ANDROID
-+#include <sys/socket.h>
-+#include <sys/un.h>
-+#endif
-+
- #include "mDNSEmbeddedAPI.h"
- #include "dnssd_ipc.h"
- 
-diff -uPr ./mDNSWindows/mDNSWin32.c ./mDNSWindows/mDNSWin32.c
---- ./mDNSWindows/mDNSWin32.c	2012-10-31 00:24:17.000000000 +0100
-+++ ./mDNSWindows/mDNSWin32.c	2013-06-10 18:45:59.000000000 +0200
-@@ -2920,10 +2920,7 @@
- 		sa4.sin_family 		= AF_INET;
- 		sa4.sin_port 		= port.NotAnInteger;
- 		sa4.sin_addr.s_addr	= ipv4.NotAnInteger;
--		
--		err = bind( sock, (struct sockaddr *) &sa4, sizeof( sa4 ) );
--		check_translated_errno( err == 0, errno_compat(), kUnknownErr );
--		
-+				
- 		// Turn on option to receive destination addresses and receiving interface.
- 		
- 		option = 1;
-@@ -2964,6 +2961,9 @@
- 		err = setsockopt( sock, IPPROTO_IP, IP_MULTICAST_TTL, (char *) &option, sizeof( option ) );
- 		check_translated_errno( err == 0, errno_compat(), kOptionErr );
- 
-+		err = bind( sock, (struct sockaddr *) &sa4, sizeof( sa4 ) );
-+		check_translated_errno( err == 0, errno_compat(), kUnknownErr );
-+
- 	}
- 	else if( inAddr->sa_family == AF_INET6 )
- 	{
-@@ -2981,10 +2981,7 @@
- 		sa6.sin6_flowinfo	= 0;
- 		sa6.sin6_addr		= sa6p->sin6_addr;
- 		sa6.sin6_scope_id	= sa6p->sin6_scope_id;
--		
--		err = bind( sock, (struct sockaddr *) &sa6, sizeof( sa6 ) );
--		check_translated_errno( err == 0, errno_compat(), kUnknownErr );
--		
-+				
- 		// Turn on option to receive destination addresses and receiving interface.
- 		
- 		option = 1;
-@@ -3034,6 +3031,10 @@
- 		option = 255;
- 		err = setsockopt( sock, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, (char *) &option, sizeof( option ) );
- 		check_translated_errno( err == 0, errno_compat(), kOptionErr );
-+		
-+		err = bind( sock, (struct sockaddr *) &sa6, sizeof( sa6 ) );
-+		check_translated_errno( err == 0, errno_compat(), kUnknownErr );
-+
- 	}
- 	else
- 	{
diff --git a/tools/depends/target/mdnsresponder/Makefile b/tools/depends/target/mdnsresponder/Makefile
deleted file mode 100644
index cc34558..0000000
--- a/tools/depends/target/mdnsresponder/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-
-# lib name, version
-LIBNAME=mDNSResponder
-VERSION=379.37
-OUTPUTNAME=libmDNSEmbedded
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-LIBDYLIB=$(PLATFORM)/$(OUTPUTNAME).a
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p1 < ../01-android-embedded.patch
-	cd $(PLATFORM); cp ../makefile.internal Makefile
-
-$(LIBDYLIB): $(PLATFORM)
-	cd $(PLATFORM); CC="$(CC)" AR="$(AR)" CFLAGS="$(CFLAGS)" $(MAKE)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	cd $(PLATFORM); PREFIX="$(PREFIX)" $(MAKE) install
-	touch $@
-
-clean:
-	make -C $(PLATFORM) clean 
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/mdnsresponder/makefile.internal b/tools/depends/target/mdnsresponder/makefile.internal
deleted file mode 100644
index 55113c2..0000000
--- a/tools/depends/target/mdnsresponder/makefile.internal
+++ /dev/null
@@ -1,34 +0,0 @@
-DEFINES  ?= -DNOT_HAVE_SA_LEN -DUSES_NETLINK
-INCLUDES ?= -I./mDNSShared -I./mDNSCore
-PREFIX   ?= /usr/local
-LIBDIR   ?= $(PREFIX)/lib
-INCDIR   ?= $(PREFIX)/include
-LIB =    libmDNSEmbedded.a
-
-HEADERS = mDNSShared/dns_sd.h mDNSCore/mDnsEmbedded.h
-
-OBJECTS =  mDNSShared/dnssd_clientshim.o mDNSPosix/mDNSPosix.o mDNSCore/mDNS.o
-OBJECTS += mDNSCore/DNSCommon.o mDNSShared/mDNSDebug.o mDNSShared/GenLinkedList.o
-OBJECTS += mDNSCore/uDNS.o mDNSShared/PlatformCommon.o mDNSPosix/mDNSUNP.o
-OBJECTS += mDNSCore/DNSDigest.o mDNSCore/mDnsEmbedded.o mDNSShared/dnssd_clientlib.o
-OBJECTS += mDNSCore/CryptoAlg.o
-
-all: $(LIB)
-install: $(LIBDIR)/$(LIB) $(addprefix $(INCDIR)/,$(HEADERS))
-
-$(INCDIR)/%.h: %.h
-	mkdir -p $(INCDIR)
-	install -m 644 $< $(INCDIR)
-
-$(LIBDIR)/$(LIB): $(LIB)
-	mkdir -p $(LIBDIR)
-	install -m 644 $< $@
-
-$(LIB): $(OBJECTS)
-	$(AR) rvs $@ $^
-
-%.o: %.c
-	$(CC) $(INCLUDES) $(DEFINES) $(CFLAGS) -c $< -o $@
-
-clean:
-	-rm $(OBJECTS) $(LIB)
diff --git a/tools/depends/target/mysql/01-mysqlclient-cross-compile.patch b/tools/depends/target/mysql/01-mysqlclient-cross-compile.patch
deleted file mode 100644
index 12b22b7..0000000
--- a/tools/depends/target/mysql/01-mysqlclient-cross-compile.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-diff -ruN mysql-5.1.55.org/configure.in mysql-5.1.55/configure.in
---- mysql-5.1.55.org/configure.in	2011-01-25 16:04:35.000000000 +0100
-+++ mysql-5.1.55/configure.in	2011-05-19 20:14:38.000000000 +0200
-@@ -1571,13 +1571,6 @@
- esac
- 
- 
--# System characteristics
--case $SYSTEM_TYPE in
--  *netware*) ;;
--  *)
--AC_SYS_RESTARTABLE_SYSCALLS
--    ;;
--esac
- 
- # Build optimized or debug version ?
- # First check for gcc and g++
-diff -ruN mysql-5.1.55.org/storage/innodb_plugin/plug.in mysql-5.1.55/storage/innodb_plugin/plug.in
---- mysql-5.1.55.org/storage/innodb_plugin/plug.in	2011-01-25 16:04:35.000000000 +0100
-+++ mysql-5.1.55/storage/innodb_plugin/plug.in	2011-05-19 21:59:28.000000000 +0200
-@@ -56,149 +56,6 @@
-   esac
-   AC_SUBST(INNODB_DYNAMIC_CFLAGS)
- 
--  AC_MSG_CHECKING(whether GCC atomic builtins are available)
--  # either define HAVE_IB_GCC_ATOMIC_BUILTINS or not
--  AC_TRY_RUN(
--    [
--      int main()
--      {
--	long	x;
--	long	y;
--	long	res;
--	char	c;
--
--	x = 10;
--	y = 123;
--	res = __sync_bool_compare_and_swap(&x, x, y);
--	if (!res || x != y) {
--          return(1);
--        }
--
--	x = 10;
--	y = 123;
--	res = __sync_bool_compare_and_swap(&x, x + 1, y);
--	if (res || x != 10) {
--          return(1);
--        }
--
--	x = 10;
--	y = 123;
--	res = __sync_add_and_fetch(&x, y);
--	if (res != 123 + 10 || x != 123 + 10) {
--	  return(1);
--	}
--
--	c = 10;
--	res = __sync_lock_test_and_set(&c, 123);
--	if (res != 10 || c != 123) {
--	  return(1);
--	}
--
--	return(0);
--      }
--    ],
--    [
--      AC_DEFINE([HAVE_IB_GCC_ATOMIC_BUILTINS], [1],
--                [GCC atomic builtins are available])
--      AC_MSG_RESULT(yes)
--    ],
--    [
--      AC_MSG_RESULT(no)
--    ]
--  )
--
--  AC_MSG_CHECKING(whether pthread_t can be used by GCC atomic builtins)
--  # either define HAVE_IB_ATOMIC_PTHREAD_T_GCC or not
--  AC_TRY_RUN(
--    [
--      #include <pthread.h>
--      #include <string.h>
--
--      int main(int argc, char** argv) {
--        pthread_t       x1;
--        pthread_t       x2;
--        pthread_t       x3;
--
--	memset(&x1, 0x0, sizeof(x1));
--	memset(&x2, 0x0, sizeof(x2));
--	memset(&x3, 0x0, sizeof(x3));
--
--        __sync_bool_compare_and_swap(&x1, x2, x3);
--
--        return(0);
--      }
--    ],
--    [
--      AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_GCC], [1],
--                [pthread_t can be used by GCC atomic builtins])
--      AC_MSG_RESULT(yes)
--    ],
--    [
--      AC_MSG_RESULT(no)
--    ]
--  )
--
--  AC_MSG_CHECKING(whether Solaris libc atomic functions are available)
--  # Define HAVE_IB_SOLARIS_ATOMICS if _all_ of the following
--  # functions are present.
--  AC_CHECK_FUNCS(atomic_add_long_nv \
--		 atomic_cas_32 \
--		 atomic_cas_64 \
--		 atomic_cas_ulong \
--		 atomic_swap_uchar)
--
--  if test "${ac_cv_func_atomic_add_long_nv}" = "yes" -a \
--          "${ac_cv_func_atomic_cas_32}" = "yes" -a \
--          "${ac_cv_func_atomic_cas_64}" = "yes" -a \
--          "${ac_cv_func_atomic_cas_ulong}" = "yes" -a \
--          "${ac_cv_func_atomic_swap_uchar}" = "yes" ; then
--
--    AC_DEFINE([HAVE_IB_SOLARIS_ATOMICS], [1],
--      [Define to 1 if Solaris libc atomic functions are available]
--    )
--  fi
--
--  AC_MSG_CHECKING(whether pthread_t can be used by Solaris libc atomic functions)
--  # either define HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS or not
--  AC_TRY_RUN(
--    [
--      #include <pthread.h>
--      #include <string.h>
--
--      int main(int argc, char** argv) {
--        pthread_t       x1;
--        pthread_t       x2;
--        pthread_t       x3;
--
--        memset(&x1, 0x0, sizeof(x1));
--        memset(&x2, 0x0, sizeof(x2));
--        memset(&x3, 0x0, sizeof(x3));
--
--        if (sizeof(pthread_t) == 4) {
--        
--          atomic_cas_32(&x1, x2, x3);
--        
--        } else if (sizeof(pthread_t) == 8) {
--        
--          atomic_cas_64(&x1, x2, x3);
--        
--        } else {
--        
--          return(1);
--        }
--
--	return(0);
--      }
--    ],
--    [
--      AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS], [1],
--                [pthread_t can be used by solaris atomics])
--      AC_MSG_RESULT(yes)
--    ],
--    [
--      AC_MSG_RESULT(no)
--    ]
--  )
- 
-   # this is needed to know which one of atomic_cas_32() or atomic_cas_64()
-   # to use in the source
diff --git a/tools/depends/target/mysql/02-mysqlclient-ios.patch b/tools/depends/target/mysql/02-mysqlclient-ios.patch
deleted file mode 100644
index 3945b48..0000000
--- a/tools/depends/target/mysql/02-mysqlclient-ios.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -ruN mysql-5.1.55.org/include/my_global.h mysql-5.1.55/include/my_global.h
---- mysql-5.1.55.org/include/my_global.h	2011-01-25 16:04:37.000000000 +0100
-+++ mysql-5.1.55/include/my_global.h	2011-05-19 22:12:13.000000000 +0200
-@@ -132,7 +132,7 @@
- #  define SIZEOF_INT 4
- #  define SIZEOF_LONG_LONG 8
- #  define SIZEOF_OFF_T 8
--#  if defined(__i386__) || defined(__ppc__)
-+#  if defined(__i386__) || defined(__ppc__) || defined(__arm__)
- #    define SIZEOF_CHARP 4
- #    define SIZEOF_LONG 4
- #  elif defined(__x86_64__) || defined(__ppc64__)
-diff -ruN mysql-5.1.55.org/include/my_net.h mysql-5.1.55/include/my_net.h
---- mysql-5.1.55.org/include/my_net.h	2011-01-25 16:04:48.000000000 +0100
-+++ mysql-5.1.55/include/my_net.h	2011-05-19 22:13:39.000000000 +0200
-@@ -44,9 +44,9 @@
- #endif
- 
- #if !defined(__WIN__) && !defined(HAVE_BROKEN_NETINET_INCLUDES) && !defined(__BEOS__) && !defined(__NETWARE__)
--#include <netinet/in_systm.h>
-+/* #include <netinet/in_systm.h> */
- #include <netinet/in.h>
--#include <netinet/ip.h>
-+/* #include <netinet/ip.h> */
- #if !defined(alpha_linux_port)
- #include <netinet/tcp.h>
- #endif
diff --git a/tools/depends/target/mysql/03-mysqlclient-android.patch b/tools/depends/target/mysql/03-mysqlclient-android.patch
deleted file mode 100644
index 66e45cf..0000000
--- a/tools/depends/target/mysql/03-mysqlclient-android.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -ru mysql-5.1.55.org/include/my_dir.h mysql-5.1.55/include/my_dir.h
---- mysql-5.1.55.org/include/my_dir.h	2011-01-25 16:04:48.000000000 +0100
-+++ mysql-5.1.55/include/my_dir.h	2011-11-15 20:15:46.000000000 +0100
-@@ -35,9 +35,15 @@
- #define MY_S_ISUID	S_ISUID /* set user id on execution */
- #define MY_S_ISGID	S_ISGID /* set group id on execution */
- #define MY_S_ISVTX	S_ISVTX /* save swapped text even after use */
-+#if defined(__ANDROID__)
-+#define MY_S_IREAD      S_IRUSR /* read permission, owner */
-+#define MY_S_IWRITE     S_IWUSR /* write permission, owner */
-+#define MY_S_IEXEC     S_IEXEC /* execute/search permission, owner */
-+#else
- #define MY_S_IREAD	S_IREAD /* read permission, owner */
- #define MY_S_IWRITE	S_IWRITE	/* write permission, owner */
- #define MY_S_IEXEC	S_IEXEC /* execute/search permission, owner */
-+#endif
- 
- #define MY_S_ISDIR(m)	(((m) & MY_S_IFMT) == MY_S_IFDIR)
- #define MY_S_ISCHR(m)	(((m) & MY_S_IFMT) == MY_S_IFCHR)
-diff -ru mysql-5.1.55.org/include/my_global.h mysql-5.1.55/include/my_global.h
---- mysql-5.1.55.org/include/my_global.h	2011-11-15 20:14:37.000000000 +0100
-+++ mysql-5.1.55/include/my_global.h	2011-11-15 20:15:13.000000000 +0100
-@@ -979,6 +979,10 @@
- typedef unsigned char	uchar;	/* Short for unsigned char */
- #endif
- 
-+#ifndef HAVE_USHORT
-+typedef unsigned short ushort;
-+#endif
-+
- #ifndef HAVE_INT8
- typedef signed char int8;       /* Signed integer >= 8  bits */
- #endif
-diff -ru mysql-5.1.55.org/mysys/my_gethwaddr.c mysql-5.1.55/mysys/my_gethwaddr.c
---- mysql-5.1.55.org/mysys/my_gethwaddr.c	2011-01-25 16:04:35.000000000 +0100
-+++ mysql-5.1.55/mysys/my_gethwaddr.c	2011-11-15 20:19:11.000000000 +0100
-@@ -66,7 +66,11 @@
- 
- #include <net/if.h>
- #include <sys/ioctl.h>
-+#ifdef __ANDROID__
-+#include <net/if_ether.h>
-+#else
- #include <net/ethernet.h>
-+#endif
- 
- my_bool my_gethwaddr(uchar *to)
- {
diff --git a/tools/depends/target/mysql/04-strnlen.patch b/tools/depends/target/mysql/04-strnlen.patch
deleted file mode 100644
index 522526e..0000000
--- a/tools/depends/target/mysql/04-strnlen.patch
+++ /dev/null
@@ -1,43 +0,0 @@
---- strings/strnlen.c	2011-01-25 10:04:52.000000000 -0500
-+++ strings/strnlen.c	2013-01-20 22:37:24.000000000 -0500
-@@ -23,12 +23,15 @@
- #include <my_global.h>
- #include "m_string.h"
- 
--#ifndef HAVE_STRNLEN
- 
--size_t strnlen(register const char *s, register size_t maxlen)
-+size_t strnlen_int(register const char *s, register size_t maxlen)
- {
-+#ifndef HAVE_STRNLEN
-   const char *end= (const char *)memchr(s, '\0', maxlen);
-   return end ? (size_t) (end - s) : maxlen;
-+#else
-+  return strnlen(s,maxlen);
-+#endif
-+
- }
- 
--#endif
---- include/m_string.h	2011-01-25 10:04:38.000000000 -0500
-+++ include/m_string.h	2013-01-20 22:35:23.000000000 -0500
-@@ -160,7 +160,7 @@
- #endif
- #endif
- #ifndef HAVE_STRNLEN
--extern size_t strnlen(const char *s, size_t n);
-+extern size_t strnlen_int(const char *s, size_t n);
- #endif
- 
- #if !defined(__cplusplus)
---- strings/my_vsnprintf.c	2011-01-25 10:04:48.000000000 -0500
-+++ strings/my_vsnprintf.c	2013-01-20 22:34:21.000000000 -0500
-@@ -97,7 +97,7 @@
-       reg2 char	*par = va_arg(ap, char *);
-       size_t plen,left_len = (size_t) (end - to) + 1;
-       if (!par) par = (char*)"(null)";
--      plen= (uint) strnlen(par, width);
-+      plen= (uint) strnlen_int(par, width);
-       if (left_len <= plen)
- 	plen = left_len - 1;
-       to=strnmov(to,par,plen);
diff --git a/tools/depends/target/mysql/Makefile b/tools/depends/target/mysql/Makefile
deleted file mode 100644
index 84ea391..0000000
--- a/tools/depends/target/mysql/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include 01-mysqlclient-cross-compile.patch 02-mysqlclient-ios.patch 03-mysqlclient-android.patch Makefile
-
-# lib name, version
-LIBNAME=mysql
-VERSION=5.1.55
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --build=$(BUILD) \
-	--enable-thread-safe-client --with-extra-charsets=complex \
-	--with-named-thread-libs=-lc --with-named-curses-libs=-lncurses \
-	--with-libedit \
-	--without-server --without-bench --without-docs --without-man --disable-shared
-
-LIBDYLIB=$(PLATFORM)/lib$(LIBNAME)/.libs/lib$(LIBNAME)client.a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -Np1 -i ../01-mysqlclient-cross-compile.patch
-	cd $(PLATFORM); patch -Np1 -i ../02-mysqlclient-ios.patch
-	cd $(PLATFORM); patch -Np1 -i ../03-mysqlclient-android.patch
-	cd $(PLATFORM); patch -p0 < ../04-strnlen.patch
-	cd $(PLATFORM); autoconf
-	cd $(PLATFORM); $(CONFIGURE) 
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)/include
-	$(MAKE) -C $(PLATFORM)/libmysql
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM)/libmysql install
-	$(MAKE) -C $(PLATFORM)/scripts/ install-binSCRIPTS
-	$(MAKE) -C $(PLATFORM)/include/ install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/nettle/Makefile b/tools/depends/target/nettle/Makefile
deleted file mode 100644
index e487415..0000000
--- a/tools/depends/target/nettle/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=nettle
-VERSION=2.7.1
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --disable-shared --disable-openssl
-
-LIBDYLIB=$(PLATFORM)/src/.libs/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/openssl/Makefile b/tools/depends/target/openssl/Makefile
deleted file mode 100644
index 8ea7208..0000000
--- a/tools/depends/target/openssl/Makefile
+++ /dev/null
@@ -1,71 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=openssl
-VERSION=0.9.8r
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=MACHINE=$(PLATFORM) ./config shared zlib --openssldir=$(PREFIX) --with-zlib-include=$(PREFIX)/include --with-zlib-lib=$(PREFIX)/lib no-asm
-ifeq ($(OS), android)
-  CONFIGURE=./Configure shared zlib --openssldir=$(PREFIX) --with-zlib-include=$(PREFIX)/include --with-zlib-lib=$(PREFIX)/lib no-asm linux-generic32
-endif
-ifeq ($(OS), ios)
-  # No darwin-arm-cc so use darwin-i386-cc and patch files after configure
-  CONFIGURE=./Configure darwin-i386-cc zlib no-asm no-krb5 shared --openssldir=$(PREFIX)
-endif
-ifeq ($(OS), osx)
-  ifeq ($(CPU),x86_64)
-    CONFIGURE=./Configure darwin64-$(CPU)-cc zlib no-asm no-krb5 shared --openssldir=$(PREFIX)
-  else
-    CONFIGURE=./Configure darwin-$(CPU)-cc zlib no-asm no-krb5 shared --openssldir=$(PREFIX)
-  endif
-endif
-LIBDYLIB=$(PLATFORM)/libssl.a
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	#when compiled on darwin it just won't realise that we do crosscompiling
-	#so it would stick in -arch i386 or -arch x86_64 into the cflags
-	#that would break the cross compile so we have to get rid of these
-	cd $(PLATFORM); patch -p1 < ../libz.patch
-	cd $(PLATFORM); patch -p1 < ../fix_alert_handling.patch
-	cd $(PLATFORM); CFLAGS="$(CFLAGS)" CC=$(CC) RANLIB=$(RANLIB) $(CONFIGURE)
-	if test "$(OS)" = "osx"; then \
-		sed -ie "s|CC= /usr/bin/gcc-4.2|CC= $(CC)|" "$(PLATFORM)/Makefile"; \
-		sed -ie "s|CFLAG= |CFLAG=$(CFLAGS) |" "$(PLATFORM)/Makefile"; \
-	fi
-	if test "$(OS)" = "ios"; then \
-		sed -ie "s|CFLAG= |CFLAG=$(CFLAGS) |" "$(PLATFORM)/Makefile"; \
-		sed -ie "s|-arch i386|-arch armv7|" "$(PLATFORM)/Makefile"; \
-		sed -ie "s|static volatile sig_atomic_t intr_signal;|static volatile intr_signal;|" "$(PLATFORM)/crypto/ui/ui_openssl.c"; \
-	fi
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -j 1 -C $(PLATFORM)
-	touch $@
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install_sw
-	rm -f $(PREFIX)/lib/libcrypto.so*
-	rm -f $(PREFIX)/lib/libssl.so*
-	rm -rf $(PREFIX)/lib/libcrypto.*dylib*
-	rm -rf $(PREFIX)/lib/libssl.*dylib*
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/openssl/fix_alert_handling.patch b/tools/depends/target/openssl/fix_alert_handling.patch
deleted file mode 100644
index 09152f3..0000000
--- a/tools/depends/target/openssl/fix_alert_handling.patch
+++ /dev/null
@@ -1,301 +0,0 @@
-From: mancha <mancha1 at hush.com>
-Date: Thu, 27 Mar 2014 00:47:14 +0000 (+0000)
-Subject: Fix alert handling.
-X-Git-Url: 
-http://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=a375025e4dd58a05e926a5384774a85671695dd9;hp=d471adf351b92d38992cbe2374ad6e9d81a51a75
-
-Fix alert handling.
-
-Fix OpenSSL 0.9.8 alert handling.
-
-PR#3038
----
-
-diff --git a/apps/s_cb.c b/apps/s_cb.c
-index 97caffc..df922f3 100644
---- a/apps/s_cb.c
-+++ b/apps/s_cb.c
-@@ -518,6 +518,24 @@ void MS_CALLBACK msg_cb(int write_p, int version, int content_type, const void *
- 				case 100:
- 					str_details2 = " no_renegotiation";
- 					break;
-+				case 110:
-+					str_details2 = " unsupported_extension";
-+					break;
-+				case 111:
-+					str_details2 = " certificate_unobtainable";
-+					break;
-+				case 112:
-+					str_details2 = " unrecognized_name";
-+					break;
-+				case 113:
-+					str_details2 = " bad_certificate_status_response";
-+					break;
-+				case 114:
-+					str_details2 = " bad_certificate_hash_value";
-+					break;
-+				case 115:
-+					str_details2 = " unknown_psk_identity";
-+					break;
- 					}
- 				}
- 			}
-diff --git a/crypto/err/openssl.ec b/crypto/err/openssl.ec
-index 8688266..1a580c5 100644
---- a/crypto/err/openssl.ec
-+++ b/crypto/err/openssl.ec
-@@ -71,6 +71,11 @@ R SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY	1071
- R SSL_R_TLSV1_ALERT_INTERNAL_ERROR		1080
- R SSL_R_TLSV1_ALERT_USER_CANCELLED		1090
- R SSL_R_TLSV1_ALERT_NO_RENEGOTIATION		1100
-+R SSL_R_TLSV1_UNSUPPORTED_EXTENSION		1110
-+R SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE		1111
-+R SSL_R_TLSV1_UNRECOGNIZED_NAME			1112
-+R SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE	1113
-+R SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE	1114
- 
- R RSAREF_R_CONTENT_ENCODING			0x0400
- R RSAREF_R_DATA					0x0401
-diff --git a/ssl/s23_clnt.c b/ssl/s23_clnt.c
-index c6b9142..830eff0 100644
---- a/ssl/s23_clnt.c
-+++ b/ssl/s23_clnt.c
-@@ -509,7 +509,7 @@ static int ssl23_get_server_hello(SSL *s)
- 			/* use special padding (SSL 3.0 draft/RFC 2246, App. E.2) */
- 			s->s2->ssl2_rollback=1;
- 
--		/* setup the 5 bytes we have read so we get them from
-+		/* setup the 7 bytes we have read so we get them from
- 		 * the sslv2 buffer */
- 		s->rstate=SSL_ST_READ_HEADER;
- 		s->packet_length=n;
-@@ -525,27 +525,13 @@ static int ssl23_get_server_hello(SSL *s)
- 		s->handshake_func=s->method->ssl_connect;
- #endif
- 		}
--	else if ((p[0] == SSL3_RT_HANDSHAKE) &&
--		 (p[1] == SSL3_VERSION_MAJOR) &&
--		 ((p[2] == SSL3_VERSION_MINOR) ||
--		  (p[2] == TLS1_VERSION_MINOR)) &&
--		 (p[5] == SSL3_MT_SERVER_HELLO))
-+	else if (p[1] == SSL3_VERSION_MAJOR &&
-+	         ((p[2] == SSL3_VERSION_MINOR) ||
-+                  (p[2] == TLS1_VERSION_MINOR)) &&
-+	         ((p[0] == SSL3_RT_HANDSHAKE && p[5] == SSL3_MT_SERVER_HELLO) ||
-+	          (p[0] == SSL3_RT_ALERT && p[3] == 0 && p[4] == 2)))
- 		{
--		/* we have sslv3 or tls1 */
--
--		if (!ssl_init_wbio_buffer(s,1)) goto err;
--
--		/* we are in this state */
--		s->state=SSL3_ST_CR_SRVR_HELLO_A;
--
--		/* put the 5 bytes we have read into the input buffer
--		 * for SSLv3 */
--		s->rstate=SSL_ST_READ_HEADER;
--		s->packet_length=n;
--		s->packet= &(s->s3->rbuf.buf[0]);
--		memcpy(s->packet,buf,n);
--		s->s3->rbuf.left=n;
--		s->s3->rbuf.offset=0;
-+		/* we have sslv3 or tls1 (server hello or alert) */
- 
- 		if ((p[2] == SSL3_VERSION_MINOR) &&
- 			!(s->options & SSL_OP_NO_SSLv3))
-@@ -572,35 +558,52 @@ static int ssl23_get_server_hello(SSL *s)
- 			SSLerr(SSL_F_SSL23_GET_SERVER_HELLO,SSL_R_UNSUPPORTED_PROTOCOL);
- 			goto err;
- 			}
--			
--		s->handshake_func=s->method->ssl_connect;
--		}
--	else if ((p[0] == SSL3_RT_ALERT) &&
--		 (p[1] == SSL3_VERSION_MAJOR) &&
--		 ((p[2] == SSL3_VERSION_MINOR) ||
--		  (p[2] == TLS1_VERSION_MINOR)) &&
--		 (p[3] == 0) &&
--		 (p[4] == 2))
--		{
--		void (*cb)(const SSL *ssl,int type,int val)=NULL;
--		int j;
--
--		/* An alert */
--		if (s->info_callback != NULL)
--			cb=s->info_callback;
--		else if (s->ctx->info_callback != NULL)
--			cb=s->ctx->info_callback;
-- 
--		i=p[5];
--		if (cb != NULL)
-+
-+		if (p[0] == SSL3_RT_ALERT && p[5] != SSL3_AL_WARNING)
- 			{
--			j=(i<<8)|p[6];
--			cb(s,SSL_CB_READ_ALERT,j);
-+			/* fatal alert */
-+
-+			void (*cb)(const SSL *ssl,int type,int val)=NULL;
-+			int j;
-+
-+			if (s->info_callback != NULL)
-+				cb=s->info_callback;
-+			else if (s->ctx->info_callback != NULL)
-+				cb=s->ctx->info_callback;
-+ 
-+			i=p[5];
-+			if (cb != NULL)
-+				{
-+				j=(i<<8)|p[6];
-+				cb(s,SSL_CB_READ_ALERT,j);
-+				}
-+			
-+			if (s->msg_callback)
-+				s->msg_callback(0, s->version, SSL3_RT_ALERT, p+5, 2, s, s->msg_callback_arg);
-+
-+			s->rwstate=SSL_NOTHING;
-+			SSLerr(SSL_F_SSL23_GET_SERVER_HELLO,SSL_AD_REASON_OFFSET+p[6]);
-+			goto err;
- 			}
- 
--		s->rwstate=SSL_NOTHING;
--		SSLerr(SSL_F_SSL23_GET_SERVER_HELLO,SSL_AD_REASON_OFFSET+p[6]);
--		goto err;
-+		if (!ssl_init_wbio_buffer(s,1)) goto err;
-+
-+		/* we are in this state */
-+		s->state=SSL3_ST_CR_SRVR_HELLO_A;
-+
-+		/* put the 7 bytes we have read into the input buffer
-+		 * for SSLv3 */
-+		s->rstate=SSL_ST_READ_HEADER;
-+		s->packet_length=n;
-+		if (s->s3->rbuf.buf == NULL)
-+			if (!ssl3_setup_buffers(s))
-+				goto err;
-+		s->packet= &(s->s3->rbuf.buf[0]);
-+		memcpy(s->packet,buf,n);
-+		s->s3->rbuf.left=n;
-+		s->s3->rbuf.offset=0;
-+
-+		s->handshake_func=s->method->ssl_connect;
- 		}
- 	else
- 		{
-diff --git a/ssl/s3_enc.c b/ssl/s3_enc.c
-index 5d8f8ae..736bfac 100644
---- a/ssl/s3_enc.c
-+++ b/ssl/s3_enc.c
-@@ -758,6 +758,12 @@ int ssl3_alert_code(int code)
- 	case SSL_AD_INTERNAL_ERROR:	return(SSL3_AD_HANDSHAKE_FAILURE);
- 	case SSL_AD_USER_CANCELLED:	return(SSL3_AD_HANDSHAKE_FAILURE);
- 	case SSL_AD_NO_RENEGOTIATION:	return(-1); /* Don't send it :-) */
-+	case SSL_AD_UNSUPPORTED_EXTENSION: return(SSL3_AD_HANDSHAKE_FAILURE);
-+	case SSL_AD_CERTIFICATE_UNOBTAINABLE: return(SSL3_AD_HANDSHAKE_FAILURE);
-+	case SSL_AD_UNRECOGNIZED_NAME:	return(SSL3_AD_HANDSHAKE_FAILURE);
-+	case SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE: return(SSL3_AD_HANDSHAKE_FAILURE);
-+	case SSL_AD_BAD_CERTIFICATE_HASH_VALUE: return(SSL3_AD_HANDSHAKE_FAILURE);
-+	case SSL_AD_UNKNOWN_PSK_IDENTITY:return(TLS1_AD_UNKNOWN_PSK_IDENTITY);
- 	default:			return(-1);
- 		}
- 	}
-diff --git a/ssl/ssl.h b/ssl/ssl.h
-index eebc99e..5f2a04e 100644
---- a/ssl/ssl.h
-+++ b/ssl/ssl.h
-@@ -1207,6 +1207,8 @@ size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count);
- #define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE
- #define SSL_AD_UNRECOGNIZED_NAME	TLS1_AD_UNRECOGNIZED_NAME
- #define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE
-+#define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE
-+#define SSL_AD_UNKNOWN_PSK_IDENTITY	TLS1_AD_UNKNOWN_PSK_IDENTITY /* fatal */
- 
- #define SSL_ERROR_NONE			0
- #define SSL_ERROR_SSL			1
-@@ -2077,6 +2079,11 @@ void ERR_load_SSL_strings(void);
- #define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW		 1022
- #define SSL_R_TLSV1_ALERT_UNKNOWN_CA			 1048
- #define SSL_R_TLSV1_ALERT_USER_CANCELLED		 1090
-+#define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE		 1114
-+#define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE	 1113
-+#define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE		 1111
-+#define SSL_R_TLSV1_UNRECOGNIZED_NAME			 1112
-+#define SSL_R_TLSV1_UNSUPPORTED_EXTENSION		 1110
- #define SSL_R_TLS_CLIENT_CERT_REQ_WITH_ANON_CIPHER	 232
- #define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST		 227
- #define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST 233
-diff --git a/ssl/ssl_err.c b/ssl/ssl_err.c
-index 60e7e9d..9e28dfd 100644
---- a/ssl/ssl_err.c
-+++ b/ssl/ssl_err.c
-@@ -475,6 +475,11 @@ static ERR_STRING_DATA SSL_str_reasons[]=
- {ERR_REASON(SSL_R_TLSV1_ALERT_RECORD_OVERFLOW),"tlsv1 alert record overflow"},
- {ERR_REASON(SSL_R_TLSV1_ALERT_UNKNOWN_CA),"tlsv1 alert unknown ca"},
- {ERR_REASON(SSL_R_TLSV1_ALERT_USER_CANCELLED),"tlsv1 alert user cancelled"},
-+{ERR_REASON(SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE),"tlsv1 bad certificate hash value"},
-+{ERR_REASON(SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE),"tlsv1 bad certificate status response"},
-+{ERR_REASON(SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE),"tlsv1 certificate unobtainable"},
-+{ERR_REASON(SSL_R_TLSV1_UNRECOGNIZED_NAME),"tlsv1 unrecognized name"},
-+{ERR_REASON(SSL_R_TLSV1_UNSUPPORTED_EXTENSION),"tlsv1 unsupported extension"},
- {ERR_REASON(SSL_R_TLS_CLIENT_CERT_REQ_WITH_ANON_CIPHER),"tls client cert req with anon cipher"},
- {ERR_REASON(SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST),"tls invalid ecpointformat list"},
- {ERR_REASON(SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST),"tls peer did not respond with certificate list"},
-diff --git a/ssl/ssl_stat.c b/ssl/ssl_stat.c
-index e7509f0..cd52184 100644
---- a/ssl/ssl_stat.c
-+++ b/ssl/ssl_stat.c
-@@ -414,6 +414,12 @@ const char *SSL_alert_desc_string(int value)
- 	case TLS1_AD_INTERNAL_ERROR:		str="IE"; break;
- 	case TLS1_AD_USER_CANCELLED:		str="US"; break;
- 	case TLS1_AD_NO_RENEGOTIATION:		str="NR"; break;
-+	case TLS1_AD_UNSUPPORTED_EXTENSION:	str="UE"; break;
-+	case TLS1_AD_CERTIFICATE_UNOBTAINABLE:	str="CO"; break;
-+	case TLS1_AD_UNRECOGNIZED_NAME:		str="UN"; break;
-+	case TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE: str="BR"; break;
-+	case TLS1_AD_BAD_CERTIFICATE_HASH_VALUE: str="BH"; break;
-+	case TLS1_AD_UNKNOWN_PSK_IDENTITY:	str="UP"; break;
- 	default:				str="UK"; break;
- 		}
- 	return(str);
-@@ -497,6 +503,24 @@ const char *SSL_alert_desc_string_long(int value)
- 	case TLS1_AD_NO_RENEGOTIATION:
- 		str="no renegotiation";
- 		break;
-+	case TLS1_AD_UNSUPPORTED_EXTENSION:
-+		str="unsupported extension";
-+		break;
-+	case TLS1_AD_CERTIFICATE_UNOBTAINABLE:
-+		str="certificate unobtainable";
-+		break;
-+	case TLS1_AD_UNRECOGNIZED_NAME:
-+		str="unrecognized name";
-+		break;
-+	case TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE:
-+		str="bad certificate status response";
-+		break;
-+	case TLS1_AD_BAD_CERTIFICATE_HASH_VALUE:
-+		str="bad certificate hash value";
-+		break;
-+	case TLS1_AD_UNKNOWN_PSK_IDENTITY:
-+		str="unknown PSK identity";
-+		break;
- 	default: str="unknown"; break;
- 		}
- 	return(str);
-diff --git a/ssl/t1_enc.c b/ssl/t1_enc.c
-index 323d384..ad6b637 100644
---- a/ssl/t1_enc.c
-+++ b/ssl/t1_enc.c
-@@ -853,6 +853,12 @@ int tls1_alert_code(int code)
- 	case SSL_AD_INTERNAL_ERROR:	return(TLS1_AD_INTERNAL_ERROR);
- 	case SSL_AD_USER_CANCELLED:	return(TLS1_AD_USER_CANCELLED);
- 	case SSL_AD_NO_RENEGOTIATION:	return(TLS1_AD_NO_RENEGOTIATION);
-+	case SSL_AD_UNSUPPORTED_EXTENSION: return(TLS1_AD_UNSUPPORTED_EXTENSION);
-+	case SSL_AD_CERTIFICATE_UNOBTAINABLE: return(TLS1_AD_CERTIFICATE_UNOBTAINABLE);
-+	case SSL_AD_UNRECOGNIZED_NAME:	return(TLS1_AD_UNRECOGNIZED_NAME);
-+	case SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE: return(TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE);
-+	case SSL_AD_BAD_CERTIFICATE_HASH_VALUE: return(TLS1_AD_BAD_CERTIFICATE_HASH_VALUE);
-+	case SSL_AD_UNKNOWN_PSK_IDENTITY:return(TLS1_AD_UNKNOWN_PSK_IDENTITY);
- #ifdef DTLS1_AD_MISSING_HANDSHAKE_MESSAGE
- 	case DTLS1_AD_MISSING_HANDSHAKE_MESSAGE: return 
- 					  (DTLS1_AD_MISSING_HANDSHAKE_MESSAGE);
diff --git a/tools/depends/target/openssl/libz.patch b/tools/depends/target/openssl/libz.patch
deleted file mode 100644
index 6e9f750..0000000
--- a/tools/depends/target/openssl/libz.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -ur openssl/Configure openssl/Configure
---- openssl/Configure	2009-02-19 05:43:18.000000000 -0400
-+++ openssl/Configure	2009-04-02 15:39:19.000000000 -0400
-@@ -1218,7 +1218,14 @@
- 	$cflags = "-DZLIB $cflags";
- 	if (defined($disabled{"zlib-dynamic"}))
- 		{
--		$lflags = "$lflags -lz";
-+		if (defined($withargs{"zlib-lib"}))
-+			{
-+			$lflags = "$lflags -L" . $withargs{"zlib-lib"} . " -lz";
-+			}
-+		else
-+			{
-+			$lflags = "$lflags -lz";
-+			}
- 		}
- 	else
- 		{
---- openssl//Makefile.org	2010-01-27 11:06:36.000000000 -0500
-+++ openssl/Makefile.org	20102012-12-31 17:47:43.392861820 -0500
-@@ -210,6 +210,7 @@
- 		MAKEDEPPROG='${MAKEDEPPROG}'			\
- 		SHARED_LDFLAGS='${SHARED_LDFLAGS}'		\
- 		KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}'	\
-+		ZLIB_INCLUDE='$(ZLIB_INCLUDE)' LIBZLIB='$(LIBZLIB)'     \
- 		EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}'	\
- 		SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}'	\
- 		PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}'	\
---- openssl/crypto/Makefile	2008-09-17 13:10:55.000000000 -0400
-+++ openssl/crypto/Makefile	2012-12-31 17:46:36.292861863 -0500
-@@ -5,9 +5,9 @@
- DIR=		crypto
- TOP=		..
- CC=		cc
--INCLUDE=	-I. -I$(TOP) -I../include
-+INCLUDE=	-I. -I$(TOP) -I../include $(ZLIB_INCLUDE)
- # INCLUDES targets sudbirs!
--INCLUDES=	-I.. -I../.. -I../../include
-+INCLUDES=	-I.. -I../.. -I../../include $(ZLIB_INCLUDE)
- CFLAG=		-g
- MAKEDEPPROG=	makedepend
- MAKEDEPEND=	$(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
diff --git a/tools/depends/target/pcre/Makefile b/tools/depends/target/pcre/Makefile
deleted file mode 100644
index 1415734..0000000
--- a/tools/depends/target/pcre/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=pcre
-VERSION=8.33
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; ./configure --prefix=$(PREFIX) \
-	--disable-shared --disable-stack-for-recursion \
-	--enable-pcre8 --disable-pcre16 --disable-pcre32 \
-	--enable-jit --enable-utf --enable-unicode-properties \
-	--enable-newline-is-anycrlf
-
-
-LIBDYLIB=$(PLATFORM)/.libs/lib$(LIBNAME).a
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/python26/Makefile b/tools/depends/target/python26/Makefile
deleted file mode 100644
index f502a66..0000000
--- a/tools/depends/target/python26/Makefile
+++ /dev/null
@@ -1,74 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile Python-2.6.2-android.patch \
-      Python-2.6.5-xcompile.patch Python-2.6-ctypes.patch \
-      Python-no-modules.patch Python-no-export-path.patch modules.setup
-
-# lib name, version
-LIBNAME=Python
-VERSION=2.6.5
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.bz2
-
-# configuration settings
-CONFIGURE=OPT="$(CFLAGS)" \
-  LIBS=-lm \
-  ./configure --prefix=$(PREFIX) \
-  --disable-toolbox-glue --disable-framework --with-system-ffi --without-pymalloc \
-
-LIBDYLIB=$(PLATFORM)/libpython2.6.a
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	echo $(NATIVEPREFIX)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -Np1 -i ../Python-2.6.5-xcompile.patch
-	cd $(PLATFORM); patch -Np1 -i ../Python-2.6.2-android.patch
-	cd $(PLATFORM); patch -p0 < ../Python-no-modules.patch
-	cd $(PLATFORM); patch -p0 < ../Python-no-export-path.patch
-	cd $(PLATFORM); patch -p1 < ../python-osx-environ-fix.patch
-	cd $(PLATFORM); patch -p0 < ../Python-2.6.5-ffi-static.patch
-ifeq ($(OS),ios)
-	cd $(PLATFORM); patch -p0 < ../Python-2.6.5-urllib.diff
-endif
-	cp modules.setup $(PLATFORM)/Modules/Setup.dist
-
-#Add -liconv as needed, and add the _scproxy module for darwin
-#  disable locale altogether for Android
-ifeq ($(OS),android)
-	cd $(PLATFORM); sed -ie 's|_locale _localemodule.c   -lintl|#_locale _localemodule.c   -lintl|' Modules/Setup.dist
-else
-	cd $(PLATFORM); sed -ie 's|_locale _localemodule.c   -lintl|_locale _localemodule.c   -lintl $(LINK_ICONV) |' Modules/Setup.dist
-endif
-ifeq ($(OS),osx)
-	echo "_scproxy \$$(srcdir)/Mac/Modules/_scproxy.c -framework SystemConfiguration -framework CoreFoundation" >> $(PLATFORM)/Modules/Setup.dist
-endif
-
-ifeq ($(OS),android)
-	cd $(PLATFORM); sed -ie 's|-framework CoreFoundation||' configure.in
-endif
-
-	cd $(PLATFORM); $(AUTORECONF)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM) HOSTPYTHON=$(NATIVEPREFIX)/bin/python HOSTPGEN=$(NATIVEPREFIX)/bin/pgen CROSS_COMPILE_TARGET=yes libpython2.6.a
-	touch $@
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	make -j1 -C $(PLATFORM) HOSTPYTHON=$(NATIVEPREFIX)/bin/python HOSTPGEN=$(NATIVEPREFIX)/bin/pgen CROSS_COMPILE_TARGET=yes install
-	find $(PREFIX)/lib/python2.6 -type f -name "*.py" -delete
-	find $(PREFIX)/lib/python2.6 -type f -name "*.pyc" -delete
-	#
-	touch $(LIBDYLIB)
-	touch $@
-
-clean:
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/python26/Python-2.6-ctypes.patch b/tools/depends/target/python26/Python-2.6-ctypes.patch
deleted file mode 100644
index 647dca8..0000000
--- a/tools/depends/target/python26/Python-2.6-ctypes.patch
+++ /dev/null
@@ -1,45 +0,0 @@
---- a/Modules/_ctypes/_ctypes.c	(revision 74955)
-+++ b/Modules/_ctypes/_ctypes.c	(working copy)
-@@ -5521,36 +5521,42 @@
- 	Struct_Type.tp_base = &CData_Type;
- 	if (PyType_Ready(&Struct_Type) < 0)
- 		return;
-+	Py_INCREF(&Struct_Type);
- 	PyModule_AddObject(m, "Structure", (PyObject *)&Struct_Type);
- 
- 	Py_TYPE(&Union_Type) = &UnionType_Type;
- 	Union_Type.tp_base = &CData_Type;
- 	if (PyType_Ready(&Union_Type) < 0)
- 		return;
-+	Py_INCREF(&Union_Type);
- 	PyModule_AddObject(m, "Union", (PyObject *)&Union_Type);
- 
- 	Py_TYPE(&Pointer_Type) = &PointerType_Type;
- 	Pointer_Type.tp_base = &CData_Type;
- 	if (PyType_Ready(&Pointer_Type) < 0)
- 		return;
-+	Py_INCREF(&Pointer_Type);
- 	PyModule_AddObject(m, "_Pointer", (PyObject *)&Pointer_Type);
- 
- 	Py_TYPE(&Array_Type) = &ArrayType_Type;
- 	Array_Type.tp_base = &CData_Type;
- 	if (PyType_Ready(&Array_Type) < 0)
- 		return;
-+	Py_INCREF(&Array_Type);
- 	PyModule_AddObject(m, "Array", (PyObject *)&Array_Type);
- 
- 	Py_TYPE(&Simple_Type) = &SimpleType_Type;
- 	Simple_Type.tp_base = &CData_Type;
- 	if (PyType_Ready(&Simple_Type) < 0)
- 		return;
-+	Py_INCREF(&Simple_Type);
- 	PyModule_AddObject(m, "_SimpleCData", (PyObject *)&Simple_Type);
- 
- 	Py_TYPE(&CFuncPtr_Type) = &CFuncPtrType_Type;
- 	CFuncPtr_Type.tp_base = &CData_Type;
- 	if (PyType_Ready(&CFuncPtr_Type) < 0)
- 		return;
-+	Py_INCREF(&CFuncPtr_Type);
- 	PyModule_AddObject(m, "CFuncPtr", (PyObject *)&CFuncPtr_Type);
- 
- 	/*************************************************
diff --git a/tools/depends/target/python26/Python-2.6.2-android.patch b/tools/depends/target/python26/Python-2.6.2-android.patch
deleted file mode 100644
index fc71171..0000000
--- a/tools/depends/target/python26/Python-2.6.2-android.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff --ignore-file-name-case -wuprN Python-2.6.2/Modules/pwdmodule.c python-src//Modules/pwdmodule.c
---- Python-2.6.2/Modules/pwdmodule.c	2008-06-09 01:58:54.000000000 -0300
-+++ python-src//Modules/pwdmodule.c	2011-01-05 17:09:37.000000000 -0300
-@@ -68,14 +68,14 @@ mkpwent(struct passwd *p)
- #define SETS(i,val) sets(v, i, val)
- 
- 	SETS(setIndex++, p->pw_name);
--#ifdef __VMS
-+#if defined(__VMS) || defined(ANDROID)
- 	SETS(setIndex++, "");
- #else
- 	SETS(setIndex++, p->pw_passwd);
- #endif
- 	SETI(setIndex++, p->pw_uid);
- 	SETI(setIndex++, p->pw_gid);
--#ifdef __VMS
-+#if defined(__VMS) || defined(ANDROID)
- 	SETS(setIndex++, "");
- #else
- 	SETS(setIndex++, p->pw_gecos);
-diff --ignore-file-name-case -wuprN Python-2.6.2/Modules/termios.c python-src//Modules/termios.c
---- Python-2.6.2/Modules/termios.c	2008-06-09 01:58:54.000000000 -0300
-+++ python-src//Modules/termios.c	2011-01-05 17:09:37.000000000 -0300
-@@ -227,6 +227,7 @@ termios_tcsendbreak(PyObject *self, PyOb
- 	return Py_None;
- }
- 
-+#if !defined(ANDROID)  // No tcdrain defined for Android.
- PyDoc_STRVAR(termios_tcdrain__doc__,
- "tcdrain(fd) -> None\n\
- \n\
-@@ -246,6 +247,7 @@ termios_tcdrain(PyObject *self, PyObject
- 	Py_INCREF(Py_None);
- 	return Py_None;
- }
-+#endif
- 
- PyDoc_STRVAR(termios_tcflush__doc__,
- "tcflush(fd, queue) -> None\n\
-@@ -301,8 +303,10 @@ static PyMethodDef termios_methods[] =
- 	 METH_VARARGS, termios_tcsetattr__doc__},
- 	{"tcsendbreak", termios_tcsendbreak, 
- 	 METH_VARARGS, termios_tcsendbreak__doc__},
-+#if !defined(ANDROID)
-	{"tcdrain", termios_tcdrain, 
-	 METH_VARARGS, termios_tcdrain__doc__},
-+#endif
- 	{"tcflush", termios_tcflush, 
- 	 METH_VARARGS, termios_tcflush__doc__},
- 	{"tcflow", termios_tcflow, 
---- Python-2.6.2/Modules/posixmodule.c	2012-06-20 14:20:07.833441645 -0400
-+++ Python-2.6.2/Modules/posixmodule.c	2012-06-20 14:23:03.023441535 -0400
-@@ -3761,7 +3761,7 @@
- 	slave_fd = open(slave_name, O_RDWR | O_NOCTTY); /* open slave */
- 	if (slave_fd < 0)
- 		return posix_error();
--#if !defined(__CYGWIN__) && !defined(HAVE_DEV_PTC)
-+#if !defined(__CYGWIN__) && !defined(HAVE_DEV_PTC) && !defined(ANDROID)
- 	ioctl(slave_fd, I_PUSH, "ptem"); /* push ptem */
- 	ioctl(slave_fd, I_PUSH, "ldterm"); /* push ldterm */
- #ifndef __hpux
diff --git a/tools/depends/target/python26/Python-2.6.5-ffi-static.patch b/tools/depends/target/python26/Python-2.6.5-ffi-static.patch
deleted file mode 100644
index 188b1f4..0000000
--- a/tools/depends/target/python26/Python-2.6.5-ffi-static.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- Modules/_ctypes/cfield.c	2013-01-20 19:19:53.000000000 -0500
-+++ Modules/_ctypes/cfield.c	2013-01-20 19:34:07.000000000 -0500
-@@ -1743,6 +1743,7 @@
- */
- 
- /* align and size are bogus for void, but they must not be zero */
-+/*
- ffi_type ffi_type_void = { 1, 1, FFI_TYPE_VOID };
- 
- ffi_type ffi_type_uint8 = { 1, 1, FFI_TYPE_UINT8 };
-@@ -1759,14 +1760,16 @@
- 
- ffi_type ffi_type_float = { sizeof(float), FLOAT_ALIGN, FFI_TYPE_FLOAT };
- ffi_type ffi_type_double = { sizeof(double), DOUBLE_ALIGN, FFI_TYPE_DOUBLE };
-+*/
- 
- #ifdef ffi_type_longdouble
- #undef ffi_type_longdouble
- #endif
-   /* This is already defined on OSX */
-+/*
- ffi_type ffi_type_longdouble = { sizeof(long double), LONGDOUBLE_ALIGN,
- 				 FFI_TYPE_LONGDOUBLE };
- 
- ffi_type ffi_type_pointer = { sizeof(void *), VOID_P_ALIGN, FFI_TYPE_POINTER };
--
-+*/
- /*---------------- EOF ----------------*/
diff --git a/tools/depends/target/python26/Python-2.6.5-urllib.diff b/tools/depends/target/python26/Python-2.6.5-urllib.diff
deleted file mode 100644
index 5b2264d..0000000
--- a/tools/depends/target/python26/Python-2.6.5-urllib.diff
+++ /dev/null
@@ -1,28 +0,0 @@
---- Lib/urllib.py	2010-02-20 17:13:01.000000000 -0500
-+++ Lib/urllib.py	2013-03-14 18:12:02.526251189 -0400
-@@ -1330,7 +1330,6 @@
- 
- 
- if sys.platform == 'darwin':
--    from _scproxy import _get_proxy_settings, _get_proxies
- 
-     def proxy_bypass_macosx_sysconf(host):
-         """
-@@ -1352,7 +1351,7 @@
-                 parts = (parts + [0, 0, 0, 0])[:4]
-             return (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8) | parts[3]
- 
--        proxy_settings = _get_proxy_settings()
-+        return False
- 
-         # Check for simple host names:
-         if '.' not in host:
-@@ -1393,7 +1392,7 @@
-         This function uses the MacOSX framework SystemConfiguration
-         to fetch the proxy information.
-         """
--        return _get_proxies()
-+        return {}
- 
- 
- 
diff --git a/tools/depends/target/python26/Python-2.6.5-xcompile.patch b/tools/depends/target/python26/Python-2.6.5-xcompile.patch
deleted file mode 100644
index 51df2d3..0000000
--- a/tools/depends/target/python26/Python-2.6.5-xcompile.patch
+++ /dev/null
@@ -1,301 +0,0 @@
-diff -uN Python-2.6.2/configure Python-2.6.2POld/configure
---- Python-2.6.2/configure	2009-03-31 03:56:14.000000000 +1000
-
-@@ -24326,14 +24326,14 @@
- 
- { echo "$as_me:$LINENO: checking for %zd printf() format support" >&5
- echo $ECHO_N "checking for %zd printf() format support... $ECHO_C" >&6; }
--if test "$cross_compiling" = yes; then
--  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
--See \`config.log' for more details." >&5
--echo "$as_me: error: cannot run test program while cross compiling
--See \`config.log' for more details." >&2;}
--   { (exit 1); exit 1; }; }
--else
--  cat >conftest.$ac_ext <<_ACEOF
-+#if test "$cross_compiling" = yes; then
-+#  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-+#See \`config.log' for more details." >&5
-+#echo "$as_me: error: cannot run test program while cross compiling
-+#See \`config.log' for more details." >&2;}
-+#   { (exit 1); exit 1; }; }
-+#else
-+cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
- cat confdefs.h >>conftest.$ac_ext
-@@ -24411,7 +24411,7 @@
- echo "${ECHO_T}no" >&6; }
- fi
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
--fi
-+#fi
- 
- 
- 
-diff -uN Python-2.6.2/configure.in Python-2.6.2POld/configure.in
---- Python-2.6.2/configure.in	2009-03-31 03:56:14.000000000 +1000
-+++ Python-2.6.2POld/configure.in	2009-08-17 12:19:15.000000000 +1000
-@@ -3656,48 +3656,48 @@
-   AC_MSG_RESULT(no)
- fi
- 
--AC_MSG_CHECKING(for %zd printf() format support)
--AC_TRY_RUN([#include <stdio.h>
--#include <stddef.h>
--#include <string.h>
--
--#ifdef HAVE_SYS_TYPES_H
--#include <sys/types.h>
--#endif
--
--#ifdef HAVE_SSIZE_T
--typedef ssize_t Py_ssize_t;
--#elif SIZEOF_VOID_P == SIZEOF_LONG
--typedef long Py_ssize_t;
--#else
--typedef int Py_ssize_t;
--#endif
--
--int main()
--{
--    char buffer[256];
--
--    if(sprintf(buffer, "%zd", (size_t)123) < 0)
--       	return 1;
--
--    if (strcmp(buffer, "123"))
--	return 1;
--
--    if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
--       	return 1;
--
--    if (strcmp(buffer, "-123"))
--	return 1;
--
--    return 0;
--}],
--[AC_MSG_RESULT(yes)
-- AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])],
-- AC_MSG_RESULT(no))
-+#AC_MSG_CHECKING(for %zd printf() format support)
-+#AC_TRY_RUN([#include <stdio.h>
-+##include <stddef.h>
-+##include <string.h>
-+
-+##ifdef HAVE_SYS_TYPES_H
-+##include <sys/types.h>
-+##endif
-+
-+##ifdef HAVE_SSIZE_T
-+#typedef ssize_t Py_ssize_t;
-+##elif SIZEOF_VOID_P == SIZEOF_LONG
-+#typedef long Py_ssize_t;
-+##else
-+#typedef int Py_ssize_t;
-+##endif
-+#
-+#int main()
-+#{
-+#    char buffer[256];
-+#
-+#    if(sprintf(buffer, "%zd", (size_t)123) < 0)
-+#       	return 1;#
-+#
-+#    if (strcmp(buffer, "123"))
-+#	return 1;
-+#
-+#    if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
-+#       	return 1;
-+#
-+#    if (strcmp(buffer, "-123"))
-+#	return 1;
-+#
-+#   return 0;
-+#}],
-+#[AC_MSG_RESULT(yes)
-+# AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])],
-+# AC_MSG_RESULT(no))
- 
- AC_CHECK_TYPE(socklen_t,,
-   AC_DEFINE(socklen_t,int,
--            Define to `int' if <sys/socket.h> does not define.),[
-+            Define to 'int' if <sys/socket.h> does not define.),[
- #ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
-diff -uN Python-2.6.2/Makefile.pre.in Python-2.6.2POld/Makefile.pre.in
---- Python-2.6.2/Makefile.pre.in	2009-02-24 21:07:44.000000000 +1000
-+++ Python-2.6.2POld/Makefile.pre.in	2009-08-17 12:19:15.000000000 +1000
-@@ -175,6 +175,7 @@
- 
- PYTHON=		python$(EXE)
- BUILDPYTHON=	python$(BUILDEXE)
-+HOSTPYTHON=     ./$(BUILDPYTHON)
- 
- # The task to run while instrument when building the profile-opt target
- PROFILE_TASK=	$(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck
-@@ -206,6 +207,8 @@
- # Parser
- PGEN=		Parser/pgen$(EXE)
- 
-+HOSTPGEN=   $(PGEN)
-+
- POBJS=		\
- 		Parser/acceler.o \
- 		Parser/grammar1.o \
-@@ -394,8 +397,8 @@
- # Build the shared modules
- sharedmods: $(BUILDPYTHON)
- 	@case $$MAKEFLAGS in \
--	*s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
--	*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
-+	*s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py -q build;; \
-+	*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \
- 	esac
- 
- # Build static library
-@@ -517,7 +520,7 @@
- 
- $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
- 		-@$(INSTALL) -d Include
--		-$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
-+		-$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
- 
- $(PGEN):	$(PGENOBJS)
- 		$(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
-@@ -886,24 +889,24 @@
- 		done; \
- 	done
- 	$(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
--	PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
--		./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-+	-PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
-+		$(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
- 		-d $(LIBDEST) -f \
- 		-x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
--	PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--		./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
-+	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-+		$(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
- 		-d $(LIBDEST) -f \
- 		-x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
- 	-PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
--		./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
-+		$(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
- 		-d $(LIBDEST)/site-packages -f \
- 		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--		./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
-+		$(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
- 		-d $(LIBDEST)/site-packages -f \
- 		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--		./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
-+		$(HOSTPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
- 
- # Create the PLATDIR source directory, if one wasn't distributed..
- $(srcdir)/Lib/$(PLATDIR):
-@@ -1001,7 +1004,8 @@
- # Install the dynamically loadable modules
- # This goes into $(exec_prefix)
- sharedinstall:
--	$(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
-+	CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILE='$(CROSS_COMPILE)' \
-+	$(RUNSHARED) $(HOSTPYTHON) -E $(srcdir)/setup.py install \
- 	   	--prefix=$(prefix) \
- 		--install-scripts=$(BINDIR) \
- 		--install-platlib=$(DESTSHARED) \
-diff -uN Python-2.6.2/setup.py Python-2.6.2POld/setup.py
---- Python-2.6.2/setup.py	2009-04-01 04:20:48.000000000 +1000
-+++ Python-2.6.2POld/setup.py	2009-08-17 12:19:15.000000000 +1000
-@@ -17,7 +17,7 @@
- from distutils.command.install_lib import install_lib
- 
- # This global variable is used to hold the list of modules to be disabled.
--disabled_module_list = []
-+disabled_module_list = ['_ctypes', '_curses', '_curses_panel', '_cursesmodule', '_tkinter', 'syslogmodule', 'nismodule']
- 
- def add_dir_to_list(dirlist, dir):
-     """Add the directory 'dir' to the list 'dirlist' (at the front) if
-@@ -267,33 +267,40 @@
-             self.announce('WARNING: skipping import check for Cygwin-based "%s"'
-                 % ext.name)
-             return
-+        if os.environ.get('CROSS_COMPILE_TARGET') == 'yes':
-+            return
-+
-         ext_filename = os.path.join(
-             self.build_lib,
-             self.get_ext_filename(self.get_ext_fullname(ext.name)))
-         try:
-             imp.load_dynamic(ext.name, ext_filename)
-         except ImportError, why:
--            self.failed.append(ext.name)
--            self.announce('*** WARNING: renaming "%s" since importing it'
--                          ' failed: %s' % (ext.name, why), level=3)
--            assert not self.inplace
--            basename, tail = os.path.splitext(ext_filename)
--            newname = basename + "_failed" + tail
--            if os.path.exists(newname):
--                os.remove(newname)
--            os.rename(ext_filename, newname)
--
--            # XXX -- This relies on a Vile HACK in
--            # distutils.command.build_ext.build_extension().  The
--            # _built_objects attribute is stored there strictly for
--            # use here.
--            # If there is a failure, _built_objects may not be there,
--            # so catch the AttributeError and move on.
--            try:
--                for filename in self._built_objects:
--                    os.remove(filename)
--            except AttributeError:
--                self.announce('unable to remove files (ignored)')
-+            if os.environ.get('CROSS_COMPILE_TARGET') != "yes":
-+                self.announce('*** WARNING: renaming "%s" since importing it'
-+                              ' failed: %s' % (ext.name, why), level=3)
-+                assert not self.inplace
-+                basename, tail = os.path.splitext(ext_filename)
-+                newname = basename + "_failed" + tail
-+                if os.path.exists(newname):
-+                    os.remove(newname)
-+                os.rename(ext_filename, newname)
-+
-+                # XXX -- This relies on a Vile HACK in
-+                # distutils.command.build_ext.build_extension().  The
-+                # _built_objects attribute is stored there strictly for
-+                # use here.
-+                # If there is a failure, _built_objects may not be there,
-+                # so catch the AttributeError and move on.
-+                try:
-+                    for filename in self._built_objects:
-+                        os.remove(filename)
-+                except AttributeError:
-+                    self.announce('unable to remove files (ignored)')
-+            else:
-+                self.announce('WARNING: "%s" failed importing, but we leave it '
-+                              'because we are cross-compiling' %
-+                              ext.name)
-         except:
-             exc_type, why, tb = sys.exc_info()
-             self.announce('*** WARNING: importing extension "%s" '
-@@ -665,7 +672,7 @@
- 
-         if (ssl_incs is not None and
-             ssl_libs is not None and
--            openssl_ver >= 0x00907000):
-+            openssl_ver >= 0x00907000 and False):
-             # The _hashlib module wraps optimized implementations
-             # of hash functions from the OpenSSL library.
-             exts.append( Extension('_hashlib', ['_hashopenssl.c'],
-@@ -685,7 +692,7 @@
-                             depends = ['md5.h']) )
-             missing.append('_hashlib')
- 
--        if (openssl_ver < 0x00908000):
-+        if (True or openssl_ver < 0x00908000):
-             # OpenSSL doesn't do these until 0.9.8 so we'll bring our own hash
-             exts.append( Extension('_sha256', ['sha256module.c']) )
-             exts.append( Extension('_sha512', ['sha512module.c']) )
-
diff --git a/tools/depends/target/python26/Python-no-export-path.patch b/tools/depends/target/python26/Python-no-export-path.patch
deleted file mode 100644
index 6753baa..0000000
--- a/tools/depends/target/python26/Python-no-export-path.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ruN Makefile.pre.in Makefile.pre.in
---- Makefile.pre.in	2012-07-12 17:52:37.072234980 -0400
-+++ Makefile.pre.in	2012-07-13 15:45:36.522185303 -0400
-@@ -912,8 +912,6 @@
- $(srcdir)/Lib/$(PLATDIR):
- 	mkdir $(srcdir)/Lib/$(PLATDIR)
- 	cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen
--	export PATH; PATH="`pwd`:$$PATH"; \
--	export PYTHONPATH; PYTHONPATH="`pwd`/Lib"; \
- 	export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \
- 	export EXE; EXE="$(BUILDEXE)"; \
- 	cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen
\ No newline at end of file
diff --git a/tools/depends/target/python26/Python-no-modules.patch b/tools/depends/target/python26/Python-no-modules.patch
deleted file mode 100644
index f656837..0000000
--- a/tools/depends/target/python26/Python-no-modules.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ruN setup.py /setup.py
---- setup.py	2012-06-22 19:56:02.633319969 -0400
-+++ setup.py	2012-06-22 19:56:49.403319941 -0400
-@@ -98,7 +98,7 @@
-         self.failed = []
- 
-     def build_extensions(self):
--
-+	return
-         # Detect which modules should be compiled
-         missing = self.detect_modules()
-
diff --git a/tools/depends/target/python26/modules.setup b/tools/depends/target/python26/modules.setup
deleted file mode 100644
index c4c81ba..0000000
--- a/tools/depends/target/python26/modules.setup
+++ /dev/null
@@ -1,519 +0,0 @@
-# -*- makefile -*-
-# The file Setup is used by the makesetup script to construct the files
-# Makefile and config.c, from Makefile.pre and config.c.in,
-# respectively.  The file Setup itself is initially copied from
-# Setup.dist; once it exists it will not be overwritten, so you can edit
-# Setup to your heart's content.  Note that Makefile.pre is created
-# from Makefile.pre.in by the toplevel configure script.
-
-# (VPATH notes: Setup and Makefile.pre are in the build directory, as
-# are Makefile and config.c; the *.in and *.dist files are in the source
-# directory.)
-
-# Each line in this file describes one or more optional modules.
-# Modules enabled here will not be compiled by the setup.py script,
-# so the file can be used to override setup.py's behavior.
-
-# Lines have the following structure:
-#
-# <module> ... [<sourcefile> ...] [<cpparg> ...] [<library> ...]
-#
-# <sourcefile> is anything ending in .c (.C, .cc, .c++ are C++ files)
-# <cpparg> is anything starting with -I, -D, -U or -C
-# <library> is anything ending in .a or beginning with -l or -L
-# <module> is anything else but should be a valid Python
-# identifier (letters, digits, underscores, beginning with non-digit)
-#
-# (As the makesetup script changes, it may recognize some other
-# arguments as well, e.g. *.so and *.sl as libraries.  See the big
-# case statement in the makesetup script.)
-#
-# Lines can also have the form
-#
-# <name> = <value>
-#
-# which defines a Make variable definition inserted into Makefile.in
-#
-# Finally, if a line contains just the word "*shared*" (without the
-# quotes but with the stars), then the following modules will not be
-# built statically.  The build process works like this:
-#
-# 1. Build all modules that are declared as static in Modules/Setup,
-#    combine them into libpythonxy.a, combine that into python.
-# 2. Build all modules that are listed as shared in Modules/Setup.
-# 3. Invoke setup.py. That builds all modules that
-#    a) are not builtin, and
-#    b) are not listed in Modules/Setup, and
-#    c) can be build on the target
-#
-# Therefore, modules declared to be shared will not be
-# included in the config.c file, nor in the list of objects to be
-# added to the library archive, and their linker options won't be
-# added to the linker options. Rules to create their .o files and
-# their shared libraries will still be added to the Makefile, and
-# their names will be collected in the Make variable SHAREDMODS.  This
-# is used to build modules as shared libraries.  (They can be
-# installed using "make sharedinstall", which is implied by the
-# toplevel "make install" target.)  (For compatibility,
-# *noconfig* has the same effect as *shared*.)
-#
-# In addition, *static* explicitly declares the following modules to
-# be static.  Lines containing "*static*" and "*shared*" may thus
-# alternate throughout this file.
-
-# NOTE: As a standard policy, as many modules as can be supported by a
-# platform should be present.  The distribution comes with all modules
-# enabled that are supported by most platforms and don't require you
-# to ftp sources from elsewhere.
-*static*
-
-# Some special rules to define PYTHONPATH.
-# Edit the definitions below to indicate which options you are using.
-# Don't add any whitespace or comments!
-
-# Directories where library files get installed.
-# DESTLIB is for Python modules; MACHDESTLIB for shared libraries.
-DESTLIB=$(LIBDEST)
-MACHDESTLIB=$(BINLIBDEST)
-
-# NOTE: all the paths are now relative to the prefix that is computed
-# at run time!
-
-# Standard path -- don't edit.
-# No leading colon since this is the first entry.
-# Empty since this is now just the runtime prefix.
-DESTPATH=
-
-# Site specific path components -- should begin with : if non-empty
-SITEPATH=
-
-# Standard path components for test modules
-TESTPATH=
-
-# Path components for machine- or system-dependent modules and shared libraries
-MACHDEPPATH=:plat-$(MACHDEP)
-EXTRAMACHDEPPATH=
-
-# Path component for the Tkinter-related modules
-# The TKPATH variable is always enabled, to save you the effort.
-TKPATH=:lib-tk
-
-# Path component for old modules.
-OLDPATH=:lib-old
-
-COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH)$(MACHDEPPATH)$(EXTRAMACHDEPPATH)$(TKPATH)$(OLDPATH)
-PYTHONPATH=$(COREPYTHONPATH)
-
-
-# The modules listed here can't be built as shared libraries for
-# various reasons; therefore they are listed here instead of in the
-# normal order.
-
-# This only contains the minimal set of modules required to run the 
-# setup.py script in the root of the Python source tree.
-
-posix posixmodule.c		# posix (UNIX) system calls
-errno errnomodule.c		# posix (UNIX) errno values
-pwd pwdmodule.c			# this is needed to find out the user's home dir
-				# if $HOME is not set
-_sre _sre.c			# Fredrik Lundh's new regular expressions
-_codecs _codecsmodule.c		# access to the builtin codecs and codec registry
-
-# The zipimport module is always imported at startup. Having it as a
-# builtin module avoids some bootstrapping problems and reduces overhead.
-zipimport zipimport.c
-
-# The rest of the modules listed in this file are all commented out by
-# default.  Usually they can be detected and built as dynamically
-# loaded modules by the new setup.py script added in Python 2.1.  If
-# you're on a platform that doesn't support dynamic loading, want to 
-# compile modules statically into the Python binary, or need to 
-# specify some odd set of compiler switches, you can uncomment the 
-# appropriate lines below.
-
-# ======================================================================
-
-# The Python symtable module depends on .h files that setup.py doesn't track
-_symtable symtablemodule.c
-
-# The SGI specific GL module:
-
-GLHACK=-Dclear=__GLclear
-#gl glmodule.c cgensupport.c -I$(srcdir) $(GLHACK) -lgl -lX11
-
-# Pure module.  Cannot be linked dynamically.
-# -DWITH_QUANTIFY, -DWITH_PURIFY, or -DWITH_ALL_PURE
-#WHICH_PURE_PRODUCTS=-DWITH_ALL_PURE
-#PURE_INCLS=-I/usr/local/include
-#PURE_STUBLIBS=-L/usr/local/lib -lpurify_stubs -lquantify_stubs
-#pure puremodule.c $(WHICH_PURE_PRODUCTS) $(PURE_INCLS) $(PURE_STUBLIBS)
-
-# Uncommenting the following line tells makesetup that all following
-# modules are to be built as shared libraries (see above for more
-# detail; also note that *static* reverses this effect):
-
-#*shared*
-
-# GNU readline.  Unlike previous Python incarnations, GNU readline is
-# now incorporated in an optional module, configured in the Setup file
-# instead of by a configure script switch.  You may have to insert a
-# -L option pointing to the directory where libreadline.* lives,
-# and you may have to change -ltermcap to -ltermlib or perhaps remove
-# it, depending on your system -- see the GNU readline instructions.
-# It's okay for this to be a shared library, too.
-
-#readline readline.c -lreadline -lncurses
-
-
-# Modules that should always be present (non UNIX dependent):
-
-array arraymodule.c	# array objects
-cmath cmathmodule.c # -lm # complex math library functions
-math mathmodule.c # -lm # math library functions, e.g. sin()
-_struct _struct.c	# binary structure packing/unpacking
-time timemodule.c # -lm # time operations and variables
-operator operator.c	# operator.add() and similar goodies
-_weakref _weakref.c	# basic weak reference support
-_testcapi _testcapimodule.c    # Python C API test module
-_random _randommodule.c	# Random number generator
-_collections _collectionsmodule.c # Container types
-itertools itertoolsmodule.c	# Functions creating iterators for efficient looping 
-strop stropmodule.c		# String manipulations
-_functools _functoolsmodule.c	# Tools for working with functions and callable objects
-
-EXPATDEFINES='-DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI'
-_elementtree -I$(srcdir)/Modules/expat $(EXPATDEFINES) _elementtree.c	# elementtree accelerator
-#_pickle _pickle.c	# pickle accelerator
-datetime datetimemodule.c	# date/time type
-_bisect _bisectmodule.c	# Bisection algorithms
-
-unicodedata unicodedata.c    # static Unicode character database
-
-# access to ISO C locale support
-_locale _localemodule.c   -lintl
-
-
-# Modules with some UNIX dependencies -- on by default:
-# (If you have a really backward UNIX, select and socket may not be
-# supported...)
-#
-fcntl fcntlmodule.c	# fcntl(2) and ioctl(2)
-#spwd spwdmodule.c		# spwd(3) 
-#grp grpmodule.c		# grp(3)
-select selectmodule.c	# select(2); not on ancient System V
-
-# Memory-mapped files (also works on Win32).
-mmap mmapmodule.c
-
-# CSV file helper
-_csv _csv.c
-
-# Socket module helper for socket(2)
-_socket socketmodule.c
-
-# Socket module helper for SSL support; you must comment out the other
-# socket line above, and possibly edit the SSL variable:
-SSLDEFINES='-DUSE_SSL'
-_ssl _ssl.c \
-	$(SSLDEFINES) -I$(prefix)/include -I$(prefix)/include/openssl \
-	-L$(prefix)/lib -lssl -lcrypto
-
-_hashlib _hashopenssl.c \
-        $(SSLDEFINES) -I$(prefix)/include -I$(prefix)/include/openssl \
-        -L$(prefix)/lib -lssl -lcrypto
-
-# The crypt module is now disabled by default because it breaks builds
-# on many systems (where -lcrypt is needed), e.g. Linux (I believe).
-#
-# First, look at Setup.config; configure may have set this for you.
-
-#crypt cryptmodule.c  -lcrypt	# crypt(3); needs -lcrypt on some systems
-
-# Some more UNIX dependent modules -- off by default, since these
-# are not supported by all UNIX systems:
-
-#nis nismodule.c -lnsl	# Sun yellow pages -- not everywhere
-termios termios.c	# Steen Lumholt's termios module
-resource resource.c	# Jeremy Hylton's rlimit interface
-
-
-# Multimedia modules -- off by default.
-# These don't work for 64-bit platforms!!!
-# #993173 says audioop works on 64-bit platforms, though.
-# These represent audio samples or images as strings:
-
-#audioop audioop.c	# Operations on audio samples
-#imageop imageop.c	# Operations on images
-
-
-# Note that the _md5 and _sha modules are normally only built if the
-# system does not have the OpenSSL libs containing an optimized version.
-
-# The _md5 module implements the RSA Data Security, Inc. MD5
-# Message-Digest Algorithm, described in RFC 1321.  The necessary files
-# md5.c and md5.h are included here.
-
-_md5 md5module.c md5.c
-
-
-# The _sha module implements the SHA checksum algorithms.
-# (NIST's Secure Hash Algorithms.)
-_sha shamodule.c
-_sha256 sha256module.c
-_sha512 sha512module.c
-
-
-# SGI IRIX specific modules -- off by default.
-
-# These module work on any SGI machine:
-
-# *** gl must be enabled higher up in this file ***
-#fm fmmodule.c $(GLHACK) -lfm -lgl		# Font Manager
-#sgi sgimodule.c			# sgi.nap() and a few more
-
-# This module requires the header file
-# /usr/people/4Dgifts/iristools/include/izoom.h:
-#imgfile imgfile.c -limage -lgutil -lgl -lm	# Image Processing Utilities
-
-
-# These modules require the Multimedia Development Option (I think):
-
-#al almodule.c -laudio			# Audio Library
-#cd cdmodule.c -lcdaudio -lds -lmediad	# CD Audio Library
-#cl clmodule.c -lcl -lawareaudio	# Compression Library
-#sv svmodule.c yuvconvert.c -lsvideo -lXext -lX11	# Starter Video
-
-
-# The FORMS library, by Mark Overmars, implements user interface
-# components such as dialogs and buttons using SGI's GL and FM
-# libraries.  You must ftp the FORMS library separately from
-# ftp://ftp.cs.ruu.nl/pub/SGI/FORMS.  It was tested with FORMS 2.2a.
-# NOTE: if you want to be able to use FORMS and curses simultaneously
-# (or both link them statically into the same binary), you must
-# compile all of FORMS with the cc option "-Dclear=__GLclear".
-
-# The FORMS variable must point to the FORMS subdirectory of the forms
-# toplevel directory:
-
-#FORMS=/ufs/guido/src/forms/FORMS
-#fl flmodule.c -I$(FORMS) $(GLHACK) $(FORMS)/libforms.a -lfm -lgl
-
-
-# SunOS specific modules -- off by default:
-
-#sunaudiodev sunaudiodev.c
-
-
-# A Linux specific module -- off by default; this may also work on 
-# some *BSDs.
-
-#linuxaudiodev linuxaudiodev.c
-
-
-# George Neville-Neil's timing module:
-
-timing timingmodule.c
-
-
-# The _tkinter module.
-#
-# The command for _tkinter is long and site specific.  Please
-# uncomment and/or edit those parts as indicated.  If you don't have a
-# specific extension (e.g. Tix or BLT), leave the corresponding line
-# commented out.  (Leave the trailing backslashes in!  If you
-# experience strange errors, you may want to join all uncommented
-# lines and remove the backslashes -- the backslash interpretation is
-# done by the shell's "read" command and it may not be implemented on
-# every system.
-
-# *** Always uncomment this (leave the leading underscore in!):
-# _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
-# *** Uncomment and edit to reflect where your Tcl/Tk libraries are:
-#	-L/usr/local/lib \
-# *** Uncomment and edit to reflect where your Tcl/Tk headers are:
-#	-I/usr/local/include \
-# *** Uncomment and edit to reflect where your X11 header files are:
-#	-I/usr/X11R6/include \
-# *** Or uncomment this for Solaris:
-#	-I/usr/openwin/include \
-# *** Uncomment and edit for Tix extension only:
-#	-DWITH_TIX -ltix8.1.8.2 \
-# *** Uncomment and edit for BLT extension only:
-#	-DWITH_BLT -I/usr/local/blt/blt8.0-unoff/include -lBLT8.0 \
-# *** Uncomment and edit for PIL (TkImaging) extension only:
-#     (See http://www.pythonware.com/products/pil/ for more info)
-#	-DWITH_PIL -I../Extensions/Imaging/libImaging  tkImaging.c \
-# *** Uncomment and edit for TOGL extension only:
-#	-DWITH_TOGL togl.c \
-# *** Uncomment and edit to reflect your Tcl/Tk versions:
-#	-ltk8.2 -ltcl8.2 \
-# *** Uncomment and edit to reflect where your X11 libraries are:
-#	-L/usr/X11R6/lib \
-# *** Or uncomment this for Solaris:
-#	-L/usr/openwin/lib \
-# *** Uncomment these for TOGL extension only:
-#	-lGL -lGLU -lXext -lXmu \
-# *** Uncomment for AIX:
-#	-lld \
-# *** Always uncomment this; X11 libraries to link with:
-#	-lX11
-
-# Lance Ellinghaus's syslog module
-syslog syslogmodule.c		# syslog daemon interface
-
-
-# Curses support, requring the System V version of curses, often
-# provided by the ncurses library.  e.g. on Linux, link with -lncurses
-# instead of -lcurses).
-#
-# First, look at Setup.config; configure may have set this for you.
-
-#_curses _cursesmodule.c -lcurses -ltermcap
-# Wrapper for the panel library that's part of ncurses and SYSV curses.
-#_curses_panel _curses_panel.c -lpanel -lncurses 
-
-
-# Generic (SunOS / SVR4) dynamic loading module.
-# This is not needed for dynamic loading of Python modules --
-# it is a highly experimental and dangerous device for calling
-# *arbitrary* C functions in *arbitrary* shared libraries:
-
-#dl dlmodule.c
-
-
-# Modules that provide persistent dictionary-like semantics.  You will
-# probably want to arrange for at least one of them to be available on
-# your machine, though none are defined by default because of library
-# dependencies.  The Python module anydbm.py provides an
-# implementation independent wrapper for these; dumbdbm.py provides
-# similar functionality (but slower of course) implemented in Python.
-
-# The standard Unix dbm module has been moved to Setup.config so that
-# it will be compiled as a shared library by default.  Compiling it as
-# a built-in module causes conflicts with the pybsddb3 module since it
-# creates a static dependency on an out-of-date version of db.so.
-#
-# First, look at Setup.config; configure may have set this for you.
-
-#dbm -I$(prefix)/include -L$(prefix)/lib dbmmodule.c 	# dbm(3) may require -lndbm or similar
-
-# Anthony Baxter's gdbm module.  GNU dbm(3) will require -lgdbm:
-#
-# First, look at Setup.config; configure may have set this for you.
-
-#gdbm gdbmmodule.c -I$(prefix)/include -L$(prefix)/lib -lgdbm
-
-
-# Sleepycat Berkeley DB interface.
-#
-# This requires the Sleepycat DB code, see http://www.sleepycat.com/
-# The earliest supported version of that library is 3.0, the latest
-# supported version is 4.0 (4.1 is specifically not supported, as that
-# changes the semantics of transactional databases). A list of available
-# releases can be found at
-#
-# http://www.sleepycat.com/update/index.html
-#
-# Edit the variables DB and DBLIBVERto point to the db top directory
-# and the subdirectory of PORT where you built it.
-#DB=/usr/local/BerkeleyDB.4.0
-#DBLIBVER=4.0
-#DBINC=$(DB)/include
-#DBLIB=$(DB)/lib
-#_bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb-$(DBLIBVER)
-
-# Historical Berkeley DB 1.85
-#
-# This module is deprecated; the 1.85 version of the Berkeley DB library has
-# bugs that can cause data corruption. If you can, use later versions of the
-# library instead, available from <http://www.sleepycat.com/>.
-
-#DB=/depot/sundry/src/berkeley-db/db.1.85
-#DBPORT=$(DB)/PORT/irix.5.3
-#bsddb185 bsddbmodule.c -I$(DBPORT)/include -I$(DBPORT) $(DBPORT)/libdb.a
-
-
-
-# Helper module for various ascii-encoders
-binascii binascii.c
-
-# Fred Drake's interface to the Python parser
-parser parsermodule.c
-
-# cStringIO and cPickle
-cStringIO cStringIO.c
-cPickle cPickle.c
-
-
-# Lee Busby's SIGFPE modules.
-# The library to link fpectl with is platform specific.
-# Choose *one* of the options below for fpectl:
-
-# For SGI IRIX (tested on 5.3):
-#fpectl fpectlmodule.c -lfpe
-
-# For Solaris with SunPro compiler (tested on Solaris 2.5 with SunPro C 4.2):
-# (Without the compiler you don't have -lsunmath.)
-#fpectl fpectlmodule.c -R/opt/SUNWspro/lib -lsunmath -lm
-
-# For other systems: see instructions in fpectlmodule.c.
-#fpectl fpectlmodule.c ...
-
-# Test module for fpectl.  No extra libraries needed.
-#fpetest fpetestmodule.c
-
-# Andrew Kuchling's zlib module.
-# This require zlib 1.1.3 (or later).
-# See http://www.gzip.org/zlib/
-zlib zlibmodule.c -I$(prefix)/include -L$(prefix)/lib -lz
-
-# Interface to the Expat XML parser
-#
-# Expat was written by James Clark and is now maintained by a group of
-# developers on SourceForge; see www.libexpat.org for more
-# information.  The pyexpat module was written by Paul Prescod after a
-# prototype by Jack Jansen.  Source of Expat 1.95.2 is included in
-# Modules/expat/.  Usage of a system shared libexpat.so/expat.dll is
-# not advised.
-#
-# More information on Expat can be found at www.libexpat.org.
-#
-pyexpat expat/xmlparse.c expat/xmlrole.c expat/xmltok.c pyexpat.c -I$(srcdir)/Modules/expat $(EXPATDEFINES) -I$(prefix)/include -L$(prefix)/lib -lexpat
-
-
-# Hye-Shik Chang's CJKCodecs
-
-# multibytecodec is required for all the other CJK codec modules
-_multibytecodec cjkcodecs/multibytecodec.c
-
-_codecs_cn cjkcodecs/_codecs_cn.c
-_codecs_hk cjkcodecs/_codecs_hk.c
-_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
-_codecs_jp cjkcodecs/_codecs_jp.c
-_codecs_kr cjkcodecs/_codecs_kr.c
-_codecs_tw cjkcodecs/_codecs_tw.c
-
-# Example -- included for reference only:
-# xx xxmodule.c
-
-# Another example -- the 'xxsubtype' module shows C-level subtyping in action
-xxsubtype xxsubtype.c
-
-_lsprof _lsprof.c rotatingtree.c
-_json _json.c
-_fileio _fileio.c
-_heapq _heapqmodule.c
-_hotshot _hotshot.c
-future_builtins future_builtins.c
-
-SQLITEDEFINES='-DMODULE_NAME="sqlite3"'
-_sqlite3 _sqlite/connection.c  \
-	_sqlite/cursor.c _sqlite/microprotocols.c _sqlite/prepare_protocol.c \
-	_sqlite/row.c _sqlite/statement.c _sqlite/module.c _sqlite/util.c _sqlite/cache.c \
-	-I$(prefix)/include -L$(prefix)/lib -lsqlite3 $(SQLITEDEFINES)
-
-_ctypes _ctypes/callbacks.c  _ctypes/callproc.c  _ctypes/cfield.c  _ctypes/_ctypes.c  \
-        _ctypes/malloc_closure.c  _ctypes/stgdict.c \
-        -I$(prefix)/include/ffi -L$(prefix)/lib -lffi
-
-#bz2 bz2module.c -I$(prefix)/include -L$(prefix)/lib -lbz2
diff --git a/tools/depends/target/python26/python-osx-environ-fix.patch b/tools/depends/target/python26/python-osx-environ-fix.patch
deleted file mode 100644
index b6f6a72..0000000
--- a/tools/depends/target/python26/python-osx-environ-fix.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Index: Modules/posixmodule.c
-===================================================================
---- a/Modules/posixmodule.c	(revision 52827)
-+++ b/Modules/posixmodule.c	(working copy)
-@@ -314,7 +314,7 @@
- #endif
- 
- /* Return a dictionary corresponding to the POSIX environment table */
--#ifdef WITH_NEXT_FRAMEWORK
-+#ifdef __APPLE__
- /* On Darwin/MacOSX a shared library or framework has no access to
- ** environ directly, we must obtain it with _NSGetEnviron().
- */
-@@ -332,7 +332,7 @@
- 	d = PyDict_New();
- 	if (d == NULL)
- 		return NULL;
--#ifdef WITH_NEXT_FRAMEWORK
-+#ifdef __APPLE__
- 	if (environ == NULL)
- 		environ = *_NSGetEnviron();
- #endif
-
- 	  	 
-
diff --git a/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-access.patch b/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-access.patch
deleted file mode 100644
index dd51f4a..0000000
--- a/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-access.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -rupN Imaging-1.1.7/libImaging/Access.c Imaging-1.1.7-mod/libImaging/Access.c
---- Imaging-1.1.7/libImaging/Access.c	2009-10-31 20:44:12.000000000 -0400
-+++ Imaging-1.1.7-mod/libImaging/Access.c	2011-10-10 19:40:22.000000000 -0400
-@@ -32,7 +32,7 @@ add_item(const char* mode)
- {
-     UINT32 i = hash(mode);
-     /* printf("hash %s => %d\n", mode, i); */
--    if (access_table[i].mode) {
-+    if (access_table[i].mode && (strcmp(mode, access_table[i].mode) != 0)) {
-         fprintf(stderr, "AccessInit: hash collision: %d for both %s and %s\n",
-                 i, mode, access_table[i].mode);
-         exit(1);
-
diff --git a/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-bz2-link.patch b/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-bz2-link.patch
deleted file mode 100644
index de28404..0000000
--- a/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-bz2-link.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 5872f72..372eeaa 100644
---- a/setup.py
-+++ b/setup.py
-@@ -293,7 +293,7 @@ class pil_build_ext(build_ext):
-             if feature.freetype_version == 20:
-                 defs.append(("USE_FREETYPE_2_0", None))
-             exts.append(Extension(
--                "_imagingft", ["_imagingft.c"], libraries=["freetype"],
-+                "_imagingft", ["_imagingft.c"], libraries=["freetype", "bz2", "z"],
-                 define_macros=defs
-                 ))
- 
diff --git a/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-crosscompiling-0.1.patch b/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-crosscompiling-0.1.patch
deleted file mode 100644
index ccd7afd..0000000
--- a/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-crosscompiling-0.1.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -Naur Imaging-1.1.7/setup.py Imaging-1.1.7.patch/setup.py
---- Imaging-1.1.7/setup.py	2011-04-17 09:31:07.000000000 +0200
-+++ Imaging-1.1.7.patch/setup.py	2011-04-17 09:54:20.880047886 +0200
-@@ -147,7 +147,6 @@
-             add_directory(library_dirs, "/opt/local/lib")
-             add_directory(include_dirs, "/opt/local/include")
- 
--        add_directory(library_dirs, "/usr/local/lib")
-         # FIXME: check /opt/stuff directories here?
- 
-         prefix = sysconfig.get_config_var("prefix")
-@@ -199,22 +198,6 @@
-             add_directory(include_dirs, include_root)
- 
-         #
--        # add standard directories
--
--        # look for tcl specific subdirectory (e.g debian)
--        if _tkinter:
--            tcl_dir = "/usr/include/tcl" + TCL_VERSION
--            if os.path.isfile(os.path.join(tcl_dir, "tk.h")):
--                add_directory(include_dirs, tcl_dir)
--
--        # standard locations
--        add_directory(library_dirs, "/usr/local/lib")
--        add_directory(include_dirs, "/usr/local/include")
--
--        add_directory(library_dirs, "/usr/lib")
--        add_directory(include_dirs, "/usr/include")
--
--        #
-         # insert new dirs *before* default libs, to avoid conflicts
-         # between Python PYD stub libs and real libraries
- 
diff --git a/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-remove-zlib-check.patch b/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-remove-zlib-check.patch
deleted file mode 100644
index 3f97fa8..0000000
--- a/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-remove-zlib-check.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- setup.py	2013-03-19 18:26:03.725978243 -0400
-+++ setup.py	2013-03-19 18:24:50.435978289 -0400
-@@ -211,11 +211,7 @@
-             zlib = jpeg = tiff = freetype = tcl = tk = lcms = None
-         feature = feature()
- 
--        if find_include_file(self, "zlib.h"):
--            if find_library_file(self, "z"):
--                feature.zlib = "z"
--            elif sys.platform == "win32" and find_library_file(self, "zlib"):
--                feature.zlib = "zlib" # alternative name
-+        feature.zlib = "z"
- 
-         if find_include_file(self, "jpeglib.h"):
-             if find_library_file(self, "jpeg"):
diff --git a/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-setuptools-0.1.patch b/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-setuptools-0.1.patch
deleted file mode 100644
index a59ea79..0000000
--- a/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-setuptools-0.1.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur Imaging-1.1.7/setup.py Imaging-1.1.7.patch/setup.py
---- Imaging-1.1.7/setup.py	2009-11-15 17:06:10.000000000 +0100
-+++ Imaging-1.1.7.patch/setup.py	2011-04-17 09:31:07.545708559 +0200
-@@ -83,7 +83,7 @@
- # --------------------------------------------------------------------
- 
- from distutils import sysconfig
--from distutils.core import Extension, setup
-+from setuptools import Extension, setup
- from distutils.command.build_ext import build_ext
- 
- try:
diff --git a/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-zip-include.patch b/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-zip-include.patch
deleted file mode 100644
index fbd54e2..0000000
--- a/tools/depends/target/pythonmodule-pil/Imaging-1.1.7-zip-include.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- encode.c	2009-11-02 06:46:30.000000000 -0500
-+++ encode.c	2013-03-13 19:47:36.156302056 -0400
-@@ -426,7 +426,7 @@
- 
- #ifdef HAVE_LIBZ
- 
--#include "Zip.h"
-+#include "libImaging/Zip.h"
- 
- PyObject*
- PyImaging_ZipEncoderNew(PyObject* self, PyObject* args)
---- decode.c	2009-11-02 06:46:46.000000000 -0500
-+++ decode.c	2013-03-13 19:47:53.326302045 -0400
-@@ -602,7 +602,7 @@
- 
- #ifdef HAVE_LIBZ
- 
--#include "Zip.h"
-+#include "libImaging/Zip.h"
- 
- PyObject*
- PyImaging_ZipDecoderNew(PyObject* self, PyObject* args)
diff --git a/tools/depends/target/pythonmodule-pil/Makefile b/tools/depends/target/pythonmodule-pil/Makefile
deleted file mode 100644
index c242df9..0000000
--- a/tools/depends/target/pythonmodule-pil/Makefile
+++ /dev/null
@@ -1,46 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile Imaging-1.1.7-access.patch \
-      Imaging-1.1.7-crosscompiling-0.1.patch Imaging-1.1.7-setuptools-0.1.patch
-
-# lib name, version
-LIBNAME=Imaging
-VERSION=1.1.7
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-CROSSFLAGS=PYTHONXCPREFIX="$(PREFIX)" LDFLAGS="$(LDFLAGS)"
-
-LIBDYLIB=$(PLATFORM)/dist/PIL-$(VERSION)-py2.6-$(OS)-$(CPU).egg
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p1 < ../Imaging-1.1.7-crosscompiling-0.1.patch
-	cd $(PLATFORM); patch -p1 < ../Imaging-1.1.7-setuptools-0.1.patch
-	cd $(PLATFORM); patch -p1 < ../Imaging-1.1.7-access.patch
-	cd $(PLATFORM); patch -p0 < ../Imaging-1.1.7-zip-include.patch
-	cd $(PLATFORM); patch -p0 < ../Imaging-1.1.7-remove-zlib-check.patch
-	cd $(PLATFORM); patch -p1 < ../Imaging-1.1.7-bz2-link.patch
-	cd $(PLATFORM); sed -ie "s|"darwin"|"darwinNot"|g" "setup.py"
-
-$(LIBDYLIB): $(PLATFORM)
-	mkdir -p $(PLATFORM)/output
-	cd $(PLATFORM); $(CROSSFLAGS) $(NATIVEPREFIX)/bin/python setup.py build -x bdist_egg --plat-name $(OS)-$(CPU)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	mkdir -p $(PREFIX)/lib/python2.6/site-packages/PIL
-	unzip -oq $(LIBDYLIB) -d $(PREFIX)/lib/python2.6/site-packages/PIL/
-	echo 'PIL' > $(PREFIX)/lib/python2.6/site-packages/PIL.pth
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/samba-gplv3/Makefile b/tools/depends/target/samba-gplv3/Makefile
deleted file mode 100644
index fe209fd..0000000
--- a/tools/depends/target/samba-gplv3/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=samba
-VERSION=3.6.12
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-CONFIGURE= cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) \
-          --without-cluster-support --disable-swat --without-ldap \
-          --without-pam --without-pam_smbpass --with-fhs --with-libtalloc=no \
-          --with-libtdb=no --without-winbind --disable-cups --without-ads \
-          --disable-avahi --disable-fam --without-libaddns --without-libnetapi \
-          --without-dnsupdate --without-libsmbsharemodes
-
-LIBDYLIB=$(PLATFORM)/source3/bin/libsmbclient.a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM)/source3; $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)/source3 libsmbclient
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM)/source3 installlibsmbclient
-ifeq (darwin, $(findstring darwin, $(HOST)))
-	install_name_tool -id $(PREFIX)/lib/libsmbclient.dylib.0 $(PREFIX)/lib/libsmbclient.dylib.0
-endif
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM)/source3 clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/samba/Makefile b/tools/depends/target/samba/Makefile
deleted file mode 100644
index e3237ca..0000000
--- a/tools/depends/target/samba/Makefile
+++ /dev/null
@@ -1,85 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile samba30-3.0.37-configure.in.patch \
-      samba30-3.0.37-CVE-2010-2063.patch \
-      samba30-3.0.37-silence-receive-warning.patch \
-      samba30-3.0.37-vfs_default.c.patch samba30-3.0.37-wle-fix.patch \
-      samba_android.patch
-
-# lib name, version
-LIBNAME=samba
-VERSION=3.0.37
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-# android does not really support LFS but we can force it
-# in libsmbclient by defining off_t to off64_t and changing
-# libsmbclient.h to match. Defining _OFF_T_DEFINED_ allows
-# us to change the typedef of off_t in android's sys/type.h.
-# Then xbmc will correctly access smb shares with LFS enabled
-# using the altered libsmbclient.h.
-ifeq ($(OS),android)
-export CFLAGS+=-D_FILE_OFFSET_BITS=64 -D_OFF_T_DEFINED_ -Doff_t=off64_t -Dlseek=lseek64
-ANDROID_OFF_T_FIX=sed -ie "s|off_t|off64_t|g" "$(PLATFORM)/source/include/libsmbclient.h"
-endif
-
-CONFIGURE= cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) \
-        --disable-cups \
-        --enable-static \
-        --disable-shared \
-        --disable-pie \
-        --disable-iprint \
-        --disable-fam \
-        --without-cluster-support \
-        --without-cifsupcall \
-        --without-ads \
-        --without-ldap \
-        --with-included-popt \
-        --with-included-iniparser \
-        --without-sys-quotas \
-        --without-krb5 \
-        --without-automount \
-        --without-sendfile-support \
-        --with-libiconv=$(STAGING_DIR) \
-        --without-cifsmount \
-        --without-winbind \
-
-LIBDYLIB=$(PLATFORM)/source/bin/libsmbclient.a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p1 < ../samba30-3.0.37-configure.in.patch
-	cd $(PLATFORM); patch -p1 < ../samba30-3.0.37-CVE-2010-2063.patch
-	cd $(PLATFORM); patch -p1 < ../samba30-3.0.37-silence-receive-warning.patch
-	cd $(PLATFORM); patch -p1 < ../samba30-3.0.37-vfs_default.c.patch
-	cd $(PLATFORM); patch -p1 < ../samba30-3.0.37-wle-fix.patch
-	cd $(PLATFORM); patch -p0 < ../samba_android.patch
-	$(ANDROID_OFF_T_FIX)
-	cd $(PLATFORM)/source && ./autogen.sh
-	cd $(PLATFORM)/source; $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)/source headers
-	mkdir -p $(PLATFORM)/source/bin
-	$(MAKE) -C $(PLATFORM)/source libsmbclient
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM)/source installclientlib
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM)/source clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/samba/samba30-3.0.37-CVE-2010-2063.patch b/tools/depends/target/samba/samba30-3.0.37-CVE-2010-2063.patch
deleted file mode 100644
index b4657de..0000000
--- a/tools/depends/target/samba/samba30-3.0.37-CVE-2010-2063.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff --git a/source/smbd/process.c b/source/smbd/process.c
-index e861e16..6499bc7 100644
---- a/source/smbd/process.c
-+++ b/source/smbd/process.c
-@@ -1159,6 +1159,7 @@ int chain_reply(char *inbuf,char *outbuf,int size,int bufsize)
- {
- 	static char *orig_inbuf;
- 	static char *orig_outbuf;
-+	static int orig_size;
- 	int smb_com1, smb_com2 = CVAL(inbuf,smb_vwv0);
- 	unsigned smb_off2 = SVAL(inbuf,smb_vwv1);
- 	char *inbuf2, *outbuf2;
-@@ -1178,6 +1179,13 @@ int chain_reply(char *inbuf,char *outbuf,int size,int bufsize)
- 		/* this is the first part of the chain */
- 		orig_inbuf = inbuf;
- 		orig_outbuf = outbuf;
-+		orig_size = size;
-+	}
-+
-+	/* Validate smb_off2 */
-+	if ((smb_off2 < smb_wct - 4) || orig_size < (smb_off2 + 4 - smb_wct)) {
-+		exit_server_cleanly("Bad chained packet");
-+		return -1;
- 	}
- 
- 	/*
-@@ -1192,6 +1200,11 @@ int chain_reply(char *inbuf,char *outbuf,int size,int bufsize)
- 	SSVAL(outbuf,smb_vwv1,smb_offset(outbuf+outsize,outbuf));
- 	SCVAL(outbuf,smb_vwv0,smb_com2);
- 
-+	if (outsize <= smb_wct) {
-+		exit_server_cleanly("Bad chained packet");
-+		return -1;
-+	}
-+
- 	/* remember how much the caller added to the chain, only counting stuff
- 		after the parameter words */
- 	chain_size += outsize - smb_wct;
diff --git a/tools/depends/target/samba/samba30-3.0.37-configure.in.patch b/tools/depends/target/samba/samba30-3.0.37-configure.in.patch
deleted file mode 100644
index 3af1e12..0000000
--- a/tools/depends/target/samba/samba30-3.0.37-configure.in.patch
+++ /dev/null
@@ -1,64 +0,0 @@
---- samba-3.0.25borig/source/configure.in	2007-05-23 08:29:20.000000000 -0700
-+++ samba3025bfinal/source/configure.in	2007-07-24 12:15:13.000000000 -0700
-@@ -1374,31 +1374,40 @@
- #
- case "$host_os" in
-     *linux*)
--       # glibc <= 2.3.2 has a broken getgrouplist
--       AC_TRY_RUN([
-+
-+AC_CACHE_CHECK([for a broken Linux getgrouplist API],
-+             linux_getgrouplist_ok,
-+             [
-+                 AC_TRY_RUN([
- #include <unistd.h>
- #include <sys/utsname.h>
--main() {
--       /* glibc up to 2.3 has a broken getgrouplist */
-+
-+                     int main() {
-+                            /* glibc up to 2.3 has a broken
-+getgrouplist */
- #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
--       int libc_major = __GLIBC__;
--       int libc_minor = __GLIBC_MINOR__;
-+                            int libc_major = __GLIBC__;
-+                            int libc_minor = __GLIBC_MINOR__;
-+
-+                            if (libc_major < 2)
-+                                   return 1;
-+                            if ((libc_major == 2) && (libc_minor <= 3))
-+                                   return 1;
-+#endif
-+                            return 0;
-+                     }
-+
-+                 ],
-+                 [linux_getgrouplist_ok=yes],
-+                 [linux_getgrouplist_ok=no],
-+                 [linux_getgrouplist_ok=cross])
-+        ])
-+
-+        if test x"$linux_getgrouplist_ok" = x"yes"; then
-+           AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist])
-+        fi
-+
- 
--       if (libc_major < 2)
--              exit(1);
--       if ((libc_major == 2) && (libc_minor <= 3))
--              exit(1);
--#endif
--       exit(0);
--}
--], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no])
--       if test x"$linux_getgrouplist_ok" = x"yes"; then
--          AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist])
--       fi
--       ;;
--    *)
--       AC_CHECK_FUNCS(getgrouplist)
--       ;;
- esac
- 
- #
diff --git a/tools/depends/target/samba/samba30-3.0.37-silence-receive-warning.patch b/tools/depends/target/samba/samba30-3.0.37-silence-receive-warning.patch
deleted file mode 100644
index 92b8433..0000000
--- a/tools/depends/target/samba/samba30-3.0.37-silence-receive-warning.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- samba-3.0.37-clean/source/libsmb/clientgen.c	2009-09-30 05:21:56.000000000 -0700
-+++ samba-3.0.37/source/libsmb/clientgen.c	2010-11-18 21:56:06.874516928 -0800
-@@ -108,7 +108,7 @@
- 
- 	/* If the server is not responding, note that now */
- 	if (!ret) {
--                DEBUG(0, ("Receiving SMB: Server stopped responding\n"));
-+    DEBUG(1, ("Receiving SMB: Server stopped responding\n"));
- 		cli->smb_rw_error = smb_read_error;
- 		close(cli->fd);
- 		cli->fd = -1;
diff --git a/tools/depends/target/samba/samba30-3.0.37-vfs_default.c.patch b/tools/depends/target/samba/samba30-3.0.37-vfs_default.c.patch
deleted file mode 100644
index 7a640ec..0000000
--- a/tools/depends/target/samba/samba30-3.0.37-vfs_default.c.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- samba-3.0.25borig/source/modules/vfs_default.c	2007-04-09 10:30:58.000000000 -0700
-+++ samba3025bfinal/source/modules/vfs_default.c	2007-07-24 12:18:07.000000000 -0700
-@@ -813,10 +813,11 @@
- 
- 	START_PROFILE(syscall_linux_setlease);
- 
--#ifdef LINUX
-+#ifdef HAVE_KERNEL_OPLOCKS_LINUX
- 	/* first set the signal handler */
--	if(linux_set_lease_sighandler(fd) == -1)
-+	if(linux_set_lease_sighandler(fd) == -1) {
- 		return -1;
-+	}
- 
- 	result = linux_setlease(fd, leasetype);
- #else
diff --git a/tools/depends/target/samba/samba30-3.0.37-wle-fix.patch b/tools/depends/target/samba/samba30-3.0.37-wle-fix.patch
deleted file mode 100644
index 8a41f45..0000000
--- a/tools/depends/target/samba/samba30-3.0.37-wle-fix.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-diff -r -u samba-3.0.37-clean/source/libsmb/asn1.c samba-3.0.37/source/libsmb/asn1.c
---- samba-3.0.37-clean/source/libsmb/asn1.c	2009-09-30 05:21:56.000000000 -0700
-+++ samba-3.0.37/source/libsmb/asn1.c	2010-11-18 12:40:06.981517350 -0800
-@@ -261,6 +261,36 @@
- 	return asn1_read(data, v, 1);
- }
- 
-+/* peek to see if a tag is present */
-+/* this was not ported from samba and may not be identical to libsmb mainline */
-+BOOL asn1_peek_tag(ASN1_DATA *data, uint8 tag)
-+{
-+  uint8 curtag;
-+
-+  if (data->has_error)
-+    return False;
-+
-+  // overflow checking
-+  if (data->ofs + 1 < data->ofs || data->ofs + 1 < 1) {
-+    return False;
-+  }
-+
-+  // boundary checking
-+  if (data->ofs + 1 > data->length) {
-+    return False;
-+  }
-+
-+  memcpy( (void*)&curtag, data->data + data->ofs, 1);
-+
-+  // don't move cursor
-+  // don't set error
-+
-+  if( tag != curtag )
-+    return False;
-+
-+  return True;
-+}
-+
- /* start reading a nested asn1 structure */
- BOOL asn1_start_tag(ASN1_DATA *data, uint8 tag)
- {
-diff -r -u samba-3.0.37-clean/source/libsmb/clispnego.c samba-3.0.37/source/libsmb/clispnego.c
---- samba-3.0.37-clean/source/libsmb/clispnego.c	2009-09-30 05:21:56.000000000 -0700
-+++ samba-3.0.37/source/libsmb/clispnego.c	2010-11-18 12:52:54.833518134 -0800
-@@ -135,9 +135,16 @@
- 
- 	asn1_start_tag(&data,ASN1_APPLICATION(0));
- 	asn1_check_OID(&data,OID_SPNEGO);
-+
-+	/* negTokenInit  [0]  NegTokenInit */
- 	asn1_start_tag(&data,ASN1_CONTEXT(0));
- 	asn1_start_tag(&data,ASN1_SEQUENCE(0));
- 
-+	/* mechTypes [0] MechTypeList  OPTIONAL */
-+
-+	/* Not really optional, we depend on this to decide
-+	 * what mechanisms we have to work with. */
-+
- 	asn1_start_tag(&data,ASN1_CONTEXT(0));
- 	asn1_start_tag(&data,ASN1_SEQUENCE(0));
- 	for (i=0; asn1_tag_remaining(&data) > 0 && i < ASN1_MAX_OIDS-1; i++) {
-@@ -150,7 +157,39 @@
- 	asn1_end_tag(&data);
- 
- 	*principal = NULL;
--	if (asn1_tag_remaining(&data) > 0) {
-+
-+  /*
-+	   Win7 + Live Sign-in Assistant attaches a mechToken
-+	   ASN1_CONTEXT(2) to the negTokenInit packet
-+	   which breaks our negotiation if we just assume
-+	   the next tag is ASN1_CONTEXT(3).
-+	 */
-+
-+	 if (asn1_peek_tag(&data, ASN1_CONTEXT(1))) {
-+	         uint8 flags;
-+
-+    /* reqFlags [1] ContextFlags  OPTIONAL */
-+    asn1_start_tag(&data, ASN1_CONTEXT(1));
-+    asn1_start_tag(&data, ASN1_BITFIELD);
-+    while (asn1_tag_remaining(&data) > 0) {
-+      asn1_read_uint8(&data, &flags);
-+    }
-+    asn1_end_tag(&data);
-+    asn1_end_tag(&data);
-+  }
-+
-+  if (asn1_peek_tag(&data, ASN1_CONTEXT(2))) {
-+    /* mechToken [2] OCTET STRING  OPTIONAL */
-+    DATA_BLOB token;
-+    asn1_start_tag(&data, ASN1_CONTEXT(2));
-+    asn1_read_OctetString(&data, &token);
-+    asn1_end_tag(&data);
-+    /* Throw away the token - not used. */
-+    data_blob_free(&token);
-+  }
-+
-+  if (asn1_peek_tag(&data, ASN1_CONTEXT(3))) {
-+	     /* mechListMIC [3] OCTET STRING  OPTIONAL */
- 		asn1_start_tag(&data, ASN1_CONTEXT(3));
- 		asn1_start_tag(&data, ASN1_SEQUENCE(0));
- 		asn1_start_tag(&data, ASN1_CONTEXT(0));
diff --git a/tools/depends/target/samba/samba_android.patch b/tools/depends/target/samba/samba_android.patch
deleted file mode 100644
index 45c9773..0000000
--- a/tools/depends/target/samba/samba_android.patch
+++ /dev/null
@@ -1,210 +0,0 @@
-diff -ruN source/lib/fault.c source/lib/fault.c
---- source/lib/fault.c	2009-09-30 08:21:56.000000000 -0400
-+++ source/lib/fault.c	2013-01-14 20:14:16.393077102 -0500
-@@ -136,7 +136,7 @@
- #endif
- #endif
- 
--#if defined(HAVE_PRCTL) && defined(PR_SET_DUMPABLE)
-+#if defined(HAVE_PRCTL) && defined(PR_SET_DUMPABLE) && !defined(ANDROID)
- 	/* On Linux we lose the ability to dump core when we change our user
- 	 * ID. We know how to dump core safely, so let's make sure we have our
- 	 * dumpable flag set.
-diff -ruN source/lib/iconv.c source/lib/iconv.c
---- source/lib/iconv.c	2009-09-30 08:21:56.000000000 -0400
-+++ source/lib/iconv.c	2013-01-14 20:33:18.813076383 -0500
-@@ -20,7 +20,10 @@
- */
- 
- #include "includes.h"
--
-+#if defined(ANDROID)
-+#include <stdint.h>
-+#include <asm/byteorder.h>
-+#endif
- /*
-  * We have to use strcasecmp here as the character conversions
-  * haven't been initialised yet. JRA.
-@@ -489,6 +492,19 @@
- 	return 0;
- }
- 
-+#if defined(ANDROID)
-+void swab(const void *from, void*to, ssize_t n)
-+{
-+  ssize_t i;
-+
-+  if (n < 0)
-+    return;
-+
-+  for (i = 0; i < (n/2)*2; i += 2)
-+    *((uint16_t*)to+i) = __arch__swab16(*((uint16_t*)from+i));
-+}
-+#endif
-+
- static size_t iconv_swab(void *cd, const char **inbuf, size_t *inbytesleft,
- 			 char **outbuf, size_t *outbytesleft)
- {
-diff -ruN source/lib/replace/system/passwd.h source/lib/replace/system/passwd.h
---- source/lib/replace/system/passwd.h	2009-09-30 08:21:56.000000000 -0400
-+++ source/lib/replace/system/passwd.h	2013-01-14 20:21:58.013076811 -0500
-@@ -62,6 +62,8 @@
- 
- #ifdef REPLACE_GETPASS
- #define getpass(prompt) getsmbpass((prompt))
-+#else
-+#define getpass(prompt) NULL
- #endif
- 
- #ifndef NGROUPS_MAX
-diff -ruN source/lib/system.c source/lib/system.c
---- source/lib/system.c	2009-09-30 08:21:56.000000000 -0400
-+++ source/lib/system.c	2013-01-14 20:27:18.453076610 -0500
-@@ -476,7 +476,10 @@
- #if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_SEEKDIR64)
- 	seekdir64(dirp, offset);
- #else
--	seekdir(dirp, offset);
-+#if !defined(ANDROID)
-+	seekdir(dirp, offset);
-+#endif
-+	return;
- #endif
- }
- 
-@@ -489,7 +492,11 @@
- #if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_TELLDIR64)
- 	return (long)telldir64(dirp);
- #else
-+#if !defined(ANDROID)
- 	return (long)telldir(dirp);
-+#else
-+	return(0);
-+#endif
- #endif
- }
- 
-@@ -985,17 +992,25 @@
- 
- void sys_setpwent(void)
- {
-+#if !defined(ANDROID)
- 	setpwent();
-+#endif
- }
- 
- struct passwd *sys_getpwent(void)
- {
-+#if !defined(ANDROID)
- 	return getpwent();
-+#else
-+	return NULL;
-+#endif	
- }
- 
- void sys_endpwent(void)
- {
-+#if !defined(ANDROID)
- 	endpwent();
-+#endif
- }
- 
- /**************************************************************************
-@@ -1065,7 +1080,9 @@
- 	new_pwd.pw_passwd = SMB_STRDUP("x");
- 	new_pwd.pw_uid = uid;
- 	new_pwd.pw_gid = 100;
-+#if !defined(ANDROID)
- 	new_pwd.pw_gecos = SMB_STRDUP("faked user");
-+#endif
- 	new_pwd.pw_dir = SMB_STRDUP("/nodir");
- 	new_pwd.pw_shell = SMB_STRDUP("/bin/false");
- 
-@@ -1241,7 +1258,9 @@
- 	retval.pw_passwd = pwret->pw_passwd;
- 	retval.pw_uid = pwret->pw_uid;
- 	retval.pw_gid = pwret->pw_gid;
-+#if !defined(ANDROID)
- 	unix_to_unicode(retval.pw_gecos, pwret->pw_gecos, sizeof(retval.pw_gecos));
-+#endif
- 	unix_to_unicode(retval.pw_dir, pwret->pw_dir, sizeof(retval.pw_dir));
- 	unix_to_unicode(retval.pw_shell, pwret->pw_shell, sizeof(retval.pw_shell));
- 
-@@ -1264,7 +1283,9 @@
- 	retval.pw_passwd = pwret->pw_passwd;
- 	retval.pw_uid = pwret->pw_uid;
- 	retval.pw_gid = pwret->pw_gid;
-+#if !defined(ANDROID)
- 	unix_to_unicode(retval.pw_gecos, pwret->pw_gecos, sizeof(retval.pw_gecos));
-+#endif
- 	unix_to_unicode(retval.pw_dir, pwret->pw_dir, sizeof(retval.pw_dir));
- 	unix_to_unicode(retval.pw_shell, pwret->pw_shell, sizeof(retval.pw_shell));
- 
-diff -ruN source/lib/util_pw.c source/lib/util_pw.c
---- source/lib/util_pw.c	2009-09-30 08:21:56.000000000 -0400
-+++ source/lib/util_pw.c	2013-01-14 20:17:49.293076968 -0500
-@@ -32,7 +32,9 @@
- 	ret->pw_passwd = talloc_strdup(ret, from->pw_passwd);
- 	ret->pw_uid = from->pw_uid;
- 	ret->pw_gid = from->pw_gid;
-+#if !defined(ANDROID)
- 	ret->pw_gecos = talloc_strdup(ret, from->pw_gecos);
-+#endif
- 	ret->pw_dir = talloc_strdup(ret, from->pw_dir);
- 	ret->pw_shell = talloc_strdup(ret, from->pw_shell);
- 	return ret;
-diff -ruN source/libads/dns.c source/libads/dns.c
---- source/libads/dns.c	2009-09-30 08:21:56.000000000 -0400
-+++ source/libads/dns.c	2013-01-14 20:14:16.393077102 -0500
-@@ -38,6 +38,15 @@
- 
- #define MAX_DNS_PACKET_SIZE 0xffff
- 
-+#if defined(ANDROID)
-+#  define NS_HFIXEDSZ   12
-+#  define C_IN          1
-+#  define T_A           1
-+#  define ns_t_srv      33
-+#  define NS_PACKETSZ	512
-+#  define T_NS          2
-+#endif
-+
- #ifdef NS_HFIXEDSZ	/* Bind 8/9 interface */
- #if !defined(C_IN)	/* AIX 5.3 already defines C_IN */
- #  define C_IN		ns_c_in
-diff -ruN source/passdb/passdb.c source/passdb/passdb.c
---- source/passdb/passdb.c	2009-09-30 08:21:56.000000000 -0400
-+++ source/passdb/passdb.c	2013-01-14 20:18:18.533076949 -0500
-@@ -143,7 +143,9 @@
- 	/* Basic properties based upon the Unix account information */
- 	
- 	pdb_set_username(user, pwd->pw_name, PDB_SET);
-+#if !defined(ANDROID)
- 	pdb_set_fullname(user, pwd->pw_gecos, PDB_SET);
-+#endif
- 	pdb_set_domain (user, get_global_sam_name(), PDB_DEFAULT);
- #if 0
- 	/* This can lead to a primary group of S-1-22-2-XX which 
-diff -ruN source/passdb/pdb_interface.c source/passdb/pdb_interface.c
---- source/passdb/pdb_interface.c	2009-09-30 08:21:56.000000000 -0400
-+++ source/passdb/pdb_interface.c	2013-01-14 20:14:16.393077102 -0500
-@@ -1380,8 +1380,8 @@
- 	}
- 
- 	/* Primary group members */
--	setpwent();
--	while ((pwd = getpwent()) != NULL) {
-+	sys_setpwent();
-+	while ((pwd = sys_getpwent()) != NULL) {
- 		if (pwd->pw_gid == gid) {
- 			if (!add_uid_to_array_unique(mem_ctx, pwd->pw_uid,
- 						pp_uids, p_num)) {
-@@ -1389,7 +1389,7 @@
- 			}
- 		}
- 	}
--	endpwent();
-+	sys_endpwent();
- 
- 	/* Secondary group members */
- 	for (gr = grp->gr_mem; (*gr != NULL) && ((*gr)[0] != '\0'); gr += 1) {
diff --git a/tools/depends/target/sqlite3/Makefile b/tools/depends/target/sqlite3/Makefile
deleted file mode 100644
index 28725e0..0000000
--- a/tools/depends/target/sqlite3/Makefile
+++ /dev/null
@@ -1,48 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=sqlite
-VERSION=3080600
-SOURCE=$(LIBNAME)-autoconf-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-export CXXFLAGS+=-DSQLITE_ENABLE_COLUMN_METADATA=1
-export CFLAGS+=-DSQLITE_TEMP_STORE=3
-export TCLLIBDIR=/dev/null
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
-          ./configure --prefix=$(PREFIX) --disable-shared \
-  --enable-threadsafe --disable-tcl --disable-readline \
-
-LIBDYLIB=$(PLATFORM)/.libs/lib$(LIBNAME)3.a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-ifeq ($(OS),android)
-	cd $(PLATFORM); patch -p0 < ../fix-32bits-on-64bits.patch
-endif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/sqlite3/fix-32bits-on-64bits.patch b/tools/depends/target/sqlite3/fix-32bits-on-64bits.patch
deleted file mode 100644
index cf4d75b..0000000
--- a/tools/depends/target/sqlite3/fix-32bits-on-64bits.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- sqlite3.c.orig	2014-11-19 13:14:16.633721369 +0100
-+++ sqlite3.c	2014-11-19 13:23:23.733711563 +0100
-@@ -25301,7 +25301,7 @@
- #if OS_VXWORKS
-   struct vxworksFileId *pId;  /* Unique file ID for vxworks. */
- #else
--  ino_t ino;                  /* Inode number */
-+  unsigned long long ino;                  /* Inode number */
- #endif
- };
- 
diff --git a/tools/depends/target/taglib/Makefile b/tools/depends/target/taglib/Makefile
deleted file mode 100644
index 8a33358..0000000
--- a/tools/depends/target/taglib/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-LIBNAME=taglib
-VERSION=1.8
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(LIBNAME)-$(VERSION).tar.gz
-
-LIBDYLIB=$(PLATFORM)/build/$(LIBNAME)/libtag.a
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); rm -rf build; mkdir -p build
-	cd $(PLATFORM)/build; $(CMAKE) -DCMAKE_LIBRARY_PATH=$(TOOLCHAIN)/lib/$(HOST) -DENABLE_STATIC=1 ..
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)/build
-	touch $@
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM)/build install
-	rm -f $(PREFIX)/lib/libtag_c.*
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM)/build clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/tiff/Makefile b/tools/depends/target/tiff/Makefile
deleted file mode 100644
index be905ca..0000000
--- a/tools/depends/target/tiff/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=tiff
-VERSION=3.9.7
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) config/; \
-          ./configure --prefix=$(PREFIX) --disable-shared
-
-LIBDYLIB=$(PLATFORM)/libtiff/.libs/lib$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/tinyxml/Makefile b/tools/depends/target/tinyxml/Makefile
deleted file mode 100644
index 70a7e4e..0000000
--- a/tools/depends/target/tinyxml/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=tinyxml
-VERSION=2.6.2_2
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) --disable-shared
-
-
-LIBDYLIB=$(PLATFORM)/src/.libs/libtinyxml.a
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); $(AUTORECONF) -vif
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -j 1 -C $(PLATFORM)/src
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM)/src install
-	touch $@
-
-clean:
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-
diff --git a/tools/depends/target/xbmc-audioencoder-addons/Makefile b/tools/depends/target/xbmc-audioencoder-addons/Makefile
deleted file mode 100644
index 9153a24..0000000
--- a/tools/depends/target/xbmc-audioencoder-addons/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
--include ../../Makefile.include
-
-ADDONS = "audioencoder.flac audioencoder.lame audioencoder.vorbis audioencoder.wav"
-ifeq ($(PLATFORM),)
-  PLATFORM = native
-endif
-ifeq ($(CMAKE),)
-  CMAKE = cmake
-endif
-
-CMAKE_EXTRA =
-ifeq (darwin, $(findstring darwin, $(HOST)))
-  INSTALL_PREFIX = ../../../../../addons/
-  CMAKE_EXTRA = -DPACKAGE_ZIP=1 -DDEPENDS_PATH=$(PREFIX)
-else ifneq ($(PREFIX),)
-  INSTALL_PREFIX = $(PREFIX)
-  CMAKE_EXTRA = -DDEPENDS_PATH=$(PREFIX)
-endif
-
-all: .installed-$(PLATFORM)
-
-
-clean:
-	rm -f .installed-$(PLATFORM)
-
-distclean:
-	rm -rf $(PLATFORM) .installed-$(PLATFORM) native
-
-.installed-$(PLATFORM):
-ifeq ($(PREFIX),)
-	@echo
-	@echo "ERROR: please set PREFIX to the xbmc install path e.g. make PREFIX=/usr/local"
-	@exit 1
-endif
-	mkdir -p $(PLATFORM); \
-         cd $(PLATFORM); \
-         $(CMAKE) -DCMAKE_INSTALL_PREFIX=$(INSTALL_PREFIX) -DCMAKE_PREFIX_PATH=$(PREFIX) $(CMAKE_EXTRA) \
-         -DADDONS_TO_BUILD=$(ADDONS) ../../../../../project/cmake/addons/ ;\
-         $(MAKE);
-	touch $@
diff --git a/tools/depends/target/xbmc-pvr-addons/Makefile b/tools/depends/target/xbmc-pvr-addons/Makefile
deleted file mode 100644
index 987fc0e..0000000
--- a/tools/depends/target/xbmc-pvr-addons/Makefile
+++ /dev/null
@@ -1,69 +0,0 @@
-include ../../Makefile.include
-#DEPS= ../../Makefile.include Makefile
-
-LIBNAME=xbmc-pvr-addons
-VERSION=9f63d1bc39ffcb28f8aea580ea0669211e4d16e5
-GIT_DIR=$(TARBALLS_LOCATION)/$(LIBNAME).git
-BASE_URL=git://github.com/opdenkamp/$(LIBNAME).git
-DYLIB=$(PLATFORM)/addons/pvr.demo/.libs/libpvrdemo-addon.so
-XBMC_ADDONSDIR=../../../../addons
-
-#tell git to use the addons repo rather than xbmc's repo
-export GIT_DIR
-export GIT_WORK_TREE=$(PLATFORM)
-
-#mysql_config is remarkably useless. Help configure find the right one.
-export MYSQL_CONFIG=$(PREFIX)/bin/mysql_config
-
-# configuration settings
-VERSION.TXT := $(XBMCROOT)/version.txt
-APP_NAME=$(shell awk '/APP_NAME/ {print tolower($$2)}' $(VERSION.TXT))
-CONFIGURE=./configure --prefix=$(PREFIX) --libdir=$(PREFIX)/lib/$(APP_NAME)/addons --datadir=$(PREFIX)/share/$(APP_NAME)/addons --enable-addons-with-dependencies
-
-all: .installed-$(PLATFORM)
-
-$(GIT_DIR)/HEAD:
-	cd $(TARBALLS_LOCATION); git clone --bare $(BASE_URL)
-
-$(GIT_DIR)/current/$(VERSION): $(GIT_DIR)/HEAD $(DEPS)
-	git rev-list -1 $(VERSION) >/dev/null || git fetch origin "+refs/heads/*:refs/remotes/origin/*"
-	git rev-list -1 $(VERSION) >/dev/null
-	rm -rf $(GIT_DIR)/current; mkdir -p $(GIT_DIR)/current
-	touch $@
-
-$(PLATFORM)/bootstrap: $(GIT_DIR)/current/$(VERSION)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	git checkout $(VERSION) -- .
-
-$(PLATFORM)/configure: $(PLATFORM)/bootstrap
-	cd $(PLATFORM); ./bootstrap
-
-$(PLATFORM)/Makefile: $(PLATFORM)/configure
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(DYLIB): $(PLATFORM)/Makefile
-	make -C $(PLATFORM)
-	touch $@
-
-.installed-$(PLATFORM): $(DYLIB)
-ifeq (darwin, $(findstring darwin, $(HOST)))
-	for ADDON in `find $(PLATFORM)/addons -type d -name "pvr.*"`; do \
-	  ADDON=`basename $$ADDON` ; \
-	  mkdir -p $(XBMC_ADDONSDIR)/$$ADDON ; \
-	  cp -PRf $(PLATFORM)/addons/$$ADDON/addon/* $(XBMC_ADDONSDIR)/$$ADDON ; \
-	  cp -Pf $(PLATFORM)/addons/$$ADDON/*.pvr $(XBMC_ADDONSDIR)/$$ADDON ; \
-	  install_name_tool -id "$$ADDON" `find "$(XBMC_ADDONSDIR)/$$ADDON" -type f -name "*.pvr"` ; \
-	done
-else
-	$(MAKE) -C $(PLATFORM) install
-endif
-	touch $@
-
-clean:
-	-make -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
-	rm -rf $(GIT_DIR)/current
-
diff --git a/tools/depends/target/xbmc/Makefile b/tools/depends/target/xbmc/Makefile
deleted file mode 100644
index 9b02639..0000000
--- a/tools/depends/target/xbmc/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
--include ../../Makefile.include
-
-VERSION.TXT := $(XBMCROOT)/version.txt
-APP_NAME=$(shell awk '/APP_NAME/ {print tolower($$2)}' $(VERSION.TXT))
-
-SOURCE=../../../../
-
-export CXXFLAGS+=-O3
-export CFLAGS+=-O3
-
-# configuration settings
-CONFIGURE = cp -f $(CONFIG_SUB) $(CONFIG_GUESS) build-aux/ ;\
-  ./configure --prefix=$(PREFIX) $(DEBUG)
-
-ifeq ($(OS),android)
-CONFIGURE += --enable-codec=libstagefright,amcodec
-endif
-
-ifeq ($(Configuration),Release)
-DEBUG = --enable-debug=no
-endif
-
-CONFIGURE += $(CONFIG_EXTRA)
-
-all: $(SOURCE)/lib$(APP_NAME).so
-
-release: DEBUG=--enable-debug=no
-release: $(SOURCE)/lib$(APP_NAME).so
-
-debug: DEBUG=--enable-debug=yes
-debug: $(SOURCE)/lib$(APP_NAME).so
-
-$(SOURCE)/lib$(APP_NAME).so:
-	cd $(SOURCE); BOOTSTRAP_FROM_DEPENDS=yes ./bootstrap
-	cd $(SOURCE); echo $(CONFIGURE)
-
-../../Makefile.include:
-	$(error Please run configure)
-
-clean:
-	cd $(SOURCE); $(MAKE) clean
-
-distclean:
-	cd $(SOURCE); $(MAKE) clean
diff --git a/tools/depends/target/yajl/Makefile b/tools/depends/target/yajl/Makefile
deleted file mode 100644
index caf8784..0000000
--- a/tools/depends/target/yajl/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile static.patch
-
-# lib name, version
-LIBNAME=yajl
-VERSION=2.0.1
-SOURCE=lloyd-$(LIBNAME)-f4b2b1a
-ARCHIVE=$(LIBNAME)-$(VERSION).tar.gz
-# configuration settings
-LIBDYLIB=$(PLATFORM)/build/$(LIBNAME)-$(VERSION)/lib/libyajl.a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	sed -ie "s|ADD_CUSTOM_TARGET|#ADD_CUSTOM_TARGET|g" "$(PLATFORM)/CMakeLists.txt"
-	sed -ie "s|./run_tests.sh|#./run_tests.sh|g" "$(PLATFORM)/CMakeLists.txt"
-	sed -ie "s|WORKING_DIRECTORY|#WORKING_DIRECTORY|g" "$(PLATFORM)/CMakeLists.txt"
-	sed -ie "s|ADD_SUBDIRECTORY(reformatter)|#ADD_SUBDIRECTORY(reformatter)|g" "$(PLATFORM)/CMakeLists.txt"
-	cd $(PLATFORM); patch -p0 < ../static.patch
-	cd $(PLATFORM); patch -p0 < ../shared.patch
-	cd $(PLATFORM); rm -rf build; mkdir -p build
-	cd $(PLATFORM)/build; $(CMAKE) ..
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)/build
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM)/build install
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM)/build clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/yajl/shared.patch b/tools/depends/target/yajl/shared.patch
deleted file mode 100644
index 13ea0c7..0000000
--- a/tools/depends/target/yajl/shared.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- src/CMakeLists.txt.orig	2012-06-22 21:09:34.000000000 +0200
-+++ src/CMakeLists.txt	2012-06-22 21:11:49.000000000 +0200
-@@ -40,6 +40,8 @@
- 
- TARGET_LINK_LIBRARIES(yajl_s m) 
- 
-+TARGET_LINK_LIBRARIES(yajl m) 
-+
- #### setup shared library version number
- SET_TARGET_PROPERTIES(yajl PROPERTIES
-                       DEFINE_SYMBOL YAJL_SHARED
-@@ -79,7 +79,7 @@
- IF(NOT WIN32)
-   # at build time you may specify the cmake variable LIB_SUFFIX to handle
-   # 64-bit systems which use 'lib64'
--  INSTALL(TARGETS yajl LIBRARY DESTINATION lib${LIB_SUFFIX})
-+#  INSTALL(TARGETS yajl LIBRARY DESTINATION lib${LIB_SUFFIX})
-   INSTALL(TARGETS yajl_s ARCHIVE DESTINATION lib${LIB_SUFFIX})
-   INSTALL(FILES ${PUB_HDRS} DESTINATION include/yajl)
-   INSTALL(FILES ${incDir}/yajl_version.h DESTINATION include/yajl)
diff --git a/tools/depends/target/yajl/static.patch b/tools/depends/target/yajl/static.patch
deleted file mode 100644
index ca1a943..0000000
--- a/tools/depends/target/yajl/static.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- src/CMakeLists.txt.orig	2011-04-28 04:48:41.000000000 +0200
-+++ src/CMakeLists.txt	2012-06-22 21:07:59.000000000 +0200
-@@ -38,12 +38,16 @@
- 
- ADD_LIBRARY(yajl SHARED ${SRCS} ${HDRS} ${PUB_HDRS})
- 
-+TARGET_LINK_LIBRARIES(yajl_s m) 
-+
- #### setup shared library version number
- SET_TARGET_PROPERTIES(yajl PROPERTIES
-                       DEFINE_SYMBOL YAJL_SHARED
-                       SOVERSION ${YAJL_MAJOR}
-                       VERSION ${YAJL_MAJOR}.${YAJL_MINOR}.${YAJL_MICRO})
- 
-+SET_TARGET_PROPERTIES(yajl_s PROPERTIES OUTPUT_NAME yajl) 
-+
- #### ensure a .dylib has correct absolute installation paths upon installation
- IF(APPLE)
-   MESSAGE("INSTALL_NAME_DIR: ${CMAKE_INSTALL_PREFIX}/lib")
diff --git a/tools/depends/target/zlib/Makefile b/tools/depends/target/zlib/Makefile
deleted file mode 100644
index 551301c..0000000
--- a/tools/depends/target/zlib/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-include ../../Makefile.include
-DEPS= ../../Makefile.include Makefile
-
-# lib name, version
-LIBNAME=zlib
-VERSION=1.2.7
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-# configuration settings
-CONFIGURE= CC="$(CC)" CFLAGS="$(CFLAGS)" ./configure --prefix=$(PREFIX) --static
-
-LIBDYLIB=$(PLATFORM)/$(LIBNAME).a
-
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
-all: .installed-$(PLATFORM)
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-	cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(PLATFORM); patch -p0 < ../visibility.patch
-	cd $(PLATFORM); $(CONFIGURE)
-
-$(LIBDYLIB): $(PLATFORM)
-	$(MAKE) -C $(PLATFORM)
-
-.installed-$(PLATFORM): $(LIBDYLIB)
-	$(MAKE) -C $(PLATFORM) install
-	touch $(LIBDYLIB)
-	touch $@
-
-clean:
-	$(MAKE) -C $(PLATFORM) clean
-	rm -f .installed-$(PLATFORM)
-
-distclean::
-	rm -rf $(PLATFORM) .installed-$(PLATFORM)
diff --git a/tools/depends/target/zlib/visibility.patch b/tools/depends/target/zlib/visibility.patch
deleted file mode 100644
index af49fbf..0000000
--- a/tools/depends/target/zlib/visibility.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- zconf.h.in	2013-01-23 21:22:22.512584179 -0500
-+++ zconf.h.in	2013-01-23 21:21:56.312584196 -0500
-@@ -348,7 +348,11 @@
- #endif
- 
- #ifndef ZEXTERN
--#  define ZEXTERN extern
-+#  ifdef HAVE_HIDDEN
-+#    define ZEXTERN extern __attribute__((visibility ("default")))
-+#  else
-+#    define ZEXTERN extern
-+#  endif
- #endif
- #ifndef ZEXPORT
- #  define ZEXPORT
diff --git a/tools/rbp/depends/Makefile b/tools/rbp/depends/Makefile
deleted file mode 100644
index 12e7260..0000000
--- a/tools/rbp/depends/Makefile
+++ /dev/null
@@ -1,37 +0,0 @@
-include ../Makefile.include
-
-ifeq ($(USE_BUILDROOT),1)
-	BUILDTOOLS = 
-	SUBDIRS = ffmpeg xbmc
-else
-	BUILDTOOLS = help2man autoconf automake libtool pkg-config yasm cmake patchelf
-	SUBDIRS = liblzo2 tiff libnfs jasper libplist libshairplay tinyxml ffmpeg xbmc
-endif
-
-IMAGENAME = xbmc-rbp-`date +'%y%m%d'`
-
-.PHONY: buildtools subdirs
-
-all: buildtools subdirs
-
-buildtools:
-	for d in $(BUILDTOOLS); do $(MAKE) -C $$d; done
-
-subdirs:
-	for d in $(SUBDIRS); do if test -f "$$d/.installed"; then :; else $(MAKE) -C $$d || exit 1; fi; done
-
-clean:
-	for d in $(BUILDTOOLS); do $(MAKE) -C $$d clean; done
-	for d in $(SUBDIRS); do $(MAKE) -C $$d clean; done
-
-distclean::
-	for d in $(BUILDTOOLS); do $(MAKE) -C $$d distclean; done
-	for d in $(SUBDIRS); do $(MAKE) -C $$d distclean; done
-	rm -rf $(XBMCPREFIX)
-
-image:
-	make -C $(BUILDROOT) tarroot IMAGE=$(CURDIR)/$(IMAGENAME) TAR_COMPRESSOR=
-	echo "S111xbmc S110rc.local" | cat $(TARGETFS)/etc/init.d/rc.deps - > $(CURDIR)/packaging/etc/init.d/rc.deps
-	cd packaging; tar -uf $(CURDIR)/$(IMAGENAME).tar *
-	tar -uf $(CURDIR)/$(IMAGENAME).tar $(XBMCPREFIX) 
-	gzip $(IMAGENAME).tar
diff --git a/tools/rbp/depends/autoconf/.gitignore b/tools/rbp/depends/autoconf/.gitignore
deleted file mode 100644
index e832e48..0000000
--- a/tools/rbp/depends/autoconf/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-autoconf-2.63
diff --git a/tools/rbp/depends/autoconf/Makefile b/tools/rbp/depends/autoconf/Makefile
deleted file mode 100644
index 2a5ca9e..0000000
--- a/tools/rbp/depends/autoconf/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-
-# lib name, version
-LIBNAME=autoconf
-VERSION=2.63
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-export PREFIX=$(XBMCPREFIX)
-export PATH:=$(PREFIX)/bin:$(PATH)
-CONFIGURE=./configure --prefix=$(PREFIX)
-
-LIBDYLIB=$(SOURCE)/bin/autoconf
-
-CLEAN_FILES=$(ARCHIVE) $(SOURCE)
-
-all: $(LIBDYLIB) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	-rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(SOURCE) > .gitignore
-	cd $(SOURCE); $(CONFIGURE)
-
-$(LIBDYLIB): $(SOURCE)
-	make -j $(JOBS) -C $(SOURCE)
-
-.installed:
-	make -C $(SOURCE) install
-	touch $@
-
-clean:
-	make -C $(SOURCE) clean
-	rm -f .installed
-
-distclean::
-	rm -rf $(SOURCE) .installed
diff --git a/tools/rbp/depends/automake/.gitignore b/tools/rbp/depends/automake/.gitignore
deleted file mode 100644
index 409d7e1..0000000
--- a/tools/rbp/depends/automake/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-automake-1.10.3
diff --git a/tools/rbp/depends/automake/Makefile b/tools/rbp/depends/automake/Makefile
deleted file mode 100644
index 38c5d64..0000000
--- a/tools/rbp/depends/automake/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-
-# lib name, version
-LIBNAME=automake
-VERSION=1.10.3
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-export PREFIX=$(XBMCPREFIX)
-export PATH:=$(PREFIX)/bin:$(PATH)
-CONFIGURE=./configure --prefix=$(PREFIX)
-
-LIBDYLIB=$(SOURCE)/bin/automake
-
-CLEAN_FILES=$(ARCHIVE) $(SOURCE)
-
-all: $(LIBDYLIB) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	-rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(SOURCE) > .gitignore
-	cd $(SOURCE); $(CONFIGURE)
-
-$(LIBDYLIB): $(SOURCE)
-	make -j $(JOBS) -C $(SOURCE)
-
-.installed:
-	make -C $(SOURCE) install
-	touch $@
-
-clean:
-	make -C $(SOURCE) clean
-	rm -f .installed
-
-distclean::
-	rm -rf $(SOURCE) .installed
diff --git a/tools/rbp/depends/cmake/.gitignore b/tools/rbp/depends/cmake/.gitignore
deleted file mode 100644
index 5acc817..0000000
--- a/tools/rbp/depends/cmake/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-cmake-2.8.4
diff --git a/tools/rbp/depends/cmake/Makefile b/tools/rbp/depends/cmake/Makefile
deleted file mode 100644
index a081187..0000000
--- a/tools/rbp/depends/cmake/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-
-APPNAME=cmake
-VERSION=2.8.4
-SOURCE=$(APPNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-PREFIX:=$(XBMCPREFIX)
-export PATH:=$(PREFIX)/bin:$(PATH)
-CONFIGURE=./bootstrap --prefix=$(PREFIX)
-
-APP=$(SOURCE)/$(APPNAME)
-
-CLEAN_FILES=$(ARCHIVE) $(SOURCE)
-
-all: $(APP) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	-rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(SOURCE) > .gitignore
-	cd $(SOURCE); $(CONFIGURE)
-
-$(APP): $(SOURCE)
-	make -j $(JOBS) -C $(SOURCE)
-
-.installed:
-	make -C $(SOURCE) install
-	touch $@
-
-clean:
-	make -C $(SOURCE) clean
-	rm -f .installed
-
-distclean::
-	rm -rf $(SOURCE) .installed
-
diff --git a/tools/rbp/depends/depends.mk b/tools/rbp/depends/depends.mk
deleted file mode 100644
index d805001..0000000
--- a/tools/rbp/depends/depends.mk
+++ /dev/null
@@ -1,55 +0,0 @@
-ifeq ($(USE_BUILDROOT),1)
-	export CFLAGS=-pipe -O3 -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -mabi=aapcs-linux -Wno-psabi -Wa,-mno-warn-deprecated -Wno-deprecated-declarations
-	export HOST=arm-unknown-linux-gnueabi
-	export BUILD=i686-linux
-	export PREFIX=$(XBMCPREFIX)
-	export SYSROOT=$(BUILDROOT)/output/host/usr/arm-unknown-linux-gnueabi/sysroot
-	export CFLAGS+=-isystem$(SYSROOT)/usr/include -isystem$(SYSROOT)/opt/vc/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads -isystem$(PREFIX)/include -isystem$(PREFIX)/usr/include/mysql --sysroot=$(SYSROOT) -isystem$(SDKSTAGE)/opt/vc/include/interface/vmcs_host/linux/
-	export CXXFLAGS=$(CFLAGS) --sysroot=$(SYSROOT)
-	export CPPFLAGS=$(CFLAGS) --sysroot=$(SYSROOT)
-	export LDFLAGS=-L$(SYSROOT)/opt/vc/lib -L$(XBMCPREFIX)/lib
-	export LD=$(TOOLCHAIN)/bin/$(HOST)-ld 
-	export CC=$(TOOLCHAIN)/bin/$(HOST)-gcc 
-	export CXX=$(TOOLCHAIN)/bin/$(HOST)-g++ 
-	export OBJDUMP=$(TOOLCHAIN)/bin/$(HOST)-objdump
-	export RANLIB=$(TOOLCHAIN)/bin/$(HOST)-ranlib
-	export STRIP=$(TOOLCHAIN)/bin/$(HOST)-strip
-	export AR=$(TOOLCHAIN)/bin/$(HOST)-ar
-	export CXXCPP=$(CXX) -E
-	export PKG_CONFIG_PATH=$(PREFIX)/lib/pkgconfig
-	export PYTHON_VERSION=2.7
-	export PATH:=$(PREFIX)/bin:$(BUILDROOT)/output/host/usr/bin:$(PATH)
-	export NATIVE_ROOT=/usr
-	export PYTHON_LDFLAGS=-L$(SDKSTAGE)/usr/lib -lpython$(PYTHON_VERSION) -lpthread -ldl -lutil -lm
-else
-	export CFLAGS=-pipe -O3 -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=softfp -mfpu=vfp -mabi=aapcs-linux -Wno-psabi -Wa,-mno-warn-deprecated -Wno-deprecated-declarations
-	export HOST=arm-bcm2708-linux-gnueabi
-	export BUILD=i686-linux
-	export PREFIX=${XBMCPREFIX}
-	export TARGETFS
-	export SYSROOT=/usr/local/bcm-gcc/arm-bcm2708-linux-gnueabi/sys-root
-	export RLINK_PATH=-Wl,-rpath-link,${SYSROOT}/lib -Wl,-rpath-link,${TARGETFS}/lib -Wl,-rpath-link,${TARGETFS}/usr/lib -Wl,-rpath-link,${TARGETFS}/opt/vc/
-	export CFLAGS+=-isystem${XBMCPREFIX}/include -isystem${SDKSTAGE}/usr/include -isystem${SDKSTAGE}/opt/vc/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads -isystem${SDKSTAGE}/opt/vc -isystem$(SDKSTAGE)/opt/vc/include/interface/vmcs_host/linux/
-	export CFLAGS+=-L${XBMCPREFIX}/lib -L${SYSROOT}/lib -L${TARGETFS}/lib -L${TARGETFS}/usr/lib -L${TARGETFS}/opt/vc/lib ${RLINK_PATH}
-	export CXXFLAGS=${CFLAGS}
-	export CPPFLAGS=${CFLAGS}
-	export LDFLAGS=${RLINK_PATH} -L${TARGETFS}/lib -L${TARGETFS}/usr/lib -L${XBMCPREFIX}/lib
-	export LD=${TOOLCHAIN}/bin/${HOST}-ld
-	export AR=${TOOLCHAIN}/bin/${HOST}-ar
-	export CC=${TOOLCHAIN}/bin/${HOST}-gcc
-	export CXX=${TOOLCHAIN}/bin/${HOST}-g++
-	export CXXCPP=${CXX} -E
-	export RANLIB=${TOOLCHAIN}/bin/${HOST}-ranlib
-	export STRIP=${TOOLCHAIN}/bin/${HOST}-strip
-	export OBJDUMP=${TOOLCHAIN}/bin/${HOST}-objdump
-	#export ACLOCAL=aclocal -I ${SDKSTAGE}/usr/share/aclocal -I ${TARGETFS}/usr/share/aclocal-1.11
-	export PKG_CONFIG_LIBDIR=${PREFIX}/lib/pkgconfig:${SDKSTAGE}/lib/pkgconfig:${SDKSTAGE}/usr/lib/pkgconfig
-	export PKG_CONFIG_PATH=$(PREFIX)/bin/pkg-config
-	export PYTHON_VERSION=2.6
-	export PATH:=${PREFIX}/bin:$(PATH):${TOOLCHAIN}/bin
-	export NATIVE_ROOT=/usr
-	export PYTHON_LDFLAGS=-L$(SDKSTAGE)/usr/lib -lpython$(PYTHON_VERSION)
-endif
-export PYTHON_CPPFLAGS=-I$(SDKSTAGE)/usr/include/python$(PYTHON_VERSION)
-export PYTHON_SITE_PKG=$(SDKSTAGE)/usr/lib/python$(PYTHON_VERSION)/site-packages
-export PYTHON_NOVERSIONCHECK=no-check
diff --git a/tools/rbp/depends/ffmpeg/Makefile b/tools/rbp/depends/ffmpeg/Makefile
deleted file mode 100644
index 0c11cea..0000000
--- a/tools/rbp/depends/ffmpeg/Makefile
+++ /dev/null
@@ -1,61 +0,0 @@
-include ../../Makefile.include
-include ../depends.mk
-include ../../../depends/target/ffmpeg/FFMPEG-VERSION
-DEPS= ../../Makefile.include ../depends.mk ../../../depends/target/ffmpeg/FFMPEG-VERSION Makefile
-
-# set to "yes" to enable patching
-# we don't apply patches until we move to a vanilla ffmpeg tarball
-APPLY_PATCHES=no
-
-# configuration settings
-ffmpg_config = --sysroot=$(SYSROOT) --prefix=$(PREFIX) --extra-version="xbmc-$(VERSION)"
-ffmpg_config += --enable-cross-compile --target-os=linux --cpu=arm1176jzf-s --arch=arm
-ffmpg_config += --cc=$(CC) --cxx=$(CXX)
-ffmpg_config += --disable-devices --disable-doc
-ffmpg_config += --disable-ffplay --disable-ffmpeg
-ffmpg_config += --disable-ffprobe --disable-ffserver
-ffmpg_config += --enable-gpl --enable-runtime-cpudetect
-ffmpg_config += --enable-postproc --enable-pthreads
-ffmpg_config += --enable-muxer=spdif --enable-muxer=adts
-ffmpg_config += --enable-muxer=asf --enable-muxer=ipod
-ffmpg_config += --enable-encoder=ac3 --enable-encoder=aac
-ffmpg_config += --enable-encoder=wmav2 --enable-protocol=http
-ffmpg_config += --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis
-ffmpg_config += --disable-vaapi --disable-vdpau --disable-crystalhd
-#ffmpg_config += --enable-gnutls
-ifeq ($(Configuration), Release)
-  ffmpg_config += --disable-debug
-endif
-
-
-CLEAN_FILES=$(ARCHIVE) rpi
-
-all: .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) -Ls --create-dirs -f -o $(TARBALLS_LOCATION)/$(ARCHIVE) $(BASE_URL)/$(VERSION).tar.gz
-
-rpi: $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-	rm -rf rpi; mkdir -p rpi
-	cd rpi; $(ARCHIVE_TOOL) --strip-components=1 -xf $(TARBALLS_LOCATION)/$(ARCHIVE)
-	if test "$(APPLY_PATCHES)" = "yes"; then \
-	  cd rpi; \
-	  for PATCH in ../patches/*.patch ; do \
-	    patch -p1 < $${PATCH}; \
-	  done; \
-        fi
-	cd rpi;\
-	CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \
-	./configure $(ffmpg_config)
-
-.installed: rpi
-	$(MAKE) -j $(JOBS) -C rpi || exit 1
-	$(MAKE) -C rpi install && touch $@
-
-clean:
-	$(MAKE) -C rpi clean
-	rm -f .installed
-
-distclean::
-	rm -rf rpi .installed
-
diff --git a/tools/rbp/depends/help2man/.gitignore b/tools/rbp/depends/help2man/.gitignore
deleted file mode 100644
index eecdd7b..0000000
--- a/tools/rbp/depends/help2man/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-help2man-1.38.2
diff --git a/tools/rbp/depends/help2man/Makefile b/tools/rbp/depends/help2man/Makefile
deleted file mode 100644
index e8e53a5..0000000
--- a/tools/rbp/depends/help2man/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-include ../../Makefile.include
-
-# lib name, version
-LIBNAME=help2man
-VERSION=1.38.2
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-export PREFIX=$(XBMCPREFIX)
-CONFIGURE=./configure --prefix=$(PREFIX)
-
-CLEAN_FILES=$(ARCHIVE) $(SOURCE)
-
-LIBDYLIB=$(SOURCE)/help2man
-
-all: $(LIBDYLIB) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	-rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(SOURCE) > .gitignore
-	cd $(SOURCE); $(CONFIGURE)
-
-$(LIBDYLIB): $(SOURCE)
-	make -j $(JOBS) -C $(SOURCE)
-
-.installed:
-	make -C $(SOURCE) install
-	touch $@
-
-clean:
-	make -C $(SOURCE) clean
-	rm -f .installed
-
-distclean::
-	rm -rf $(SOURCE) .installed
diff --git a/tools/rbp/depends/jasper/.gitignore b/tools/rbp/depends/jasper/.gitignore
deleted file mode 100644
index 7030c19..0000000
--- a/tools/rbp/depends/jasper/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-jasper-1.900.1
diff --git a/tools/rbp/depends/jasper/Makefile b/tools/rbp/depends/jasper/Makefile
deleted file mode 100644
index 8898a56..0000000
--- a/tools/rbp/depends/jasper/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-include ../../Makefile.include
-include ../depends.mk
-
-# lib name, version
-LIBNAME=jasper
-VERSION=1.900.1
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).zip
-ARCHIVE_TOOL=unzip
-ARCHIVE_TOOL_FLAGS=
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) --host=$(HOST)
-
-LIBDYLIB=$(SOURCE)/$(LIBNAME)/.libs/$(LIBNAME).so
-
-CLEAN_FILES=$(ARCHIVE) $(SOURCE)
-
-all: $(LIBDYLIB) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(SOURCE) > .gitignore
-	cd $(SOURCE); $(CONFIGURE)
-
-$(LIBDYLIB): $(SOURCE)
-	make -j $(JOBS) -C $(SOURCE)
-
-.installed:
-	make -C $(SOURCE) install
-	touch $@
-
-clean:
-	make -C $(SOURCE) clean
-	rm -f .installed
-
-distclean::
-	rm -rf $(SOURCE) .installed
-
diff --git a/tools/rbp/depends/liblzo2/.gitignore b/tools/rbp/depends/liblzo2/.gitignore
deleted file mode 100644
index ef00f81..0000000
--- a/tools/rbp/depends/liblzo2/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-lzo-2.03
diff --git a/tools/rbp/depends/liblzo2/Makefile b/tools/rbp/depends/liblzo2/Makefile
deleted file mode 100644
index 7b62706..0000000
--- a/tools/rbp/depends/liblzo2/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-include ../depends.mk
-
-# lib name, version
-LIBNAME=lzo
-VERSION=2.03
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) --host=$(HOST)
-
-LIBDYLIB=$(SOURCE)/src/.libs/lib$(LIBNAME)2.so
-
-CLEAN_FILES=$(ARCHIVE) $(SOURCE)
-
-all: $(LIBDYLIB) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(SOURCE) > .gitignore
-	cd $(SOURCE); $(CONFIGURE)
-
-$(LIBDYLIB): $(SOURCE)
-	make -j $(JOBS) -C $(SOURCE)
-
-.installed:
-	make -C $(SOURCE) install
-	touch $@
-
-clean:
-	make -C $(SOURCE) clean
-	rm -f .installed
-
-distclean::
-	rm -rf $(SOURCE) .installed
-
diff --git a/tools/rbp/depends/libnfs/.gitignore b/tools/rbp/depends/libnfs/.gitignore
deleted file mode 100644
index 72f8fd7..0000000
--- a/tools/rbp/depends/libnfs/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-libnfs-0804e67
diff --git a/tools/rbp/depends/libnfs/Makefile b/tools/rbp/depends/libnfs/Makefile
deleted file mode 100644
index be37912..0000000
--- a/tools/rbp/depends/libnfs/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-include ../../Makefile.include
-include ../depends.mk
-
-# lib name, version
-LIBNAME=libnfs
-VERSION=1.6.0
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=./configure CFLAGS=-D_FILE_OFFSET_BITS=64 --prefix=$(PREFIX) --host=$(HOST)
-
-SO_NAME=$(SOURCE)/lib/libnfs.so
-
-CLEAN_FILES=$(ARCHIVE) $(SOURCE)
-
-all: $(SO_NAME) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	-rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(SOURCE) > .gitignore
-	cd $(SOURCE); ./bootstrap
-	cd $(SOURCE); patch -p0 < ../timeval.patch
-	cd $(SOURCE); $(CONFIGURE)
-
-$(SO_NAME): $(SOURCE)
-	make -C $(SOURCE)
-
-.installed:
-	make -C $(SOURCE) install
-	touch $@
-clean:
-	make -C $(SOURCE) clean
-	rm  -f .installed
-	rm -rf $(SOURCE)
-
-distclean::
-	rm -rf $(SOURCE) .installed
diff --git a/tools/rbp/depends/libnfs/timeval.patch b/tools/rbp/depends/libnfs/timeval.patch
deleted file mode 100644
index 7f453d6..0000000
--- a/tools/rbp/depends/libnfs/timeval.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- include/nfsc/libnfs.h.orig	2013-05-28 21:59:32.000000000 +0200
-+++ include/nfsc/libnfs.h	2013-05-28 21:59:56.000000000 +0200
-@@ -18,12 +18,7 @@
-  * This is the highlevel interface to access NFS resources using a posix-like interface
-  */
- #include <stdint.h>
--#if defined(ANDROID)
- #include <sys/time.h>
--#endif
--#if defined(AROS)
--#include <sys/time.h>
--#endif
- 
- struct nfs_context;
- struct rpc_context;
diff --git a/tools/rbp/depends/libplist/0001-dontbuildswig.patch b/tools/rbp/depends/libplist/0001-dontbuildswig.patch
deleted file mode 100644
index 7ff491d..0000000
--- a/tools/rbp/depends/libplist/0001-dontbuildswig.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/CMakeLists.txt	2011-08-18 21:45:33.000000000 +0200
-+++ b/CMakeLists.txt	2011-08-18 21:45:16.000000000 +0200
-@@ -36,7 +36,7 @@
- ADD_SUBDIRECTORY( test )
- 
- IF ( SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND )
--	ADD_SUBDIRECTORY( swig )
-+#	ADD_SUBDIRECTORY( swig )
- ENDIF ( SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND )
- 
- # add uninstall target
diff --git a/tools/rbp/depends/libplist/Makefile b/tools/rbp/depends/libplist/Makefile
deleted file mode 100644
index ebe049d..0000000
--- a/tools/rbp/depends/libplist/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-include ../../Makefile.include
-include ../depends.mk
-
-# lib name, version
-LIBNAME=libplist
-VERSION=1.6
-SOURCE=$(LIBNAME)-$(VERSION)
-FILENAME=v$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-LIBDYLIB=$(SOURCE)/build/src/$(LIBNAME).so
-
-all: $(LIBDYLIB) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(SOURCE) > .gitignore
-	cd $(SOURCE); patch -p1 < ../0001-dontbuildswig.patch
-	cd $(SOURCE); rm -rf build; mkdir -p build
-	cd $(SOURCE)/build; CC=$(CC) CXX=$(CXX) cmake        \
-	  -DCMAKE_C_FLAGS:STRING="$(CPPFLAGS) $(CFLAGS)"     \
-	  -DCMAKE_CXX_FLAGS:STRING="$(CPPFLAGS) $(CXXFLAGS)" \
-	  -DCMAKE_INCLUDE_PATH=$(PREFIX)/include             \
-	  -DCMAKE_LIBRARY_PATH=$(PREFIX)/lib                 \
-	  -DCMAKE_INSTALL_NAME_DIR=$(PREFIX)/lib             \
-	  -DCMAKE_INSTALL_PREFIX=$(PREFIX)                   \
-	  -DCMAKE_FIND_ROOT_PATH=$(platform_sdk_path) ..
-
-$(LIBDYLIB): $(SOURCE)
-	make -j 1 -C $(SOURCE)/build
-
-.installed:
-	make -C $(SOURCE)/build install
-	touch $@
-
-clean:
-	rm -rf $(SOURCE) .installed
-
-distclean::
-	rm -rf $(SOURCE) .installed
-
diff --git a/tools/rbp/depends/libshairplay/.gitignore b/tools/rbp/depends/libshairplay/.gitignore
deleted file mode 100644
index 249df50..0000000
--- a/tools/rbp/depends/libshairplay/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-shairplay-139d5ef
diff --git a/tools/rbp/depends/libshairplay/Makefile b/tools/rbp/depends/libshairplay/Makefile
deleted file mode 100644
index 2839466..0000000
--- a/tools/rbp/depends/libshairplay/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-include ../../Makefile.include
-include ../depends.mk
-
-# lib name, version
-LIBNAME=shairplay
-VERSION=139d5ef
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.bz2
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX)
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) --host=$(HOST)
-
-LIBDYLIB=$(SOURCE)/.libs/$(LIBNAME).so
-
-all: $(LIBDYLIB) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) http://ftp3.ie.freebsd.org/pub/xbmc/build-deps/sources/shairplay-139d5ef.tar.bz2 #$(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(SOURCE) > .gitignore
-	#cd $(SOURCE); patch -p0 < ../011_fix_ipv4_fallback.patch
-	cd $(SOURCE); autoreconf -vif
-	cd $(SOURCE); $(CONFIGURE)
-
-$(LIBDYLIB): $(SOURCE)
-	make -j 1 -C $(SOURCE)
-
-.installed:
-	make -C $(SOURCE) install
-	touch $@
-
-clean:
-	rm -rf $(SOURCE) .installed
-
-distclean::
-	rm -rf $(SOURCE) .installed
diff --git a/tools/rbp/depends/libtool/.gitignore b/tools/rbp/depends/libtool/.gitignore
deleted file mode 100644
index 717e6ef..0000000
--- a/tools/rbp/depends/libtool/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-libtool-2.2.6
diff --git a/tools/rbp/depends/libtool/Makefile b/tools/rbp/depends/libtool/Makefile
deleted file mode 100644
index b6edefe..0000000
--- a/tools/rbp/depends/libtool/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-
-# lib name, version
-LIBNAME=libtool
-VERSION=2.2.6
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE)a.tar.gz
-
-# configuration settings
-export PREFIX=$(XBMCPREFIX)
-export PATH:=$(PREFIX)/bin:$(PATH)
-CONFIGURE=./configure --prefix=$(PREFIX)
-
-LIBDYLIB=$(SOURCE)/bin/libtool
-
-CLEAN_FILES=$(ARCHIVE) $(SOURCE)
-
-all: $(LIBDYLIB) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	-rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(SOURCE) > .gitignore
-	cd $(SOURCE); $(CONFIGURE)
-
-$(LIBDYLIB): $(SOURCE)
-	make -j $(JOBS) -C $(SOURCE)
-
-.installed:
-	make -C $(SOURCE) install
-	touch $@
-
-clean:
-	make -C $(SOURCE) clean
-	rm -f .installed
-
-distclean::
-	rm -rf $(SOURCE) .installed
diff --git a/tools/rbp/depends/patchelf/.gitignore b/tools/rbp/depends/patchelf/.gitignore
deleted file mode 100644
index 28b53ff..0000000
--- a/tools/rbp/depends/patchelf/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-patchelf-0.6pre25969
diff --git a/tools/rbp/depends/patchelf/Makefile b/tools/rbp/depends/patchelf/Makefile
deleted file mode 100644
index 7846462..0000000
--- a/tools/rbp/depends/patchelf/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-
-# lib name, version
-LIBNAME=patchelf
-VERSION=0.6pre25969
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-export PREFIX=$(XBMCPREFIX)
-export PATH:=$(PREFIX)/bin:$(PATH)
-CONFIGURE=./configure --prefix=$(PREFIX)
-
-LIBDYLIB=$(SOURCE)/src/patchelf
-
-CLEAN_FILES=$(ARCHIVE) $(SOURCE)
-
-all: $(LIBDYLIB) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	-rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(SOURCE) > .gitignore
-	cd $(SOURCE); $(CONFIGURE)
-
-$(LIBDYLIB): $(SOURCE)
-	make -j $(JOBS) -C $(SOURCE)
-
-.installed:
-	make -C $(SOURCE) install
-	touch $@
-
-clean:
-	make -C $(SOURCE) clean
-	rm -f .installed
-
-distclean::
-	rm -rf $(SOURCE) .installed
diff --git a/tools/rbp/depends/pkg-config/.gitignore b/tools/rbp/depends/pkg-config/.gitignore
deleted file mode 100644
index b6b0a86..0000000
--- a/tools/rbp/depends/pkg-config/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-pkg-config-0.23
diff --git a/tools/rbp/depends/pkg-config/Makefile b/tools/rbp/depends/pkg-config/Makefile
deleted file mode 100644
index 716e6e3..0000000
--- a/tools/rbp/depends/pkg-config/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-include ../../Makefile.include
-
-# lib name, version
-# lib name, version
-LIBNAME=pkg-config
-VERSION=0.23
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-PREFIX:=$(XBMCPREFIX)
-export PATH:=$(PREFIX)/bin:$(PATH)
-CONFIGURE=./configure --prefix=$(PREFIX) --enable-indirect-deps --with-pc-path=$(PREFIX)/lib/pkgconfig:$(PREFIX)/share/pkgconfig
-
-LIBDYLIB=$(SOURCE)/bin/pkg-config
-
-CLEAN_FILES=$(ARCHIVE) $(SOURCE)
-
-all: $(LIBDYLIB) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	-rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(SOURCE) > .gitignore
-	cd $(SOURCE); $(CONFIGURE)
-
-$(LIBDYLIB): $(SOURCE)
-	make -j $(JOBS) -C $(SOURCE)
-
-.installed:
-	make -C $(SOURCE) install
-	touch $@
-
-clean:
-	make -C $(SOURCE) clean
-	rm -f .installed
-
-distclean::
-	rm -rf $(SOURCE) .installed
diff --git a/tools/rbp/depends/tiff/.gitignore b/tools/rbp/depends/tiff/.gitignore
deleted file mode 100644
index 48e2237..0000000
--- a/tools/rbp/depends/tiff/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-tiff-3.8.2
diff --git a/tools/rbp/depends/tiff/Makefile b/tools/rbp/depends/tiff/Makefile
deleted file mode 100644
index e6539c3..0000000
--- a/tools/rbp/depends/tiff/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-include ../depends.mk
-
-# lib name, version
-LIBNAME=tiff
-VERSION=3.8.2
-SOURCE=$(LIBNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) --host=$(HOST)
-
-LIBDYLIB=$(SOURCE)/libtiff/.libs/lib$(LIBNAME).so
-
-CLEAN_FILES=$(ARCHIVE) $(SOURCE)
-
-all: $(LIBDYLIB) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(SOURCE) > .gitignore
-	cd $(SOURCE); $(CONFIGURE)
-
-$(LIBDYLIB): $(SOURCE)
-	make -j $(JOBS) -C $(SOURCE)
-
-.installed:
-	make -C $(SOURCE) install
-	touch $@
-
-clean:
-	make -C $(SOURCE) clean
-	rm -f .installed
-
-distclean::
-	rm -rf $(SOURCE) .installed
-
diff --git a/tools/rbp/depends/tinyxml/.gitignore b/tools/rbp/depends/tinyxml/.gitignore
deleted file mode 100644
index f2c5bb8..0000000
--- a/tools/rbp/depends/tinyxml/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-tinyxml
diff --git a/tools/rbp/depends/tinyxml/Makefile b/tools/rbp/depends/tinyxml/Makefile
deleted file mode 100644
index 98212e2..0000000
--- a/tools/rbp/depends/tinyxml/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
-include ../../Makefile.include
-include ../depends.mk
-
-# lib name, version
-LIBNAME=tinyxml
-VERSION=2.6.2
-SOURCE=$(LIBNAME)
-ARCHIVE=$(LIBNAME)_2_6_2.tar.gz
-BASE_URL=http://sourceforge.net/projects/tinyxml/files/tinyxml/$(VERSION)
-
-# configuration settings
-CONFIGURE=./configure --prefix=$(PREFIX) --host=$(HOST)
-
-LIBDYLIB=$(SOURCE)/.libs/lib$(LIBNAME).so
-
-CLEAN_FILES=$(ARCHIVE) $(SOURCE)
-
-all: $(LIBDYLIB) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	cd $(SOURCE); patch -p1 -i ../enforce-use-stl.patch
-	cd $(SOURCE); patch -p1 -i ../entity.patch
-	cd $(SOURCE); patch -p1 -i ../makefix.patch
-	cd $(SOURCE); sed -i -e '/^TINYXML_USE_STL/ s|=.*|=YES|' -e "s|^RELEASE_CFLAGS.*|& $(CXXFLAGS) -fPIC|" Makefile
-	echo $(SOURCE) > .gitignore
-
-$(LIBDYLIB): $(SOURCE)
-	make -j $(JOBS) -C $(SOURCE) CFLAGS="$(CFLAGS) -DTIXML_USE_STL" CXXFLAGS="$(CXXFLAGS) -DTIXML_USE_STL" LDFLAGS="$(LDFLAGS)" AR="$(AR)" RANLIB="$(RANLIB)" CC="$(CC)" CXX="$(CXX)" LD="$(LD)" LIBS="-ldl -lc -lstdc++"
-	cd $(SOURCE); $(CXX) -fPIC $(CXXFLAGS) $(LDFLAGS) -shared -o lib$(LIBNAME).so.$(VERSION) -Wl,-soname,lib$(LIBNAME).so.0 *.o 
-
-.installed:
-	install -m 0644 $(SOURCE)/tinyxml.h $(PREFIX)/include/
-	install -m 0644 $(SOURCE)/tinystr.h $(PREFIX)/include/
-	install -m 0755 $(SOURCE)/libtinyxml.so.$(VERSION) $(PREFIX)/lib
-	cd $(PREFIX)/lib; rm -f libtinyxml.so; ln -s libtinyxml.so.$(VERSION) libtinyxml.so
-	cd $(PREFIX)/lib; rm -f libtinyxml.so.0; ln -s libtinyxml.so.$(VERSION) libtinyxml.so.0
-	touch $@
-
-clean:
-	make -C $(SOURCE) clean
-	rm -f .installed
-
-distclean::
-	rm -rf $(SOURCE) .installed
diff --git a/tools/rbp/depends/tinyxml/disable_xmltest.patch b/tools/rbp/depends/tinyxml/disable_xmltest.patch
deleted file mode 100644
index abc9f6c..0000000
--- a/tools/rbp/depends/tinyxml/disable_xmltest.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/Makefile	2012-05-04 07:53:05.910023997 +0200
-+++ b/Makefile	2012-05-04 07:53:19.030023561 +0200
-@@ -81,7 +81,7 @@
- # Targets of the build
- #****************************************************************************
- 
--OUTPUT := xmltest
-+OUTPUT := xmltest
- 
- all: ${OUTPUT}
- 
-@@ -90,7 +90,7 @@
- # Source files
- #****************************************************************************
- 
--SRCS := tinyxml.cpp tinyxmlparser.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp
-+SRCS := tinyxml.cpp tinyxmlparser.cpp tinyxmlerror.cpp tinystr.cpp
- 
- # Add on the sources for libraries
- SRCS := ${SRCS}
diff --git a/tools/rbp/depends/tinyxml/enforce-use-stl.patch b/tools/rbp/depends/tinyxml/enforce-use-stl.patch
deleted file mode 100644
index f930ba9..0000000
--- a/tools/rbp/depends/tinyxml/enforce-use-stl.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Description: TinyXml is built with TIXML_USE_STL, so we have to
- enforce it when the library is used.
-Author: Felix Geyer <debfx-pkg at fobos.de>
-
-diff -Nur tinyxml-2.5.3/tinyxml.h tinyxml-2.5.3.patch/tinyxml.h
---- tinyxml-2.5.3/tinyxml.h	2007-05-07 00:41:23.000000000 +0200
-+++ tinyxml-2.5.3.patch/tinyxml.h	2009-07-08 22:32:03.000000000 +0200
-@@ -26,6 +26,10 @@
- #ifndef TINYXML_INCLUDED
- #define TINYXML_INCLUDED
- 
-+#ifndef TIXML_USE_STL
-+	#define TIXML_USE_STL
-+#endif
-+
- #ifdef _MSC_VER
- #pragma warning( push )
- #pragma warning( disable : 4530 )
diff --git a/tools/rbp/depends/tinyxml/entity.patch b/tools/rbp/depends/tinyxml/entity.patch
deleted file mode 100644
index 2ccbd70..0000000
--- a/tools/rbp/depends/tinyxml/entity.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-? entity.patch
-Index: tinyxml.cpp
-===================================================================
-RCS file: /cvsroot/tinyxml/tinyxml/tinyxml.cpp,v
-retrieving revision 1.105
-diff -u -r1.105 tinyxml.cpp
---- a/tinyxml.cpp	5 Jun 2010 19:06:57 -0000	1.105
-+++ b/tinyxml.cpp	19 Jul 2010 21:24:16 -0000
-@@ -57,30 +57,7 @@
- 	{
- 		unsigned char c = (unsigned char) str[i];
- 
--		if (    c == '&' 
--		     && i < ( (int)str.length() - 2 )
--			 && str[i+1] == '#'
--			 && str[i+2] == 'x' )
--		{
--			// Hexadecimal character reference.
--			// Pass through unchanged.
--			// &#xA9;	-- copyright symbol, for example.
--			//
--			// The -1 is a bug fix from Rob Laveaux. It keeps
--			// an overflow from happening if there is no ';'.
--			// There are actually 2 ways to exit this loop -
--			// while fails (error case) and break (semicolon found).
--			// However, there is no mechanism (currently) for
--			// this function to return an error.
--			while ( i<(int)str.length()-1 )
--			{
--				outString->append( str.c_str() + i, 1 );
--				++i;
--				if ( str[i] == ';' )
--					break;
--			}
--		}
--		else if ( c == '&' )
-+		if ( c == '&' )
- 		{
- 			outString->append( entity[0].str, entity[0].strLength );
- 			++i;
-Index: xmltest.cpp
-===================================================================
-RCS file: /cvsroot/tinyxml/tinyxml/xmltest.cpp,v
-retrieving revision 1.89
-diff -u -r1.89 xmltest.cpp
---- a/xmltest.cpp	5 Jun 2010 17:41:52 -0000	1.89
-+++ b/xmltest.cpp	19 Jul 2010 21:24:16 -0000
-@@ -1340,6 +1340,16 @@
- 		}*/
- 	}
- 
-+	#ifdef TIXML_USE_STL
-+	{
-+		TiXmlDocument xml;
-+		xml.Parse("<foo>foo&#xa+bar</foo>");
-+		std::string str;
-+		str << xml;
-+		XmlTest( "Entity escaping", "<foo>foo&#xa+bar</foo>", str.c_str() );
-+	}
-+	#endif
-+
- 	/*  1417717 experiment
- 	{
- 		TiXmlDocument xml;
diff --git a/tools/rbp/depends/tinyxml/makefix.patch b/tools/rbp/depends/tinyxml/makefix.patch
deleted file mode 100644
index fbc65ac..0000000
--- a/tools/rbp/depends/tinyxml/makefix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile	2012-05-04 08:45:03.326587176 +0200
-+++ b/Makefile	2012-05-04 08:45:10.073253616 +0200
-@@ -102,7 +102,7 @@
- #****************************************************************************
- 
- ${OUTPUT}: ${OBJS}
--	${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}
-+	${CXX} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}
- 
- #****************************************************************************
- # common rules
diff --git a/tools/rbp/depends/xbmc/Makefile b/tools/rbp/depends/xbmc/Makefile
deleted file mode 100644
index b0ba8d1..0000000
--- a/tools/rbp/depends/xbmc/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-include ../../Makefile.include
-include ../depends.mk
-
-SOURCE=../../../../
-
-ifeq ($(USE_BUILDROOT),1)
-	export PATH:=$(PREFIX)/bin:$(BUILDROOT)/output/host/usr/bin:$(SYSROOT)/usr/bin:$(PATH)
-	export PKG_CONFIG_PATH=$(PREFIX)/lib/pkgconfig
-endif
-
-CONFIGURE=./configure --prefix=$(PREFIX) --build=$(BUILD) --host=$(HOST) \
-	--enable-gles --disable-sdl --disable-x11 --disable-xrandr --disable-openmax \
-	--disable-optical-drive --disable-dvdcss --disable-joystick --disable-debug \
-	--disable-crystalhd --disable-vtbdecoder --disable-vaapi --disable-vdpau \
-	--disable-pulse --disable-projectm --with-platform=raspberry-pi --enable-optimizations \
-	--enable-libcec --enable-player=omxplayer
-
-all: configure
-
-clean:
-distclean:
-	cd $(SOURCE);
-
-configure:
-	cd $(SOURCE); ./bootstrap
-	cd $(SOURCE); $(CONFIGURE)
-	#cd $(SOURCE); make -j $(JOBS)
-	#cd $(SOURCE); make install
diff --git a/tools/rbp/depends/yasm/.gitignore b/tools/rbp/depends/yasm/.gitignore
deleted file mode 100644
index 065ab0d..0000000
--- a/tools/rbp/depends/yasm/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-yasm-1.1.0
diff --git a/tools/rbp/depends/yasm/Makefile b/tools/rbp/depends/yasm/Makefile
deleted file mode 100644
index 10026b1..0000000
--- a/tools/rbp/depends/yasm/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include ../../Makefile.include
-
-APPNAME=yasm
-VERSION=1.1.0
-SOURCE=$(APPNAME)-$(VERSION)
-ARCHIVE=$(SOURCE).tar.gz
-
-# configuration settings
-PREFIX:=$(XBMCPREFIX)
-export PATH:=$(PREFIX)/bin:$(PATH)
-CONFIGURE=./configure --prefix=$(PREFIX)
-
-APP=$(SOURCE)/$(APPNAME)
-
-CLEAN_FILES=$(ARCHIVE) $(SOURCE)
-
-all: $(APP) .installed
-
-$(TARBALLS_LOCATION)/$(ARCHIVE):
-	$(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
-
-$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
-	-rm -rf $(SOURCE)
-	$(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
-	echo $(SOURCE) > .gitignore
-	cd $(SOURCE); $(CONFIGURE)
-
-$(APP): $(SOURCE)
-	make -j $(JOBS) -C $(SOURCE)
-
-.installed:
-	make -C $(SOURCE) install
-	touch $@
-
-clean:
-	make -C $(SOURCE) clean
-	rm  .installed
-
-distclean::
-	rm -rf $(SOURCE) .installed
-
diff --git a/tools/rbp/setup-sdk.sh b/tools/rbp/setup-sdk.sh
deleted file mode 100755
index 70f2a36..0000000
--- a/tools/rbp/setup-sdk.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/bash
-
-SCRIPT_PATH=$(cd `dirname $0` && pwd)
-
-USE_BUILDROOT=1
-
-if [ "$USE_BUILDROOT" = "1" ]; then
-  BUILDROOT=${BUILDROOT:-"/opt/xbmc-bcm/buildroot"}
-  TARBALLS=${TARBALLS:-"/opt/xbmc-tarballs"}
-  XBMCPREFIX=${XBMCPREFIX:-"/opt/xbmc-bcm/xbmc-bin"}
-
-  SDKSTAGE=$BUILDROOT/output/staging
-  TARGETFS=$BUILDROOT/output/target
-  TOOLCHAIN=$BUILDROOT/output/host/usr/
-else
-  TARBALLS=/opt/xbmc-tarballs
-  SDKSTAGE=/opt/bcm-rootfs
-  XBMCPREFIX=/opt/xbmc-bcm/xbmc-bin
-  TARGETFS=/opt/bcm-rootfs
-  TOOLCHAIN=/usr/local/bcm-gcc
-  BUILDROOT=/opt/bcm-rootfs
-fi
-
-if [ -d $XBMCPREFIX ]
-then
-  [ -O $XBMCPREFIX ] || SUDO="sudo"
-else
-  [ -w $(dirname $XBMCPREFIX) ] || SUDO="sudo"
-fi
-
-$SUDO mkdir -p $XBMCPREFIX
-$SUDO chmod 777 $XBMCPREFIX
-mkdir -p $XBMCPREFIX/lib
-mkdir -p $XBMCPREFIX/include
-
-echo "SDKSTAGE=$SDKSTAGE"                                              >  $SCRIPT_PATH/Makefile.include
-echo "XBMCPREFIX=$XBMCPREFIX"                                          >> $SCRIPT_PATH/Makefile.include
-echo "TARGETFS=$TARGETFS"                                              >> $SCRIPT_PATH/Makefile.include
-echo "TOOLCHAIN=$TOOLCHAIN"                                            >> $SCRIPT_PATH/Makefile.include
-echo "BUILDROOT=$BUILDROOT"                                            >> $SCRIPT_PATH/Makefile.include
-echo "USE_BUILDROOT=$USE_BUILDROOT"                                    >> $SCRIPT_PATH/Makefile.include
-echo "BASE_URL=http://mirrors.xbmc.org/build-deps/darwin-libs"         >> $SCRIPT_PATH/Makefile.include
-echo "TARBALLS_LOCATION=$TARBALLS"                                     >> $SCRIPT_PATH/Makefile.include
-echo "RETRIEVE_TOOL=/usr/bin/curl"                                     >> $SCRIPT_PATH/Makefile.include
-echo "RETRIEVE_TOOL_FLAGS=-Ls --create-dirs --output \$(TARBALLS_LOCATION)/\$(ARCHIVE)" >> $SCRIPT_PATH/Makefile.include
-echo "ARCHIVE_TOOL=/bin/tar"                                           >> $SCRIPT_PATH/Makefile.include
-echo "ARCHIVE_TOOL_FLAGS=xf"                                           >> $SCRIPT_PATH/Makefile.include
-echo "JOBS=$((`grep -c processor /proc/cpuinfo -1`))"                  >> $SCRIPT_PATH/Makefile.include
diff --git a/tools/windows/CompileInfo.bat b/tools/windows/CompileInfo.bat
deleted file mode 100644
index a94664a..0000000
--- a/tools/windows/CompileInfo.bat
+++ /dev/null
@@ -1,31 +0,0 @@
- at ECHO OFF
-
-REM setup all paths
-SET cur_dir=%CD%
-SET base_dir=%cur_dir%\..\..
-SET builddeps_dir=%cur_dir%\..\..\project\BuildDependencies
-SET bin_dir=%builddeps_dir%\bin
-SET msys_bin_dir=%builddeps_dir%\msys\bin
-
-REM read the version values from version.txt
-FOR /f %%i IN ('%msys_bin_dir%\awk.exe "/APP_NAME/ {print $2}" %base_dir%\version.txt') DO SET app_name=%%i
-FOR /f %%i IN ('%msys_bin_dir%\awk.exe "/COMPANY_NAME/ {print $2}" %base_dir%\version.txt') DO SET company_name=%%i
-FOR /f %%i IN ('%msys_bin_dir%\awk.exe "/VERSION_MAJOR/ {print $2}" %base_dir%\version.txt') DO SET major=%%i
-FOR /f %%i IN ('%msys_bin_dir%\awk.exe "/VERSION_MINOR/ {print $2}" %base_dir%\version.txt') DO SET minor=%%i
-FOR /f %%i IN ('%msys_bin_dir%\awk.exe "/VERSION_TAG/ {print $2}" %base_dir%\version.txt') DO SET tag=%%i
-FOR /f %%i IN ('%msys_bin_dir%\awk.exe "/ADDON_API/ {print $2}" %base_dir%\version.txt') DO SET addon_api=%%i
-
-SET app_version=%major%.%minor%
-IF NOT [%tag%] == [] (
-  SET app_version=%app_version%-%tag%
-)
-
-REM XBMC_PC.rc.in requires a comma-separated version of addon_api
-SET separator=,
-CALL SET file_version=%%addon_api:.=%separator%%%%separator%0
-
-REM create the files with the proper version information
-"%msys_bin_dir%\sed.exe" -e s/@APP_NAME@/%app_name%/g -e s/@APP_VERSION_MAJOR@/%major%/g -e s/@APP_VERSION_MINOR@/%minor%/g -e s/@APP_VERSION_TAG@/%tag%/g "%base_dir%\xbmc\CompileInfo.cpp.in" > "%base_dir%\xbmc\CompileInfo.cpp"
-"%msys_bin_dir%\sed.exe" s/@APP_ADDON_API@/%addon_api%/g "%base_dir%\addons\xbmc.addon\addon.xml.in" > "%base_dir%\addons\xbmc.addon\addon.xml"
-"%msys_bin_dir%\sed.exe" -e s/@APP_NAME@/%app_name%/g -e s/@COMPANY_NAME@/%company_name%/g -e s/@APP_VERSION_MAJOR@/%major%/g -e s/@APP_VERSION_MINOR@/%minor%/g -e s/@APP_VERSION_TAG@/%tag%/g -e s/@FILE_VERSION@/%file_version%/g -e s/@APP_VERSION@/%app_version%/g "%base_dir%\xbmc\win32\XBMC_PC.rc.in" > "%base_dir%\xbmc\win32\XBMC_PC.rc"
-
diff --git a/tools/windows/JsonSchemaBuilder.bat b/tools/windows/JsonSchemaBuilder.bat
deleted file mode 100644
index 3e0b52e..0000000
--- a/tools/windows/JsonSchemaBuilder.bat
+++ /dev/null
@@ -1,20 +0,0 @@
- at ECHO OFF
-
-SET cur_dir=%CD%
-
-SET base_dir=%cur_dir%\..\..
-SET builddeps_dir=%cur_dir%\..\BuildDependencies
-SET bin_dir=%builddeps_dir%\bin
-SET msys_bin_dir=%builddeps_dir%\msys\bin
-SET jsonrpc_path=%base_dir%\xbmc\interfaces\json-rpc
-SET jsonrpc_schema_path=%jsonrpc_path%\schema
-SET jsonrpc_output=ServiceDescription.h
-
-SET xbmc_json_path=%base_Dir%\addons\xbmc.json
-SET xbmc_json_output=addon.xml
-
-SET /p version=<"%jsonrpc_schema_path%\version.txt"
-"%msys_bin_dir%\sed.exe" s/@jsonrpc_version@/%version%/g "%xbmc_json_path%\%xbmc_json_output%.in" > "%xbmc_json_path%\%xbmc_json_output%"
-
-"%bin_dir%\json-rpc\JsonSchemaBuilder.exe" "%jsonrpc_schema_path%\version.txt" "%jsonrpc_schema_path%\license.txt" "%jsonrpc_schema_path%\methods.json" "%jsonrpc_schema_path%\types.json" "%jsonrpc_schema_path%\notifications.json"
-MOVE /Y %jsonrpc_output% "%jsonrpc_path%\%jsonrpc_output%"
\ No newline at end of file
diff --git a/tools/windows/packaging/media/application.ico b/tools/windows/packaging/media/application.ico
deleted file mode 100644
index 078637f..0000000
Binary files a/tools/windows/packaging/media/application.ico and /dev/null differ
diff --git a/tools/windows/packaging/media/installer/header.bmp b/tools/windows/packaging/media/installer/header.bmp
deleted file mode 100644
index e0ac21f..0000000
Binary files a/tools/windows/packaging/media/installer/header.bmp and /dev/null differ
diff --git a/tools/windows/packaging/media/installer/welcome-left.bmp b/tools/windows/packaging/media/installer/welcome-left.bmp
deleted file mode 100644
index 121dbf9..0000000
Binary files a/tools/windows/packaging/media/installer/welcome-left.bmp and /dev/null differ
diff --git a/version.txt b/version.txt
index d431b55..ac49716 100644
--- a/version.txt
+++ b/version.txt
@@ -2,10 +2,10 @@ APP_NAME Kodi
 COMPANY_NAME XBMC-Foundation
 WEBSITE http://kodi.tv
 VERSION_MAJOR 14
-VERSION_MINOR 0
+VERSION_MINOR 2
 VERSION_TAG
-VERSION_CODE 140000
-ADDON_API 14.0.000
+VERSION_CODE 142000
+ADDON_API 14.2.000
 
 # Notes:
 # Change AC_INIT in configure.in
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
index 7ee0a34..5425322 100644
--- a/xbmc/Application.cpp
+++ b/xbmc/Application.cpp
@@ -248,6 +248,7 @@
 #ifdef HAS_LINUX_NETWORK
 #include "network/GUIDialogAccessPoints.h"
 #endif
+#include "dialogs/GUIDialogSimpleMenu.h"
 
 /* PVR related include Files */
 #include "pvr/PVRManager.h"
@@ -822,6 +823,10 @@ bool CApplication::Create()
     return false;
   }
 
+#ifdef TARGET_WINDOWS
+  CWIN32Util::SetThreadLocalLocale(true); // enable independent locale for each thread, see https://connect.microsoft.com/VisualStudio/feedback/details/794122
+#endif // TARGET_WINDOWS
+
   // start the AudioEngine
   if (!CAEFactory::StartEngine())
   {
@@ -3689,7 +3694,8 @@ PlayBackRet CApplication::PlayStack(const CFileItem& item, bool bRestart)
   {
     CStackDirectory dir;
     CFileItemList movieList;
-    dir.GetDirectory(item.GetURL(), movieList);
+    if (!dir.GetDirectory(item.GetURL(), movieList) || movieList.IsEmpty())
+      return PLAYBACK_FAIL;
 
     // first assume values passed to the stack
     int selectedFile = item.m_lStartPartNumber;
@@ -3756,7 +3762,8 @@ PlayBackRet CApplication::PlayStack(const CFileItem& item, bool bRestart)
 
     // calculate the total time of the stack
     CStackDirectory dir;
-    dir.GetDirectory(item.GetURL(), *m_currentStack);
+    if (!dir.GetDirectory(item.GetURL(), *m_currentStack) || m_currentStack->IsEmpty())
+      return PLAYBACK_FAIL;
     long totalTime = 0;
     for (int i = 0; i < m_currentStack->Size(); i++)
     {
@@ -3782,17 +3789,17 @@ PlayBackRet CApplication::PlayStack(const CFileItem& item, bool bRestart)
     {  // have our times now, so update the dB
       if (dbs.Open())
       {
-        if( !haveTimes )
+        if (!haveTimes && !times.empty())
           dbs.SetStackTimes(item.GetPath(), times);
 
-        if( item.m_lStartOffset == STARTOFFSET_RESUME )
+        if (item.m_lStartOffset == STARTOFFSET_RESUME)
         {
           // can only resume seek here, not dvdstate
           CBookmark bookmark;
           CStdString path = item.GetPath();
           if (item.HasProperty("original_listitem_url") && URIUtils::IsPlugin(item.GetProperty("original_listitem_url").asString()))
             path = item.GetProperty("original_listitem_url").asString();
-          if( dbs.GetResumeBookMark(path, bookmark) )
+          if (dbs.GetResumeBookMark(path, bookmark))
             seconds = bookmark.timeInSeconds;
           else
             seconds = 0.0f;
@@ -3881,6 +3888,14 @@ PlayBackRet CApplication::PlayFile(const CFileItem& item, bool bRestart)
     return PLAYBACK_FAIL;
   }
 
+  // a disc image might be Blu-Ray disc
+  if (item.IsBDFile() || item.IsDiscImage())
+  {
+    //check if we must show the simplified bd menu
+    if (!CGUIDialogSimpleMenu::ShowPlaySelection(const_cast<CFileItem&>(item)))
+      return PLAYBACK_CANCELED;
+  }
+
 #ifdef HAS_UPNP
   if (URIUtils::IsUPnP(item.GetPath()))
   {
@@ -4369,8 +4384,10 @@ void CApplication::UpdateFileState()
   if (m_progressTrackingItem->GetPath() != "" && m_progressTrackingItem->GetPath() != CurrentFile())
   {
     // Ignore for PVR channels, PerformChannelSwitch takes care of this.
-    // Also ignore playlists as correct video settings have already been saved in PlayFile() - we're causing off-by-1 errors here.
-    if (!m_progressTrackingItem->IsPVRChannel() && g_playlistPlayer.GetCurrentPlaylist() == PLAYLIST_NONE)
+    // Also ignore video playlists containing multiple items: video settings have already been saved in PlayFile()
+    // and we'd overwrite them with settings for the *previous* item.
+    int playlist = g_playlistPlayer.GetCurrentPlaylist();
+    if (!m_progressTrackingItem->IsPVRChannel() && !(playlist == PLAYLIST_VIDEO && g_playlistPlayer.GetPlaylist(playlist).size() > 1))
       SaveFileState();
 
     // Reset tracking item
diff --git a/xbmc/ApplicationMessenger.cpp b/xbmc/ApplicationMessenger.cpp
index 2f4d651..555857a 100644
--- a/xbmc/ApplicationMessenger.cpp
+++ b/xbmc/ApplicationMessenger.cpp
@@ -921,15 +921,15 @@ void CApplicationMessenger::MediaPlay(string filename)
   MediaPlay(item);
 }
 
-void CApplicationMessenger::MediaPlay(const CFileItem &item)
+void CApplicationMessenger::MediaPlay(const CFileItem &item, bool wait)
 {
   CFileItemList list;
   list.Add(CFileItemPtr(new CFileItem(item)));
 
-  MediaPlay(list);
+  MediaPlay(list, 0, wait);
 }
 
-void CApplicationMessenger::MediaPlay(const CFileItemList &list, int song)
+void CApplicationMessenger::MediaPlay(const CFileItemList &list, int song, bool wait)
 {
   ThreadMessage tMsg = {TMSG_MEDIA_PLAY};
   CFileItemList* listcopy = new CFileItemList();
@@ -937,7 +937,7 @@ void CApplicationMessenger::MediaPlay(const CFileItemList &list, int song)
   tMsg.lpVoid = (void*)listcopy;
   tMsg.param1 = song;
   tMsg.param2 = 1;
-  SendMessage(tMsg, true);
+  SendMessage(tMsg, wait);
 }
 
 void CApplicationMessenger::MediaPlay(int playlistid, int song /* = -1 */)
diff --git a/xbmc/ApplicationMessenger.h b/xbmc/ApplicationMessenger.h
index 543e065..6d2ff94 100644
--- a/xbmc/ApplicationMessenger.h
+++ b/xbmc/ApplicationMessenger.h
@@ -167,8 +167,8 @@ public:
 
 
   void MediaPlay(std::string filename);
-  void MediaPlay(const CFileItem &item);
-  void MediaPlay(const CFileItemList &item, int song = 0);
+  void MediaPlay(const CFileItem &item, bool wait = true);
+  void MediaPlay(const CFileItemList &item, int song = 0, bool wait = true);
   void MediaPlay(int playlistid, int song = -1);
   void MediaStop(bool bWait = true, int playlistid = -1);
   void MediaPause();
diff --git a/xbmc/Autorun.cpp b/xbmc/Autorun.cpp
index dfe4cc0..a74104c 100644
--- a/xbmc/Autorun.cpp
+++ b/xbmc/Autorun.cpp
@@ -41,7 +41,6 @@
 #include "dialogs/GUIDialogYesNo.h"
 #include "utils/URIUtils.h"
 #include "utils/log.h"
-#include "video/windows/GUIWindowVideoBase.h"
 #ifdef HAS_CDDA_RIPPER
 #include "cdrip/CDDARipper.h"
 #endif
@@ -208,8 +207,6 @@ bool CAutorun::RunDisc(IDirectory* pDir, const CStdString& strDrive, int& nAdded
 
           g_playlistPlayer.ClearPlaylist(PLAYLIST_VIDEO);
           g_playlistPlayer.SetShuffle (PLAYLIST_VIDEO, false);
-          if (!CGUIWindowVideoBase::ShowPlaySelection(item))
-            return false;
           g_playlistPlayer.Add(PLAYLIST_VIDEO, item);
           g_playlistPlayer.SetCurrentPlaylist(PLAYLIST_VIDEO);
           g_playlistPlayer.Play(0);
diff --git a/xbmc/FileItem.cpp b/xbmc/FileItem.cpp
index 19a7289..773ee0b 100644
--- a/xbmc/FileItem.cpp
+++ b/xbmc/FileItem.cpp
@@ -1839,7 +1839,7 @@ int CFileItemList::Size() const
 bool CFileItemList::IsEmpty() const
 {
   CSingleLock lock(m_lock);
-  return (m_items.size() <= 0);
+  return m_items.empty();
 }
 
 void CFileItemList::Reserve(int iCount)
diff --git a/xbmc/GUIUserMessages.h b/xbmc/GUIUserMessages.h
index 9ffec7f..920bff5 100644
--- a/xbmc/GUIUserMessages.h
+++ b/xbmc/GUIUserMessages.h
@@ -134,5 +134,4 @@
 #define GUI_MSG_SHOW_PICTURE          GUI_MSG_USER + 36
 
 // Sent to text field to support 'input method'
-#define GUI_MSG_INPUT_TEXT            GUI_MSG_USER + 37
 #define GUI_MSG_INPUT_TEXT_EDIT       GUI_MSG_USER + 38
diff --git a/xbmc/LangInfo.cpp b/xbmc/LangInfo.cpp
index a88e164..dad5ee7 100644
--- a/xbmc/LangInfo.cpp
+++ b/xbmc/LangInfo.cpp
@@ -198,6 +198,7 @@ void CLangInfo::CRegion::SetGlobalLocale()
     strLocale = "C";
   }
 
+  g_langInfo.m_locale = current_locale; // TODO: move to CLangInfo class
   locale::global(current_locale);
 #endif
   g_charsetConverter.resetSystemCharset();
@@ -421,6 +422,8 @@ void CLangInfo::SetDefaults()
 
   // Set the default region, we may be unable to load langinfo.xml
   m_currentRegion=&m_defaultRegion;
+
+  m_locale = std::locale::classic();
   
   m_languageCodeGeneral = "eng";
 }
diff --git a/xbmc/LangInfo.h b/xbmc/LangInfo.h
index aa499fd..6c9898c 100644
--- a/xbmc/LangInfo.h
+++ b/xbmc/LangInfo.h
@@ -25,6 +25,7 @@
 #include <map>
 #include <string>
 #include <vector>
+#include <locale>
 
 #ifdef TARGET_WINDOWS
 #ifdef GetDateFormat
@@ -130,6 +131,9 @@ public:
   void SetCurrentRegion(const std::string& strName);
   const std::string& GetCurrentRegion() const;
 
+  const std::locale& GetLocale() const
+  { return m_locale; }
+
   static bool CheckLanguage(const std::string& language);
 
   static void LoadTokens(const TiXmlNode* pTokens, std::vector<std::string>& vecTokens);
@@ -179,6 +183,7 @@ protected:
   MAPREGIONS m_regions;
   CRegion* m_currentRegion; // points to the current region
   CRegion m_defaultRegion; // default, will be used if no region available via langinfo.xml
+  std::locale m_locale;     // current locale, matching GUI settings
 
   std::string m_audioLanguage;
   std::string m_subtitleLanguage;
diff --git a/xbmc/TextureCacheJob.cpp b/xbmc/TextureCacheJob.cpp
index fe0904d..18bef41 100644
--- a/xbmc/TextureCacheJob.cpp
+++ b/xbmc/TextureCacheJob.cpp
@@ -203,6 +203,9 @@ CStdString CTextureCacheJob::GetImageHash(const CStdString &url)
     if (time || st.st_size)
       return StringUtils::Format("d%" PRId64"s%" PRId64, time, st.st_size);;
 
+    // the image exists but we couldn't determine the mtime/ctime and/or size
+    // so set an obviously bad hash
+    return "BADHASH";
   }
   CLog::Log(LOGDEBUG, "%s - unable to stat url %s", __FUNCTION__, url.c_str());
   return "";
diff --git a/xbmc/Util.cpp b/xbmc/Util.cpp
index 1760beb..e176ea1 100644
--- a/xbmc/Util.cpp
+++ b/xbmc/Util.cpp
@@ -1898,11 +1898,11 @@ void CUtil::ScanForExternalSubtitles(const std::string& strMovie, std::vector<st
   vector<std::string> strLookInPaths;
   
   std::string strMovieFileName;
-  std::string strPath;
+  std::string strMoviePath;
   
-  URIUtils::Split(strMovie, strPath, strMovieFileName);
+  URIUtils::Split(strMovie, strMoviePath, strMovieFileName);
   std::string strMovieFileNameNoExt(URIUtils::ReplaceExtension(strMovieFileName, ""));
-  strLookInPaths.push_back(strPath);
+  strLookInPaths.push_back(strMoviePath);
   
   CURL url(strMovie);
   std::string isoFileNameNoExt;
@@ -1944,8 +1944,8 @@ void CUtil::ScanForExternalSubtitles(const std::string& strMovie, std::vector<st
   {
     CURL url(strMovie);
     std::string strArchive = url.GetHostName();
-    URIUtils::Split(strArchive, strPath, strMovieFileName);
-    strLookInPaths.push_back(strPath);
+    URIUtils::Split(strArchive, strMoviePath, strMovieFileName);
+    strLookInPaths.push_back(strMoviePath);
   }
   
   int iSize = strLookInPaths.size();
@@ -2003,9 +2003,9 @@ void CUtil::ScanForExternalSubtitles(const std::string& strMovie, std::vector<st
   // this is last because we dont want to check any common subdirs or cd-dirs in the alternate <subtitles> dir.
   if (CMediaSettings::Get().GetAdditionalSubtitleDirectoryChecked() == 1)
   {
-    strPath = CSettings::Get().GetString("subtitles.custompath");
-    URIUtils::AddSlashAtEnd(strPath);
-    strLookInPaths.push_back(strPath);
+    std::string strPath2 = CSettings::Get().GetString("subtitles.custompath");
+    URIUtils::AddSlashAtEnd(strPath2);
+    strLookInPaths.push_back(strPath2);
   }
   
   std::string strDest;
@@ -2023,9 +2023,13 @@ void CUtil::ScanForExternalSubtitles(const std::string& strMovie, std::vector<st
       
       for (int j = 0; j < items.Size(); j++)
       {
-        URIUtils::Split(items[j]->GetPath(), strPath, strItem);
+        std::string strSubtitlePath;
+        URIUtils::Split(items[j]->GetPath(), strSubtitlePath, strItem);
+
+        // Make sure filename uses the correct encoding
+        std::string strMovieFileNameNoExt2 = URIUtils::ChangeBasePath(strMoviePath, strMovieFileNameNoExt, strSubtitlePath, false);
         
-        if (StringUtils::StartsWithNoCase(strItem, strMovieFileNameNoExt)
+        if (StringUtils::StartsWithNoCase(strItem, strMovieFileNameNoExt2)
           || (!isoFileNameNoExt.empty() && StringUtils::StartsWithNoCase(strItem, isoFileNameNoExt)))
         {
           // is this a rar or zip-file
@@ -2052,8 +2056,11 @@ void CUtil::ScanForExternalSubtitles(const std::string& strMovie, std::vector<st
           // is this a rar or zip-file
           if (URIUtils::IsRAR(strItem) || URIUtils::IsZIP(strItem))
           {
+            // Make sure filename uses the correct encoding
+            std::string strMovieFileNameNoExt2 = URIUtils::ChangeBasePath(strMoviePath, strMovieFileNameNoExt, "", false);
+
             // check strMovieFileNameNoExt in zip-file
-            ScanArchiveForSubtitles( items[j]->GetPath(), strMovieFileNameNoExt, vecSubtitles );
+            ScanArchiveForSubtitles(items[j]->GetPath(), strMovieFileNameNoExt2, vecSubtitles );
           }
         }
       }
diff --git a/xbmc/addons/AddonInstaller.cpp b/xbmc/addons/AddonInstaller.cpp
index d358a23..c61da1b 100644
--- a/xbmc/addons/AddonInstaller.cpp
+++ b/xbmc/addons/AddonInstaller.cpp
@@ -359,9 +359,9 @@ bool CAddonInstaller::CheckDependencies(const AddonPtr &addon,
       if (!CheckDependencies(dep, preDeps, database))
       {
         database.Close();
+        preDeps.push_back(dep->ID());
         return false;
       }
-      preDeps.push_back(dep->ID());
     }
   }
   database.Close();
diff --git a/xbmc/addons/GUIDialogAddonSettings.cpp b/xbmc/addons/GUIDialogAddonSettings.cpp
index 45eda1e..b53f320 100644
--- a/xbmc/addons/GUIDialogAddonSettings.cpp
+++ b/xbmc/addons/GUIDialogAddonSettings.cpp
@@ -143,6 +143,8 @@ bool CGUIDialogAddonSettings::OnMessage(CGUIMessage& message)
         CGUIMessage msg(GUI_MSG_SETFOCUS,GetID(),iControl);
         OnMessage(msg);
       }
+      else
+        CreateControls();
       return true;
     }
   }
diff --git a/xbmc/addons/GUIViewStateAddonBrowser.cpp b/xbmc/addons/GUIViewStateAddonBrowser.cpp
index c6497f4..4f42b2e 100644
--- a/xbmc/addons/GUIViewStateAddonBrowser.cpp
+++ b/xbmc/addons/GUIViewStateAddonBrowser.cpp
@@ -44,7 +44,7 @@ CGUIViewStateAddonBrowser::CGUIViewStateAddonBrowser(const CFileItemList& items)
   {
     AddSortMethod(SortByLabel, SortAttributeIgnoreFolders, 551, LABEL_MASKS("%L", "%I", "%L", ""));  // Filename, Size | Foldername, empty
     AddSortMethod(SortByDate, 552, LABEL_MASKS("%L", "%J", "%L", "%J"));  // Filename, Date | Foldername, Date
-    SetSortMethod(SortByLabel, SortAttributeIgnoreFolders);
+    SetSortMethod(SortByLabel);
   }
   SetViewAsControl(DEFAULT_VIEW_AUTO);
 
diff --git a/xbmc/addons/GUIWindowAddonBrowser.cpp b/xbmc/addons/GUIWindowAddonBrowser.cpp
index 92a4bd8..81934d8 100644
--- a/xbmc/addons/GUIWindowAddonBrowser.cpp
+++ b/xbmc/addons/GUIWindowAddonBrowser.cpp
@@ -379,7 +379,7 @@ bool CGUIWindowAddonBrowser::GetDirectory(const std::string& strDirectory,
                       items[i]->GetProperty("Addon.Language"), "en") ||
             !FilterVar(CSettings::Get().GetBool("general.addonforeignfilter"),
                       items[i]->GetProperty("Addon.Language"),
-                      g_langInfo.GetLanguageLocale()))
+                      g_langInfo.GetLanguageLocale(true)))
         {
           i++;
         }
diff --git a/xbmc/addons/Repository.cpp b/xbmc/addons/Repository.cpp
index b42d881..554f983 100644
--- a/xbmc/addons/Repository.cpp
+++ b/xbmc/addons/Repository.cpp
@@ -166,11 +166,8 @@ string CRepository::GetAddonHash(const AddonPtr& addon) const
        x = y; \
   }
 
-VECADDONS CRepository::Parse(const DirInfo& dir)
+bool CRepository::Parse(const DirInfo& dir, VECADDONS &result)
 {
-  VECADDONS result;
-  CXBMCTinyXML doc;
-
   string file = dir.info;
   if (dir.compressed)
   {
@@ -182,9 +179,10 @@ VECADDONS CRepository::Parse(const DirInfo& dir)
     file = url.Get();
   }
 
-  if (doc.LoadFile(file) && doc.RootElement())
+  CXBMCTinyXML doc;
+  if (doc.LoadFile(file) && doc.RootElement() &&
+      CAddonMgr::Get().AddonsFromRepoXML(doc.RootElement(), result))
   {
-    CAddonMgr::Get().AddonsFromRepoXML(doc.RootElement(), result);
     for (IVECADDONS i = result.begin(); i != result.end(); ++i)
     {
       AddonPtr addon = *i;
@@ -205,9 +203,9 @@ VECADDONS CRepository::Parse(const DirInfo& dir)
         SET_IF_NOT_EMPTY(addon->Props().fanart,URIUtils::AddFileToFolder(dir.datadir,addon->ID()+"/fanart.jpg"))
       }
     }
+    return true;
   }
-
-  return result;
+  return false;
 }
 
 void CRepository::OnPostInstall(bool restart, bool update)
@@ -252,12 +250,13 @@ bool CRepositoryUpdateJob::DoWork()
   {
     if (ShouldCancel(0, 0))
       return false;
-    RepositoryPtr repo = boost::dynamic_pointer_cast<CRepository>(*i);
-    VECADDONS newAddons = GrabAddons(repo);
-    MergeAddons(addons, newAddons);
+    const RepositoryPtr repo = boost::dynamic_pointer_cast<CRepository>(*i);
+    VECADDONS newAddons;
+    if (GrabAddons(repo, newAddons))
+      MergeAddons(addons, newAddons);
   }
   if (addons.empty())
-    return false;
+    return true; //Nothing to do
 
   // check for updates
   CAddonDatabase database;
@@ -344,63 +343,68 @@ bool CRepositoryUpdateJob::DoWork()
   return true;
 }
 
-VECADDONS CRepositoryUpdateJob::GrabAddons(RepositoryPtr& repo)
+bool CRepositoryUpdateJob::GrabAddons(const RepositoryPtr& repo, VECADDONS& addons)
 {
   CAddonDatabase database;
-  VECADDONS addons;
   database.Open();
-  string checksum;
-  database.GetRepoChecksum(repo->ID(),checksum);
-  string reposum;
+  string oldReposum;
+  if (!database.GetRepoChecksum(repo->ID(), oldReposum))
+    oldReposum = "";
 
-  /* This for loop is duplicated in CRepository::Checksum().
-   * If you make changes here, they may be applicable there, too.
-   */
+  string reposum;
   for (CRepository::DirList::const_iterator it  = repo->m_dirs.begin(); it != repo->m_dirs.end(); ++it)
   {
     if (ShouldCancel(0, 0))
-      return addons;
+      return false;
     if (!it->checksum.empty())
-      reposum += CRepository::FetchChecksum(it->checksum);
+    {
+      const string dirsum = CRepository::FetchChecksum(it->checksum);
+      if (dirsum.empty())
+      {
+        CLog::Log(LOGERROR, "Failed to fetch checksum for directory listing %s for repository %s. ", (*it).info.c_str(), repo->ID().c_str());
+        return false;
+      }
+      reposum += dirsum;
+    }
   }
 
-  if (checksum != reposum || checksum.empty())
+  if (oldReposum != reposum || oldReposum.empty())
   {
     map<string, AddonPtr> uniqueAddons;
     for (CRepository::DirList::const_iterator it = repo->m_dirs.begin(); it != repo->m_dirs.end(); ++it)
     {
       if (ShouldCancel(0, 0))
-        return addons;
-      VECADDONS addons2 = CRepository::Parse(*it);
-      MergeAddons(uniqueAddons, addons2);
+        return false;
+      VECADDONS addons;
+      if (!CRepository::Parse(*it, addons))
+      { //TODO: Hash is invalid and should not be saved, but should we fail?
+        //We can still report a partial addon listing.
+        CLog::Log(LOGERROR, "Failed to read directory listing %s for repository %s. ", (*it).info.c_str(), repo->ID().c_str());
+        return false;
+      }
+      MergeAddons(uniqueAddons, addons);
     }
 
-    if (uniqueAddons.empty())
+    bool add = true;
+    if (!repo->Props().libname.empty())
     {
-      CLog::Log(LOGERROR,"Repository %s returned no add-ons, listing may have failed",repo->Name().c_str());
-      reposum = checksum; // don't update the checksum
+      CFileItemList dummy;
+      string s = StringUtils::Format("plugin://%s/?action=update", repo->ID().c_str());
+      add = CDirectory::GetDirectory(s, dummy);
     }
-    else
+    if (add)
     {
-      bool add=true;
-      if (!repo->Props().libname.empty())
-      {
-        CFileItemList dummy;
-        string s = StringUtils::Format("plugin://%s/?action=update", repo->ID().c_str());
-        add = CDirectory::GetDirectory(s, dummy);
-      }
-      if (add)
-      {
-        for (map<string, AddonPtr>::const_iterator i = uniqueAddons.begin(); i != uniqueAddons.end(); ++i)
-          addons.push_back(i->second);
-        database.AddRepository(repo->ID(),addons,reposum);
-      }
+      for (map<string, AddonPtr>::const_iterator i = uniqueAddons.begin(); i != uniqueAddons.end(); ++i)
+        addons.push_back(i->second);
+      database.AddRepository(repo->ID(),addons,reposum);
     }
   }
   else
-    database.GetRepository(repo->ID(),addons);
-  database.SetRepoTimestamp(repo->ID(),CDateTime::GetCurrentDateTime().GetAsDBDateTime());
-
-  return addons;
+  {
+    CLog::Log(LOGDEBUG, "Checksum for repository %s not changed.", repo->ID().c_str());
+    database.GetRepository(repo->ID(), addons);
+    database.SetRepoTimestamp(repo->ID(), CDateTime::GetCurrentDateTime().GetAsDBDateTime());
+  }
+  return true;
 }
 
diff --git a/xbmc/addons/Repository.h b/xbmc/addons/Repository.h
index 7829d51..8f9666b 100644
--- a/xbmc/addons/Repository.h
+++ b/xbmc/addons/Repository.h
@@ -57,7 +57,7 @@ namespace ADDON
     typedef std::vector<DirInfo> DirList;
     DirList m_dirs;
 
-    static VECADDONS Parse(const DirInfo& dir);
+    static bool Parse(const DirInfo& dir, VECADDONS& addons);
     static std::string FetchChecksum(const std::string& url);
 
     virtual void OnPostInstall(bool restart, bool update);
@@ -76,7 +76,7 @@ namespace ADDON
     virtual const char *GetType() const { return "repoupdate"; };
     virtual bool DoWork();
   private:
-    VECADDONS GrabAddons(RepositoryPtr& repo);
+    bool GrabAddons(const RepositoryPtr& repo, VECADDONS& addons);
 
     VECADDONS m_repos;
   };
diff --git a/xbmc/android/activity/XBMCApp.cpp b/xbmc/android/activity/XBMCApp.cpp
index f59ec3c..5f0ae48 100644
--- a/xbmc/android/activity/XBMCApp.cpp
+++ b/xbmc/android/activity/XBMCApp.cpp
@@ -116,6 +116,12 @@ CXBMCApp::~CXBMCApp()
 void CXBMCApp::onStart()
 {
   android_printf("%s: ", __PRETTY_FUNCTION__);
+
+  // non-aml boxes will ignore this intent broadcast.
+  // setup aml scalers to play video as is, unscaled.
+  CJNIIntent intent_aml_video_on = CJNIIntent("android.intent.action.REALVIDEO_ON");
+  sendBroadcast(intent_aml_video_on);
+
   if (!m_firstrun)
   {
     android_printf("%s: Already running, ignoring request to start", __PRETTY_FUNCTION__);
@@ -150,6 +156,10 @@ void CXBMCApp::onPause()
   SetSystemVolume(m_initialVolume);
 
   unregisterReceiver(*this);
+
+  // non-aml boxes will ignore this intent broadcast.
+  CJNIIntent intent_aml_video_off = CJNIIntent("android.intent.action.REALVIDEO_OFF");
+  sendBroadcast(intent_aml_video_off);
 }
 
 void CXBMCApp::onStop()
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
index 6e9900f..248a655 100644
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
@@ -2176,7 +2176,7 @@ bool CActiveAE::Initialize()
   Message *reply;
   if (m_controlPort.SendOutMessageSync(CActiveAEControlProtocol::INIT,
                                                  &reply,
-                                                 10000))
+                                                 60000))
   {
     bool success = reply->signal == CActiveAEControlProtocol::ACC;
     reply->Release();
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
index d30cbab..df50940 100644
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
@@ -338,8 +338,10 @@ snd_pcm_chmap_t* CAESinkALSA::CopyALSAchmap(snd_pcm_chmap_t* alsaMap)
 
 std::string CAESinkALSA::ALSAchmapToString(snd_pcm_chmap_t* alsaMap)
 {
-  char buf[64] = { 0 };
-  int err = snd_pcm_chmap_print(alsaMap, sizeof(buf), buf);
+  char buf[128] = { 0 };
+  // ALSA bug - buffer overflow by a factor of 2 is possible
+  // http://mailman.alsa-project.org/pipermail/alsa-devel/2014-December/085815.html
+  int err = snd_pcm_chmap_print(alsaMap, sizeof(buf) / 2, buf);
   if (err < 0)
     return "Error";
   return std::string(buf);
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp
index 9725d6e..9c91db6 100644
--- a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp
@@ -207,6 +207,10 @@ bool CAESinkDirectSound::Initialize(AEAudioFormat &format, std::string &device)
 
   WAVEFORMATEXTENSIBLE wfxex = {0};
 
+  // clamp samplerate to a minimum
+  if (format.m_sampleRate < 44100)
+    format.m_sampleRate = 44100;
+
   //fill waveformatex
   ZeroMemory(&wfxex, sizeof(WAVEFORMATEXTENSIBLE));
   wfxex.Format.cbSize          = sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX);
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp
index 56dd641..74a3599 100644
--- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp
@@ -110,9 +110,13 @@ struct sampleFormat
 };
 
 /* Sample formats go from float -> 32 bit int -> 24 bit int (packed in 32) -> -> 24 bit int -> 16 bit int */
+// versions of Kodi before 14.0 had a bug which made S24NE4MSB the first format selected
+// this bug worked around some driver bug of some IEC958 devices which report S32 but can't handle it
+// correctly. So far I have never seen and WASAPI device using S32 and don't think probing S24 before
+// S32 has any negative impact.
 static const sampleFormat testFormats[] = { {KSDATAFORMAT_SUBTYPE_IEEE_FLOAT, 32, 32, AE_FMT_FLOAT},
-                                            {KSDATAFORMAT_SUBTYPE_PCM, 32, 32, AE_FMT_S32NE},
                                             {KSDATAFORMAT_SUBTYPE_PCM, 32, 24, AE_FMT_S24NE4MSB},
+                                            {KSDATAFORMAT_SUBTYPE_PCM, 32, 32, AE_FMT_S32NE},
                                             {KSDATAFORMAT_SUBTYPE_PCM, 24, 24, AE_FMT_S24NE3},
                                             {KSDATAFORMAT_SUBTYPE_PCM, 16, 16, AE_FMT_S16NE} };
 
diff --git a/xbmc/cores/VideoRenderers/DXVA.cpp b/xbmc/cores/VideoRenderers/DXVA.cpp
index 86146d7..710bc70 100644
--- a/xbmc/cores/VideoRenderers/DXVA.cpp
+++ b/xbmc/cores/VideoRenderers/DXVA.cpp
@@ -664,6 +664,7 @@ bool CProcessor::Render(CRect src, CRect dst, IDirect3DSurface9* target, IDirect
     vs.Start = frameIdx + (sampIdx - pastFrames) * 2;
     vs.End = vs.Start + 2;
     vs.PlanarAlpha = DXVA2_Fixed32OpaqueAlpha();
+    vs.SampleFormat = m_desc.SampleFormat;
     vs.SampleFormat.SampleFormat = sampleFormat;
     
     // Override the sample format when the processor doesn't need to deinterlace or when deinterlacing is forced and flags are missing.
diff --git a/xbmc/cores/dvdplayer/DVDClock.cpp b/xbmc/cores/dvdplayer/DVDClock.cpp
index 0a253e4..a496ec0 100644
--- a/xbmc/cores/dvdplayer/DVDClock.cpp
+++ b/xbmc/cores/dvdplayer/DVDClock.cpp
@@ -218,7 +218,7 @@ int CDVDClock::UpdateFramerate(double fps, double* interval /*= NULL*/)
 
   CSingleLock lock(m_speedsection);
 
-  double weight = rate / (double)MathUtils::round_int(fps);
+  double weight = MathUtils::round_int(rate) / (double)MathUtils::round_int(fps);
 
   //set the speed of the videoreferenceclock based on fps, refreshrate and maximum speed adjust set by user
   if (m_maxspeedadjust > 0.05)
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp b/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp
index 93821fa..56e6871 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp
@@ -431,7 +431,7 @@ bool CDVDCodecUtils::IsVP3CompatibleWidth(int width)
   return true;
 }
 
-double CDVDCodecUtils::NormalizeFrameduration(double frameduration)
+double CDVDCodecUtils::NormalizeFrameduration(double frameduration, bool *match)
 {
   //if the duration is within 20 microseconds of a common duration, use that
   const double durations[] = {DVD_TIME_BASE * 1.001 / 24.0, DVD_TIME_BASE / 24.0, DVD_TIME_BASE / 25.0,
@@ -451,9 +451,17 @@ double CDVDCodecUtils::NormalizeFrameduration(double frameduration)
   }
 
   if (selected != -1)
+  {
+    if (match)
+      *match = true;
     return durations[selected];
+  }
   else
+  {
+    if (match)
+      *match = false;
     return frameduration;
+  }
 }
 
 struct EFormatMap {
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.h b/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.h
index 50d330d..c8ed9b9 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.h
+++ b/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.h
@@ -41,7 +41,7 @@ public:
 
   static bool IsVP3CompatibleWidth(int width);
 
-  static double NormalizeFrameduration(double frameduration);
+  static double NormalizeFrameduration(double frameduration, bool *match = NULL);
 
   static ERenderFormat EFormatFromPixfmt(int fmt);
   static int           PixfmtFromEFormat(ERenderFormat format);
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
index a45be98..26db4a1 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
@@ -1654,11 +1654,18 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints)
   g_renderManager.RegisterRenderFeaturesCallBack((const void*)this, RenderFeaturesCallBack);
 
   m_display_rect = CRect(0, 0, CDisplaySettings::Get().GetCurrentResolutionInfo().iWidth, CDisplaySettings::Get().GetCurrentResolutionInfo().iHeight);
-  char mode[256] = {0};
-  aml_get_sysfs_str("/sys/class/display/mode", mode, 255);
-  RESOLUTION_INFO res;
-  if (aml_mode_to_resolution(mode, &res))
-    m_display_rect = CRect(0, 0, res.iScreenWidth, res.iScreenHeight);
+
+  char buffer[256] = {0};
+  aml_get_sysfs_str("/sys/class/ppmgr/ppscaler", buffer, 255);
+  if (!strstr(buffer, "enabled"))     // Scaler not enabled, use screen size
+  {
+    CLog::Log(LOGDEBUG, "ppscaler not enabled");
+    memset(buffer, 0, 256);
+    aml_get_sysfs_str("/sys/class/display/mode", buffer, 255);
+    RESOLUTION_INFO res;
+    if (aml_mode_to_resolution(buffer, &res))
+      m_display_rect = CRect(0, 0, res.iScreenWidth, res.iScreenHeight);
+  }
 
 /*
   // if display is set to 1080xxx, then disable deinterlacer for HD content
@@ -2277,7 +2284,7 @@ void CAMLCodec::SetVideoRect(const CRect &SrcRect, const CRect &DestRect)
     SetVideo3dMode(MODE_3D_DISABLE);
   }
 
-#if 0
+#if 1
   std::string s_dst_rect = StringUtils::Format("%i,%i,%i,%i",
     (int)dst_rect.x1, (int)dst_rect.y1,
     (int)dst_rect.Width(), (int)dst_rect.Height());
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
index 369bbde..6afb892 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
@@ -593,7 +593,9 @@ bool CDecoder::Open(AVCodecContext* avctx, const enum PixelFormat fmt, unsigned
   else
     m_vaapiConfig.maxReferences = 2;
 
-  m_vaapiConfig.maxReferences += surfaces;
+  // add an extra surface for safety, some faulty material
+  // make ffmpeg require more buffers
+  m_vaapiConfig.maxReferences += surfaces + 1;
 
   if (!ConfigVAAPI())
   {
diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
index f3da82e..6f37758 100644
--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
@@ -305,8 +305,10 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo, bool filein
         pd.buf = probe_buffer;
         pd.filename = strFile.c_str();
 
+        // av_probe_input_buffer might have changed the buffer_size beyond our allocated amount
+        int buffer_size = std::min((int) FFMPEG_FILE_BUFFER_SIZE, m_ioContext->buffer_size);
         // read data using avformat's buffers
-        pd.buf_size = avio_read(m_ioContext, pd.buf, m_ioContext->max_packet_size ? m_ioContext->max_packet_size : m_ioContext->buffer_size);
+        pd.buf_size = avio_read(m_ioContext, pd.buf, m_ioContext->max_packet_size ? m_ioContext->max_packet_size : buffer_size);
         if (pd.buf_size <= 0)
         {
           CLog::Log(LOGERROR, "%s - error reading from input stream, %s", __FUNCTION__, CURL::GetRedacted(strFile).c_str());
@@ -429,7 +431,7 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo, bool filein
     m_checkvideo = true;
     skipCreateStreams = true;
   }
-  else if (iformat && (strcmp(iformat->name, "mpegts") != 0))
+  else if (!iformat || (strcmp(iformat->name, "mpegts") != 0))
   {
     m_streaminfo = true;
   }
@@ -908,7 +910,8 @@ bool CDVDDemuxFFmpeg::SeekTime(int time, bool backwords, double *startpts)
   }
 
   int64_t seek_pts = (int64_t)time * (AV_TIME_BASE / 1000);
-  if (m_pFormatContext->start_time != (int64_t)AV_NOPTS_VALUE)
+  bool ismp3 = m_pFormatContext->iformat && (strcmp(m_pFormatContext->iformat->name, "mp3") == 0);
+  if (m_pFormatContext->start_time != (int64_t)AV_NOPTS_VALUE && !ismp3)
     seek_pts += m_pFormatContext->start_time;
 
   int ret;
@@ -1742,4 +1745,4 @@ void CDVDDemuxFFmpeg::GetL16Parameters(int &channels, int &samplerate)
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp
index 324eadb..5d45448 100644
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp
@@ -122,6 +122,19 @@ bool CDVDInputStreamRTMP::IsEOF()
 #undef AVC
 #define AVC(str)  {(char *)str,sizeof(str)-1}
 
+/* librtmp option names are slightly different */
+static const struct {
+ const char *name;
+ AVal key;
+} options[] = {
+ { "SWFPlayer", AVC("swfUrl") },
+ { "PageURL", AVC("pageUrl") },
+ { "PlayPath", AVC("playpath") },
+ { "TcUrl", AVC("tcUrl") },
+ { "IsLive", AVC("live") },
+ { NULL }
+};
+
 bool CDVDInputStreamRTMP::Open(const char* strFile, const std::string& content)
 {
   if (m_sStreamPlaying)
@@ -160,6 +173,23 @@ bool CDVDInputStreamRTMP::Open(const char* strFile, const std::string& content)
   }
   CLog::Log(LOGDEBUG, "RTMP canseek: %s", m_canSeek ? "true" : "false");
 
+  /* SetOpt and SetAVal copy pointers to the value. librtmp doesn't use the values until the Connect() call,
+   * so value objects must stay allocated until then. To be extra safe, keep the values around until Close(),
+   * in case librtmp needs them again.
+   */
+  m_optionvalues.clear();
+  for (int i=0; options[i].name; i++)
+  {
+    std::string tmp = m_item.GetProperty(options[i].name).asString();
+    if (!tmp.empty())
+    {
+      m_optionvalues.push_back(tmp);
+      AVal av_tmp;
+      SetAVal(av_tmp, m_optionvalues.back());
+      m_libRTMP.SetOpt(m_rtmp, &options[i].key, &av_tmp);
+    }
+  }
+
   if (!m_libRTMP.Connect(m_rtmp, NULL) || !m_libRTMP.ConnectStream(m_rtmp, 0))
     return false;
 
@@ -177,6 +207,7 @@ void CDVDInputStreamRTMP::Close()
   if (m_rtmp)
     m_libRTMP.Close(m_rtmp);
 
+  m_optionvalues.clear();
   m_eof = true;
   m_bPaused = false;
 }
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.h
index 5568c14..dd00e5a 100644
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.h
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.h
@@ -51,6 +51,7 @@ protected:
   bool       m_canSeek;
   bool       m_canPause;
   char*      m_sStreamPlaying;
+  std::vector<std::string> m_optionvalues;
 
   RTMP       *m_rtmp;
   DllLibRTMP m_libRTMP;
diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp
index f567518..c1a5b8d 100644
--- a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp
+++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp
@@ -564,7 +564,7 @@ void CDVDPlayerAudio::Process()
     // Zero out the frame data if we are supposed to silence the audio
     if (m_silence)
     {
-      int size = audioframe.nb_frames * audioframe.framesize * audioframe.channel_count / audioframe.planes;
+      int size = audioframe.nb_frames * audioframe.framesize / audioframe.planes;
       for (unsigned int i=0; i<audioframe.planes; i++)
         memset(audioframe.data[i], 0, size);
     }
diff --git a/xbmc/cores/dvdplayer/DVDTSCorrection.cpp b/xbmc/cores/dvdplayer/DVDTSCorrection.cpp
index c9de690..37a1b8e 100644
--- a/xbmc/cores/dvdplayer/DVDTSCorrection.cpp
+++ b/xbmc/cores/dvdplayer/DVDTSCorrection.cpp
@@ -26,8 +26,6 @@
 #include <cmath>
 
 #define MAXERR DVD_MSEC_TO_TIME(2.5)
-#define MINVALIDFRAMEDURATION DVD_MSEC_TO_TIME(8.33)   // For VFR detection, max framerate allowed is 120fps
-#define MAXVALIDFRAMEDURATION DVD_MSEC_TO_TIME(200.0)  // For VFR detection, min framerate allowed is 5fps
 
 using namespace std;
 
@@ -332,35 +330,32 @@ double CPullupCorrection::CalcFrameDuration()
     frameduration /= m_pattern.size();
 
     // Update min and max frame duration, only if data is valid
+    bool standard = false;
+    double tempduration = CDVDCodecUtils::NormalizeFrameduration(currentmin, &standard);
     if (m_minframeduration == DVD_NOPTS_VALUE)
     {
-      if ((currentmin >= MINVALIDFRAMEDURATION) && (currentmin <= MAXVALIDFRAMEDURATION))
-        m_minframeduration = currentmin;
+      if (standard)
+        m_minframeduration = tempduration;
     }
     else
     {
-      if ((currentmin < m_minframeduration) &&
-          ((currentmin >= MINVALIDFRAMEDURATION) && (currentmin <= MAXVALIDFRAMEDURATION)))
-        m_minframeduration = currentmin;
+      if (standard && (tempduration < m_minframeduration))
+        m_minframeduration = tempduration;
     }
 
+    tempduration = CDVDCodecUtils::NormalizeFrameduration(currentmax, &standard);
     if (m_maxframeduration == DVD_NOPTS_VALUE)
     {
-      if ((currentmax >= MINVALIDFRAMEDURATION) && (currentmax <= MAXVALIDFRAMEDURATION))
-        m_maxframeduration = currentmax;
+      if (standard)
+        m_maxframeduration = tempduration;
     }
     else
     {
-      if ((currentmax > m_maxframeduration) &&
-          ((currentmax >= MINVALIDFRAMEDURATION) && (currentmax <= MAXVALIDFRAMEDURATION)))
-        m_maxframeduration = currentmax;
+      if (standard && (tempduration > m_maxframeduration))
+        m_maxframeduration = tempduration;
     }
 
     //frameduration is not completely correct, use a common one if it's close
-    m_minframeduration = CDVDCodecUtils::NormalizeFrameduration(m_minframeduration);
-    m_maxframeduration = CDVDCodecUtils::NormalizeFrameduration(m_maxframeduration);
-
-    //frameduration is not completely correct, use a common one if it's close
     return CDVDCodecUtils::NormalizeFrameduration(frameduration);
   }
 
diff --git a/xbmc/cores/paplayer/OGGcodec.cpp b/xbmc/cores/paplayer/OGGcodec.cpp
index bccd28c..a2e9599 100644
--- a/xbmc/cores/paplayer/OGGcodec.cpp
+++ b/xbmc/cores/paplayer/OGGcodec.cpp
@@ -92,7 +92,10 @@ bool OGGCodec::Init(const std::string &strFile1, unsigned int filecache)
   if (iStreams>1)
   {
     if (m_CurrentStream > iStreams)
+    {
+      DeInit();
       return false;
+    }
   }
 
   //  Calculate the offset in secs where the bitstream starts
@@ -104,6 +107,7 @@ bool OGGCodec::Init(const std::string &strFile1, unsigned int filecache)
   if (!pInfo)
   {
     CLog::Log(LOGERROR, "OGGCodec: Can't get stream info from %s", strFile1.c_str());
+    DeInit();
     return false;
   }
 
@@ -122,6 +126,7 @@ bool OGGCodec::Init(const std::string &strFile1, unsigned int filecache)
   if (m_SampleRate==0 || m_Channels==0 || m_BitsPerSample==0 || m_TotalTime==0)
   {
     CLog::Log(LOGERROR, "OGGCodec: incomplete stream info from %s, SampleRate=%i, Channels=%i, BitsPerSample=%i, TotalTime=%" PRIu64, strFile1.c_str(), m_SampleRate, m_Channels, m_BitsPerSample, m_TotalTime);
+    DeInit();
     return false;
   }
 
@@ -139,10 +144,13 @@ bool OGGCodec::Init(const std::string &strFile1, unsigned int filecache)
     if (m_dll.ov_time_seek(&m_VorbisFile, m_TimeOffset)!=0)
     {
       CLog::Log(LOGERROR, "OGGCodec: Can't seek to the bitstream start time (%s)", strFile1.c_str());
+      DeInit();
       return false;
     }
   }
 
+  m_inited = true;
+
   return true;
 }
 
diff --git a/xbmc/dbwrappers/mysqldataset.cpp b/xbmc/dbwrappers/mysqldataset.cpp
index 945d080..48c7e49 100644
--- a/xbmc/dbwrappers/mysqldataset.cpp
+++ b/xbmc/dbwrappers/mysqldataset.cpp
@@ -442,6 +442,7 @@ long MysqlDatabase::nextid(const char* sname) {
 void MysqlDatabase::start_transaction() {
   if (active)
   {
+    mysql_autocommit(conn, false);
     CLog::Log(LOGDEBUG,"Mysql Start transaction");
     _in_transaction = true;
   }
@@ -451,6 +452,7 @@ void MysqlDatabase::commit_transaction() {
   if (active)
   {
     mysql_commit(conn);
+    mysql_autocommit(conn, true);
     CLog::Log(LOGDEBUG,"Mysql commit transaction");
     _in_transaction = false;
   }
@@ -460,6 +462,7 @@ void MysqlDatabase::rollback_transaction() {
   if (active)
   {
     mysql_rollback(conn);
+    mysql_autocommit(conn, true);
     CLog::Log(LOGDEBUG,"Mysql rollback transaction");
     _in_transaction = false;
   }
diff --git a/xbmc/dialogs/GUIDialogKeyboardGeneric.cpp b/xbmc/dialogs/GUIDialogKeyboardGeneric.cpp
index 5c6170c..6cb4265 100644
--- a/xbmc/dialogs/GUIDialogKeyboardGeneric.cpp
+++ b/xbmc/dialogs/GUIDialogKeyboardGeneric.cpp
@@ -32,6 +32,7 @@
 #include "utils/RegExp.h"
 #include "utils/StringUtils.h"
 #include "ApplicationMessenger.h"
+#include "windowing/WindowingFactory.h"
 
 #define BUTTON_ID_OFFSET      100
 #define BUTTONS_PER_ROW        20
@@ -76,6 +77,7 @@ void CGUIDialogKeyboardGeneric::OnWindowLoaded()
   CGUIEditControl *edit = (CGUIEditControl *)GetControl(CTL_EDIT);
   if (edit)
     edit->SetShowCursorAlways(true);
+  g_Windowing.EnableTextInput(false);
 
   CGUIDialog::OnWindowLoaded();
 }
@@ -220,7 +222,6 @@ bool CGUIDialogKeyboardGeneric::OnMessage(CGUIMessage& message)
     break;
 
   case GUI_MSG_SET_TEXT:
-  case GUI_MSG_INPUT_TEXT:
   case GUI_MSG_INPUT_TEXT_EDIT:
     {
       // the edit control only handles these messages if it is either focues
@@ -271,9 +272,9 @@ void CGUIDialogKeyboardGeneric::Character(const std::string &ch)
   CGUIControl *edit = GetControl(CTL_EDIT);
   if (edit)
   {
-    CGUIMessage msg(GUI_MSG_INPUT_TEXT, GetID(), CTL_EDIT);
-    msg.SetLabel(ch);
-    edit->OnMessage(msg);
+    CAction action(ACTION_INPUT_TEXT);
+    action.SetText(ch);
+    edit->OnAction(action);
   }
 }
 
diff --git a/xbmc/dialogs/GUIDialogSeekBar.cpp b/xbmc/dialogs/GUIDialogSeekBar.cpp
index c6eb5cd..c6ecfa0 100644
--- a/xbmc/dialogs/GUIDialogSeekBar.cpp
+++ b/xbmc/dialogs/GUIDialogSeekBar.cpp
@@ -25,10 +25,7 @@
 #include "FileItem.h"
 #include "utils/SeekHandler.h"
 
-#define SEEK_BAR_DISPLAY_TIME 2000L
-#define SEEK_BAR_SEEK_TIME     500L
-
-#define POPUP_SEEK_SLIDER       401
+#define POPUP_SEEK_PROGRESS     401
 #define POPUP_SEEK_LABEL        402
 
 CGUIDialogSeekBar::CGUIDialogSeekBar(void)
@@ -50,11 +47,12 @@ bool CGUIDialogSeekBar::OnMessage(CGUIMessage& message)
     return CGUIDialog::OnMessage(message);
 
   case GUI_MSG_LABEL_SET:
-    {
-      if (message.GetSenderId() == GetID() && message.GetControlId() == POPUP_SEEK_LABEL)
-        CGUIDialog::OnMessage(message);
-    }
-    break;
+    if (message.GetSenderId() == GetID() && message.GetControlId() == POPUP_SEEK_LABEL)
+      return CGUIDialog::OnMessage(message);
+      
+  case GUI_MSG_ITEM_SELECT:
+    if (message.GetSenderId() == GetID() && message.GetControlId() == POPUP_SEEK_PROGRESS)
+      return CGUIDialog::OnMessage(message);
   }
   return false; // don't process anything other than what we need!
 }
@@ -71,12 +69,12 @@ void CGUIDialogSeekBar::FrameMove()
   if (!g_application.GetSeekHandler()->InProgress() && !g_infoManager.m_performingSeek
     && g_infoManager.GetTotalPlayTime())
   { // position the bar at our current time
-    CONTROL_SELECT_ITEM(POPUP_SEEK_LABEL, (unsigned int)(g_infoManager.GetPlayTime()/g_infoManager.GetTotalPlayTime() * 0.1f));
+    CONTROL_SELECT_ITEM(POPUP_SEEK_PROGRESS, (unsigned int)(g_infoManager.GetPlayTime()/g_infoManager.GetTotalPlayTime() * 0.1f));
     SET_CONTROL_LABEL(POPUP_SEEK_LABEL, g_infoManager.GetCurrentPlayTime());
   }
   else
   {
-    CONTROL_SELECT_ITEM(POPUP_SEEK_LABEL, (unsigned int)g_application.GetSeekHandler()->GetPercent());
+    CONTROL_SELECT_ITEM(POPUP_SEEK_PROGRESS, (unsigned int)g_application.GetSeekHandler()->GetPercent());
     SET_CONTROL_LABEL(POPUP_SEEK_LABEL, g_infoManager.GetCurrentSeekTime());
   }
 
diff --git a/xbmc/dialogs/GUIDialogSimpleMenu.cpp b/xbmc/dialogs/GUIDialogSimpleMenu.cpp
new file mode 100644
index 0000000..3732d54
--- /dev/null
+++ b/xbmc/dialogs/GUIDialogSimpleMenu.cpp
@@ -0,0 +1,129 @@
+/*
+ *      Copyright (C) 2005-2015 Team XBMC
+ *      http://xbmc.org
+ *
+ *  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 XBMC; see the file COPYING.  If not, see
+ *  <http://www.gnu.org/licenses/>.
+ *
+ */
+
+
+#include "GUIDialogSimpleMenu.h"
+#include "guilib/GUIWindowManager.h"
+#include "GUIDialogSelect.h"
+#include "settings/DiscSettings.h"
+#include "settings/Settings.h"
+#include "utils/URIUtils.h"
+#include "filesystem/Directory.h"
+#include "filesystem/File.h"
+#include "utils/log.h"
+#include "video/VideoInfoTag.h"
+#include "URL.h"
+
+bool CGUIDialogSimpleMenu::ShowPlaySelection(CFileItem& item)
+{
+  /* if asked to resume somewhere, we should not show anything */
+  if (item.m_lStartOffset)
+    return true;
+
+  if (CSettings::Get().GetInt("disc.playback") != BD_PLAYBACK_SIMPLE_MENU)
+    return true;
+
+  std::string path;
+  if (item.IsVideoDb())
+    path = item.GetVideoInfoTag()->m_strFileNameAndPath;
+  else
+    path = item.GetPath();
+
+  if (item.IsBDFile())
+  {
+    std::string root = URIUtils::GetParentPath(path);
+    URIUtils::RemoveSlashAtEnd(root);
+    if (URIUtils::GetFileName(root) == "BDMV")
+    {
+      CURL url("bluray://");
+      url.SetHostName(URIUtils::GetParentPath(root));
+      return ShowPlaySelection(item, url.Get());
+    }
+  }
+
+  if (item.IsDiscImage())
+  {
+    CURL url2("udf://");
+    url2.SetHostName(item.GetPath());
+    url2.SetFileName("BDMV/index.bdmv");
+    if (XFILE::CFile::Exists(url2.Get()))
+    {
+      url2.SetFileName("");
+
+      CURL url("bluray://");
+      url.SetHostName(url2.Get());
+      return ShowPlaySelection(item, url.Get());
+    }
+  }
+  return true;
+}
+
+bool CGUIDialogSimpleMenu::ShowPlaySelection(CFileItem& item, const std::string& directory)
+{
+
+  CFileItemList items;
+
+  if (!XFILE::CDirectory::GetDirectory(directory, items, XFILE::CDirectory::CHints(), true))
+  {
+    CLog::Log(LOGERROR, "CGUIWindowVideoBase::ShowPlaySelection - Failed to get play directory for %s", directory.c_str());
+    return true;
+  }
+
+  if (items.IsEmpty())
+  {
+    CLog::Log(LOGERROR, "CGUIWindowVideoBase::ShowPlaySelection - Failed to get any items %s", directory.c_str());
+    return true;
+  }
+
+  CGUIDialogSelect* dialog = (CGUIDialogSelect*)g_windowManager.GetWindow(WINDOW_DIALOG_SELECT);
+  while (true)
+  {
+    dialog->Reset();
+    dialog->SetHeading(25006 /* Select playback item */);
+    dialog->SetItems(&items);
+    dialog->SetUseDetails(true);
+    dialog->DoModal();
+
+    CFileItemPtr item_new = dialog->GetSelectedItem();
+    if (!item_new || dialog->GetSelectedLabel() < 0)
+    {
+      CLog::Log(LOGDEBUG, "CGUIWindowVideoBase::ShowPlaySelection - User aborted %s", directory.c_str());
+      break;
+    }
+
+    if (item_new->m_bIsFolder == false)
+    {
+      std::string original_path = item.GetPath();
+      item.Reset();
+      item = *item_new;
+      item.SetProperty("original_listitem_url", original_path);
+      return true;
+    }
+
+    items.Clear();
+    if (!XFILE::CDirectory::GetDirectory(item_new->GetPath(), items, XFILE::CDirectory::CHints(), true) || items.IsEmpty())
+    {
+      CLog::Log(LOGERROR, "CGUIWindowVideoBase::ShowPlaySelection - Failed to get any items %s", item_new->GetPath().c_str());
+      break;
+    }
+  }
+
+  return false;
+}
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.h b/xbmc/dialogs/GUIDialogSimpleMenu.h
similarity index 75%
copy from xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.h
copy to xbmc/dialogs/GUIDialogSimpleMenu.h
index cd06264..5ebe629 100644
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.h
+++ b/xbmc/dialogs/GUIDialogSimpleMenu.h
@@ -1,5 +1,4 @@
 #pragma once
-
 /*
  *      Copyright (C) 2005-2013 Team XBMC
  *      http://xbmc.org
@@ -20,13 +19,14 @@
  *
  */
 
+#include "FileItem.h"
 #include <string>
 
-class CDVDInputStream;
-class IDVDPlayer;
-
-class CDVDFactoryInputStream
+class CGUIDialogSimpleMenu
 {
 public:
-  static CDVDInputStream* CreateInputStream(IDVDPlayer* pPlayer, const std::string& file, const std::string& content);
+
+  /*! \brief Show dialog allowing selection of wanted playback item */
+  static bool ShowPlaySelection(CFileItem& item);
+  static bool ShowPlaySelection(CFileItem& item, const std::string& directory);
 };
diff --git a/xbmc/dialogs/Makefile b/xbmc/dialogs/Makefile
index f286370..3a36caa 100644
--- a/xbmc/dialogs/Makefile
+++ b/xbmc/dialogs/Makefile
@@ -19,6 +19,7 @@ SRCS=GUIDialogBoxBase.cpp \
      GUIDialogProgress.cpp \
      GUIDialogSeekBar.cpp \
      GUIDialogSelect.cpp \
+     GUIDialogSimpleMenu.cpp \
      GUIDialogSlider.cpp \
      GUIDialogSmartPlaylistEditor.cpp \
      GUIDialogSmartPlaylistRule.cpp \
diff --git a/xbmc/filesystem/CurlFile.cpp b/xbmc/filesystem/CurlFile.cpp
index 02e962b..3c7d4ba 100644
--- a/xbmc/filesystem/CurlFile.cpp
+++ b/xbmc/filesystem/CurlFile.cpp
@@ -1115,7 +1115,7 @@ bool CCurlFile::Exists(const CURL& url)
   g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_NOBODY, 1);
   g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_WRITEDATA, NULL); /* will cause write failure*/
 
-  if(url2.IsProtocol("ftp"))
+  if(url2.IsProtocol("ftp") || url2.IsProtocol("ftps"))
   {
     g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_FILETIME, 1);
     // nocwd is less standard, will return empty list for non-existed remote dir on some ftp server, avoid it.
diff --git a/xbmc/filesystem/PVRDirectory.cpp b/xbmc/filesystem/PVRDirectory.cpp
index 29f7693..7680f58 100644
--- a/xbmc/filesystem/PVRDirectory.cpp
+++ b/xbmc/filesystem/PVRDirectory.cpp
@@ -118,5 +118,6 @@ bool CPVRDirectory::IsLiveTV(const std::string& strPath)
 
 bool CPVRDirectory::HasRecordings()
 {
-  return g_PVRRecordings->GetNumRecordings() > 0;
+  return g_PVRManager.IsStarted() ? 
+    g_PVRRecordings->GetNumRecordings() > 0 : false;
 }
diff --git a/xbmc/filesystem/SMBDirectory.cpp b/xbmc/filesystem/SMBDirectory.cpp
index 026bd02..ec5b438 100644
--- a/xbmc/filesystem/SMBDirectory.cpp
+++ b/xbmc/filesystem/SMBDirectory.cpp
@@ -128,6 +128,9 @@ bool CSMBDirectory::GetDirectory(const CURL& url, CFileItemList &items)
       if(StringUtils::EndsWith(strFile, "$") && aDir.type == SMBC_FILE_SHARE )
         continue;
 
+      if (StringUtils::StartsWith(strFile, "."))
+        hidden = true;
+
       // only stat files that can give proper responses
       if ( aDir.type == SMBC_FILE ||
            aDir.type == SMBC_DIR )
diff --git a/xbmc/filesystem/posix/PosixFile.cpp b/xbmc/filesystem/posix/PosixFile.cpp
index dd0462b..a1179e0 100644
--- a/xbmc/filesystem/posix/PosixFile.cpp
+++ b/xbmc/filesystem/posix/PosixFile.cpp
@@ -181,12 +181,18 @@ int64_t CPosixFile::Seek(int64_t iFilePosition, int iWhence /* = SEEK_SET*/)
   if (m_fd < 0)
     return -1;
   
+#ifdef TARGET_ANDROID
+  // TODO: properly support with detection in configure
+  // Android special case: Android doesn't substitute off64_t for off_t and similar functions
+  m_filePos = lseek64(m_fd, (off64_t)iFilePosition, iWhence);
+#else  // !TARGET_ANDROID
   const off_t filePosOffT = (off_t) iFilePosition;
   // check for parameter overflow
   if (sizeof(int64_t) != sizeof(off_t) && iFilePosition != filePosOffT)
     return -1;
   
   m_filePos = lseek(m_fd, filePosOffT, iWhence);
+#endif // !TARGET_ANDROID
   
   return m_filePos;
 }
diff --git a/xbmc/filesystem/win32/Win32File.cpp b/xbmc/filesystem/win32/Win32File.cpp
index 0c8b661..c2f8a38 100644
--- a/xbmc/filesystem/win32/Win32File.cpp
+++ b/xbmc/filesystem/win32/Win32File.cpp
@@ -533,9 +533,7 @@ int CWin32File::Stat(const CURL& url, struct __stat64* statData)
     FILE_BASIC_INFO basicInfo;
     if (GetFileInformationByHandleEx(hFile, FileBasicInfo, &basicInfo, sizeof(basicInfo)) != 0)
     {
-      statData->st_mtime = CWIN32Util::fileTimeToTimeT(basicInfo.ChangeTime); // most accurate value
-      if (statData->st_mtime == 0)
-        statData->st_mtime = CWIN32Util::fileTimeToTimeT(basicInfo.LastWriteTime); // less accurate value
+      statData->st_mtime = CWIN32Util::fileTimeToTimeT(basicInfo.LastWriteTime);
       statData->st_atime = CWIN32Util::fileTimeToTimeT(basicInfo.LastAccessTime);
       statData->st_ctime = CWIN32Util::fileTimeToTimeT(basicInfo.CreationTime);
     }
@@ -638,9 +636,7 @@ int CWin32File::Stat(struct __stat64* statData)
   if (GetFileInformationByHandleEx(m_hFile, FileBasicInfo, &basicInfo, sizeof(basicInfo)) == 0)
     return -1; // can't get basic file information
 
-  statData->st_mtime = CWIN32Util::fileTimeToTimeT(basicInfo.ChangeTime); // most accurate value
-  if (statData->st_mtime == 0)
-    statData->st_mtime = CWIN32Util::fileTimeToTimeT(basicInfo.LastWriteTime); // less accurate value
+  statData->st_mtime = CWIN32Util::fileTimeToTimeT(basicInfo.LastWriteTime);
 
   statData->st_atime = CWIN32Util::fileTimeToTimeT(basicInfo.LastAccessTime);
   if (statData->st_atime == 0)
diff --git a/xbmc/guilib/GUIControl.h b/xbmc/guilib/GUIControl.h
index 85bd23b..b303ccc 100644
--- a/xbmc/guilib/GUIControl.h
+++ b/xbmc/guilib/GUIControl.h
@@ -281,6 +281,8 @@ public:
 
   enum GUIVISIBLE { HIDDEN = 0, DELAYED, VISIBLE };
 
+  enum GUISCROLLVALUE { FOCUS = 0, NEVER, ALWAYS };
+
 #ifdef _DEBUG
   virtual void DumpTextureUse() {};
 #endif
diff --git a/xbmc/guilib/GUIControlFactory.cpp b/xbmc/guilib/GUIControlFactory.cpp
index e5ef0e6..96d7f30 100644
--- a/xbmc/guilib/GUIControlFactory.cpp
+++ b/xbmc/guilib/GUIControlFactory.cpp
@@ -745,7 +745,7 @@ CGUIControl* CGUIControlFactory::Create(int parentID, const CRect &rect, TiXmlEl
 
   vector<CAnimation> animations;
 
-  bool bScrollLabel = false;
+  CGUIControl::GUISCROLLVALUE scrollValue = CGUIControl::FOCUS;
   bool bPulse = true;
   unsigned int timePerImage = 0;
   unsigned int fadeTime = 0;
@@ -997,7 +997,11 @@ CGUIControl* CGUIControlFactory::Create(int parentID, const CRect &rect, TiXmlEl
   XMLUtils::GetFloat(pControlNode, "itemgap", buttonGap);
   XMLUtils::GetInt(pControlNode, "movement", iMovementRange);
   GetAspectRatio(pControlNode, "aspectratio", aspect);
-  XMLUtils::GetBoolean(pControlNode, "scroll", bScrollLabel);
+
+  bool alwaysScroll;
+  if (XMLUtils::GetBoolean(pControlNode, "scroll", alwaysScroll))
+    scrollValue = alwaysScroll ? CGUIControl::ALWAYS : CGUIControl::NEVER;
+
   XMLUtils::GetBoolean(pControlNode,"pulseonselect", bPulse);
   XMLUtils::GetInt(pControlNode, "timeblocks", timeBlocks);
   XMLUtils::GetInt(pControlNode, "rulerunit", rulerUnit);
@@ -1128,7 +1132,7 @@ CGUIControl* CGUIControlFactory::Create(int parentID, const CRect &rect, TiXmlEl
     const CGUIInfoLabel &content = (infoLabels.size()) ? infoLabels[0] : CGUIInfoLabel("");
     if (insideContainer)
     { // inside lists we use CGUIListLabel
-      control = new CGUIListLabel(parentID, id, posX, posY, width, height, labelInfo, content, bScrollLabel);
+      control = new CGUIListLabel(parentID, id, posX, posY, width, height, labelInfo, content, scrollValue);
     }
     else
     {
@@ -1136,7 +1140,7 @@ CGUIControl* CGUIControlFactory::Create(int parentID, const CRect &rect, TiXmlEl
         parentID, id, posX, posY, width, height,
         labelInfo, wrapMultiLine, bHasPath);
       ((CGUILabelControl *)control)->SetInfo(content);
-      ((CGUILabelControl *)control)->SetWidthControl(minWidth, bScrollLabel);
+      ((CGUILabelControl *)control)->SetWidthControl(minWidth, (scrollValue == CGUIControl::ALWAYS) ? true : false);
     }
   }
   else if (type == CGUIControl::GUICONTROL_EDIT)
diff --git a/xbmc/guilib/GUIEditControl.cpp b/xbmc/guilib/GUIEditControl.cpp
index 5b10bea..92db3e4 100644
--- a/xbmc/guilib/GUIEditControl.cpp
+++ b/xbmc/guilib/GUIEditControl.cpp
@@ -103,17 +103,6 @@ bool CGUIEditControl::OnMessage(CGUIMessage &message)
     SetLabel2(message.GetLabel());
     UpdateText();
   }
-  else if (message.GetMessage() == GUI_MSG_INPUT_TEXT && !message.GetLabel().empty()
-        && (HasFocus() || message.GetControlId() == GetID()))
-  {
-    m_edit.clear();
-    std::wstring str;
-    g_charsetConverter.utf8ToW(message.GetLabel(), str);
-    m_text2.insert(m_cursorPos, str);
-    m_cursorPos += str.size();
-    UpdateText();
-    return true;
-  }
   else if (message.GetMessage() == GUI_MSG_INPUT_TEXT_EDIT && HasFocus())
   {
     g_charsetConverter.utf8ToW(message.GetLabel(), m_edit);
@@ -292,6 +281,16 @@ bool CGUIEditControl::OnAction(const CAction &action)
       OnSMSCharacter(action.GetID() - REMOTE_0);
       return true;
     }
+    else if (action.GetID() == ACTION_INPUT_TEXT)
+    {
+      m_edit.clear();
+      std::wstring str;
+      g_charsetConverter.utf8ToW(action.GetText(), str);
+      m_text2.insert(m_cursorPos, str);
+      m_cursorPos += str.size();
+      UpdateText();
+      return true;
+    }
   }
   return CGUIButtonControl::OnAction(action);
 }
@@ -747,4 +746,5 @@ void CGUIEditControl::SetFocus(bool focus)
   m_smsTimer.Stop();
   g_Windowing.EnableTextInput(focus);
   CGUIControl::SetFocus(focus);
+  SetInvalid();
 }
diff --git a/xbmc/guilib/GUIListItemLayout.cpp b/xbmc/guilib/GUIListItemLayout.cpp
index 806a26b..e196b68 100644
--- a/xbmc/guilib/GUIListItemLayout.cpp
+++ b/xbmc/guilib/GUIListItemLayout.cpp
@@ -212,10 +212,10 @@ void CGUIListItemLayout::CreateListControlLayouts(float width, float height, boo
   image->SetAspectRatio(CAspectRatio::AR_KEEP);
   m_group.AddControl(image);
   float x = iconWidth + labelInfo.offsetX + 10;
-  CGUIListLabel *label = new CGUIListLabel(0, 0, x, labelInfo.offsetY, width - x - 18, height, labelInfo, CGUIInfoLabel("$INFO[ListItem.Label]", "", m_group.GetParentID()), false);
+  CGUIListLabel *label = new CGUIListLabel(0, 0, x, labelInfo.offsetY, width - x - 18, height, labelInfo, CGUIInfoLabel("$INFO[ListItem.Label]", "", m_group.GetParentID()), CGUIControl::FOCUS);
   m_group.AddControl(label);
   x = labelInfo2.offsetX ? labelInfo2.offsetX : m_width - 16;
-  label = new CGUIListLabel(0, 0, x, labelInfo2.offsetY, x - iconWidth - 20, height, labelInfo2, CGUIInfoLabel("$INFO[ListItem.Label2]", "", m_group.GetParentID()), false);
+  label = new CGUIListLabel(0, 0, x, labelInfo2.offsetY, x - iconWidth - 20, height, labelInfo2, CGUIInfoLabel("$INFO[ListItem.Label2]", "", m_group.GetParentID()), CGUIControl::FOCUS);
   m_group.AddControl(label);
 }
 //#endif
diff --git a/xbmc/guilib/GUIListLabel.cpp b/xbmc/guilib/GUIListLabel.cpp
index 12a3efa..fc08348 100644
--- a/xbmc/guilib/GUIListLabel.cpp
+++ b/xbmc/guilib/GUIListLabel.cpp
@@ -22,12 +22,12 @@
 #include <limits>
 #include "addons/Skin.h"
 
-CGUIListLabel::CGUIListLabel(int parentID, int controlID, float posX, float posY, float width, float height, const CLabelInfo& labelInfo, const CGUIInfoLabel &info, bool alwaysScroll)
+CGUIListLabel::CGUIListLabel(int parentID, int controlID, float posX, float posY, float width, float height, const CLabelInfo& labelInfo, const CGUIInfoLabel &info, CGUIControl::GUISCROLLVALUE scroll)
     : CGUIControl(parentID, controlID, posX, posY, width, height)
-    , m_label(posX, posY, width, height, labelInfo, alwaysScroll ? CGUILabel::OVER_FLOW_SCROLL : CGUILabel::OVER_FLOW_TRUNCATE)
+    , m_label(posX, posY, width, height, labelInfo, (scroll == CGUIControl::ALWAYS) ? CGUILabel::OVER_FLOW_SCROLL : CGUILabel::OVER_FLOW_TRUNCATE)
     , m_info(info)
 {
-  m_alwaysScroll = alwaysScroll;
+  m_scroll = scroll;
   if (g_SkinInfo && g_SkinInfo->APIVersion() < ADDON::AddonVersion("5.1.0"))
   {
     if (labelInfo.align & XBFONT_RIGHT)
@@ -46,7 +46,10 @@ CGUIListLabel::~CGUIListLabel(void)
 
 void CGUIListLabel::SetScrolling(bool scrolling)
 {
-  m_label.SetScrolling(scrolling || m_alwaysScroll);
+  if (m_scroll == CGUIControl::FOCUS)
+    m_label.SetScrolling(scrolling);
+  else
+    m_label.SetScrolling((m_scroll == CGUIControl::ALWAYS) ? true : false);
 }
 
 void CGUIListLabel::SetSelected(bool selected)
diff --git a/xbmc/guilib/GUIListLabel.h b/xbmc/guilib/GUIListLabel.h
index 05b2142..e1aae74 100644
--- a/xbmc/guilib/GUIListLabel.h
+++ b/xbmc/guilib/GUIListLabel.h
@@ -36,7 +36,7 @@ class CGUIListLabel :
       public CGUIControl
 {
 public:
-  CGUIListLabel(int parentID, int controlID, float posX, float posY, float width, float height, const CLabelInfo& labelInfo, const CGUIInfoLabel &label, bool alwaysScroll);
+  CGUIListLabel(int parentID, int controlID, float posX, float posY, float width, float height, const CLabelInfo& labelInfo, const CGUIInfoLabel &label, CGUIControl::GUISCROLLVALUE scroll);
   virtual ~CGUIListLabel(void);
   virtual CGUIListLabel *Clone() const { return new CGUIListLabel(*this); };
 
@@ -64,5 +64,5 @@ protected:
 
   CGUILabel     m_label;
   CGUIInfoLabel m_info;
-  bool          m_alwaysScroll;
+  CGUIControl::GUISCROLLVALUE m_scroll;
 };
diff --git a/xbmc/guilib/GUISpinControl.cpp b/xbmc/guilib/GUISpinControl.cpp
index b3ca0c7..7312e16 100644
--- a/xbmc/guilib/GUISpinControl.cpp
+++ b/xbmc/guilib/GUISpinControl.cpp
@@ -438,6 +438,7 @@ void CGUISpinControl::Process(unsigned int currentTime, CDirtyRegionList &dirtyr
   changed |= m_imgspinDown.Process(currentTime);
   changed |= m_imgspinUp.Process(currentTime);
   changed |= m_imgspinUpFocus.Process(currentTime);
+  changed |= m_label.Process(currentTime);
 
   if (changed)
     MarkDirtyRegion();
diff --git a/xbmc/guilib/GUITextBox.cpp b/xbmc/guilib/GUITextBox.cpp
index b7ef051..c0e2fa5 100644
--- a/xbmc/guilib/GUITextBox.cpp
+++ b/xbmc/guilib/GUITextBox.cpp
@@ -227,7 +227,7 @@ void CGUITextBox::Render()
         uint32_t align = m_label.align;
         if (m_lines[current].m_text.size() && m_lines[current].m_carriageReturn)
           align &= ~XBFONT_JUSTIFIED; // last line of a paragraph shouldn't be justified
-        m_font->DrawText(posX, posY + 2, m_colors, m_label.shadowColor, m_lines[current].m_text, align, m_width);
+        m_font->DrawText(posX, posY, m_colors, m_label.shadowColor, m_lines[current].m_text, align, m_width);
         posY += m_itemHeight;
         current++;
       }
diff --git a/xbmc/guilib/Key.h b/xbmc/guilib/Key.h
index 1a6e46d..9e0873c 100644
--- a/xbmc/guilib/Key.h
+++ b/xbmc/guilib/Key.h
@@ -346,6 +346,7 @@
 #define ACTION_SETTINGS_LEVEL_CHANGE  242
 
 #define ACTION_TRIGGER_OSD            243 // show autoclosing OSD. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_INPUT_TEXT             244
 
 // touch actions
 #define ACTION_TOUCH_TAP              401
@@ -417,6 +418,16 @@ public:
    \return name of the action
    */
   const CStdString &GetName() const { return m_name; };
+  
+  /*! \brief Text of the action if any
+   \return text payload of this action.
+   */
+  const std::string &GetText() const { return m_text; };
+  
+  /*! \brief Set the text payload of the action
+   \param text to be set
+   */
+  void SetText(const std::string &text) { m_text = text; };
 
   /*! \brief Get an amount associated with this action
    \param zero-based index of amount to retrieve, defaults to 0
@@ -455,6 +466,7 @@ private:
   unsigned int m_holdTime;
   unsigned int m_buttonCode;
   wchar_t      m_unicode;
+  std::string  m_text;
 };
 
 /*!
diff --git a/xbmc/interfaces/json-rpc/PlayerOperations.cpp b/xbmc/interfaces/json-rpc/PlayerOperations.cpp
index 4cbdc24..f04351b 100644
--- a/xbmc/interfaces/json-rpc/PlayerOperations.cpp
+++ b/xbmc/interfaces/json-rpc/PlayerOperations.cpp
@@ -596,7 +596,7 @@ JSONRPC_STATUS CPlayerOperations::Open(const std::string &method, ITransportLaye
 
     if ((g_PVRManager.IsPlayingRadio() && channel.get()->IsRadio()) ||
         (g_PVRManager.IsPlayingTV() && !channel.get()->IsRadio()))
-      g_PVRManager.PerformChannelSwitch(*channel.get(), false);
+      g_application.m_pPlayer->SwitchChannel(*channel.get());
     else
       CApplicationMessenger::Get().MediaPlay(CFileItem(*channel.get()));
 
diff --git a/xbmc/interfaces/python/AddonPythonInvoker.cpp b/xbmc/interfaces/python/AddonPythonInvoker.cpp
index 2114428..53c35ab 100644
--- a/xbmc/interfaces/python/AddonPythonInvoker.cpp
+++ b/xbmc/interfaces/python/AddonPythonInvoker.cpp
@@ -37,17 +37,18 @@
         "import " MODULE "\n" \
         "xbmc.abortRequested = False\n" \
         "class xbmcout:\n" \
-        "\tdef __init__(self, loglevel=" MODULE ".LOGNOTICE):\n" \
-        "\t\tself.ll=loglevel\n" \
-        "\tdef write(self, data):\n" \
-        "\t\t" MODULE ".log(data,self.ll)\n" \
-        "\tdef close(self):\n" \
-        "\t\t" MODULE ".log('.')\n" \
-        "\tdef flush(self):\n" \
-        "\t\t" MODULE ".log('.')\n" \
+        "  def __init__(self, loglevel=" MODULE ".LOGNOTICE):\n" \
+        "    self.ll=loglevel\n" \
+        "  def write(self, data):\n" \
+        "    " MODULE ".log(data,self.ll)\n" \
+        "  def close(self):\n" \
+        "    " MODULE ".log('.')\n" \
+        "  def flush(self):\n" \
+        "    " MODULE ".log('.')\n" \
         "import sys\n" \
         "sys.stdout = xbmcout()\n" \
-        "sys.stderr = xbmcout(" MODULE ".LOGERROR)\n"
+        "sys.stderr = xbmcout(" MODULE ".LOGERROR)\n" \
+        ""
 
 #define RUNSCRIPT_OVERRIDE_HACK \
         "" \
@@ -70,16 +71,41 @@
         "os.chdir           = chdir_xbmc\n" \
         ""
 
+#define RUNSCRIPT_SETUPTOOLS_HACK \
+  "" \
+  "import imp,sys\n" \
+  "pkg_resources_code = \\\n" \
+  "\"\"\"\n" \
+  "def resource_filename(__name__,__path__):\n" \
+  "  return __path__\n" \
+  "\"\"\"\n" \
+  "pkg_resources = imp.new_module('pkg_resources')\n" \
+  "exec pkg_resources_code in pkg_resources.__dict__\n" \
+  "sys.modules['pkg_resources'] = pkg_resources\n" \
+  ""
+
 #define RUNSCRIPT_POSTSCRIPT \
         "print '-->Python Interpreter Initialized<--'\n" \
         ""
 
+#if defined(TARGET_ANDROID)
+
+#define RUNSCRIPT_BWCOMPATIBLE \
+  RUNSCRIPT_PRAMBLE RUNSCRIPT_OVERRIDE_HACK RUNSCRIPT_SETUPTOOLS_HACK RUNSCRIPT_POSTSCRIPT
+
+#define RUNSCRIPT_COMPLIANT \
+  RUNSCRIPT_PRAMBLE RUNSCRIPT_SETUPTOOLS_HACK RUNSCRIPT_POSTSCRIPT
+
+#else
+
 #define RUNSCRIPT_BWCOMPATIBLE \
   RUNSCRIPT_PRAMBLE RUNSCRIPT_OVERRIDE_HACK RUNSCRIPT_POSTSCRIPT
 
 #define RUNSCRIPT_COMPLIANT \
   RUNSCRIPT_PRAMBLE RUNSCRIPT_POSTSCRIPT
 
+#endif
+
 namespace PythonBindings {
   void initModule_xbmcgui(void);
   void initModule_xbmc(void);
diff --git a/xbmc/music/GUIViewStateMusic.cpp b/xbmc/music/GUIViewStateMusic.cpp
index 51406c7..4d25e49 100644
--- a/xbmc/music/GUIViewStateMusic.cpp
+++ b/xbmc/music/GUIViewStateMusic.cpp
@@ -87,7 +87,7 @@ CGUIViewStateMusicSearch::CGUIViewStateMusicSearch(const CFileItemList& items) :
     sortAttribute = SortAttributeIgnoreArticle;
 
   AddSortMethod(SortByTitle, sortAttribute, 556, LABEL_MASKS("%T - %A", "%D", "%L", "%A"));  // Title, Artist, Duration| empty, empty
-  SetSortMethod(SortByTitle, sortAttribute);
+  SetSortMethod(SortByTitle);
 
   const CViewState *viewState = CViewStateSettings::Get().Get("musicnavsongs");
   SetViewAsControl(viewState->m_viewMode);
@@ -172,7 +172,7 @@ CGUIViewStateMusicDatabase::CGUIViewStateMusicDatabase(const CFileItemList& item
   case NODE_TYPE_ARTIST:
     {
       AddSortMethod(SortByArtist, sortAttribute, 557, LABEL_MASKS("%F", "", "%A", ""));  // Filename, empty | Artist, empty
-      SetSortMethod(SortByArtist, sortAttribute);
+      SetSortMethod(SortByArtist);
 
       const CViewState *viewState = CViewStateSettings::Get().Get("musicnavartists");
       SetViewAsControl(viewState->m_viewMode);
@@ -277,7 +277,7 @@ CGUIViewStateMusicDatabase::CGUIViewStateMusicDatabase(const CFileItemList& item
       // the "All Albums" entries always default to SortByAlbum as this is most logical - user can always
       // change it and the change will be saved for this particular path
       if (dir.IsAllItem(items.GetPath()))
-        SetSortMethod(SortByAlbum, sortAttribute);
+        SetSortMethod(SortByAlbum);
       else
         SetSortMethod(viewState->m_sortDescription);
 
@@ -560,7 +560,7 @@ CGUIViewStateWindowMusicSongs::CGUIViewStateWindowMusicSongs(const CFileItemList
   else if (items.GetPath() == "special://musicplaylists/")
   { // playlists list sorts by label only, ignoring folders
     AddSortMethod(SortByLabel, SortAttributeIgnoreFolders, 551, LABEL_MASKS("%F", "%D", "%L", ""));  // Filename, Duration | Foldername, empty
-    SetSortMethod(SortByLabel, SortAttributeIgnoreFolders);
+    SetSortMethod(SortByLabel);
   }
   else
   {
diff --git a/xbmc/network/upnp/UPnPRenderer.cpp b/xbmc/network/upnp/UPnPRenderer.cpp
index 7aeb034..85eac03 100644
--- a/xbmc/network/upnp/UPnPRenderer.cpp
+++ b/xbmc/network/upnp/UPnPRenderer.cpp
@@ -625,7 +625,7 @@ CUPnPRenderer::PlayMedia(const NPT_String& uri, const NPT_String& meta, PLT_Acti
     if (item->IsPicture()) {
         CApplicationMessenger::Get().PictureShow(item->GetPath());
     } else {
-        CApplicationMessenger::Get().MediaPlay(*item);
+        CApplicationMessenger::Get().MediaPlay(*item, false);
     }
 
     if (g_application.m_pPlayer->IsPlaying() || g_windowManager.GetActiveWindow() == WINDOW_SLIDESHOW) {
diff --git a/xbmc/osx/OSXTextInputResponder.mm b/xbmc/osx/OSXTextInputResponder.mm
index 49e9030..b77e568 100644
--- a/xbmc/osx/OSXTextInputResponder.mm
+++ b/xbmc/osx/OSXTextInputResponder.mm
@@ -27,6 +27,8 @@
 #include "guilib/GUIWindowManager.h"
 #include "GUIUserMessages.h"
 #include "utils/log.h"
+#include "ApplicationMessenger.h"
+#include "guilib/key.h"
 #undef BOOL
 
 void SendKeyboardText(const char *text)
@@ -37,9 +39,12 @@ void SendKeyboardText(const char *text)
   if ((unsigned char)*text < ' ' || *text == 127)
     return;
 
-  CGUIMessage msg(GUI_MSG_INPUT_TEXT, 0, 0);
-  msg.SetLabel(text);
-  g_windowManager.SendThreadMessage(msg, g_windowManager.GetFocusedWindow());
+  ThreadMessage tMsg = {TMSG_GUI_ACTION};
+  tMsg.param1 = WINDOW_INVALID;
+  CAction *action = new CAction(ACTION_INPUT_TEXT);
+  action->SetText(text);
+  tMsg.lpVoid = action;
+  CApplicationMessenger::Get().SendMessage(tMsg, false);
 }
 
 void SendEditingText(const char *text, unsigned int location, unsigned int length)
diff --git a/xbmc/pvr/windows/GUIWindowPVRBase.cpp b/xbmc/pvr/windows/GUIWindowPVRBase.cpp
index a47cd99..e8e2a0c 100644
--- a/xbmc/pvr/windows/GUIWindowPVRBase.cpp
+++ b/xbmc/pvr/windows/GUIWindowPVRBase.cpp
@@ -91,7 +91,7 @@ bool CGUIWindowPVRBase::OnAction(const CAction &action)
     case ACTION_PREVIOUS_CHANNELGROUP:
     case ACTION_NEXT_CHANNELGROUP:
       // switch to next or previous group
-      SetGroup(ACTION_NEXT_CHANNELGROUP ? m_group->GetNextGroup() : m_group->GetPreviousGroup());
+      SetGroup(action.GetID() == ACTION_NEXT_CHANNELGROUP ? m_group->GetNextGroup() : m_group->GetPreviousGroup());
       return true;
   }
 
diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
index 478d725..a1b68b5 100644
--- a/xbmc/settings/AdvancedSettings.cpp
+++ b/xbmc/settings/AdvancedSettings.cpp
@@ -281,6 +281,7 @@ void CAdvancedSettings::Initialize()
   m_iVideoLibraryRecentlyAddedItems = 25;
   m_bVideoLibraryHideEmptySeries = false;
   m_bVideoLibraryCleanOnUpdate = false;
+  m_bVideoLibraryUseFastHash = true;
   m_bVideoLibraryExportAutoThumbs = false;
   m_bVideoLibraryImportWatchedState = false;
   m_bVideoLibraryImportResumePoint = false;
@@ -764,6 +765,7 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file)
     XMLUtils::GetInt(pElement, "recentlyaddeditems", m_iVideoLibraryRecentlyAddedItems, 1, INT_MAX);
     XMLUtils::GetBoolean(pElement, "hideemptyseries", m_bVideoLibraryHideEmptySeries);
     XMLUtils::GetBoolean(pElement, "cleanonupdate", m_bVideoLibraryCleanOnUpdate);
+    XMLUtils::GetBoolean(pElement, "usefasthash", m_bVideoLibraryUseFastHash);
     XMLUtils::GetString(pElement, "itemseparator", m_videoItemSeparator);
     XMLUtils::GetBoolean(pElement, "exportautothumbs", m_bVideoLibraryExportAutoThumbs);
     XMLUtils::GetBoolean(pElement, "importwatchedstate", m_bVideoLibraryImportWatchedState);
diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h
index ca995e3..ed91aba 100644
--- a/xbmc/settings/AdvancedSettings.h
+++ b/xbmc/settings/AdvancedSettings.h
@@ -279,6 +279,7 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler
     int m_iVideoLibraryRecentlyAddedItems;
     bool m_bVideoLibraryHideEmptySeries;
     bool m_bVideoLibraryCleanOnUpdate;
+    bool m_bVideoLibraryUseFastHash;
     bool m_bVideoLibraryExportAutoThumbs;
     bool m_bVideoLibraryImportWatchedState;
     bool m_bVideoLibraryImportResumePoint;
diff --git a/xbmc/threads/platform/win/ThreadImpl.cpp b/xbmc/threads/platform/win/ThreadImpl.cpp
index 76b60fa..843839f 100644
--- a/xbmc/threads/platform/win/ThreadImpl.cpp
+++ b/xbmc/threads/platform/win/ThreadImpl.cpp
@@ -19,18 +19,22 @@
  */
 
 #include <windows.h>
+#include <process.h>
 #include "threads/platform/win/Win32Exception.h"
+#include "../../win32/WIN32Util.h"
 
 void CThread::SpawnThread(unsigned stacksize)
 {
   // Create in the suspended state, so that no matter the thread priorities and scheduled order, the handle will be assigned
   // before the new thread exits.
-  m_ThreadOpaque.handle = CreateThread(NULL, stacksize, (LPTHREAD_START_ROUTINE)&staticThread, this, CREATE_SUSPENDED, &m_ThreadId);
+  unsigned threadId;
+  m_ThreadOpaque.handle = (HANDLE)_beginthreadex(NULL, stacksize, &staticThread, this, CREATE_SUSPENDED, &threadId);
   if (m_ThreadOpaque.handle == NULL)
   {
     if (logger) logger->Log(LOGERROR, "%s - fatal error %d creating thread", __FUNCTION__, GetLastError());
     return;
   }
+  m_ThreadId = threadId;
 
   if (ResumeThread(m_ThreadOpaque.handle) == -1)
     if (logger) logger->Log(LOGERROR, "%s - fatal error %d resuming thread", __FUNCTION__, GetLastError());
@@ -70,6 +74,8 @@ void CThread::SetThreadInfo()
   {
   }
 
+  CWIN32Util::SetThreadLocalLocale(true); // avoid crashing with setlocale(), see https://connect.microsoft.com/VisualStudio/feedback/details/794122
+
     win32_exception::install_handler();
 }
 
diff --git a/xbmc/threads/platform/win/ThreadImpl.h b/xbmc/threads/platform/win/ThreadImpl.h
index ca423e7..b670df3 100644
--- a/xbmc/threads/platform/win/ThreadImpl.h
+++ b/xbmc/threads/platform/win/ThreadImpl.h
@@ -30,7 +30,7 @@ struct threadOpaque
 
 typedef DWORD ThreadIdentifier;
 typedef threadOpaque ThreadOpaque;
-typedef DWORD THREADFUNC;
+#define THREADFUNC unsigned __stdcall
 
 namespace XbmcThreads
 {
diff --git a/xbmc/utils/JSONVariantWriter.cpp b/xbmc/utils/JSONVariantWriter.cpp
index 5430999..7911457 100644
--- a/xbmc/utils/JSONVariantWriter.cpp
+++ b/xbmc/utils/JSONVariantWriter.cpp
@@ -38,13 +38,23 @@ string CJSONVariantWriter::Write(const CVariant &value, bool compact)
 #endif
 
   // Set locale to classic ("C") to ensure valid JSON numbers
+#ifndef TARGET_WINDOWS
   const char *currentLocale = setlocale(LC_NUMERIC, NULL);
   std::string backupLocale;
-  if (currentLocale != NULL)
+  if (currentLocale != NULL && (currentLocale[0] != 'C' || currentLocale[1] != 0))
   {
     backupLocale = currentLocale;
     setlocale(LC_NUMERIC, "C");
   }
+#else  // TARGET_WINDOWS
+  const wchar_t* const currentLocale = _wsetlocale(LC_NUMERIC, NULL);
+  std::wstring backupLocale;
+  if (currentLocale != NULL && (currentLocale[0] != L'C' || currentLocale[1] != 0))
+  {
+    backupLocale = currentLocale;
+    _wsetlocale(LC_NUMERIC, L"C");
+  }
+#endif // TARGET_WINDOWS
 
   if (InternalWrite(g, value))
   {
@@ -61,8 +71,13 @@ string CJSONVariantWriter::Write(const CVariant &value, bool compact)
   }
 
   // Re-set locale to what it was before using yajl
+#ifndef TARGET_WINDOWS
   if (!backupLocale.empty())
     setlocale(LC_NUMERIC, backupLocale.c_str());
+#else  // TARGET_WINDOWS
+  if (!backupLocale.empty())
+    _wsetlocale(LC_NUMERIC, backupLocale.c_str());
+#endif // TARGET_WINDOWS
 
   yajl_gen_clear(g);
   yajl_gen_free(g);
diff --git a/xbmc/utils/StringUtils.cpp b/xbmc/utils/StringUtils.cpp
index 56bb28e..c2b69c5 100644
--- a/xbmc/utils/StringUtils.cpp
+++ b/xbmc/utils/StringUtils.cpp
@@ -33,6 +33,7 @@
 #include "utils/RegExp.h"
 #include "utils/fstrcmp.h"
 #include "Util.h"
+#include "LangInfo.h"
 #include <locale>
 
 #include <math.h>
@@ -735,7 +736,7 @@ int64_t StringUtils::AlphaNumericCompare(const wchar_t *left, const wchar_t *rig
   wchar_t *ld, *rd;
   wchar_t lc, rc;
   int64_t lnum, rnum;
-  const collate<wchar_t>& coll = use_facet< collate<wchar_t> >( locale() );
+  const collate<wchar_t>& coll = use_facet< collate<wchar_t> >( g_langInfo.GetLocale() );
   int cmp_res = 0;
   while (*l != 0 && *r != 0)
   {
diff --git a/xbmc/utils/URIUtils.cpp b/xbmc/utils/URIUtils.cpp
index 6ab3dbb..bc69356 100644
--- a/xbmc/utils/URIUtils.cpp
+++ b/xbmc/utils/URIUtils.cpp
@@ -308,7 +308,8 @@ bool URIUtils::GetParentPath(const std::string& strPath, std::string& strParent)
   {
     CStackDirectory dir;
     CFileItemList items;
-    dir.GetDirectory(url, items);
+    if (!dir.GetDirectory(url, items))
+      return false;
     items[0]->m_strDVDLabel = GetDirectory(items[0]->GetPath());
     if (IsProtocol(items[0]->m_strDVDLabel, "rar") || IsProtocol(items[0]->m_strDVDLabel, "zip"))
       GetParentPath(items[0]->m_strDVDLabel, strParent);
@@ -419,7 +420,7 @@ std::string URLDecodePath(const std::string& strPath)
   return StringUtils::Join(segments, "/");
 }
 
-std::string URIUtils::ChangeBasePath(const std::string &fromPath, const std::string &fromFile, const std::string &toPath)
+std::string URIUtils::ChangeBasePath(const std::string &fromPath, const std::string &fromFile, const std::string &toPath, const bool &bAddPath /* = true */)
 {
   std::string toFile = fromFile;
 
@@ -443,7 +444,10 @@ std::string URIUtils::ChangeBasePath(const std::string &fromPath, const std::str
   if (!IsDOSPath(fromPath) && IsDOSPath(toPath))
     StringUtils::Replace(toFile, "/", "\\");
 
-  return AddFileToFolder(toPath, toFile);
+  if (bAddPath)
+    return AddFileToFolder(toPath, toFile);
+
+  return toFile;
 }
 
 CURL URIUtils::SubstitutePath(const CURL& url, bool reverse /* = false */)
@@ -497,9 +501,17 @@ bool URIUtils::PathStarts(const std::string& url, const char *start)
   return StringUtils::StartsWith(url, start);
 }
 
-bool URIUtils::PathEquals(const std::string& url, const std::string &start)
+bool URIUtils::PathEquals(const std::string& url, const std::string &start, bool ignoreTrailingSlash /* = false */)
 {
-  return url == start;
+  std::string path1 = url;
+  std::string path2 = start;
+  if (ignoreTrailingSlash)
+  {
+    RemoveSlashAtEnd(path1);
+    RemoveSlashAtEnd(path2);
+  }
+
+  return path1 == path2;
 }
 
 bool URIUtils::IsRemote(const CStdString& strFile)
diff --git a/xbmc/utils/URIUtils.h b/xbmc/utils/URIUtils.h
index 0094709..e921343 100644
--- a/xbmc/utils/URIUtils.h
+++ b/xbmc/utils/URIUtils.h
@@ -78,7 +78,7 @@ public:
     \param toPath the base path of the resulting URL
     \return the full path.
    */
-  static std::string ChangeBasePath(const std::string &fromPath, const std::string &fromFile, const std::string &toPath);
+  static std::string ChangeBasePath(const std::string &fromPath, const std::string &fromFile, const std::string &toPath, const bool &bAddPath = true);
 
   static CURL SubstitutePath(const CURL& url, bool reverse = false);
   static CStdString SubstitutePath(const CStdString& strPath, bool reverse = false);
@@ -106,10 +106,11 @@ public:
    Comparison is case-sensitive.
    \param path1 a std::string path.
    \param path2 the second path the path should be compared against.
+   \param ignoreTrailingSlash ignore any trailing slashes in both paths
    \return true if the paths are equal, false otherwise.
    \sa IsProtocol, PathStarts
    */
-  static bool PathEquals(const std::string& path1, const std::string &path2);
+  static bool PathEquals(const std::string& path1, const std::string &path2, bool ignoreTrailingSlash = false);
 
   static bool IsAddonsPath(const CStdString& strFile);
   static bool IsSourcesPath(const CStdString& strFile);
diff --git a/xbmc/video/GUIViewStateVideo.cpp b/xbmc/video/GUIViewStateVideo.cpp
index d5a0348..21cc661 100644
--- a/xbmc/video/GUIViewStateVideo.cpp
+++ b/xbmc/video/GUIViewStateVideo.cpp
@@ -206,7 +206,7 @@ CGUIViewStateWindowVideoNav::CGUIViewStateWindowVideoNav(const CFileItemList& it
         if (CMediaSettings::Get().GetWatchedMode(items.GetContent()) == WatchedModeAll)
           AddSortMethod(SortByPlaycount, 567, LABEL_MASKS("%T", "%V", "%T", "%V"));  // Title, Playcount | Title, Playcount
 
-        SetSortMethod(SortByLabel, SortAttributeIgnoreArticle);
+        SetSortMethod(SortByLabel);
 
         const CViewState *viewState = CViewStateSettings::Get().Get("videonavgenres");
         SetViewAsControl(viewState->m_viewMode);
@@ -216,7 +216,7 @@ CGUIViewStateWindowVideoNav::CGUIViewStateWindowVideoNav(const CFileItemList& it
     case NODE_TYPE_TAGS:
       {
         AddSortMethod(SortByLabel, sortAttributes, 551, LABEL_MASKS("%T","", "%T",""));  // Title, empty | Title, empty
-        SetSortMethod(SortByLabel, sortAttributes);
+        SetSortMethod(SortByLabel);
         
         const CViewState *viewState = CViewStateSettings::Get().Get("videonavgenres");
         SetViewAsControl(viewState->m_viewMode);
diff --git a/xbmc/video/VideoDatabase.cpp b/xbmc/video/VideoDatabase.cpp
index 21391dd..ffea074 100644
--- a/xbmc/video/VideoDatabase.cpp
+++ b/xbmc/video/VideoDatabase.cpp
@@ -636,6 +636,13 @@ bool CVideoDatabase::GetPathsForTvShow(int idShow, set<int>& paths)
   {
     if (NULL == m_pDB.get()) return false;
     if (NULL == m_pDS.get()) return false;
+
+    // add base path
+    strSQL = PrepareSQL("SELECT strPath FROM tvshow_view WHERE idShow=%i", idShow);
+    if (m_pDS->query(strSQL.c_str()))
+      paths.insert(GetPathId(m_pDS->fv(0).get_asString()));
+
+    // add all other known paths
     strSQL = PrepareSQL("SELECT DISTINCT idPath FROM files JOIN episode ON episode.idFile=files.idFile WHERE episode.idShow=%i",idShow);
     m_pDS->query(strSQL.c_str());
     while (!m_pDS->eof())
@@ -3239,6 +3246,9 @@ void CVideoDatabase::DeleteTvShow(int idTvShow, bool bKeepId /* = false */)
 
     BeginTransaction();
 
+    set<int> paths;
+    GetPathsForTvShow(idTvShow, paths);
+
     CStdString strSQL=PrepareSQL("SELECT episode.idEpisode FROM episode WHERE episode.idShow=%i",idTvShow);
     m_pDS2->query(strSQL.c_str());
     while (!m_pDS2->eof())
@@ -3264,9 +3274,6 @@ void CVideoDatabase::DeleteTvShow(int idTvShow, bool bKeepId /* = false */)
       strSQL=PrepareSQL("delete from movielinktvshow where idShow=%i", idTvShow);
       m_pDS->exec(strSQL.c_str());
 
-      // TODO: why do we invalidate the path hash here??
-      set<int> paths;
-      GetPathsForTvShow(idTvShow, paths);
       for (set<int>::const_iterator i = paths.begin(); i != paths.end(); ++i)
       {
         std::string path = GetSingleValue(PrepareSQL("SELECT strPath FROM path WHERE idPath=%i", *i));
@@ -3359,6 +3366,11 @@ void CVideoDatabase::DeleteEpisode(int idEpisode, bool bKeepId /* = false */)
     // the ancilliary tables are still purged
     if (!bKeepId)
     {
+      int idFile = GetDbId(PrepareSQL("SELECT idFile FROM episode WHERE idEpisode=%i", idEpisode));
+      std::string path = GetSingleValue(PrepareSQL("SELECT strPath FROM path JOIN files ON files.idPath=path.idPath WHERE files.idFile=%i", idFile));
+      if (!path.empty())
+        InvalidatePathHash(path);
+
       strSQL=PrepareSQL("delete from episode where idEpisode=%i", idEpisode);
       m_pDS->exec(strSQL.c_str());
     }
@@ -4311,7 +4323,7 @@ bool CVideoDatabase::GetStackTimes(const CStdString &filePath, vector<int> &time
 }
 
 /// \brief Sets the stack times for a particular video file
-void CVideoDatabase::SetStackTimes(const CStdString& filePath, vector<int> &times)
+void CVideoDatabase::SetStackTimes(const CStdString& filePath, const vector<int> &times)
 {
   try
   {
@@ -7457,7 +7469,9 @@ bool CVideoDatabase::GetRandomMusicVideo(CFileItem* item, int& idSong, const CSt
     if (NULL == m_pDS.get()) return false;
 
     // We don't use PrepareSQL here, as the WHERE clause is already formatted.
-    CStdString strSQL = StringUtils::Format("select * from musicvideoview where %s", strWhere.c_str());
+    CStdString strSQL = "select * from musicvideoview";
+    if (!strWhere.empty())
+      strSQL += PrepareSQL(" where %s", strWhere.c_str());
     strSQL += PrepareSQL(" order by RANDOM() limit 1");
     CLog::Log(LOGDEBUG, "%s query = %s", __FUNCTION__, strSQL.c_str());
     // run query
diff --git a/xbmc/video/VideoDatabase.h b/xbmc/video/VideoDatabase.h
index 78259ed..b64392a 100644
--- a/xbmc/video/VideoDatabase.h
+++ b/xbmc/video/VideoDatabase.h
@@ -515,7 +515,7 @@ public:
   void EraseVideoSettings(const std::string &path = "");
 
   bool GetStackTimes(const CStdString &filePath, std::vector<int> &times);
-  void SetStackTimes(const CStdString &filePath, std::vector<int> &times);
+  void SetStackTimes(const CStdString &filePath, const std::vector<int> &times);
 
   void GetBookMarksForFile(const CStdString& strFilenameAndPath, VECBOOKMARKS& bookmarks, CBookmark::EType type = CBookmark::STANDARD, bool bAppend=false, long partNumber=0);
   void AddBookMarkToFile(const CStdString& strFilenameAndPath, const CBookmark &bookmark, CBookmark::EType type = CBookmark::STANDARD);
diff --git a/xbmc/video/VideoInfoScanner.cpp b/xbmc/video/VideoInfoScanner.cpp
index cb6a4fe..32c223d 100644
--- a/xbmc/video/VideoInfoScanner.cpp
+++ b/xbmc/video/VideoInfoScanner.cpp
@@ -156,6 +156,7 @@ namespace VIDEO
         }
       }
 
+      g_infoManager.ResetLibraryBools();
       m_database.Close();
 
       tick = XbmcThreads::SystemClockMillis() - tick;
@@ -194,10 +195,20 @@ namespace VIDEO
     }
     else
     { // scan all the paths of this subtree that is in the database
-      vector< pair<int, string> > subpaths;
-      m_database.GetSubPaths(m_strStartDir, subpaths);
-      for (vector< pair<int, string> >::iterator it = subpaths.begin(); it < subpaths.end(); ++it)
-        m_pathsToScan.insert(it->second);
+      vector<string> rootDirs;
+      if (URIUtils::IsMultiPath(strDirectory))
+        CMultiPathDirectory::GetPaths(strDirectory, rootDirs);
+      else
+        rootDirs.push_back(strDirectory);
+
+      for (vector<string>::const_iterator it = rootDirs.begin(); it < rootDirs.end(); ++it)
+      {
+        m_pathsToScan.insert(*it);
+        vector< pair<int, string> > subpaths;
+        m_database.GetSubPaths(*it, subpaths);
+        for (vector< pair<int, string> >::iterator it = subpaths.begin(); it < subpaths.end(); ++it)
+          m_pathsToScan.insert(it->second);
+      }
     }
     m_database.Close();
     m_bClean = g_advancedSettings.m_bVideoLibraryCleanOnUpdate;
@@ -307,7 +318,10 @@ namespace VIDEO
         m_handle->SetTitle(StringUtils::Format(g_localizeStrings.Get(str).c_str(), info->Name().c_str()));
       }
 
-      CStdString fastHash = GetFastHash(strDirectory, regexps);
+      CStdString fastHash;
+      if (g_advancedSettings.m_bVideoLibraryUseFastHash)
+        fastHash = GetFastHash(strDirectory, regexps);
+
       if (m_database.GetPathHash(strDirectory, dbHash) && !fastHash.empty() && fastHash == dbHash)
       { // fast hashes match - no need to process anything
         hash = fastHash;
@@ -357,10 +371,7 @@ namespace VIDEO
         GetPathHash(items, hash);
         bSkip = true;
         if (!m_database.GetPathHash(strDirectory, dbHash) || dbHash != hash)
-        {
-          m_database.SetPathHash(strDirectory, hash);
           bSkip = false;
-        }
         else
           items.Clear();
       }
@@ -509,7 +520,6 @@ namespace VIDEO
     if(pDlgProgress)
       pDlgProgress->ShowProgressBar(false);
 
-    g_infoManager.ResetLibraryBools();
     m_database.Close();
     return FoundSomeInfo;
   }
@@ -719,7 +729,9 @@ namespace VIDEO
         m_pathsToScan.erase(it);
 
       CStdString hash, dbHash;
-      hash = GetRecursiveFastHash(item->GetPath(), regexps);
+      if (g_advancedSettings.m_bVideoLibraryUseFastHash)
+        hash = GetRecursiveFastHash(item->GetPath(), regexps);
+
       if (m_database.GetPathHash(item->GetPath(), dbHash) && !hash.empty() && dbHash == hash)
       {
         // fast hashes match - no need to process anything
@@ -1766,6 +1778,9 @@ namespace VIDEO
 
   bool CVideoInfoScanner::CanFastHash(const CFileItemList &items, const vector<string> &excludes) const
   {
+    if (!g_advancedSettings.m_bVideoLibraryUseFastHash)
+      return false;
+
     for (int i = 0; i < items.Size(); ++i)
     {
       if (items[i]->m_bIsFolder && !CUtil::ExcludeFileOrFolder(items[i]->GetPath(), excludes))
diff --git a/xbmc/video/VideoReferenceClock.cpp b/xbmc/video/VideoReferenceClock.cpp
index 06d9ff4..d9ab66a 100644
--- a/xbmc/video/VideoReferenceClock.cpp
+++ b/xbmc/video/VideoReferenceClock.cpp
@@ -281,6 +281,7 @@ void CVideoReferenceClock::UpdateRefreshrate()
 {
   CSingleLock SingleLock(m_CritSection);
   m_RefreshRate = m_pVideoSync->GetFps();
+  m_ClockSpeed = 1.0;
 
   CLog::Log(LOGDEBUG, "CVideoReferenceClock: Detected refreshrate: %.3f hertz", m_RefreshRate);
 }
diff --git a/xbmc/video/dialogs/GUIDialogVideoInfo.cpp b/xbmc/video/dialogs/GUIDialogVideoInfo.cpp
index 6269936..67430b4 100644
--- a/xbmc/video/dialogs/GUIDialogVideoInfo.cpp
+++ b/xbmc/video/dialogs/GUIDialogVideoInfo.cpp
@@ -1224,21 +1224,10 @@ bool CGUIDialogVideoInfo::DeleteVideoItemFromDatabase(const CFileItemPtr &item,
       break;
     case VIDEODB_CONTENT_MOVIE_SETS:
       database.DeleteSet(item->GetVideoInfoTag()->m_iDbId);
-      return true; // no need to invalidate path hashes
+      break;
     default:
       return false;
   }
-
-  CStdString path;
-  database.GetFilePathById(item->GetVideoInfoTag()->m_iDbId, path, type);
-  if (!path.empty())
-  {
-    if (type == VIDEODB_CONTENT_TVSHOWS)
-      database.SetPathHash(path,"");
-    else
-      database.SetPathHash(URIUtils::GetDirectory(path), "");
-  }
-
   return true;
 }
 
@@ -1928,6 +1917,7 @@ bool CGUIDialogVideoInfo::OnGetFanart(const CFileItemPtr &videoItem)
     CStdString baseDir = StringUtils::Format("videodb://movies/sets/%d", videoItem->GetVideoInfoTag()->m_iDbId);
     if (videodb.GetMoviesNav(baseDir, movies))
     {
+      int iFanart = 0;
       for (int i=0; i < movies.Size(); i++)
       {
         // ensure the fanart is unpacked
@@ -1936,7 +1926,7 @@ bool CGUIDialogVideoInfo::OnGetFanart(const CFileItemPtr &videoItem)
         // Grab the thumbnails from the web
         for (unsigned int j = 0; j < movies[i]->GetVideoInfoTag()->m_fanart.GetNumFanarts(); j++)
         {
-          CStdString strItemPath = StringUtils::Format("fanart://Remote%i",j);
+          CStdString strItemPath = StringUtils::Format("fanart://Remote%i",iFanart++);
           CFileItemPtr item(new CFileItem(strItemPath, false));
           CStdString thumb = movies[i]->GetVideoInfoTag()->m_fanart.GetPreviewURL(j);
           item->SetArt("thumb", CTextureUtils::GetWrappedThumbURL(thumb));
diff --git a/xbmc/video/videosync/VideoSyncCocoa.cpp b/xbmc/video/videosync/VideoSyncCocoa.cpp
index 1e28183..f481f87 100644
--- a/xbmc/video/videosync/VideoSyncCocoa.cpp
+++ b/xbmc/video/videosync/VideoSyncCocoa.cpp
@@ -27,10 +27,8 @@
 #include "video/VideoReferenceClock.h"
 #include "utils/TimeUtils.h"
 
-//ios specifics
-#if defined(TARGET_DARWIN_IOS)
 #include "windowing/WindowingFactory.h"
-#endif
+#include "guilib/GraphicContext.h"
 
 //osx specifics
 #if defined(TARGET_DARWIN_OSX)
@@ -61,13 +59,6 @@ void CVideoSyncCocoa::VblankHandler(int64_t nowtime, double fps)
 {
   int           NrVBlanks;
   double        VBlankTime;
-  int           RefreshRate = MathUtils::round_int(fps);
-  
-  if (RefreshRate != MathUtils::round_int(m_fps))
-  {
-    CLog::Log(LOGDEBUG, "CVideoSyncCocoa: Detected refreshrate: %f hertz, rounding to %i hertz", fps, RefreshRate);
-    UpdateFPS(fps);
-  }
   
   //calculate how many vblanks happened
   VBlankTime = (double)(nowtime - m_LastVBlankTime) / (double)g_VideoReferenceClock.GetFrequency();
@@ -82,34 +73,35 @@ void CVideoSyncCocoa::VblankHandler(int64_t nowtime, double fps)
 
 bool CVideoSyncCocoa::Setup(PUPDATECLOCK func)
 {
-  CLog::Log(LOGDEBUG, "CVideoSyncCocoa: setting up Cocoa");
+  CLog::Log(LOGDEBUG, "CVideoSyncCocoa::%s - setting up Cocoa", __FUNCTION__);
+  bool setupOk = false;
 
   //init the vblank timestamp
   m_LastVBlankTime = CurrentHostCounter();
   UpdateClock = func;
+  m_abort = false;
   
 #if defined(TARGET_DARWIN_IOS)
-  {
-    g_Windowing.InitDisplayLink(this);
-  }
+  g_Windowing.InitDisplayLink(this);
+  setupOk = true;
 #else
-  if (!Cocoa_CVDisplayLinkCreate((void*)DisplayLinkCallBack, reinterpret_cast<void*>(this)))
-  {
-    CLog::Log(LOGDEBUG, "CVideoSyncCocoa: Cocoa_CVDisplayLinkCreate failed");
-    return false;
-  }
+  setupOk = Cocoa_CVDisplayLinkCreate((void*)DisplayLinkCallBack, reinterpret_cast<void*>(this));
+  if (setupOk)
+    g_Windowing.Register(this);
   else
+    CLog::Log(LOGDEBUG, "CVideoSyncCocoa::%s Cocoa_CVDisplayLinkCreate failed", __FUNCTION__);
 #endif
-  {
-    GetFps();//UpdateRefreshrate(true); - FIXME?NEEDED?
-    return true;
-  }
+
+  if (setupOk)
+    GetFps();
+
+  return setupOk;
 }
 
 void CVideoSyncCocoa::Run(volatile bool& stop)
 {
   //because cocoa has a vblank callback, we just keep sleeping until we're asked to stop the thread
-  while(!stop)
+  while(!stop && !m_abort)
   {
     Sleep(1000);
   }
@@ -117,33 +109,28 @@ void CVideoSyncCocoa::Run(volatile bool& stop)
 
 void CVideoSyncCocoa::Cleanup()
 {
-  CLog::Log(LOGDEBUG, "CVideoSyncCocoa: cleaning up Cocoa");
+  CLog::Log(LOGDEBUG, "CVideoSyncCocoa::%s cleaning up Cocoa", __FUNCTION__);
 #if defined(TARGET_DARWIN_IOS)
   g_Windowing.DeinitDisplayLink();
 #else
   Cocoa_CVDisplayLinkRelease();
+  g_Windowing.Unregister(this);
 #endif
 }
 
-void CVideoSyncCocoa::UpdateFPS(double fps)
+void CVideoSyncCocoa::OnResetDevice()
 {
-  int fpsInt = MathUtils::round_int(fps);
-
-  if (fpsInt != MathUtils::round_int(m_fps))
-  {
-    CLog::Log(LOGDEBUG, "CVideoSyncCocoa: Detected refreshrate: %i hertz", fpsInt);
-    m_fps = fpsInt;
-  }
+  m_abort = true;
 }
 
 float CVideoSyncCocoa::GetFps()
 {
 #if defined(TARGET_DARWIN_IOS)
-  UpdateFPS(g_Windowing.GetDisplayLinkFPS() + 0.5);
+  m_fps = g_Windowing.GetDisplayLinkFPS();
 #else
-  UpdateFPS(Cocoa_GetCVDisplayLinkRefreshPeriod());
+  m_fps = g_graphicsContext.GetFPS();
 #endif
-
+  CLog::Log(LOGDEBUG, "CVideoSyncCocoa::%s Detected refreshrate: %f hertz", __FUNCTION__, m_fps);
   return m_fps;
 }
 
diff --git a/xbmc/video/videosync/VideoSyncCocoa.h b/xbmc/video/videosync/VideoSyncCocoa.h
index a7ddc73..6618d3d 100644
--- a/xbmc/video/videosync/VideoSyncCocoa.h
+++ b/xbmc/video/videosync/VideoSyncCocoa.h
@@ -21,7 +21,9 @@
 
 #if defined(TARGET_DARWIN)
 #include "VideoSync.h"
-class CVideoSyncCocoa : public CVideoSync
+#include "guilib/DispResource.h"
+
+class CVideoSyncCocoa : public CVideoSync, IDispResource
 {
 public:
   virtual bool Setup(PUPDATECLOCK func);
@@ -29,9 +31,10 @@ public:
   virtual void Cleanup();
   virtual float GetFps();
   void VblankHandler(int64_t nowtime, double fps);
+  virtual void OnResetDevice();
 private:
-  void UpdateFPS(double fps);
   int64_t m_LastVBlankTime;  //timestamp of the last vblank, used for calculating how many vblanks happened
+  volatile bool m_abort;
 };
 
 #endif
diff --git a/xbmc/video/windows/GUIWindowVideoBase.cpp b/xbmc/video/windows/GUIWindowVideoBase.cpp
index ca9d839..9a848af 100644
--- a/xbmc/video/windows/GUIWindowVideoBase.cpp
+++ b/xbmc/video/windows/GUIWindowVideoBase.cpp
@@ -76,7 +76,6 @@
 #include "GUIInfoManager.h"
 #include "utils/GroupUtils.h"
 #include "filesystem/File.h"
-#include "settings/DiscSettings.h"
 
 using namespace std;
 using namespace XFILE;
@@ -779,11 +778,6 @@ void CGUIWindowVideoBase::AddItemToPlayList(const CFileItemPtr &pItem, CFileItem
     if (!mediapath.empty())
     {
       CFileItemPtr item(new CFileItem(mediapath, false));
-      if (StringUtils::EndsWithNoCase(mediapath, "index.bdmv"))
-      {
-        if (!ShowPlaySelection(item))
-          return;
-      }
       queuedItems.Add(item);
       return;
     }
@@ -1088,102 +1082,6 @@ bool CGUIWindowVideoBase::ShowResumeMenu(CFileItem &item)
   return true;
 }
 
-bool CGUIWindowVideoBase::ShowPlaySelection(CFileItemPtr& item)
-{
-  /* if asked to resume somewhere, we should not show anything */
-  if (item->m_lStartOffset)
-    return true;
-
-  if (CSettings::Get().GetInt("disc.playback") != BD_PLAYBACK_SIMPLE_MENU)
-    return true;
-
-  CStdString path;
-  if (item->IsVideoDb())
-    path = item->GetVideoInfoTag()->m_strFileNameAndPath;
-  else
-    path = item->GetPath();
-
-  if (item->IsBDFile())
-  {
-    CStdString root = URIUtils::GetParentPath(path);
-    URIUtils::RemoveSlashAtEnd(root);
-    if(URIUtils::GetFileName(root) == "BDMV")
-    {
-      CURL url("bluray://");
-      url.SetHostName(URIUtils::GetParentPath(root));
-      return ShowPlaySelection(item, url.Get());
-    }
-  }
-
-  if (item->IsDiscImage())
-  {
-    CURL url2("udf://");
-    url2.SetHostName(item->GetPath());
-    url2.SetFileName("BDMV/index.bdmv");
-    if (CFile::Exists(url2.Get()))
-    {
-      url2.SetFileName("");
-
-      CURL url("bluray://");
-      url.SetHostName(url2.Get());
-      return ShowPlaySelection(item, url.Get());
-    }
-  }
-  return true;
-}
-
-bool CGUIWindowVideoBase::ShowPlaySelection(CFileItemPtr& item, const CStdString& directory)
-{
-
-  CFileItemList items;
-
-  if (!XFILE::CDirectory::GetDirectory(directory, items, XFILE::CDirectory::CHints(), true))
-  {
-    CLog::Log(LOGERROR, "CGUIWindowVideoBase::ShowPlaySelection - Failed to get play directory for %s", directory.c_str());
-    return true;
-  }
-
-  if (items.Size() == 0)
-  {
-    CLog::Log(LOGERROR, "CGUIWindowVideoBase::ShowPlaySelection - Failed to get any items %s", directory.c_str());
-    return true;
-  }
-
-  CGUIDialogSelect* dialog = (CGUIDialogSelect*)g_windowManager.GetWindow(WINDOW_DIALOG_SELECT);
-  while(true)
-  {
-    dialog->Reset();
-    dialog->SetHeading(25006 /* Select playback item */);
-    dialog->SetItems(&items);
-    dialog->SetUseDetails(true);
-    dialog->DoModal();
-
-    CFileItemPtr item_new = dialog->GetSelectedItem();
-    if(!item_new || dialog->GetSelectedLabel() < 0)
-    {
-      CLog::Log(LOGDEBUG, "CGUIWindowVideoBase::ShowPlaySelection - User aborted %s", directory.c_str());
-      break;
-    }
-
-    if(item_new->m_bIsFolder == false)
-    {
-      item.reset(new CFileItem(*item));
-      item->SetProperty("original_listitem_url", item->GetPath());
-      item->SetPath(item_new->GetPath());
-      return true;
-    }
-
-    items.Clear();
-    if(!XFILE::CDirectory::GetDirectory(item_new->GetPath(), items, XFILE::CDirectory::CHints(), true) || items.Size() == 0)
-    {
-      CLog::Log(LOGERROR, "CGUIWindowVideoBase::ShowPlaySelection - Failed to get any items %s", item_new->GetPath().c_str());
-      break;
-    }
-  }
-
-  return false;
-}
-
 bool CGUIWindowVideoBase::OnResumeItem(int iItem)
 {
   if (iItem < 0 || iItem >= m_vecItems->Size()) return true;
@@ -1584,8 +1482,6 @@ bool CGUIWindowVideoBase::OnPlayAndQueueMedia(const CFileItemPtr &item)
      g_playlistPlayer.SetShuffle(iPlaylist, false);
 
   CFileItemPtr movieItem(new CFileItem(*item));
-  if(!ShowPlaySelection(movieItem))
-    return false;
 
   // Call the base method to actually queue the items
   // and start playing the given item
@@ -1596,9 +1492,6 @@ void CGUIWindowVideoBase::PlayMovie(const CFileItem *item)
 {
   CFileItemPtr movieItem(new CFileItem(*item));
 
-  if(!ShowPlaySelection(movieItem))
-    return;
-
   g_playlistPlayer.Reset();
   g_playlistPlayer.SetCurrentPlaylist(PLAYLIST_VIDEO);
   CPlayList& playlist = g_playlistPlayer.GetPlaylist(PLAYLIST_VIDEO);
diff --git a/xbmc/video/windows/GUIWindowVideoBase.h b/xbmc/video/windows/GUIWindowVideoBase.h
index 0143910..813c1f9 100644
--- a/xbmc/video/windows/GUIWindowVideoBase.h
+++ b/xbmc/video/windows/GUIWindowVideoBase.h
@@ -51,10 +51,6 @@ public:
   void AddToDatabase(int iItem);
   virtual void OnInfo(CFileItem* pItem, const ADDON::ScraperPtr& scraper);
 
-  /*! \brief Show dialog allowing selection of wanted playback item */
-  static bool ShowPlaySelection(CFileItemPtr& item);
-  static bool ShowPlaySelection(CFileItemPtr& item, const CStdString& directory);
-
 
   /*! \brief Show the resume menu for this item (if it has a resume bookmark)
    If a resume bookmark is found, we set the item's m_lStartOffset to STARTOFFSET_RESUME.
diff --git a/xbmc/view/GUIViewState.cpp b/xbmc/view/GUIViewState.cpp
index d2aba54..68f4993 100644
--- a/xbmc/view/GUIViewState.cpp
+++ b/xbmc/view/GUIViewState.cpp
@@ -309,17 +309,15 @@ void CGUIViewState::SetCurrentSortMethod(int method)
   if (sortBy < SortByNone || sortBy > SortByRandom)
     return; // invalid
 
-  SetSortMethod(sortBy, sortAttributes);
+  SetSortMethod(sortBy);
   SaveViewState();
 }
 
-void CGUIViewState::SetSortMethod(SortBy sortBy, SortAttribute sortAttributes /* = SortAttributeNone */)
+void CGUIViewState::SetSortMethod(SortBy sortBy)
 {
   for (int i = 0; i < (int)m_sortMethods.size(); ++i)
   {
-    if (m_sortMethods[i].m_sortDescription.sortBy == sortBy &&
-       // don't care about SortAttributeIgnoreFolders as it wasn't part of the old sorting comparison
-       (m_sortMethods[i].m_sortDescription.sortAttributes & ~SortAttributeIgnoreFolders) == (sortAttributes & ~SortAttributeIgnoreFolders))
+    if (m_sortMethods[i].m_sortDescription.sortBy == sortBy)
     {
       m_currentSortMethod = i;
       break;
@@ -330,7 +328,7 @@ void CGUIViewState::SetSortMethod(SortBy sortBy, SortAttribute sortAttributes /*
 
 void CGUIViewState::SetSortMethod(SortDescription sortDescription)
 {
-  return SetSortMethod(sortDescription.sortBy, sortDescription.sortAttributes);
+  return SetSortMethod(sortDescription.sortBy);
 }
 
 SortDescription CGUIViewState::SetNextSortMethod(int direction /* = 1 */)
@@ -561,7 +559,7 @@ CGUIViewStateFromItems::CGUIViewStateFromItems(const CFileItemList &items) : CGU
   {
     CURL url(items.GetPath());
     AddonPtr addon;
-    if (CAddonMgr::Get().GetAddon(url.GetHostName(),addon) && addon)
+    if (CAddonMgr::Get().GetAddon(url.GetHostName(), addon, ADDON_PLUGIN))
     {
       PluginPtr plugin = boost::static_pointer_cast<CPluginSource>(addon);
       if (plugin->Provides(CPluginSource::AUDIO))
diff --git a/xbmc/view/GUIViewState.h b/xbmc/view/GUIViewState.h
index 9c34bf0..e4c2485 100644
--- a/xbmc/view/GUIViewState.h
+++ b/xbmc/view/GUIViewState.h
@@ -86,7 +86,7 @@ protected:
   void AddSortMethod(SortBy sortBy, int buttonLabel, const LABEL_MASKS &labelMasks, SortAttribute sortAttributes = SortAttributeNone);
   void AddSortMethod(SortBy sortBy, SortAttribute sortAttributes, int buttonLabel, const LABEL_MASKS &labelMasks);
   void AddSortMethod(SortDescription sortDescription, int buttonLabel, const LABEL_MASKS &labelMasks);
-  void SetSortMethod(SortBy sortBy, SortAttribute sortAttributes = SortAttributeNone);
+  void SetSortMethod(SortBy sortBy);
   void SetSortMethod(SortDescription sortDescription);
   void SetSortOrder(SortOrder sortOrder);
   const CFileItemList& m_items;
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/Makefile b/xbmc/visualizations/Goom/goom2k4-0/mac/Makefile
deleted file mode 100755
index ea5cdef..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/Makefile
+++ /dev/null
@@ -1,88 +0,0 @@
-# Makefile
-# author: Gyom / iOS-Software
-# Jan 2005
-
-
-###############
-# Settings
-macimage_name=iGoom
-libobjects=../src/.libs/*.o
-#buildroot=defaults read com.apple.Xcode "PBXApplicationwideBuildSettings" | cut -f2 -d"SYMROOT" | cut -f2 -d"\""
-buildroot=.
-BUNDLE=$(buildroot)/iGoom.bundle
-APP=$(buildroot)/iGoom.app
-installer=iTunes/iTunes-Installer.app
-
-
-all: $(APP) $(BUNDLE)
-
-
-###############
-# Misc library Targets
-
-# We build an embedable version of libgoom
-StandAlone/libgoom2.0.dylib:$(libobjects)
-	gcc -dynamiclib  -flat_namespace -o StandAlone/libgoom2.0.dylib $(libobjects) -install_name @executable_path/../Frameworks/libgoom2.0.dylib -compatibility_version 1 -current_version 1.0 -seg1addr 0x40000 -prebind
-
-# We link static only with iTunes because the install_path
-# cannot be set properly to embed the lib in the bundle
-# We must not place it in the mac folder because the bundle will
-# link against the dynamic version if it is present
-iTunes/libgoom2.0.a:$(libobjects)
-	libtool  -static  -o iTunes/libgoom2.0.a $(libobjects)
-
-
-#########################
-# Standalone Application
-
-standalone:$(APP)
-
-$(APP): StandAlone/libgoom2.0.dylib Makefile
-	xcodebuild -target "iGoom - StandAlone" -buildstyle Deployment SYMROOT=$(buildroot)
-
-cleanstandalone:
-	xcodebuild clean -target "iGoom - StandAlone" -buildstyle Deployment SYMROOT=$(buildroot)
-
-
-
-###############
-# iTunes Plugin
-
-itunes:$(BUNDLE)
-
-$(BUNDLE):iTunes/libgoom2.0.a Makefile
-	xcodebuild -target "iGoom - iTunes" -buildstyle Deployment SYMROOT=$(buildroot)
-
-cleanitunes:
-	xcodebuild clean -target "iGoom - iTunes" -buildstyle Deployment SYMROOT=$(buildroot)
-
-$(installer):iTunes/Installer.applescript
-	osacompile -o $(installer) -x iTunes/Installer.applescript
-	
-
-
-######################
-# Distribution Package
-
-all: $(APP) $(BUNDLE)
-
-package:$(macimage_name).dmg
-
-$(macimage_name).dmg:all ReadMe.rtf $(installer)
-	rm -rf $(macimage_name).dmg $(macimage_name)
-	mkdir -p $(macimage_name) 
-	cp -r $(BUNDLE) $(macimage_name)
-	cp -r $(APP) $(macimage_name)
-	cp ReadMe.rtf $(macimage_name)
-	cp -rf $(installer) $(macimage_name)/
-	hdiutil create -srcfolder $(macimage_name) $(macimage_name).dmg
-
-
-##########
-# Clean up
-
-clean:
-	rm -rf $(BUNDLE) $(APP) $(installer)
-	rm -rf $(macimage_name).dmg $(macimage_name)  $(buildroot)/iGoom.build
-	rm -f StandAlone/libgoom2.* iTunes/libgoom2.* libgoom2.*
-
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/ReadMe.rtf b/xbmc/visualizations/Goom/goom2k4-0/mac/ReadMe.rtf
deleted file mode 100755
index a05598b..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/ReadMe.rtf
+++ /dev/null
@@ -1,256 +0,0 @@
-{\rtf1\mac\ansicpg10000\cocoartf102
-{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;\f2\fnil\fcharset77 LucidaGrande;
-}
-{\colortbl;\red255\green255\blue255;\red255\green0\blue0;\red1\green128\blue0;\red0\green12\blue255;
-\red0\green0\blue255;\red0\green22\blue255;\red0\green0\blue0;\red0\green132\blue14;}
-\vieww15220\viewh13580\viewkind0
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc
-
-\f0\b\fs36 \cf0 iGoom 2k4\
-\'a9 2001/2005 iOS-Software\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0\fs24 \cf0 \
-\cf2 \
-iGoom\cf0  is a wonderful visual effect plug-in for \cf3 iTunes\cf0  for Mac OS X. A mac standalone version is now also available. This is the Mac version of Goom, originally written by Jean-Christophe Hoelt "jeko" (\cf4 \ul \ulc4 jeko at ios-software.com\cf0 \ulnone ) and ported to iTunes by Guillaume Borios "gyom" (\cf4 \ul gyom at ios-software.com\cf0 \ulnone ).\
-\
-Check for informations or updates at \cf5 \ul \ulc5 http://www.\cf4 \ul \ulc4 ios-software.com\cf5 \ul \ulc5 /?page=projet&quoi=1\cf0 \ulnone .\cf6 \ul \ulc6 \
-\cf0 \ulnone \
-\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b\fs28 \cf0 License and Warranty\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0\fs24 \cf0 \
-The iTunes plug-in and the StandAlone application are\cf7  distributed under the terms of the GNU General Public License.\
-See \cf5 http://www.gnu.org/licenses/gpl.html\cf7 .\
-\cf0 \
-\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b\fs28 \cf0 How to install\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0\fs24 \cf0 \
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b \cf0 iTunes:\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0 \cf0 Use the included install script\
-OR\
-Quit iTunes and drag the iGoom.bundle file into your "~/Library/iTunes/iTunes Plug-ins" folder. (the "~" means your home folder, the one with your user name). If any previous version of iGoom was already there, you MUST overwrite it or put it away, don't just rename.\
-\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b \cf0 Standalone:\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0 \cf0 Drag and drop the application anywhere you want on your hard drive.\
-\
-\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b\fs28 \cf0 How to use the iTunes plugin\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0\fs24 \cf0 Launch iTunes, then select iGoom in the iTunes "Visual" menu, enable the visual effects (
-\f2 \AppleTypeServicesU1 \uc0\u8984 
-\f1 \AppleTypeServicesU0 +T) and play your favorite songs.\
-\
-When iGoom is activated you can click the option button in the iTunes window to get the Preference panel.\
-\
-The preferences can also be set 'live' by simply hitting the following keys :\
-\
-* \cf8 Pixel doubling\cf0  (Key : Q): when activated, iGoom calculates a half sized image and artificially doubles its size when rendering.\
-* \cf8 Sensitivity\cf0  (Keys : < to decrease and > to increase) : Use this to make iGoom match the music YOU hear.\
-* \cf8 Presets\cf0  (Keys : 0 to 9) : Presets selection (0 Blocks the current effect).\
-* \cf8 Framerate\cf0  (Key : F) : Display the frame rate.\
-* \cf8 Information display\cf0  (Key : T) : Toggle information display when iTunes is Idle.\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b\fs28 \cf0 \
-\
-Performance tips
-\f1\b0\fs24 \
-To accelerate iGoom, try these tips :\
-\'a5 Quit all other applications you don't need\
-\'a5 Enable the Quick Mode (Lower quality)\
-\'a5 Prefer the full screen mode to large windows in iTunes (full screen mode switches the resolution)\
-\'a5 Reduce the render size in iTunes (select medium size or low size in the visual menu).\
-\'a5 Buy a new Machine ;-)\
-\
-For full screen playback, I recommend at least a G4 at 800 (better with G4 or G5 and higher clock rates of course). Please note that iGoom can't use a lot of 3D acceleration and is not easily optimizable with Velocity Engine. \cf2 A fast CPU with lots of cache is the key.\cf0 \
-\
-\
-
-\f0\b\fs28 Known bugs / Things to do\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0\fs24 \cf0 Try to make it even faster (But don't expect too much now...),\
-Add new effects,\
-Finish the scripting system,\
-Enhance the functionalities of the standalone application.\
-\
-\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b\fs28 \cf0 Version history
-\f1\b0\fs24 \
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b \cf0 \
-2k4 ~ January 2005\
-\'a5 
-\f1\b0 In sync with the final Goom 2k4\
-\'a5 The StandAlone version is available.\
-\'a5 The source tree is back to the sourceforge cvs and mac compatible.
-\f0\b \
-\
-2k4 dev 14 ~ March 2004\
-\'a5 
-\f1\b0 Added the scripting system into the core (not yet scriptable without recompilation).
-\f0\b \
-\
-2k4 dev 8 ~ February 2004\
-\'a5 
-\f1\b0 Added G5 optimizations.
-\f0\b \
-\'a5 
-\f1\b0 Caught a crashing bug in the PowerPC render.\
-
-\f0\b \'a5 
-\f1\b0 Added luminosity post-processing.
-\f0\b \
-\'a5 
-\f1\b0 Rewrote the transformation computation to make it independent from the resolution.\
-
-\f0\b \'a5 
-\f1\b0 A new fireworks effect.
-\f0\b \
-\'a5 
-\f1\b0 Lots of internal modifications to prepare future features.
-\f0\b \
-\'a5 
-\f1\b0 Many little optimizations.
-\f0\b \
-\
-1.99.5 ~ January 7th 2003\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0 \cf0 \'a5 Information display can now be set on and off using the key T or the preference panel. Since many users seem to find it annoying, this feature is off by default.\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b \cf0 \
-1.99.4 ~ January 6th 2003\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0 \cf0 \'a5 Not faster but does more than before.\
-\'a5 Smoother animations.\
-\'a5 Nice text display with cool font and effect.\
-\'a5 New "tentacle" line effect.\
-\'a5 New zooms.\
-\'a5 Resize crashing bug hopefully  corrected.\
-\'a5 Tuned many effects.\
-\'a5 Preferences window modified.\
-\'a5 iGoom now uses its own preference file instead of parasiting the iTune's one. \
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b \cf0 \
-1.9Dev5 ~ July 21st 2002\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0 \cf0 \'a5 Dynamic transitions between transforms.\
-\'a5 Dynamic lines effects transitions with new colors.\
-\'a5 1 new transform.\
-\'a5 Assembly routines rewritten but G4 optimisations disabled.\
-\'a5 Tuned many effects.\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b \cf0 \
-1.7.8 ~ April 12th 2002\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0 \cf0 \'a5 Added a tuned version of the fabulous ifs effect.\
-(Copyright (c) 1997 by Massimino Pascal <Pascal.Massimon at ens.fr>).\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b \cf0 \
-1.7.7 ~ April 5th 2002\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0 \cf0 \'a5 Little speed bump (+8%) on G3\
-(Improved the G3 assembly code, lend me a G4 and I'll do it for Altivec too!)\
-\'a5 Finally caught the crashing lines bug.\
-\'a5 Enabled the original lines effects again.\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b \cf0 \
-1.7.6 ~ March 15th 2002\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0 \cf0 \'a5 In sync with goom 1.7.6,\
-\'a5 Now retains the quality mode.\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b \cf0 \
-1.7.5a3 ~ Not released\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0 \cf0 \'a5 Big speed bump on Smooth Mode (full quality) of about 30%.\
-\'a5 Little speed bump on Quick Mode (doubled pixels) of about 5%.\
-\'a5 Minor speed bump for G3 users.\
-\'a5 Added graphic visualization of setup (not available on fullscreen smooth mode).\
-\'a5 Added sensitivity setup.\
-\'a5 Tuned the moving pixels filter.\
-\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b \cf0 1.7.4 ~ November 8th 2001\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f1\b0 \cf0 \'a5 Pixel doubling mode is now the default.\
-\'a5 Better default parameters.\
-\'a5 Accelerated the full quality mode by about 8%\
-\'a5 Added that nice (?) purple circle in the centre.\
-\'a5 Code clean-up (1.7.0 - 180kb -> 1.7.4 - 72kb)\
-\'a5 Version number corrected again (should be good this time)\
-\'a5 The random resizing crashes seem to be corrected by the code clean up.\
-\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
-
-\f0\b \cf0 1.7.3 ~ July 26th 2001
-\f1\b0 \
-\'a5 The 1.7.2 archive was broken for G3, corrected the archive\
-\
-
-\f0\b 1.7.2 ~ July 26th 2001
-\f1\b0 \
-\'a5 Now detects if Altivec (Velocity Engine) is present or not and enables a new G4 assembly zoom routine whenever possible. This makes it about 30% faster than before on G4 CPUs.\
-\'a5 Corrected a bug that would make the render go weird with odd horizontal resolutions and pixel doubling enabled.\
-\'a5 G3 Assembly acceleration rewritten for easier Altivec integration (No speed loss).\
-\'a5 Core goom code cleaned up to make possible Altivec accelerations (better data alignment and misc details). This make the G3 version a bit faster too and should accelerate future releases for other platforms.\
-\'a5 Corrected the bundle version number\
-\
-
-\f0\b 1.7.1 ~ July 19th 2001
-\f1\b0 \
-\'a5 Added a PowerPC assembly routine instead of pure C to execute the critical part of the zoom (just like on MMX processors). We gain about 50% more Frame Per Second !\
-\
-
-\f0\b 1.7.0 ~ July 17th 2001
-\f1\b0 \
-\'a5 In sync with Goom 1.7 (with some new effects available).\
-\'a5 Code clean up.\
-\'a5 Rendering functions (both normal and pixel doubling) rewritten  for speed concerns.\
-\
-
-\f0\b 1.6.1 ~ July 14th 2001
-\f1\b0 \
-\'a5 Pixel doubling bug corrected.\
-\
-
-\f0\b 1.6.0 ~ July 11th 2001
-\f1\b0 \
-\'a5 Initial release, in sync with Goom 1.6 for XMMS.}
\ No newline at end of file
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/AppController.h b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/AppController.h
deleted file mode 100755
index eae2594..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/AppController.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#import <Cocoa/Cocoa.h>
-
-#import "Goom.h"
-
-#import "MainOpenGLView.h"
-
- at interface AppController : NSResponder
-{
-    // Views
-    IBOutlet NSWindow * PrefWin;
-    IBOutlet NSTabView * TabView;
-
-    IBOutlet MainOpenGLView * GLView;
-    
-    IBOutlet NSButton * HQButton;
-    IBOutlet NSTextField * QEWarning;
-    IBOutlet NSTextField * FPSCounter;
-
-    // Model
-    BOOL isAnimating;
-    NSTimer *animationTimer;
-    CFAbsoluteTime timeBefore;
-    
-    BOOL stayInFullScreenMode;
-    NSOpenGLContext *fullScreenContext;
-
-    IBOutlet Goom * myGoom;
-    float FrameRate;
-    float lastFPS;
-    AbsoluteTime backUpTime;
-}
-
-- (IBAction) goFullScreen:(id)sender;
-- (IBAction) setHighQuality:(id)sender;
-- (IBAction) setFrameRate:(id)sender;
-- (BOOL) isInFullScreenMode;
-
- at end
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/AppController.m b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/AppController.m
deleted file mode 100755
index 9f3d896..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/AppController.m
+++ /dev/null
@@ -1,438 +0,0 @@
-#import "AppController.h"
-#import "GoomFXView.h"
-#include "src/goom.h"
-
-#import <OpenGL/OpenGL.h>
-
- at interface AppController (AnimationMethods)
-- (BOOL) isAnimating;
-- (void) startAnimation;
-- (void) stopAnimation;
-- (void) toggleAnimation;
-
-- (void) startAnimationTimer;
-- (void) stopAnimationTimer;
-- (void) animationTimerFired:(NSTimer *)timer;
- at end
-
-static float HowLong(AbsoluteTime * backUpTime)
-{
-    AbsoluteTime absTime;
-    Nanoseconds nanosec;
-    
-    absTime = SubAbsoluteFromAbsolute(UpTime(), *backUpTime);
-    nanosec = AbsoluteToNanoseconds(absTime);
-    //fprintf(stderr,"Time :  %f\n", (float) UnsignedWideToUInt64( nanosec ) / 1000000000.0);
-    //fprintf(stderr,"FPS :  %f\n", (float) 1000000000.0f/UnsignedWideToUInt64( nanosec ));
-    *backUpTime = UpTime();
-    return (float) (1000000000.0f/UnsignedWideToUInt64( nanosec ));
-}
-
-static void logGLError(int line)
-{
-    GLenum err = glGetError();
-    char * code;
-    
-    if (err == GL_NO_ERROR) return;
-    
-    switch (err)
-    {
-        case GL_INVALID_ENUM:
-            code = "GL_INVALID_ENUM";
-            break;
-        case GL_INVALID_VALUE:
-            code = "GL_INVALID_VALUE";
-            break;
-        case GL_INVALID_OPERATION:
-            code = "GL_INVALID_OPERATION";
-            break;
-        case GL_STACK_OVERFLOW:
-            code = "GL_STACK_OVERFLOW";
-            break;
-        case GL_STACK_UNDERFLOW:
-            code = "GL_STACK_UNDERFLOW";
-            break;
-        case GL_OUT_OF_MEMORY:
-            code = "GL_OUT_OF_MEMORY";
-            break;
-        default:
-            code = "Unknown Error";
-            break;
-    }
-    fprintf(stderr,"iGoom OpenGL error : %s", code);
-    
-}
-
- at implementation AppController
-
--(void) awakeFromNib
-{
-    PluginInfo * goomInfos;
-    int i;
-    
-    goomInfos = [myGoom infos];
-    
-    for (i=0; i < goomInfos->nbParams; i++)
-    {
-        NSTabViewItem * item = [[[NSTabViewItem alloc] initWithIdentifier:nil] autorelease];
-        [item setLabel:[NSString stringWithCString:goomInfos->params[i].name]];
-        [item setView:[[[GoomFXView alloc] initWithFrame:[TabView contentRect] andFX:goomInfos->params[i]] autorelease]];
-        [TabView addTabViewItem:item];
-        
-        // Create and load textures for the first time
-        //[GLView loadTextures:GL_TRUE];
-    }
-
-    //[self goFullScreen:self];
-    isAnimating = NO;
-    lastFPS = 0.0f;
-    backUpTime=UpTime();
-    FrameRate = 0.028f; // ~35 FPS
-    
-    if ([GLView canBeHQ])
-    {
-        [HQButton setEnabled:YES];
-        [QEWarning removeFromSuperview];
-    }
-    
-    [self startAnimation];
-}
-
-
-// Action method wired up to fire when the user clicks the "Go FullScreen" button.  We remain in this method until the user exits FullScreen mode.
-- (IBAction) goFullScreen:(id)sender
-{
-    CFAbsoluteTime timeNow;
-    CGLContextObj cglContext;
-    CGDisplayErr err;
-    long oldSwapInterval;
-    long newSwapInterval;
-    BOOL plugrunning = YES;
-    long rendererID;
-
-    // Pixel Format Attributes for the FullScreen NSOpenGLContext
-    NSOpenGLPixelFormatAttribute attrs[] = {
-
-        // Specify that we want a full-screen OpenGL context.
-        NSOpenGLPFAFullScreen,
-
-        // We may be on a multi-display system (and each screen may be driven by a different renderer),
-        // so we need to specify which screen we want to take over.
-        // For this demo, we'll specify the main screen.
-        NSOpenGLPFAScreenMask, CGDisplayIDToOpenGLDisplayMask(kCGDirectMainDisplay),
-
-        // Attributes Common to FullScreen and non-FullScreen
-        NSOpenGLPFAColorSize, 24,
-        NSOpenGLPFADepthSize, 16,
-        NSOpenGLPFADoubleBuffer,
-        NSOpenGLPFAAccelerated,
-        0
-    };
-
-    // Create the FullScreen NSOpenGLContext with the attributes listed above.
-    NSOpenGLPixelFormat *pixelFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs];    
-    if (pixelFormat == nil) {
-        NSLog(@"Failed to create 1st pixelFormat, trying another format...");
-        NSOpenGLPixelFormatAttribute attrs2[] = {
-            NSOpenGLPFAFullScreen,
-            NSOpenGLPFAScreenMask, CGDisplayIDToOpenGLDisplayMask(kCGDirectMainDisplay),
-            0
-        };
-        
-        // Create the FullScreen NSOpenGLContext with the attributes listed above.
-        NSOpenGLPixelFormat *pixelFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs2];    
-        if (pixelFormat == nil) {
-            NSLog(@"Failed to create 2nd pixelFormat, canceling full screen mode.");
-            return;
-        }
-    }
-    
-    // Just as a diagnostic, report the renderer ID that this pixel format binds to.
-    // CGLRenderers.h contains a list of known renderers and their corresponding RendererID codes.
-    [pixelFormat getValues:&rendererID forAttribute:NSOpenGLPFARendererID forVirtualScreen:0];
-    
-    // Create an NSOpenGLContext with the FullScreen pixel format.
-    // By specifying the non-FullScreen context as our "shareContext",
-    // we automatically inherit all of the textures, display lists, and other OpenGL objects it has defined.
-    fullScreenContext = [[NSOpenGLContext alloc] initWithFormat:pixelFormat shareContext:[GLView openGLContext]];
-    [pixelFormat release];
-    pixelFormat = nil;
-    
-    if (fullScreenContext == nil) {
-        NSLog(@"Failed to create fullScreenContext");
-        return;
-    }
-    
-    // Pause animation in the OpenGL view.
-    // While we're in full-screen mode, we'll drive the animation actively instead of using a timer callback.
-    if ([self isAnimating]) {
-        [self stopAnimationTimer];
-    }
-
-    // Take control of the display where we're about to go FullScreen.
-    err = CGCaptureAllDisplays();
-    if (err != CGDisplayNoErr) {
-        [fullScreenContext release];
-        fullScreenContext = nil;
-        return;
-    }
-
-    // Enter FullScreen mode and make our FullScreen context the active context for OpenGL commands.
-    [fullScreenContext setFullScreen];
-    [fullScreenContext makeCurrentContext];
-
-    // Save the current swap interval so we can restore it later, and then set the new swap interval to lock us to the display's refresh rate.
-    cglContext = CGLGetCurrentContext();
-    CGLGetParameter(cglContext, kCGLCPSwapInterval, &oldSwapInterval);
-    newSwapInterval = 1;
-    CGLSetParameter(cglContext, kCGLCPSwapInterval, &newSwapInterval);
-
-    // Tell the myGoom the dimensions of the area it's going to render to, so it can set up an appropriate viewport and viewing transformation.
-    [myGoom setSize:NSMakeSize(CGDisplayPixelsWide(kCGDirectMainDisplay), CGDisplayPixelsHigh(kCGDirectMainDisplay))];
-
-    // Now that we've got the screen, we enter a loop in which we alternately process input events and computer and render the next frame of our animation.  The shift here is from a model in which we passively receive events handed to us by the AppKit to one in which we are actively driving event processing.
-    timeBefore = CFAbsoluteTimeGetCurrent();
-    stayInFullScreenMode = YES;
-    while (stayInFullScreenMode) {
-        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-
-        // Check for and process input events.
-        NSEvent *event;
-        while (event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES]) {
-            switch ([event type]) {
-                case NSLeftMouseDown:
-                    [self mouseDown:event];
-                    break;
-
-                case NSLeftMouseUp:
-                    plugrunning = plugrunning?NO:YES;
-                    [self mouseUp:event];
-                    break;
-
-                case NSRightMouseUp:
-                    plugrunning = plugrunning?NO:YES;
-                    break;
-                    
-                case NSLeftMouseDragged:
-                    [self mouseDragged:event];
-                    break;
-
-                case NSKeyDown:
-                    [self keyDown:event];
-                    break;
-
-                default:
-                    break;
-            }
-        }
-
-        // Render a frame, and swap the front and back buffers.
-        timeNow = CFAbsoluteTimeGetCurrent();
-        if ((timeNow-timeBefore) >= FrameRate)
-        {
-            timeBefore = timeNow;
-            if (plugrunning==YES) {
-                [myGoom render];
-                [fullScreenContext flushBuffer];
-            }
-        }
-
-
-        // Clean up any autoreleased objects that were created this time through the loop.
-        [pool release];
-    }
-    
-    // Clear the front and back framebuffers before switching out of FullScreen mode.  (This is not strictly necessary, but avoids an untidy flash of garbage.)
-    glClearColor(0.0, 0.0, 0.0, 0.0);
-    glClear(GL_COLOR_BUFFER_BIT);
-    [fullScreenContext flushBuffer];
-    glClear(GL_COLOR_BUFFER_BIT);
-    [fullScreenContext flushBuffer];
-
-    // Restore the previously set swap interval.
-    CGLSetParameter(cglContext, kCGLCPSwapInterval, &oldSwapInterval);
-
-    // Exit fullscreen mode and release our FullScreen NSOpenGLContext.
-    [NSOpenGLContext clearCurrentContext];
-    [fullScreenContext clearDrawable];
-    [fullScreenContext release];
-    fullScreenContext = nil;
-
-    // Release control of the display.
-    CGReleaseAllDisplays();
-
-    // Reset the size to the window size
-    [myGoom setSize:[GLView frame].size];
-    
-    // Mark our view as needing drawing.  (The animation has advanced while we were in FullScreen mode, so its current contents are stale.)
-    [GLView setNeedsDisplay:YES];
-
-    // Resume animation timer firings.
-    if ([self isAnimating]) {
-        [self startAnimationTimer];
-    }
-}
-
-- (IBAction) setHighQuality:(id)sender
-{
-    [myGoom setHighQuality:([sender state]==NSOnState)];
-}
-
-- (IBAction) setFrameRate:(id)sender
-{
-    FrameRate = 1.0f/[sender floatValue];
-    [self stopAnimation];
-    [self startAnimation];
-}
-
-- (void) keyDown:(NSEvent *)event
-{
-    unichar c = [[event charactersIgnoringModifiers] characterAtIndex:0];
-    switch (c) {
-
-        // [Esc] exits FullScreen mode.
-        case 27:
-            stayInFullScreenMode = NO;
-            break;
-
-        // [space] toggles rotation of the globe.
-        case 32:
-            [self toggleAnimation];
-            break;
-
-        case 'l':
-        case 'L':
-            [myGoom setHighQuality:NO];
-            break;
-            
-        case 'h':
-        case 'H':
-            [myGoom setHighQuality:YES];
-            break;
-            
-        default:
-            break;
-    }
-}
-/*
-- (void)mouseDown:(NSEvent *)theEvent
-{
-    BOOL wasAnimating = [self isAnimating];
-    BOOL dragging = YES;
-    NSPoint windowPoint;
-    NSPoint lastWindowPoint = [theEvent locationInWindow];
-    float dx, dy;
-
-    if (wasAnimating) {
-        [self stopAnimation];
-    }
-    while (dragging) {
-        theEvent = [[GLView window] nextEventMatchingMask:NSLeftMouseUpMask | NSLeftMouseDraggedMask];
-        windowPoint = [theEvent locationInWindow];
-        switch ([theEvent type]) {
-            case NSLeftMouseUp:
-                dragging = NO;
-                break;
-
-            case NSLeftMouseDragged:
-                dx = windowPoint.x - lastWindowPoint.x;
-                dy = windowPoint.y - lastWindowPoint.y;
-                lastWindowPoint = windowPoint;
-
-                // Render a frame.
-                if (fullScreenContext) {
-                    [myGoom render];
-                    [fullScreenContext flushBuffer];
-                } else {
-                    [GLView display];
-                }
-                break;
-
-            default:
-                break;
-        }
-    }
-    if (wasAnimating) {
-        [self startAnimation];
-        timeBefore = CFAbsoluteTimeGetCurrent();
-    }
-}
-*/
-- (BOOL) isInFullScreenMode
-{
-    return fullScreenContext != nil;
-}
-
- at end
-
- at implementation AppController (AnimationMethods)
-
-- (BOOL) isAnimating
-{
-    return isAnimating;
-}
-
-- (void) startAnimation
-{
-    if (!isAnimating) {
-        isAnimating = YES;
-        if (![self isInFullScreenMode])
-        {
-            [self startAnimationTimer];
-        }
-    }
-}
-
-- (void) stopAnimation
-{
-    if (isAnimating) {
-        if (animationTimer != nil) {
-            [self stopAnimationTimer];
-        }
-        isAnimating = NO;
-    }
-}
-
-- (void) toggleAnimation
-{
-    if ([self isAnimating]) [self stopAnimation];
-    else [self startAnimation];
-}
-
-- (void) startAnimationTimer
-{
-    if (animationTimer == nil) {
-        animationTimer = [[NSTimer scheduledTimerWithTimeInterval:FrameRate target:self selector:@selector(animationTimerFired:) userInfo:nil repeats:YES] retain];
-    }
-}
-
-- (void) stopAnimationTimer
-{
-    if (animationTimer != nil) {
-        [animationTimer invalidate];
-        [animationTimer release];
-        animationTimer = nil;
-    }
-}
-
-- (void) animationTimerFired:(NSTimer *)timer
-{
-    lastFPS = (HowLong(&backUpTime) + lastFPS) * 0.5f;
-    [FPSCounter setStringValue:[NSString stringWithFormat:@"%d/%d FPS",(int)lastFPS,(int)(1.0f/FrameRate)]];
-    [GLView setNeedsDisplay:YES];
-}
-
-// TAB VIEW DELEGATE
-- (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem
-{
-    NSRect frame = [PrefWin frame];
-    float height;
-    if(![[tabViewItem identifier] isEqual:@"maintab"]) height = ((GoomFXView*)[tabViewItem view])->height;
-    else height = 356.0f;
-    height += 20.0f;
-    frame.origin.y -= height-frame.size.height;
-    frame.size.height = height;
-    [PrefWin setFrame:frame display:YES animate:YES];
-}
-
- at end
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/CoreAudioDevice.cpp b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/CoreAudioDevice.cpp
deleted file mode 100644
index d37b6e9..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/CoreAudioDevice.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- *  CoreAudioDevice.cpp
- *  iGoom
- *
- *  Created by Guillaume Borios on 14/01/05.
- *  Copyright 2005 iOS Software. All rights reserved.
- *
- */
-
-#include "CoreAudioDevice.h"
-
-
-CoreAudioDevice::CoreAudioDevice(AudioDeviceID devId):deviceID(devId) {}
-
-CoreAudioDevice::~CoreAudioDevice() {}
-
-
-CFStringRef CoreAudioDevice::name() const
-{
-    CFStringRef nom;
-    try
-    {
-        UInt32 size = sizeof(CFStringRef);
-        propertyData(0, kAudioDeviceSectionGlobal, kAudioDevicePropertyDeviceNameCFString, size, &nom);
-    }
-    catch(...)
-    {
-        nom = CFSTR("");
-    }
-    return nom;
-}
-
-UInt32 CoreAudioDevice::propertyDataSize(UInt32 channel, CoreAudioDeviceSection section, AudioHardwarePropertyID property) const
-{
-    UInt32 size = 0;
-    if (AudioDeviceGetPropertyInfo(deviceID, channel, section, property, &size, NULL) != 0)
-    {
-        fprintf(stderr,"Error while fetching audio device property size. Exiting.");
-        exit(0);
-    }
-    return size;
-}
-
-void CoreAudioDevice::propertyData(UInt32 channel, CoreAudioDeviceSection section, AudioHardwarePropertyID property, UInt32 &size, void* data) const
-{
-    AudioDeviceGetProperty(deviceID, channel, section, property, &size, data) != 0;
-}
-
-void CoreAudioDevice::setPropertyData(UInt32 channel, CoreAudioDeviceSection section, AudioHardwarePropertyID property, UInt32 inDataSize, const void* data)
-{
-    OSStatus theError = AudioDeviceSetProperty(deviceID, NULL, channel, section, property, inDataSize, data);
-    //if (theError) fprintf(stderr,"Error");
-}
-
-UInt32 CoreAudioDevice::numberOfChannels(CoreAudioDeviceSection section) const
-{
-    UInt32 n = 0;
-    UInt32 size = propertyDataSize(0, section, kAudioDevicePropertyStreamConfiguration);
-    AudioBufferList* bufList=(AudioBufferList*)malloc(size);
-    
-    propertyData(0, section, kAudioDevicePropertyStreamConfiguration, size, bufList);
-    for(UInt32 i = 0; i < bufList->mNumberBuffers; ++i)
-    {
-        n += bufList->mBuffers[i].mNumberChannels;
-    }
-    free(bufList);
-    return n;
-}
-
-pid_t	CoreAudioDevice::hogModeOwner() const
-{
-    pid_t retour = 0;
-    UInt32 size = sizeof(pid_t);
-    propertyData(0, kAudioDeviceSectionInput, kAudioDevicePropertyHogMode, size, &retour);
-    return retour;
-}
-
-
-void	CoreAudioDevice::AddPropertyListener(UInt32 inChannel, CoreAudioDeviceSection inSection, AudioHardwarePropertyID inPropertyID, AudioDevicePropertyListenerProc inListenerProc, void* inClientData)
-{
-    if (AudioDeviceAddPropertyListener(deviceID, inChannel, inSection, inPropertyID, inListenerProc, inClientData) != 0)
-    {
-        fprintf(stderr,"Error while Installing device notifications listener. Exiting.");
-        exit(0);
-    }
-}
-
-void	CoreAudioDevice::RemovePropertyListener(UInt32 inChannel, CoreAudioDeviceSection inSection, AudioHardwarePropertyID inPropertyID, AudioDevicePropertyListenerProc inListenerProc)
-{
-    if (AudioDeviceRemovePropertyListener(deviceID, inChannel, inSection, inPropertyID, inListenerProc) !=0)
-    {
-        //fprintf(stderr,"Error while Removing device notifications listener. Exiting.");
-        //exit(0);
-    }
-}
-
-// *************************************** VOLUME CONTROL ***************************************
-
-bool CoreAudioDevice::HasVolumeControl(UInt32 channel, CoreAudioDeviceSection section) const
-{
-    OSStatus theError = AudioDeviceGetPropertyInfo(deviceID, channel, section, kAudioDevicePropertyVolumeScalar, NULL, NULL);
-    return (theError == 0);
-}
-
-bool CoreAudioDevice::VolumeControlIsSettable(UInt32 channel, CoreAudioDeviceSection section) const
-{
-        Boolean isWritable = false;
-        OSStatus theError = AudioDeviceGetPropertyInfo(deviceID, channel, section, kAudioDevicePropertyVolumeScalar, NULL, &isWritable);
-        return (isWritable != 0);
-}
-
-Float32 CoreAudioDevice::GetVolumeControlScalarValue(UInt32 channel, CoreAudioDeviceSection section) const
-{
-    Float32 value = 0.0;
-    UInt32 size = sizeof(Float32);
-    propertyData(channel, section, kAudioDevicePropertyVolumeScalar, size, &value);
-    return value;
-}
-
-void CoreAudioDevice::SetVolumeControlScalarValue(UInt32 channel, CoreAudioDeviceSection section, Float32 value)
-{
-    UInt32 size = sizeof(Float32);
-    setPropertyData(channel, section, kAudioDevicePropertyVolumeScalar, size, &value);
-}
-
-
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/CoreAudioDevice.h b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/CoreAudioDevice.h
deleted file mode 100644
index 1e85765..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/CoreAudioDevice.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- *  CoreAudioDevice.h
- *  iGoom
- *
- *  Created by Guillaume Borios on 14/01/05.
- *  Copyright 2005 iOS Software. All rights reserved.
- *
- */
-
-#include <CoreFoundation/CoreFoundation.h>
-#include <CoreAudio/CoreAudio.h>
-
-#ifndef COREAUDIODEVICE
-#define COREAUDIODEVICE
-
-typedef	UInt8	CoreAudioDeviceSection;
-#define	kAudioDeviceSectionInput	((CoreAudioDeviceSection)0x01)
-#define	kAudioDeviceSectionOutput	((CoreAudioDeviceSection)0x00)
-#define	kAudioDeviceSectionGlobal	((CoreAudioDeviceSection)0x00)
-#define	kAudioDeviceSectionWildcard	((CoreAudioDeviceSection)0xFF)
-
-class CoreAudioDevice
-{
-
-public:
-    CoreAudioDevice(AudioDeviceID devId);
-    ~CoreAudioDevice();
-    
-    AudioDeviceID   getDeviceID() const { return deviceID; }
-    CFStringRef     name() const;
-    
-    UInt32 propertyDataSize(UInt32 channel, CoreAudioDeviceSection section, AudioHardwarePropertyID property) const;
-    void propertyData(UInt32 channel, CoreAudioDeviceSection section, AudioHardwarePropertyID property, UInt32 &size, void* data) const;
-    void setPropertyData(UInt32 channel, CoreAudioDeviceSection section, AudioHardwarePropertyID property, UInt32 inDataSize, const void* data);
-
-    UInt32 numberOfChannels(CoreAudioDeviceSection section) const;
-
-    pid_t hogModeOwner() const;
-    
-    void AddPropertyListener(UInt32 inChannel, CoreAudioDeviceSection inSection, AudioHardwarePropertyID inPropertyID, AudioDevicePropertyListenerProc inListenerProc, void* inClientData);
-    void RemovePropertyListener(UInt32 inChannel, CoreAudioDeviceSection inSection, AudioHardwarePropertyID inPropertyID, AudioDevicePropertyListenerProc inListenerProc);
-
-    bool CoreAudioDevice::HasVolumeControl(UInt32 channel, CoreAudioDeviceSection section) const;
-    bool CoreAudioDevice::VolumeControlIsSettable(UInt32 channel, CoreAudioDeviceSection section) const;
-    Float32 CoreAudioDevice::GetVolumeControlScalarValue(UInt32 channel, CoreAudioDeviceSection section) const;
-    void CoreAudioDevice::SetVolumeControlScalarValue(UInt32 channel, CoreAudioDeviceSection section, Float32 value);
-    
-private:
-	AudioDeviceID	deviceID;
-};
-
-
-#endif /* COREAUDIODEVICE */
\ No newline at end of file
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/CoreAudioHardware.cpp b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/CoreAudioHardware.cpp
deleted file mode 100644
index cd9c276..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/CoreAudioHardware.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- *  CoreAudioHardware.cpp
- *  iGoom
- *
- *  Created by Guillaume Borios on 14/01/05.
- *  Copyright 2005 iOS Software. All rights reserved.
- *
- */
-
-#include "CoreAudioHardware.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-UInt32 CoreAudioHardware::numberOfDevices()
-{
-    return ( propertyDataSize(kAudioHardwarePropertyDevices) / sizeof(AudioDeviceID) );
-}
-
-AudioDeviceID CoreAudioHardware::deviceAtIndex(unsigned int i)
-{
-    AudioDeviceID devID = 0;
-    int n = numberOfDevices();
-    if((n > 0) && (i < n))
-    {
-        UInt32 size = n * sizeof(AudioDeviceID);
-        AudioDeviceID * list = (AudioDeviceID *)malloc(size);
-        propertyData(kAudioHardwarePropertyDevices, size, list);
-        devID = list[i];
-        free(list);
-    }
-    return devID;
-}
-
-UInt32 CoreAudioHardware::propertyDataSize(AudioHardwarePropertyID property)
-{
-    UInt32 size = 0;
-    if (AudioHardwareGetPropertyInfo(property, &size, NULL) != 0)
-    {
-        fprintf(stderr,"Error while fetching audio property size. Exiting.");
-        exit(0);
-    }
-    return size;
-}
-
-void CoreAudioHardware::propertyData(AudioHardwarePropertyID property, UInt32 &size, void *data)
-{
-    if (AudioHardwareGetProperty(property, &size, data) != 0)
-    {
-        fprintf(stderr,"Error while fetching audio property. Exiting.");
-        exit(0);
-    }
-}
-
-void	CoreAudioHardware::AddPropertyListener(AudioHardwarePropertyID property, AudioHardwarePropertyListenerProc proc, void* data)
-{
-    if (AudioHardwareAddPropertyListener(property, proc, data)!= 0)
-    {
-        fprintf(stderr,"Error could not add a property listener. Exiting.");
-        exit(0);
-    }
-}
-
-void	CoreAudioHardware::RemovePropertyListener(AudioHardwarePropertyID property, AudioHardwarePropertyListenerProc proc)
-{
-    if (AudioHardwareRemovePropertyListener(property, proc)!= 0)
-    {
-        fprintf(stderr,"Error could not remove a property listener. Exiting.");
-        exit(0);
-    }
-}
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/CoreAudioHardware.h b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/CoreAudioHardware.h
deleted file mode 100644
index 6aa451d..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/CoreAudioHardware.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- *  CoreAudioHardware.h
- *  iGoom
- *
- *  Created by Guillaume Borios on 14/01/05.
- *  Copyright 2005 iOS Software. All rights reserved.
- *
- */
-
-#include <CoreAudio/CoreAudio.h>
-
-
-#ifndef COREAUDIOHARDWARE
-#define COREAUDIOHARDWARE
-
-class CoreAudioHardware
-{
-public:
-    static UInt32           numberOfDevices();
-    static AudioDeviceID    deviceAtIndex(unsigned int i);
-public:
-    static UInt32           propertyDataSize(AudioHardwarePropertyID property);
-    static void             propertyData(AudioHardwarePropertyID property, UInt32 &size, void *data);
-    static void             AddPropertyListener(AudioHardwarePropertyID property, AudioHardwarePropertyListenerProc listenerProc, void* inClientData);
-    static void             RemovePropertyListener(AudioHardwarePropertyID property, AudioHardwarePropertyListenerProc listenerProc);
-
-};
-
-#endif /*COREAUDIOHARDWARE*/
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/English.lproj/InfoPlist.strings b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/English.lproj/InfoPlist.strings
deleted file mode 100755
index ec736bd..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/English.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Localized versions of Info.plist keys */
-
-CFBundleName = "iGoom";
-CFBundleShortVersionString = "2.0";
-CFBundleGetInfoString = "iGoom version 2.0, Copyright 2001~2005, iOS-Software.\nhttp://www.ios-software.com/";
-NSHumanReadableCopyright = "Copyright 2001~2005, iOS-Software.\nhttp://www.ios-software.com/";
-CFBundleVersion = "2.0";
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/English.lproj/MainMenu.nib/classes.nib b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/English.lproj/MainMenu.nib/classes.nib
deleted file mode 100755
index 2ea29a9..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/English.lproj/MainMenu.nib/classes.nib
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-    IBClasses = (
-        {
-            ACTIONS = {goFullScreen = id; setFrameRate = id; setHighQuality = id; }; 
-            CLASS = AppController; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {
-                FPSCounter = NSTextField; 
-                GLView = MainOpenGLView; 
-                HQButton = NSButton; 
-                PrefWin = NSWindow; 
-                QEWarning = NSTextField; 
-                TabView = NSTabView; 
-                myGoom = Goom; 
-            }; 
-            SUPERCLASS = NSResponder; 
-        }, 
-        {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
-        {CLASS = Goom; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
-        {
-            ACTIONS = {
-                clientStorage = id; 
-                frameRate = id; 
-                rectTextures = id; 
-                setFullscreen = id; 
-                textureHint = id; 
-                textureRange = id; 
-            }; 
-            CLASS = MainOpenGLView; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {StartingView = NSView; myGoom = Goom; sizeField = NSTextField; }; 
-            SUPERCLASS = NSOpenGLView; 
-        }, 
-        {CLASS = MyApplication; LANGUAGE = ObjC; SUPERCLASS = NSApplication; }, 
-        {
-            ACTIONS = {changeAudioDevice = id; changeAudioVolume = id; }; 
-            CLASS = SoundSampler; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {ODeviceList = NSPopUpButton; OSoundVolume = NSSlider; }; 
-            SUPERCLASS = NSObject; 
-        }
-    ); 
-    IBVersion = 1; 
-}
\ No newline at end of file
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/English.lproj/MainMenu.nib/info.nib b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/English.lproj/MainMenu.nib/info.nib
deleted file mode 100755
index d5104f8..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/English.lproj/MainMenu.nib/info.nib
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>IBDocumentLocation</key>
-	<string>46 72 356 295 0 0 1024 746 </string>
-	<key>IBEditorPositions</key>
-	<dict>
-		<key>29</key>
-		<string>43 545 183 44 0 0 1280 1002 </string>
-	</dict>
-	<key>IBFramework Version</key>
-	<string>364.0</string>
-	<key>IBOpenObjects</key>
-	<array>
-		<integer>29</integer>
-		<integer>508</integer>
-		<integer>21</integer>
-	</array>
-	<key>IBSystem Version</key>
-	<string>7S215</string>
-</dict>
-</plist>
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/English.lproj/MainMenu.nib/keyedobjects.nib b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/English.lproj/MainMenu.nib/keyedobjects.nib
deleted file mode 100755
index 9c43c77..0000000
Binary files a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/English.lproj/MainMenu.nib/keyedobjects.nib and /dev/null differ
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/French.lproj/Localizable.strings b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/French.lproj/Localizable.strings
deleted file mode 100755
index 4eedd76..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/French.lproj/Localizable.strings
+++ /dev/null
@@ -1,14 +0,0 @@
-//---------------------------------------------------------------------------//
-//
-// Localizable.strings
-// iGoom StandAlone Project
-//
-// Copyright (c) 2002-2003 iOS. All rights reserved.
-//
-//---------------------------------------------------------------------------//
-
-/* */
-"" = "";
-
-/* Audio Input Devices */
-"Built-in Audio" = "Audio intégré";
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/Goom.h b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/Goom.h
deleted file mode 100755
index 8073c62..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/Goom.h
+++ /dev/null
@@ -1,46 +0,0 @@
-//
-//  Goom.h
-//  iGoom
-//
-//  Created by Guillaume Borios on Sat Dec 20 2003.
-//  Copyright (c) 2003 iOS. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#import <OpenGL/OpenGL.h>
-#import <OpenGL/glu.h>
-#include <OpenGL/glext.h>
-#include "src/goom.h"
-
- at interface Goom : NSObject {
-
-    PluginInfo * goomInfos;
-    
-    gint16 sndData[2][512];
-    
-    GLuint textureName;
-    AbsoluteTime	backUpTime;
-    
-    GLenum    texture_hint;
-    GLboolean client_storage;
-
-    NSSize curSize;
-    BOOL HQ;
-    BOOL dirty;
-}
-
-- (void)setSize:(NSSize)_size;
-
-- (PluginInfo*)infos;
-
--(void)render;
-
--(void)setHighQuality:(BOOL)quality;
-- (void)prepareTextures;
-
-- (guint32 *)getGoomDataWithFPS:(float)fps;
-
--(void)setTextureHint:(GLenum)hint;
--(void)clientStorage:(GLboolean)client;
-
- at end
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/Goom.m b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/Goom.m
deleted file mode 100755
index db3a162..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/Goom.m
+++ /dev/null
@@ -1,294 +0,0 @@
-//
-//  Goom.m
-//  iGoom
-//
-//  Created by Guillaume Borios on Sat Dec 20 2003.
-//  Copyright (c) 2003 iOS. All rights reserved.
-//
-
-#import "Goom.h"
-#import <OpenGL/glu.h>
-#include <OpenGL/glext.h>
-#import "SoundSampler.h"
-
- at implementation Goom
-
-unsigned int IMAGE_SIZE(NSSize curSize)
-{
-    int retour =   (1<<(int)(log((curSize.width>curSize.height)?curSize.width:curSize.height)/log(2.0f)));
-    if (retour > 512) retour = 512;
-    return retour;
-}
-
--(Goom*)init
-{
-    self = [super init];
-    
-    if (self != nil)
-    {
-        curSize = NSMakeSize(16,16);
-        HQ = NO;
-        dirty = YES;
-        goomInfos = goom_init(16,16);
-        backUpTime = UpTime();
-        
-        client_storage = GL_TRUE;
-        texture_hint = GL_STORAGE_SHARED_APPLE;
-    }
-    //NSLog(@"Goom Init");
-    return self;
-}
-
--(Goom*)initWithSize:(NSSize)_size
-{
-    self = [super init];
-    
-    if (self != nil)
-    {
-        curSize = _size;
-        HQ = NO;
-        dirty = YES;
-        backUpTime = UpTime();
-    }
-    //NSLog(@"Goom Init with Size : %f x %f",_size.width,_size.height);
-    return self;
-}
-
-- (PluginInfo*)infos
-{
-    return goomInfos;
-}
-
--(void)setSize:(NSSize)_size
-{
-    if ((curSize.width != _size.width) || (curSize.height != _size.height))
-    {
-        //NSLog(@"Set size (%f,%f)",_size.width, _size.height);
-        curSize = _size;
-        dirty = YES;
-    }
-}
-
--(void)render
-{
-    if (dirty==YES) [self prepareTextures]; 
-
-    //glClear(0);
-    
-    // Bind, update and draw new image
-    if(HQ==YES)
-    {
-        //NSLog(@"Render HQ (%f,%f)",curSize.width, curSize.height);
-        
-        glEnable(GL_TEXTURE_RECTANGLE_EXT);
-        
-        glBindTexture(GL_TEXTURE_RECTANGLE_EXT, textureName);
-        glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, 1);
-        glTexSubImage2D(GL_TEXTURE_RECTANGLE_EXT, 0, 0, 0, curSize.width, curSize.height, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV, [self getGoomDataWithFPS:0]);
-        
-        glBegin(GL_QUADS);
-        glTexCoord2f(0.0f, 0.0f);
-        glVertex2f(-1.0f, 1.0f);
-        glTexCoord2f(0.0f, curSize.height);
-        glVertex2f(-1.0f, -1.0f);
-        glTexCoord2f(curSize.width, curSize.height);
-        glVertex2f(1.0f, -1.0f);
-        glTexCoord2f(curSize.width, 0.0f);
-        glVertex2f(1.0f, 1.0f);
-        glEnd();
-        
-        glDisable(GL_TEXTURE_RECTANGLE_EXT);
-
-    }
-    else
-    {
-        int loggedSize = IMAGE_SIZE(curSize);
-        float ratio = curSize.width/curSize.height;
-        
-        //NSLog(@"Render LQ (%f,%f / %d)",curSize.width, curSize.height,IMAGE_SIZE(curSize));
- 
-        glEnable(GL_TEXTURE_2D);
-        
-	//glColor4f(0.0, 0.5, 0.1, 0.0);
-        glBindTexture(GL_TEXTURE_2D, textureName);
-        glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, 1);
-        glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, loggedSize, loggedSize, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV, [self getGoomDataWithFPS:0]);
-
-        //glShadeModel(GL_SMOOTH);
-        
-        glBegin(GL_POLYGON);
-        
-        if (ratio>1.0f)
-        {
-            float o=0.5f-0.5f/ratio;
-            float y=1.0f/ratio+o;
-            //glColor4f(0.0, 0.5, 0.1, 1.0);
-            glTexCoord2f(0.0f, o);
-            glVertex2f(-1.0f, 1.0f);
-            //glColor4f(0.3, 0.5, 0.1, 0.5);
-            glTexCoord2f(0.0f, y);
-            glVertex2f(-1.0f, -1.0f);
-            //glColor4f(0.6, 0.5, 0.1, 0.2);
-            glTexCoord2f(1.0f, y);
-            glVertex2f(1.0f, -1.0f);
-            //glColor4f(0.9, 0.5, 0.1, 0.0);
-            glTexCoord2f(1.0f, o);
-            glVertex2f(1.0f, 1.0f);
-        }
-        else
-        {
-            float o=0.5f-0.5f*ratio;
-            float x=ratio+o;
-            //glColor4f(0.0, 0.5, 0.1, 1.0);
-            glTexCoord2f(o, 0.0f);
-            glVertex2f(-1.0f, 1.0f);
-            //glColor4f(0.3, 0.5, 0.1, 0.5);
-            glTexCoord2f(o, 1.0f);
-            glVertex2f(-1.0f, -1.0f);
-            //glColor4f(0.6, 0.5, 0.1, 0.2);
-            glTexCoord2f(x, 1.0f);
-            glVertex2f(1.0f, -1.0f);
-            //glColor4f(0.9, 0.5, 0.1, 0.0);
-            glTexCoord2f(x, 0.0f);
-            glVertex2f(1.0f, 1.0f);
-        }
-        
-        glEnd();
-        
-        glDisable(GL_TEXTURE_2D);
-        //glShadeModel(GL_FLAT);
-
-        /*
-        glBegin(GL_QUADS);
-        
-	glColor4f(0.0, 0.1, 0.0, 1.0);
-	glVertex3f(-1.0, -1.0, 0.0);
-	glVertex3f( 1.0, -1.0, 0.0);
-        
-	glColor4f(0.0, 0.5, 0.1, 1.0);
-	glVertex3f( 1.0,  1.0, 0.0);
-	glVertex3f(-1.0,  1.0, 0.0);
-        
-	glEnd();*/
-        
-    }
-  
-    //glFlush();
-}
-
-
--(guint32 *)getGoomDataWithFPS:(float)fps
-{
-    
-    if (fps>0) return goom_update(goomInfos, [[SoundSampler sharedSampler] getData], 0, fps, 0, 0);
-    else return goom_update(goomInfos, [[SoundSampler sharedSampler] getData], 0, 0, 0, 0);
- //   return goom_update(goomInfos, sndData, 0, fps, 0, 0);
-    
-}
-
-
-
--(void)setHighQuality:(BOOL)quality
-{
-    HQ = quality;
-    dirty = YES;
-}
-
-- (void)prepareTextures
-{
-    //static BOOL first = YES;
-    //[[self openGLContext] update];
-    
-    // Setup some basic OpenGL stuff
-    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
-    glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
-    glColor4f(1.0f, 1.0f, 1.0f, 1.0f);    
-    
-    dirty = NO;
-    
-    glViewport(0, 0, (int) curSize.width, (int) curSize.height);
-    
-    glMatrixMode(GL_PROJECTION);
-    glLoadIdentity();
-    
-    glMatrixMode(GL_MODELVIEW);
-    glLoadIdentity();
-    
-    //glEnable(GL_LIGHTING);
-                                
-
-    if(HQ==YES)
-    {
-        //NSLog(@"Prepare HQ (%f,%f)",curSize.width, curSize.height);
-        
-        //glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE_EXT, 0, NULL);
-        
-        glDeleteTextures(1, &textureName);
-        glDisable(GL_TEXTURE_2D);
-        glEnable(GL_TEXTURE_RECTANGLE_EXT);
-        
-        glGenTextures( 1, &textureName );
-        glBindTexture(GL_TEXTURE_RECTANGLE_EXT, textureName);
-        
-        glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE_EXT, 0, NULL);
-        
-        glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_STORAGE_HINT_APPLE , client_storage);
-        glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, texture_hint);
-        glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-        glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-        glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-        glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-
-        goom_set_resolution (goomInfos, curSize.width, curSize.height);
-        glTexImage2D(GL_TEXTURE_RECTANGLE_EXT, 0, GL_RGBA, curSize.width, curSize.height, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, [self getGoomDataWithFPS:0]);
-    }
-    else
-    {
-        //NSLog(@"Prepare LQ (%f,%f)",curSize.width, curSize.height);
-        
-        //glTextureRangeAPPLE(GL_TEXTURE_2D, 0, NULL);
-                
-        glDeleteTextures(1, &textureName);
-        glDisable(GL_TEXTURE_RECTANGLE_EXT);
-        glEnable(GL_TEXTURE_2D);
-        
-        glGenTextures( 1, &textureName );
-        glBindTexture(GL_TEXTURE_2D, textureName);
-        
-        glTextureRangeAPPLE(GL_TEXTURE_2D, 0, NULL);
-        
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_STORAGE_HINT_APPLE , client_storage);
-        glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, texture_hint);
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-        
-        goom_set_resolution (goomInfos, IMAGE_SIZE(curSize), IMAGE_SIZE(curSize));
-        glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, IMAGE_SIZE(curSize), IMAGE_SIZE(curSize), 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, [self getGoomDataWithFPS:0]);
-        
-    }
-    glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
-}
-
--(void)setTextureHint:(GLenum)hint
-{
-    texture_hint = hint;
-}
-
--(void)clientStorage:(GLboolean)client
-{
-    client_storage = client;
-}
-
-
-- (void)dealloc
-{
-    goom_close(goomInfos);
-    [super dealloc];
-}
-
-
-
- at end
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/GoomFXParam.h b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/GoomFXParam.h
deleted file mode 100755
index c8ec67c..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/GoomFXParam.h
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-//  GoomFXParam.h
-//  iGoom copie
-//
-//  Created by Guillaume Borios on Sun Jul 20 2003.
-//  Copyright (c) 2003 iOS. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-#include "src/goom.h"
-
- at interface GoomFXParam : NSObject {
-    PluginParam * parametres;
-    NSProgressIndicator * progress;
-    NSSlider * slider;
-    NSButton * button;
-
-    NSTextField * value;
-}
-
-- (GoomFXParam*)initWithParam:(PluginParam*)p;
-- (NSView*)makeViewAtHeight:(float)h;
-- (void)setValue:(id)sender;
-
- at end
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/GoomFXParam.m b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/GoomFXParam.m
deleted file mode 100755
index dab5dad..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/GoomFXParam.m
+++ /dev/null
@@ -1,213 +0,0 @@
-//
-//  GoomFXParam.m
-//  iGoom copie
-//
-//  Created by Guillaume Borios on Sun Jul 20 2003.
-//  Copyright (c) 2003 iOS. All rights reserved.
-//
-
-#import "GoomFXParam.h"
-
-NSMutableDictionary * paramlist = nil;
-
-void goom_input_stub(PluginParam *_this)
-{
-  [(GoomFXParam*)[paramlist objectForKey:[NSString stringWithFormat:@"%p",_this]] setValue:nil];
-}
-
- at implementation GoomFXParam
-
-- (GoomFXParam*)initWithParam:(PluginParam*)p
-{
-  self = [super init];
-
-  if (self)
-  {
-    parametres = p;
-    if (paramlist == nil) paramlist = [[NSMutableDictionary alloc] init];
-    [paramlist setObject:self forKey:[NSString stringWithFormat:@"%p",p]];
-  }
-  return self;
-}
-
-- (void)setValue:(id)sender
-{
-
-  switch (parametres->type)
-  {
-    case PARAM_INTVAL:
-      if (parametres->rw == TRUE)
-      {
-	if (sender)
-        {
-            parametres->param.ival.value = [sender intValue];
-            parametres->changed(parametres);
-        }
-	else [slider setIntValue:parametres->param.ival.value];
-	[value setIntValue:parametres->param.ival.value];
-      }
-      else
-      {
-	[progress setDoubleValue:(double)parametres->param.ival.value];
-      }
-      break;
-    case PARAM_FLOATVAL:
-      if (parametres->rw == TRUE)
-      {
-	if (sender) 
-        {
-            parametres->param.fval.value = (float)[sender doubleValue];
-            parametres->changed(parametres);
-        }
-	else [slider setDoubleValue:(double)parametres->param.fval.value];
-	[value setDoubleValue:(double)parametres->param.fval.value];
-      }
-      else
-      {
-	[progress setDoubleValue:(double)parametres->param.fval.value];
-      }
-      break;
-    case PARAM_BOOLVAL:
-        if ((parametres->rw == TRUE) && (sender != nil))
-        {
-            parametres->param.bval.value = ([sender state]==NSOnState);
-            parametres->changed(parametres);
-        }
-        else
-        {
-            [button setState:(parametres->param.bval.value == YES)?NSOnState:NSOffState];
-        }
-      break;
-    case PARAM_STRVAL:
-      break;
-    case PARAM_LISTVAL:
-      break;
-    default:
-      break;
-  }
-}
-
-- (NSView*)makeViewAtHeight:(float)h
-{
-  NSView * container;
-  NSTextField * text;
-
-  container = [[NSView alloc] initWithFrame:NSMakeRect(20,h,420,25)];
-
-  if (parametres->type != PARAM_BOOLVAL)
-  {
-          text = [[NSTextField alloc] initWithFrame:NSMakeRect(0,5,214,15)];
-          [text setStringValue:[NSString stringWithCString:parametres->name]];
-          [text setDrawsBackground:NO];
-          [text setSelectable:NO];
-          [text setEditable:NO];
-          [text setBordered:NO];
-          [container addSubview:[text autorelease]];
-  }
-  
-  
-  if (parametres->rw == TRUE)
-  {
-    switch (parametres->type)
-    {
-      case PARAM_INTVAL:
-      case PARAM_FLOATVAL:
-	// Value text field
-	value = [[NSTextField alloc] initWithFrame:NSMakeRect(374,5,214,15)];
-	[value setDrawsBackground:NO];
-	[value setSelectable:NO];
-	[value setEditable:NO];
-	[value setBordered:NO];
-
-	[container addSubview:[value autorelease]];
-	//slider
-	slider = [[NSSlider alloc] initWithFrame:NSMakeRect(222,2,144,20)];
-	[slider setAction:@selector(setValue:)];
-	[slider setTickMarkPosition:NSTickMarkAbove];
-	[slider setTarget:self];
-	[container addSubview:[slider autorelease]];
-	//values
-	if (parametres->type == PARAM_INTVAL)
-	{
-	  [value setIntValue:parametres->param.ival.value];
-	  [slider setMaxValue:(double)parametres->param.ival.max];
-	  [slider setMinValue:(double)parametres->param.ival.min];
-	  [slider setIntValue:parametres->param.ival.value];
-	}
-	  else
-	  {
-	    [value setDoubleValue:parametres->param.fval.value];
-	    [[value cell] setFloatingPointFormat:YES left:1 right:1];
-	    [slider setMaxValue:(double)parametres->param.fval.max];
-	    [slider setMinValue:(double)parametres->param.fval.min];
-	    [slider setDoubleValue:(double)parametres->param.fval.value];
-	  }
-	  break;
-      case PARAM_BOOLVAL:
-          button = [[NSButton alloc] initWithFrame:NSMakeRect(0,2,344,18)];
-          [button setEnabled:YES];
-          [button setState:(parametres->param.bval.value == YES)?NSOnState:NSOffState];
-          [button setTitle:[NSString stringWithCString:parametres->name]];
-          [button setButtonType:NSSwitchButton];
-          [button setTransparent:NO];
-          [button setTarget:self];
-          [button setAction:@selector(setValue:)];
-          [container addSubview:[button autorelease]];
-          break;
-      case PARAM_STRVAL:
-          NSLog(@"PARAM_STRVAL rw not implemented");
-	break;
-      case PARAM_LISTVAL:
-          NSLog(@"PARAM_LISTVAL rw not implemented");
-	break;
-      default:
-	break;
-    }
-  }
-  else
-  {
-    switch (parametres->type)
-    {
-      case PARAM_INTVAL:
-	//slider
-	progress = [[NSProgressIndicator alloc] initWithFrame:NSMakeRect(222,7,144,10)];
-	[progress setMaxValue:(double)parametres->param.ival.max];
-	[progress setMinValue:(double)parametres->param.ival.min];
-	[progress setDoubleValue:(double)parametres->param.ival.value];
-	[progress setIndeterminate:NO];
-	[container addSubview:[progress autorelease]];
-	break;
-      case PARAM_FLOATVAL:
-	//slider
-	progress = [[NSProgressIndicator alloc] initWithFrame:NSMakeRect(222,7,144,10)];
-	[progress setMaxValue:(double)parametres->param.fval.max];
-	[progress setMinValue:(double)parametres->param.fval.min];
-	[progress setDoubleValue:(double)parametres->param.fval.value];
-	[progress setIndeterminate:NO];
-	[container addSubview:[progress autorelease]];
-	break;
-      case PARAM_BOOLVAL:
-          button = [[NSButton alloc] initWithFrame:NSMakeRect(0,2,344,18)];
-          [button setEnabled:NO];
-          [button setState:(parametres->param.bval.value == YES)?NSOnState:NSOffState];
-          [button setTitle:[NSString stringWithCString:parametres->name]];
-          [button setButtonType:NSSwitchButton];
-          [button setTransparent:NO];
-          [container addSubview:[button autorelease]];
-          break;
-      case PARAM_STRVAL:
-          NSLog(@"PARAM_STRVAL ro not implemented");
-	break;
-      case PARAM_LISTVAL:
-          NSLog(@"PARAM_LISTVAL ro not implemented");
-	break;
-      default:
-	break;
-    }
-    parametres->change_listener = goom_input_stub;
-  }
-
-  return [container autorelease];
-}
-
- at end
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/GoomFXView.h b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/GoomFXView.h
deleted file mode 100755
index 128eb60..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/GoomFXView.h
+++ /dev/null
@@ -1,22 +0,0 @@
-//
-//  GoomFXView.h
-//  iGoom copie
-//
-//  Created by Guillaume Borios on Sun Jul 20 2003.
-//  Copyright (c) 2003 iOS. All rights reserved.
-//
-
-#import <AppKit/AppKit.h>
-
-#include "src/goom.h"
-
- at interface GoomFXView : NSTabView {
-
-    NSMutableArray * params;
-    @public
-    float height;
-}
-
-- (id)initWithFrame:(NSRect)frame andFX:(PluginParameters)FX ;
-
- at end
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/GoomFXView.m b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/GoomFXView.m
deleted file mode 100755
index c2189f0..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/GoomFXView.m
+++ /dev/null
@@ -1,65 +0,0 @@
-//
-//  GoomFXView.m
-//  iGoom copie
-//
-//  Created by Guillaume Borios on Sun Jul 20 2003.
-//  Copyright (c) 2003 iOS. All rights reserved.
-//
-
-#import "GoomFXView.h"
-#import "GoomFXParam.h"
-
-
- at implementation GoomFXView
-
-- (id)initWithFrame:(NSRect)frame andFX:(PluginParameters)FX {
-    self = [super initWithFrame:frame];
-    if (self) {
-        int i;
-        height = 15.0f;
-        params = [[NSMutableArray alloc] init];
-        for (i=0; i < FX.nbParams; i++)
-        {
-            if (FX.params[i] != NULL)
-            {
-                GoomFXParam * FXP = [[[GoomFXParam alloc]initWithParam:FX.params[i]]autorelease];
-                [params addObject:FXP];
-                [self addSubview:[FXP makeViewAtHeight:height]];
-                height += 29.0f;
-            }
-            else
-            {
-                height += 12.0f;
-            }
-        }
-    }
-    
-    height += 73.0f;
-    
-    return self;
-}
-
-- (void)resizeWindow
-{
-    NSWindow * parent = [self window];
-    NSRect frame = [parent frame];
-    if (frame.size.height != height)
-    {
-        frame.origin.y -= height-frame.size.height;
-        frame.size.height = height;
-        [parent setFrame:frame display:NO animate:NO];
-    }
-}
-
-- (void)drawRect:(NSRect)rect {
-    // Drawing code here.
-}
-
--(void)dealloc
-{
-    [params release];
-
-    [super dealloc];
-}
-
- at end
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/MainOpenGLView.h b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/MainOpenGLView.h
deleted file mode 100755
index 90f1a92..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/MainOpenGLView.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- *
-	Disclaimer:	IMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.
- ("Apple") in consideration of your agreement to the following terms, and your
- use, installation, modification or redistribution of this Apple software
- constitutes acceptance of these terms.  If you do not agree with these terms,
- please do not use, install, modify or redistribute this Apple software.
- 
- In consideration of your agreement to abide by the following terms, and subject
- to these terms, Apple grants you a personal, non-exclusive license, under AppleÕs
- copyrights in this original Apple software (the "Apple Software"), to use,
- reproduce, modify and redistribute the Apple Software, with or without
- modifications, in source and/or binary forms; provided that if you redistribute
- the Apple Software in its entirety and without modifications, you must retain
- this notice and the following text and disclaimers in all such redistributions of
- the Apple Software.  Neither the name, trademarks, service marks or logos of
- Apple Computer, Inc. may be used to endorse or promote products derived from the
- Apple Software without specific prior written permission from Apple.  Except as
- expressly stated in this notice, no other rights or licenses, express or implied,
- are granted by Apple herein, including but not limited to any patent rights that
- may be infringed by your derivative works or by other works in which the Apple
- Software may be incorporated.
- 
- The Apple Software is provided by Apple on an "AS IS" basis.  APPLE MAKES NO
- WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
- WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
- COMBINATION WITH YOUR PRODUCTS.
- 
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-                        GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION
- OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT
- (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#import <Cocoa/Cocoa.h>
-
-#include <OpenGL/gl.h>
-#include <OpenGL/glext.h>
-#include <OpenGL/glu.h>
-
-#include <sys/time.h>
-#include <unistd.h>
-
-#import "Goom.h"
-
-#define STAT_UPDATE                0.6f
-#define IMAGE_DEPTH                32
-
- at interface MainOpenGLView : NSOpenGLView
-{
-    GLubyte  *image;
-    
-    GLint     buffers;
-    GLint     frame_rate;
-    
-    GLboolean rect_texture;
-    GLboolean client_storage;
-    GLboolean texture_range;
-    
-    bool fullscreen;
-    NSWindow * FullScreenWindow;
-    IBOutlet NSView * StartingView;
-    
-    
-    struct timeval cycle_time;
-    
-    IBOutlet NSTextField *sizeField;
-    
-    IBOutlet Goom * myGoom;
-    
-    NSTimer* timer;
-    
-    @public
-    float avg_fps;
-}
-
-- (IBAction) clientStorage: (id) sender;
-- (IBAction) textureHint: (id) sender;
-- (IBAction) rectTextures: (id) sender;
-
-- (BOOL)canBeHQ;
-
- at end
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/MainOpenGLView.m b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/MainOpenGLView.m
deleted file mode 100755
index f2bed83..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/MainOpenGLView.m
+++ /dev/null
@@ -1,249 +0,0 @@
-#define IMAGE_SIZE (1<<(int)(log(([self bounds].size.width<[self bounds].size.height)?[self bounds].size.width:[self bounds].size.height)/log(2.0f)))
-
-#include <sys/time.h>
-#include <unistd.h>
-#include <math.h>
-
-#include "src/goom.h"
-
-#include <QuickTime/ImageCompression.h> // for image loading and decompression
-#include <QuickTime/QuickTimeComponents.h> // for file type support
-
-#include <OpenGL/CGLCurrent.h>
-#include <OpenGL/CGLContext.h>
-#include <OpenGL/gl.h>
-
-#import "MainOpenGLView.h"
-
- at implementation MainOpenGLView
-
-- (void) dealloc
-{
-    [super dealloc];
-}
-
-- (id)initWithFrame:(NSRect)frameRect
-{
-    // Init pixel format attribs
-    NSOpenGLPixelFormatAttribute attrs[] =
-    {
-        // Attributes Common to FullScreen and non-FullScreen
-        NSOpenGLPFAColorSize, 24,
-        NSOpenGLPFADepthSize, 16,
-        NSOpenGLPFADoubleBuffer,
-        NSOpenGLPFAAccelerated,
-        NSOpenGLPFANoRecovery,
-        0
-    };
-    
-    // Get pixel format from OpenGL
-    NSOpenGLPixelFormat* pixFmt = [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs];
-    if (!pixFmt)
-    {
-        NSLog(@"No pixel format -- exiting");
-        exit(1);
-    }
-    
-    self = [super initWithFrame:frameRect pixelFormat:pixFmt];
-    return self;
-}
-/*
-- (void)displayMPixels
-{
-    static long loop_count = 0;
-    struct timeval t2;
-    unsigned long t;
-    
-    loop_count++;
-    
-    gettimeofday(&t2, NULL);
-    t = 1000000 * (t2.tv_sec - cycle_time.tv_sec) + (t2.tv_usec - cycle_time.tv_usec);
-    
-    // Display the average data rate
-    if(t > 1000000 * STAT_UPDATE)
-    {
-        gettimeofday(&t2, NULL);
-        t = 1000000 * (t2.tv_sec - cycle_time.tv_sec) + (t2.tv_usec - cycle_time.tv_usec);
-        gettimeofday(&cycle_time, NULL);
-        avg_fps = (1000000.0f * (float) loop_count) / (float) t;
-        
-        loop_count = 0;
-        
-        gettimeofday(&cycle_time, NULL);
-    }
-}
-*/
-
-- (BOOL)canBeHQ
-{
-    [[self openGLContext] makeCurrentContext];
-    return (strstr(glGetString(GL_EXTENSIONS),"GL_EXT_texture_rectangle") != NULL);
-}
-
- - (void) drawRect:(NSRect)rect
- {
-    // Delegate to our scene object for rendering.
-    
-    [[self openGLContext] makeCurrentContext];
-    
-    glViewport(0, 0, (GLsizei) rect.size.width, (GLsizei) rect.size.height);
-
-    //GLfloat clear_color[4] = { 1.0f, 0.0f, 0.0f, 0.0f };
-    //glClearColor(clear_color[0], clear_color[1], clear_color[2], clear_color[3]);
-    //glClear(GL_COLOR_BUFFER_BIT+GL_DEPTH_BUFFER_BIT+GL_STENCIL_BUFFER_BIT);
-    
-    [myGoom render];
-    
-    [[self openGLContext] flushBuffer];
- }
-
-
-- (void)update  // moved or resized
-{
-    NSRect rect;
-    
-    [myGoom setSize:[self bounds].size];
-
-    [super update];
-    
-    [[self openGLContext] makeCurrentContext];
-    [[self openGLContext] update];
-    
-    rect = [self bounds];
-    
-    glViewport(0, 0, (int) rect.size.width, (int) rect.size.height);
-    
-    glMatrixMode(GL_PROJECTION);
-    glLoadIdentity();
-    
-    glMatrixMode(GL_MODELVIEW);
-    glLoadIdentity(); 
-
-    
-    [self setNeedsDisplay:true];
-}
-
-- (void)reshape	// scrolled, moved or resized
-{
-    NSRect rect;
-    
-    [myGoom setSize:[self bounds].size];
-
-    [super reshape];
-    
-    [[self openGLContext] makeCurrentContext];
-    [[self openGLContext] update];
-    
-    //[myGoom setSize:[self bounds].size];
-
- 
-    rect = [self bounds];
-    
-    glViewport(0, 0, (int) rect.size.width, (int) rect.size.height);
-    
-    //[self loadTextures:GL_FALSE];
-    
-    glMatrixMode(GL_PROJECTION);
-    glLoadIdentity();
-    
-    glMatrixMode(GL_MODELVIEW);
-    glLoadIdentity();
-    
-    [self setNeedsDisplay:true];
-}
-
-- (IBAction) clientStorage: (id) sender
-{
-    [myGoom clientStorage:([sender state]==NSOnState)?GL_TRUE:GL_FALSE];
-
-    //[self loadTextures:GL_FALSE];
-}
-
-- (IBAction) rectTextures: (id) sender
-{
-    [myGoom setHighQuality:(rect_texture==NSOnState)?YES:NO];
-    
-    //[self loadTextures:GL_FALSE];
-}
-
-- (IBAction) textureHint: (id) sender
-{
-    int tag = [[sender selectedItem] tag];
-    GLenum    texture_hint = GL_STORAGE_CACHED_APPLE;
-    if(tag == 1) texture_hint = GL_STORAGE_PRIVATE_APPLE;
-    if(tag == 2) texture_hint = GL_STORAGE_SHARED_APPLE;
-    
-    [myGoom setTextureHint:texture_hint];
-    //[self loadTextures:YES];
-}
-/*
-- (void)loadTextures: (GLboolean)first
-{
-    NSLog(@"LoadsTExtures");
-    PluginInfo * goomInfos = [myGoom infos];
-
-    NSRect rect = [self bounds];
-    
-    [[self openGLContext] makeCurrentContext];
-    [[self openGLContext] update];
-    glEnable(GL_LIGHTING);
-                if(rect_texture)
-                {
-                    if(!first)
-                    {
-                        GLint dt = 1;
-                        glDeleteTextures(1, &dt);
-                    }
-                    
-                    goom_set_resolution (goomInfos, rect.size.width, rect.size.height);
-                    
-                    glDisable(GL_TEXTURE_2D);
-                    glEnable(GL_TEXTURE_RECTANGLE_EXT);
-                    glBindTexture(GL_TEXTURE_RECTANGLE_EXT, 1);
-                    
-                    glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE_EXT, 0, NULL);
-                    
-                    glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_STORAGE_HINT_APPLE , texture_hint);
-                    glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, client_storage);
-                    glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-                    glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-                    glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-                    glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-                    glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
-                    
-                    glTexImage2D(GL_TEXTURE_RECTANGLE_EXT, 0, GL_RGBA, [self bounds].size.width,
-                                 [self bounds].size.height, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, [myGoom getGoomDataWithFPS:avg_fps]);
-                }
-                else
-                {
-                    glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE_EXT, 0, NULL);
-                    glTextureRangeAPPLE(GL_TEXTURE_2D, 0, NULL);
-                    
-                    if(!first)
-                    {
-                        GLint dt = 1;
-                        glDeleteTextures(1, &dt);
-                    }
-                    
-                    goom_set_resolution (goomInfos,IMAGE_SIZE, IMAGE_SIZE);
-                    
-                    glDisable(GL_TEXTURE_RECTANGLE_EXT);
-                    glEnable(GL_TEXTURE_2D);
-                    glBindTexture(GL_TEXTURE_2D, 1);
-                    
-                    glTextureRangeAPPLE(GL_TEXTURE_2D, 0, NULL);
-                    
-                    glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_STORAGE_HINT_APPLE , texture_hint);
-                    glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, client_storage);
-                    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-                    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-                    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-                    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-                    glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
-                    
-                    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, IMAGE_SIZE,
-                                 IMAGE_SIZE, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, [myGoom getGoomDataWithFPS:avg_fps]);
-                }
-}
-*/
- at end
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/MyApplication.h b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/MyApplication.h
deleted file mode 100755
index e6b3c37..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/MyApplication.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *
-	Disclaimer:	IMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.
-				("Apple") in consideration of your agreement to the following terms, and your
-				use, installation, modification or redistribution of this Apple software
-				constitutes acceptance of these terms.  If you do not agree with these terms,
-				please do not use, install, modify or redistribute this Apple software.
-
-				In consideration of your agreement to abide by the following terms, and subject
-				to these terms, Apple grants you a personal, non-exclusive license, under AppleÕs
-				copyrights in this original Apple software (the "Apple Software"), to use,
-				reproduce, modify and redistribute the Apple Software, with or without
-				modifications, in source and/or binary forms; provided that if you redistribute
-				the Apple Software in its entirety and without modifications, you must retain
-				this notice and the following text and disclaimers in all such redistributions of
-				the Apple Software.  Neither the name, trademarks, service marks or logos of
-				Apple Computer, Inc. may be used to endorse or promote products derived from the
-				Apple Software without specific prior written permission from Apple.  Except as
-				expressly stated in this notice, no other rights or licenses, express or implied,
-				are granted by Apple herein, including but not limited to any patent rights that
-				may be infringed by your derivative works or by other works in which the Apple
-				Software may be incorporated.
-
-				The Apple Software is provided by Apple on an "AS IS" basis.  APPLE MAKES NO
-				WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
-				WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-				PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
-				COMBINATION WITH YOUR PRODUCTS.
-
-				IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
-				CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-				GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-				ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION
-				OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT
-				(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN
-				ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#import <Cocoa/Cocoa.h>
-
- at interface MyApplication : NSApplication
-{
-}
- at end
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/MyApplication.m b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/MyApplication.m
deleted file mode 100755
index 38388c8..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/MyApplication.m
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *
-	Disclaimer:	IMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.
-				("Apple") in consideration of your agreement to the following terms, and your
-				use, installation, modification or redistribution of this Apple software
-				constitutes acceptance of these terms.  If you do not agree with these terms,
-				please do not use, install, modify or redistribute this Apple software.
-
-				In consideration of your agreement to abide by the following terms, and subject
-				to these terms, Apple grants you a personal, non-exclusive license, under AppleÕs
-				copyrights in this original Apple software (the "Apple Software"), to use,
-				reproduce, modify and redistribute the Apple Software, with or without
-				modifications, in source and/or binary forms; provided that if you redistribute
-				the Apple Software in its entirety and without modifications, you must retain
-				this notice and the following text and disclaimers in all such redistributions of
-				the Apple Software.  Neither the name, trademarks, service marks or logos of
-				Apple Computer, Inc. may be used to endorse or promote products derived from the
-				Apple Software without specific prior written permission from Apple.  Except as
-				expressly stated in this notice, no other rights or licenses, express or implied,
-				are granted by Apple herein, including but not limited to any patent rights that
-				may be infringed by your derivative works or by other works in which the Apple
-				Software may be incorporated.
-
-				The Apple Software is provided by Apple on an "AS IS" basis.  APPLE MAKES NO
-				WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
-				WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-				PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
-				COMBINATION WITH YOUR PRODUCTS.
-
-				IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
-				CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-				GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-				ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION
-				OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT
-				(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN
-				ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#import "MyApplication.h"
-#import "AppController.h"
-
- at implementation MyApplication
-
-- (NSEvent *)nextEventMatchingMask:(unsigned int)mask
-	untilDate:(NSDate *)expiration inMode:(NSString *)mode dequeue:(BOOL)flag
-{
-	NSEvent *event;
-	
-	event = [super nextEventMatchingMask:mask untilDate:expiration inMode:mode dequeue:flag];
-		
-	//[[self delegate] UpdateDrawing];
-	
-	return event;
-}
-
- at end
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/SoundSampler.h b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/SoundSampler.h
deleted file mode 100755
index 7954b48..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/SoundSampler.h
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-//  SoundSampler.h
-//  iGoom
-//
-//  Created by Guillaume Borios on Thu May 27 2004.
-//  Copyright (c) 2004 iOS. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#include <CoreAudio/CoreAudio.h>
-
-
- at interface SoundSampler : NSObject {
-    
-    @private
-    
-    IBOutlet NSPopUpButton * ODeviceList;
-    IBOutlet NSSlider      * OSoundVolume;
-
-    AudioDeviceID oldDevice, curDevice;
-    
-    signed short data[3][2][512];
-    int BufferIndexReady, BufferIndexRead, BufferIndexWrite;
-    NSLock * BufferLock;
-}
-
-+(SoundSampler*)sharedSampler;
--(void*)getData;
--(void)	UpdateDeviceList;
--(void)updateBuffer:(const AudioBufferList *)inInputData withDevice:(AudioDeviceID)inDevice;
-
--(IBAction)changeAudioDevice:(id)sender;
--(IBAction)changeAudioVolume:(id)sender;
--(void)refreshAudioVolumeInterface:(float)value;
-
- at end
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/SoundSampler.mm b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/SoundSampler.mm
deleted file mode 100755
index b9d321b..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/SoundSampler.mm
+++ /dev/null
@@ -1,372 +0,0 @@
-//
-//  SoundSampler.mm
-//  iGoom
-//
-//  Created by Guillaume Borios on Thu May 27 2004.
-//  Copyright (c) 2004 iOS. All rights reserved.
-//
-
-#import "SoundSampler.h"
-
-#import "CoreAudioHardware.h"
-#import "CoreAudioDevice.h"
-
-#include <sys/types.h>
-#include <unistd.h>
-
-#define kAudioDeviceNone        0
-#define kAudioDeviceUndefined   0xFFFF
-
-
-OSStatus deviceChanged(AudioDeviceID inDevice, UInt32 /*inChannel*/, Boolean inIsInput, AudioDevicePropertyID inPropertyID, void * deviceController)
-{
-    if (inIsInput)
-    {
-        NS_DURING
-        
-	switch(inPropertyID)
-	{
-            case kAudioDevicePropertyDeviceIsAlive:
-            case kAudioDevicePropertyHogMode:
-            case kAudioDevicePropertyDeviceHasChanged:
-            {
-                [(SoundSampler*)deviceController UpdateDeviceList];
-                CoreAudioDevice theDevice(inDevice);
-                [(SoundSampler*)deviceController refreshAudioVolumeInterface:theDevice.GetVolumeControlScalarValue(1,kAudioDeviceSectionInput)];
-            }
-                break;
-                
-            default:
-                break;
-	};
-	
-        NS_HANDLER
-        NS_ENDHANDLER
-    }
-	return 0;
-}
-
-OSStatus devicesChanged(AudioHardwarePropertyID property, void * deviceController)
-{
-    NS_DURING
-	
-	switch(property)
-	{
-            case kAudioHardwarePropertyDevices:
-                [(SoundSampler*)deviceController UpdateDeviceList];
-                break;
-                
-            default:
-                break;
-	};
-	
-    NS_HANDLER
-        NS_ENDHANDLER
-        
-        return 0;
-}
-
-static SoundSampler * sharedInstance = nil;
-
- at implementation SoundSampler
-
--(SoundSampler*)init
-{
-    self = [super init];
-    if (self)
-    {
-        if (sharedInstance==nil) sharedInstance = self;
-        oldDevice = curDevice = kAudioDeviceUndefined;
-        BufferIndexReady = 2;
-        BufferIndexRead = 0;
-        BufferIndexWrite = 1;
-        BufferLock = [[NSLock alloc] init];
-    }
-    return self;
-}
-
-+(SoundSampler*)sharedSampler
-{
-    if (sharedInstance==nil)
-    {
-        NSLog(@"Error : Sound Sampler invoked to early");
-        exit(0);
-    }
-    return sharedInstance;
-}
-
--(void)awakeFromNib
-{
-    [ODeviceList setAutoenablesItems:NO];
-    [self UpdateDeviceList];
-    CoreAudioHardware::AddPropertyListener(kAudioHardwarePropertyDevices, (AudioHardwarePropertyListenerProc)devicesChanged, self);
-}
-
--(void) dealloc
-{
-    CoreAudioHardware::RemovePropertyListener(kAudioHardwarePropertyDevices, (AudioHardwarePropertyListenerProc)devicesChanged);
-    [super dealloc];
-}
-
-
-OSStatus myDeviceProc(AudioDeviceID inDevice, const AudioTimeStamp * inNow,
-                      const AudioBufferList * inInputData,
-                      const AudioTimeStamp * inInputTime,
-                      AudioBufferList * outOutputData, 
-                      const AudioTimeStamp * inOutputTime, void * inClientData)
-{
-    [(SoundSampler*)inClientData updateBuffer:inInputData withDevice:inDevice];
-}
-
-#define maxValue 32567.0f
-
--(void)swapBuffersForRead:(BOOL)read
-{
-    int tmp;
-    
-    [BufferLock lock];
-    if (read)
-    {
-        tmp = BufferIndexRead;
-        BufferIndexRead = BufferIndexReady;
-        BufferIndexReady = tmp;
-    }
-    else
-    {
-        tmp = BufferIndexWrite;
-        BufferIndexWrite = BufferIndexReady;
-        BufferIndexReady = tmp;
-    }
-    [BufferLock unlock];
-}
-
--(void)updateBuffer:(const AudioBufferList *)inInputData withDevice:(AudioDeviceID)inDevice
-{
-    // WARNING !!!  This function assumes the input format is (interleaved) Float32 !!!
-    int curBuffer;
-    int curPosition = 512-1;
-    int i;
-    for (curBuffer = inInputData->mNumberBuffers-1; (curBuffer >= 0) && (curPosition >= 0); --curBuffer)
-    {
-        UInt32 channels = inInputData->mBuffers[curBuffer].mNumberChannels;
-        UInt32 size = inInputData->mBuffers[curBuffer].mDataByteSize / (sizeof(Float32)*channels);
-        if ( (channels > 0) && (size > 0) )
-        {
-            if (channels == 1)
-            {
-                // We will duplicate the first channel
-                for (i=size-1; (i >=0 ) && (curPosition >= 0); --i)
-                {
-                    data[BufferIndexWrite][0][curPosition]=(short)(maxValue * ((Float32*)inInputData->mBuffers[curBuffer].mData)[i]);
-                    data[BufferIndexWrite][1][curPosition]=data[BufferIndexWrite][0][curPosition];
-                    curPosition--;
-                }
-            }
-            else
-            {
-                // Uses only the 2 first channels
-                for (i=size-1; (i >=0 ) && (curPosition >= 1); --i)
-                {
-                    data[BufferIndexWrite][0][curPosition]=(short)(maxValue * ((Float32*)inInputData->mBuffers[curBuffer].mData)[i]);
-                    i--;
-                    data[BufferIndexWrite][1][curPosition]=(short)(maxValue * ((Float32*)inInputData->mBuffers[curBuffer].mData)[i]);
-                    curPosition--;
-                }
-            }
-        }
-    }
-    [self swapBuffersForRead:NO];
-}
-
--(void*)getData
-{    
-    if (oldDevice != curDevice )
-    {
-        // The device changed
-        
-        // Stop the old one
-        if ( (oldDevice != kAudioDeviceUndefined) && (oldDevice != kAudioDeviceNone) )
-        {
-            AudioDeviceStop(oldDevice, myDeviceProc);
-            AudioDeviceRemoveIOProc(oldDevice, myDeviceProc);
-            bzero((void*)data,3*2*512*sizeof(short));
-        }
-        oldDevice = curDevice;
-        
-        //Start the new one
-        if ( (curDevice != kAudioDeviceUndefined) && (curDevice != kAudioDeviceNone) )
-        {
-            AudioDeviceAddIOProc(curDevice, myDeviceProc, (void*)self);
-            AudioDeviceStart(curDevice, myDeviceProc);
-        }
-    }
-
-    [self swapBuffersForRead:YES];
-
-    return (void*)(&(data[BufferIndexRead][0][0]));
-}
-
-
-
-
--(IBAction)_changeAudioDevice:(AudioDeviceID)device
-{
-    if (oldDevice==device) return;
-    
-    //NSLog(@"Changing audio device from %d to %d",oldDevice,device);
-    
-    if ( (oldDevice != kAudioDeviceUndefined) && (oldDevice != kAudioDeviceNone) )
-    {
-        CoreAudioDevice old(oldDevice);
-        old.RemovePropertyListener(kAudioPropertyWildcardChannel, kAudioPropertyWildcardSection, kAudioPropertyWildcardPropertyID, (AudioDevicePropertyListenerProc)deviceChanged);
-    }
-    
-    curDevice = device;
-    
-    if (device == kAudioDeviceNone)
-    {
-        [OSoundVolume setEnabled:NO];
-        [OSoundVolume setFloatValue:0.0f];
-    }
-    else
-    {
-        CoreAudioDevice theDevice(device);
-        theDevice.AddPropertyListener(kAudioPropertyWildcardChannel, kAudioPropertyWildcardSection, kAudioPropertyWildcardPropertyID, (AudioDevicePropertyListenerProc)deviceChanged, self);
-        if (theDevice.HasVolumeControl(1,kAudioDeviceSectionInput))
-        {
-            [OSoundVolume setEnabled:theDevice.VolumeControlIsSettable(1,kAudioDeviceSectionInput)];
-            [OSoundVolume setFloatValue:theDevice.GetVolumeControlScalarValue(1,kAudioDeviceSectionInput)];
-        }
-        else
-        {
-            [OSoundVolume setEnabled:NO];
-            [OSoundVolume setFloatValue:0.0f];
-        }
-    }
-}
-
--(IBAction)changeAudioDevice:(id)sender
-{
-    //NSLog(@"Will change to %@",[[ODeviceList selectedItem]title]);
-    [self _changeAudioDevice:[[ODeviceList selectedItem]tag]];
-}
-
-
--(void)	AddDeviceToMenu:(CoreAudioDevice *)dev
-{
-    if (dev == nil)
-    {
-        [ODeviceList addItemWithTitle:[[NSBundle bundleForClass:[self class]] localizedStringForKey:@"None" value:nil table:nil]];
-        [[ODeviceList lastItem] setTag:kAudioDeviceNone];
-    }
-    else
-    {
-        [ODeviceList addItemWithTitle:@""];
-        NSMenuItem* zeItem = [ODeviceList lastItem];
-    
-        NSString* name = (NSString*)dev->name();
-        [zeItem setTitle: [[NSBundle bundleForClass:[self class]] localizedStringForKey:name value:nil table:nil]];
-        [name release];
-        [zeItem setTag: dev->getDeviceID()];
-    }
-}
-
-
--(void)	UpdateDeviceList
-{
-    int i,c;
-    
-
-    // Cleanup
-    [ODeviceList removeAllItems];
-    [self AddDeviceToMenu:nil];
-
-    
-    // List devices
-    int n = CoreAudioHardware::numberOfDevices();
-    //NSLog(@"Current device %d",curDevice);
-    for(i = 0; i < n; i++)
-    {
-        CoreAudioDevice theDevice(CoreAudioHardware::deviceAtIndex(i));
-
-        // select audio devices with input streams only        
-        if (theDevice.numberOfChannels(kAudioDeviceSectionInput) > 0)
-        {
-            [self AddDeviceToMenu:&theDevice];
-        }
-        //NSLog(@"Tag %d : %d",i,[ODeviceList lastItem]);
-    }
-
-    // Set up the new selection
-    pid_t theHogModeOwner;
-    
-    
-    // Choose the old device, if not hogged...
-    c = [ODeviceList indexOfItemWithTag: curDevice];
-    if (c != -1)
-    {
-        CoreAudioDevice dev(CoreAudioHardware::deviceAtIndex(i-1));
-        theHogModeOwner = dev.hogModeOwner();
-        if ((theHogModeOwner != -1) && (theHogModeOwner != getpid()))
-        {
-            c = -1;
-        }
-    }
-    
-    // Disables all hogged audio inputs, and choose one if necessary and possible
-    int m = 1;
-    for (i = 0; i < n; i++)
-    {
-        CoreAudioDevice dev(CoreAudioHardware::deviceAtIndex(i));
-        if (dev.numberOfChannels(kAudioDeviceSectionInput) > 0)
-        {
-            theHogModeOwner = dev.hogModeOwner();
-            if ((theHogModeOwner != -1) && (theHogModeOwner != getpid()))
-            {
-                NS_DURING
-                    [[ODeviceList itemAtIndex:m] setEnabled:NO];
-                NS_HANDLER
-                    //NSLog(@"Exception 1 a pété ! c = %d, i = %d, n = %d, max = %d",c,i,n,[ODeviceList numberOfItems]);
-                NS_ENDHANDLER
-            }
-            else if (c == -1)
-            {
-                c = m;
-                NS_DURING
-                    [self _changeAudioDevice:[[ODeviceList itemAtIndex:c] tag]];
-                NS_HANDLER
-                    //NSLog(@"Exception 2 a pété ! c = %d, i = %d, n = %d, max = %d",c,i,n,[ODeviceList numberOfItems]);
-                NS_ENDHANDLER
-            }
-            m++;
-        }
-    }
-    
-    // If nothing could be selected, choose "None"
-    if (c == -1)
-    {
-        c = 0;
-        [self _changeAudioDevice:kAudioDeviceNone];
-    }
-    
-    [ODeviceList selectItemAtIndex:c];
-}
-
-
--(void)refreshAudioVolumeInterface:(float)value
-{
-    [OSoundVolume setFloatValue:value];
-}
-
--(IBAction)changeAudioVolume:(id)sender
-{
-    CoreAudioDevice theDevice(curDevice);
-    if (theDevice.VolumeControlIsSettable(1,kAudioDeviceSectionInput))
-        theDevice.SetVolumeControlScalarValue(1,kAudioDeviceSectionInput,[sender floatValue]);
-    if (theDevice.VolumeControlIsSettable(2,kAudioDeviceSectionInput))
-        theDevice.SetVolumeControlScalarValue(2,kAudioDeviceSectionInput,[sender floatValue]);
-}
-
-
-
- at end
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/iGoom-StandAlone.plist b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/iGoom-StandAlone.plist
deleted file mode 100755
index bd9a090..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/iGoom-StandAlone.plist
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>iGoom</string>
-	<key>CFBundleGetInfoString</key>
-	<string></string>
-	<key>CFBundleIconFile</key>
-	<string>icon.icns</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.ios.igoom.standalone</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string></string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleShortVersionString</key>
-	<string></string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>2.0</string>
-	<key>NSMainNibFile</key>
-	<string>MainMenu</string>
-	<key>NSPrincipalClass</key>
-	<string>NSApplication</string>
-</dict>
-</plist>
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/iGoom_Prefix.pch b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/iGoom_Prefix.pch
deleted file mode 100755
index 13686a2..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/iGoom_Prefix.pch
+++ /dev/null
@@ -1,7 +0,0 @@
-//
-// Prefix header for all source files of the 'iGoom' target in the 'iGoom' project
-//
-
-#ifdef __OBJC__
-    #import <Cocoa/Cocoa.h>
-#endif
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/icon.icns b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/icon.icns
deleted file mode 100644
index 5eec9d8..0000000
Binary files a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/icon.icns and /dev/null differ
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/main.m b/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/main.m
deleted file mode 100755
index b320f38..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/StandAlone/main.m
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *
-	Disclaimer:	IMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.
-				("Apple") in consideration of your agreement to the following terms, and your
-				use, installation, modification or redistribution of this Apple software
-				constitutes acceptance of these terms.  If you do not agree with these terms,
-				please do not use, install, modify or redistribute this Apple software.
-
-				In consideration of your agreement to abide by the following terms, and subject
-				to these terms, Apple grants you a personal, non-exclusive license, under AppleÕs
-				copyrights in this original Apple software (the "Apple Software"), to use,
-				reproduce, modify and redistribute the Apple Software, with or without
-				modifications, in source and/or binary forms; provided that if you redistribute
-				the Apple Software in its entirety and without modifications, you must retain
-				this notice and the following text and disclaimers in all such redistributions of
-				the Apple Software.  Neither the name, trademarks, service marks or logos of
-				Apple Computer, Inc. may be used to endorse or promote products derived from the
-				Apple Software without specific prior written permission from Apple.  Except as
-				expressly stated in this notice, no other rights or licenses, express or implied,
-				are granted by Apple herein, including but not limited to any patent rights that
-				may be infringed by your derivative works or by other works in which the Apple
-				Software may be incorporated.
-
-				The Apple Software is provided by Apple on an "AS IS" basis.  APPLE MAKES NO
-				WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
-				WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-				PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
-				COMBINATION WITH YOUR PRODUCTS.
-
-				IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
-				CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-				GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-				ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION
-				OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT
-				(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN
-				ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#import <Cocoa/Cocoa.h>
-
-int main(int argc, const char *argv[])
-{
-    return NSApplicationMain(argc, argv);
-}
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iGoom.xcode/project.pbxproj b/xbmc/visualizations/Goom/goom2k4-0/mac/iGoom.xcode/project.pbxproj
deleted file mode 100755
index e29b627..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iGoom.xcode/project.pbxproj
+++ /dev/null
@@ -1,1130 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 39;
-	objects = {
-		1058C7A0FEA54F0111CA2CBB = {
-			children = (
-				1058C7A1FEA54F0111CA2CBB,
-				3B336C0906D1537B003DCDCB,
-				3B336CD606D159F9003DCDCB,
-			);
-			isa = PBXGroup;
-			name = "Linked Frameworks";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		1058C7A1FEA54F0111CA2CBB = {
-			isa = PBXFileReference;
-			lastKnownFileType = wrapper.framework;
-			name = Cocoa.framework;
-			path = /System/Library/Frameworks/Cocoa.framework;
-			refType = 0;
-			sourceTree = "<absolute>";
-		};
-		1058C7A2FEA54F0111CA2CBB = {
-			children = (
-				3BE13CC706D3FE26005DAB04,
-				29B97325FDCFA39411CA2CEA,
-				29B97324FDCFA39411CA2CEA,
-			);
-			isa = PBXGroup;
-			name = "Other Frameworks";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-//100
-//101
-//102
-//103
-//104
-//190
-//191
-//192
-//193
-//194
-		19C28FACFE9D520D11CA2CBB = {
-			children = (
-				8D1107320486CEB800E47090,
-				3BE13C9406D3FD5D005DAB04,
-			);
-			isa = PBXGroup;
-			name = Products;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-//190
-//191
-//192
-//193
-//194
-//290
-//291
-//292
-//293
-//294
-		29B97313FDCFA39411CA2CEA = {
-			buildSettings = {
-			};
-			buildStyles = (
-				4A9504CCFFE6A4B311CA0CBA,
-				4A9504CDFFE6A4B311CA0CBA,
-			);
-			hasScannedForEncodings = 1;
-			isa = PBXProject;
-			mainGroup = 29B97314FDCFA39411CA2CEA;
-			projectDirPath = "";
-			targets = (
-				8D1107260486CEB800E47090,
-				3BE13C9306D3FD5D005DAB04,
-			);
-		};
-		29B97314FDCFA39411CA2CEA = {
-			children = (
-				3BE13CAB06D3FDB2005DAB04,
-				3BE13C9B06D3FDB2005DAB04,
-				3B336D8A06D3DE8E003DCDCB,
-				29B97315FDCFA39411CA2CEA,
-				29B97323FDCFA39411CA2CEA,
-				19C28FACFE9D520D11CA2CBB,
-			);
-			isa = PBXGroup;
-			name = iGoom;
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97315FDCFA39411CA2CEA = {
-			children = (
-				32CA4F630368D1EE00C91783,
-			);
-			isa = PBXGroup;
-			name = "Other Sources";
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97323FDCFA39411CA2CEA = {
-			children = (
-				3BA6971006D8B8EF007E5D2B,
-				3BE13C7E06D3FAE8005DAB04,
-				1058C7A0FEA54F0111CA2CBB,
-				1058C7A2FEA54F0111CA2CBB,
-			);
-			isa = PBXGroup;
-			name = Frameworks;
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		29B97324FDCFA39411CA2CEA = {
-			isa = PBXFileReference;
-			lastKnownFileType = wrapper.framework;
-			name = AppKit.framework;
-			path = /System/Library/Frameworks/AppKit.framework;
-			refType = 0;
-			sourceTree = "<absolute>";
-		};
-		29B97325FDCFA39411CA2CEA = {
-			isa = PBXFileReference;
-			lastKnownFileType = wrapper.framework;
-			name = Foundation.framework;
-			path = /System/Library/Frameworks/Foundation.framework;
-			refType = 0;
-			sourceTree = "<absolute>";
-		};
-//290
-//291
-//292
-//293
-//294
-//320
-//321
-//322
-//323
-//324
-		32CA4F630368D1EE00C91783 = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.h;
-			path = iGoom_Prefix.pch;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-//320
-//321
-//322
-//323
-//324
-//3B0
-//3B1
-//3B2
-//3B3
-//3B4
-		3B336C0906D1537B003DCDCB = {
-			isa = PBXFileReference;
-			lastKnownFileType = wrapper.framework;
-			name = OpenGL.framework;
-			path = /System/Library/Frameworks/OpenGL.framework;
-			refType = 0;
-			sourceTree = "<absolute>";
-		};
-		3B336C0A06D1537B003DCDCB = {
-			fileRef = 3B336C0906D1537B003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336CD606D159F9003DCDCB = {
-			isa = PBXFileReference;
-			lastKnownFileType = wrapper.framework;
-			name = CoreAudio.framework;
-			path = /System/Library/Frameworks/CoreAudio.framework;
-			refType = 0;
-			sourceTree = "<absolute>";
-		};
-		3B336CD706D159F9003DCDCB = {
-			fileRef = 3B336CD606D159F9003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336D8A06D3DE8E003DCDCB = {
-			children = (
-				3B336D9A06D3DE8E003DCDCB,
-				3B336D8B06D3DE8E003DCDCB,
-				3B336D8C06D3DE8E003DCDCB,
-				3B336D9D06D3DE8E003DCDCB,
-				3B336D9E06D3DE8E003DCDCB,
-				3BCD10C30798B01500910E20,
-				3BCD10C40798B02D00910E20,
-				3B336D9B06D3DE8E003DCDCB,
-				3B336D9C06D3DE8E003DCDCB,
-				3B336D9306D3DE8E003DCDCB,
-				3B336D9406D3DE8E003DCDCB,
-				3B336D9506D3DE8E003DCDCB,
-				3B336D9606D3DE8E003DCDCB,
-				3B336D9706D3DE8E003DCDCB,
-				3B336D9806D3DE8E003DCDCB,
-			);
-			isa = PBXGroup;
-			path = StandAlone;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D8B06D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.h;
-			path = AppController.h;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D8C06D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.objc;
-			path = AppController.m;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D8F06D3DE8E003DCDCB = {
-			children = (
-				3B336D9006D3DE8E003DCDCB,
-			);
-			isa = PBXVariantGroup;
-			name = InfoPlist.strings;
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9006D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = text.plist.strings;
-			name = English;
-			path = English.lproj/InfoPlist.strings;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9106D3DE8E003DCDCB = {
-			children = (
-				3B336D9206D3DE8E003DCDCB,
-			);
-			isa = PBXVariantGroup;
-			name = MainMenu.nib;
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9206D3DE8E003DCDCB = {
-			isa = PBXFileReference;
-			lastKnownFileType = wrapper.nib;
-			name = English;
-			path = English.lproj/MainMenu.nib;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9306D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.h;
-			path = Goom.h;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9406D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.objc;
-			path = Goom.m;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9506D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.h;
-			path = GoomFXParam.h;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9606D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.objc;
-			path = GoomFXParam.m;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9706D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.h;
-			path = GoomFXView.h;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9806D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.objc;
-			path = GoomFXView.m;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9A06D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.objc;
-			path = main.m;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9B06D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.h;
-			path = MainOpenGLView.h;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9C06D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.objc;
-			path = MainOpenGLView.m;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9D06D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.h;
-			path = MyApplication.h;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9E06D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.objc;
-			path = MyApplication.m;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336D9F06D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.h;
-			path = SoundSampler.h;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336DA006D3DE8E003DCDCB = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.cpp.objcpp;
-			path = SoundSampler.mm;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B336DA106D3DE8E003DCDCB = {
-			fileRef = 3B336D8B06D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DA206D3DE8E003DCDCB = {
-			fileRef = 3B336D8C06D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DA506D3DE8E003DCDCB = {
-			fileRef = 3B336D8F06D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DA606D3DE8E003DCDCB = {
-			fileRef = 3B336D9106D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DA706D3DE8E003DCDCB = {
-			fileRef = 3B336D9306D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DA806D3DE8E003DCDCB = {
-			fileRef = 3B336D9406D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DA906D3DE8E003DCDCB = {
-			fileRef = 3B336D9506D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DAA06D3DE8E003DCDCB = {
-			fileRef = 3B336D9606D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DAB06D3DE8E003DCDCB = {
-			fileRef = 3B336D9706D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DAC06D3DE8E003DCDCB = {
-			fileRef = 3B336D9806D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DAE06D3DE8E003DCDCB = {
-			fileRef = 3B336D9A06D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DAF06D3DE8E003DCDCB = {
-			fileRef = 3B336D9B06D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DB006D3DE8E003DCDCB = {
-			fileRef = 3B336D9C06D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DB106D3DE8E003DCDCB = {
-			fileRef = 3B336D9D06D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DB206D3DE8E003DCDCB = {
-			fileRef = 3B336D9E06D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DB306D3DE8E003DCDCB = {
-			fileRef = 3B336D9F06D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336DB406D3DE8E003DCDCB = {
-			fileRef = 3B336DA006D3DE8E003DCDCB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B336E1206D3F5D2003DCDCB = {
-			buildActionMask = 2147483647;
-			dstPath = "";
-			dstSubfolderSpec = 10;
-			files = (
-				3BA696BF06D7FAA2007E5D2B,
-			);
-			isa = PBXCopyFilesBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3B73A57E0798599C001B0B2B = {
-			isa = PBXFileReference;
-			lastKnownFileType = image.png;
-			name = goom2k4.png;
-			path = ../../goom2k4.png;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B73A57F0798599C001B0B2B = {
-			fileRef = 3B73A57E0798599C001B0B2B;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B73A60207986421001B0B2B = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.h;
-			path = CoreAudioHardware.h;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B73A60307986421001B0B2B = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.cpp.cpp;
-			path = CoreAudioHardware.cpp;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B73A60407986421001B0B2B = {
-			fileRef = 3B73A60207986421001B0B2B;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B73A60507986421001B0B2B = {
-			fileRef = 3B73A60307986421001B0B2B;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B73A67107986CB2001B0B2B = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.h;
-			path = CoreAudioDevice.h;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B73A67207986CB2001B0B2B = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.cpp.cpp;
-			path = CoreAudioDevice.cpp;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3B73A67307986CB2001B0B2B = {
-			fileRef = 3B73A67107986CB2001B0B2B;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3B73A67407986CB2001B0B2B = {
-			fileRef = 3B73A67207986CB2001B0B2B;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BA4F62007A1C93D00722D4D = {
-			fileRef = 3BA7946306D4005C0013ADCC;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BA696BE06D7FA9A007E5D2B = {
-			fileRef = 3BE13C7E06D3FAE8005DAB04;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BA696BF06D7FAA2007E5D2B = {
-			fileRef = 3BE13C7E06D3FAE8005DAB04;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BA6971006D8B8EF007E5D2B = {
-			isa = PBXFileReference;
-			lastKnownFileType = archive.ar;
-			name = libgoom2.0.a;
-			path = iTunes/libgoom2.0.a;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BA6971E06D8BCE9007E5D2B = {
-			fileRef = 3BA6971006D8B8EF007E5D2B;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BA7946306D4005C0013ADCC = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = text.xml;
-			path = "iGoom-StandAlone.plist";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BCD10A60798AF8300910E20 = {
-			children = (
-				3BCD10A70798AF8300910E20,
-			);
-			isa = PBXVariantGroup;
-			name = Localizable.strings;
-			path = French.lproj;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BCD10A70798AF8300910E20 = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = text.plist.strings;
-			name = French;
-			path = Localizable.strings;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BCD10A80798AF8300910E20 = {
-			fileRef = 3BCD10A60798AF8300910E20;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BCD10C30798B01500910E20 = {
-			children = (
-				3B73A67107986CB2001B0B2B,
-				3B73A67207986CB2001B0B2B,
-				3B73A60207986421001B0B2B,
-				3B73A60307986421001B0B2B,
-				3B336D9F06D3DE8E003DCDCB,
-				3B336DA006D3DE8E003DCDCB,
-			);
-			isa = PBXGroup;
-			name = AudioRecorder;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BCD10C40798B02D00910E20 = {
-			children = (
-				3B73A57E0798599C001B0B2B,
-				3BA7946306D4005C0013ADCC,
-				3B336D8F06D3DE8E003DCDCB,
-				3B336D9106D3DE8E003DCDCB,
-				3BCD10A60798AF8300910E20,
-				3BCD18E9079A034800910E20,
-			);
-			isa = PBXGroup;
-			name = Ressources;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BCD18E9079A034800910E20 = {
-			isa = PBXFileReference;
-			lastKnownFileType = image.icns;
-			path = icon.icns;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BCD18EA079A034800910E20 = {
-			fileRef = 3BCD18E9079A034800910E20;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BE13C7E06D3FAE8005DAB04 = {
-			isa = PBXFileReference;
-			lastKnownFileType = "compiled.mach-o.dylib";
-			name = libgoom2.0.dylib;
-			path = StandAlone/libgoom2.0.dylib;
-			refType = 2;
-			sourceTree = SOURCE_ROOT;
-		};
-		3BE13C9006D3FD5D005DAB04 = {
-			buildActionMask = 2147483647;
-			files = (
-				3BE13CAC06D3FDB2005DAB04,
-				3BE13CAD06D3FDB2005DAB04,
-				3BE13CAE06D3FDB2005DAB04,
-				3BE13CB006D3FDB2005DAB04,
-				3BE13CB106D3FDB2005DAB04,
-			);
-			isa = PBXResourcesBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3BE13C9106D3FD5D005DAB04 = {
-			buildActionMask = 2147483647;
-			files = (
-				3BE13CAF06D3FDB2005DAB04,
-				3BE13CBE06D3FE0D005DAB04,
-				3BE13D6B06D3FF60005DAB04,
-			);
-			isa = PBXSourcesBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3BE13C9206D3FD5D005DAB04 = {
-			buildActionMask = 2147483647;
-			files = (
-				3BE13CC806D3FE26005DAB04,
-				3BA6971E06D8BCE9007E5D2B,
-			);
-			isa = PBXFrameworksBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3BE13C9306D3FD5D005DAB04 = {
-			buildPhases = (
-				3BE13C9006D3FD5D005DAB04,
-				3BE13C9106D3FD5D005DAB04,
-				3BE13C9206D3FD5D005DAB04,
-			);
-			buildRules = (
-			);
-			buildSettings = {
-				DSTROOT = "$(USER_LIBRARY_DIR)/iTunes/iTunes Plug-ins/";
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
-				GENERATE_PKGINFO_FILE = YES;
-				HEADER_SEARCH_PATHS = "/usr/local/include/ ../";
-				INFOPLIST_FILE = "iTunes/iGoom-Info.plist";
-				INSTALL_PATH = "";
-				LIBRARY_SEARCH_PATHS = "$(SRCROOT)/iTunes";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "-framework Carbon";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = iGoom;
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
-			};
-			dependencies = (
-			);
-			isa = PBXNativeTarget;
-			name = "iGoom - iTunes";
-			productName = iGoom;
-			productReference = 3BE13C9406D3FD5D005DAB04;
-			productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
-<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
-<plist version=\"1.0\">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>iGoom</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.yourcompany.iGoom</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-	<key>CSResourcesFileMapped</key>
-	<string>yes</string>
-</dict>
-</plist>
-";
-			productType = "com.apple.product-type.bundle";
-		};
-		3BE13C9406D3FD5D005DAB04 = {
-			explicitFileType = wrapper.cfbundle;
-			includeInIndex = 0;
-			isa = PBXFileReference;
-			path = iGoom.bundle;
-			refType = 3;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		3BE13C9506D3FD5D005DAB04 = {
-			isa = PBXFileReference;
-			lastKnownFileType = text.xml;
-			path = "iGoom-Info.plist";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13C9B06D3FDB2005DAB04 = {
-			children = (
-				3BE13CBD06D3FE0D005DAB04,
-				3BE13D6A06D3FF60005DAB04,
-				3BE13C9C06D3FDB2005DAB04,
-				3BE13C9E06D3FDB2005DAB04,
-				3BE13CA006D3FDB2005DAB04,
-				3BE13CA506D3FDB2005DAB04,
-				3BE13C9506D3FD5D005DAB04,
-			);
-			isa = PBXGroup;
-			path = iTunes;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13C9C06D3FDB2005DAB04 = {
-			children = (
-				3BE13C9D06D3FDB2005DAB04,
-				3BE13CA206D3FDB2005DAB04,
-			);
-			isa = PBXVariantGroup;
-			name = About.strings;
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13C9D06D3FDB2005DAB04 = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = text.plist.strings;
-			name = English;
-			path = English.lproj/About.strings;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13C9E06D3FDB2005DAB04 = {
-			children = (
-				3BE13C9F06D3FDB2005DAB04,
-				3BE13CA306D3FDB2005DAB04,
-			);
-			isa = PBXVariantGroup;
-			name = InfoPlist.strings;
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13C9F06D3FDB2005DAB04 = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = text.plist.strings;
-			name = English;
-			path = English.lproj/InfoPlist.strings;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13CA006D3FDB2005DAB04 = {
-			children = (
-				3BE13CA106D3FDB2005DAB04,
-				3BE13CA406D3FDB2005DAB04,
-			);
-			isa = PBXVariantGroup;
-			name = SettingsDialog.nib;
-			path = "";
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13CA106D3FDB2005DAB04 = {
-			isa = PBXFileReference;
-			lastKnownFileType = wrapper.nib;
-			name = English;
-			path = English.lproj/SettingsDialog.nib;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13CA206D3FDB2005DAB04 = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = text.plist.strings;
-			name = French;
-			path = French.lproj/About.strings;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13CA306D3FDB2005DAB04 = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = text.plist.strings;
-			name = French;
-			path = French.lproj/InfoPlist.strings;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13CA406D3FDB2005DAB04 = {
-			isa = PBXFileReference;
-			lastKnownFileType = wrapper.nib;
-			name = French;
-			path = French.lproj/SettingsDialog.nib;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13CA506D3FDB2005DAB04 = {
-			children = (
-				3BE13CA606D3FDB2005DAB04,
-				3BE13CA706D3FDB2005DAB04,
-				3BE13CA806D3FDB2005DAB04,
-			);
-			isa = PBXGroup;
-			path = iTuneVisualAPI;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13CA606D3FDB2005DAB04 = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.c;
-			path = iTunesAPI.c;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13CA706D3FDB2005DAB04 = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.h;
-			path = iTunesAPI.h;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13CA806D3FDB2005DAB04 = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.h;
-			path = iTunesVisualAPI.h;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13CAB06D3FDB2005DAB04 = {
-			isa = PBXFileReference;
-			lastKnownFileType = text.rtf;
-			path = ReadMe.rtf;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13CAC06D3FDB2005DAB04 = {
-			fileRef = 3BE13C9C06D3FDB2005DAB04;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BE13CAD06D3FDB2005DAB04 = {
-			fileRef = 3BE13C9E06D3FDB2005DAB04;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BE13CAE06D3FDB2005DAB04 = {
-			fileRef = 3BE13CA006D3FDB2005DAB04;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BE13CAF06D3FDB2005DAB04 = {
-			fileRef = 3BE13CA606D3FDB2005DAB04;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BE13CB006D3FDB2005DAB04 = {
-			fileRef = 3BE13CA706D3FDB2005DAB04;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BE13CB106D3FDB2005DAB04 = {
-			fileRef = 3BE13CA806D3FDB2005DAB04;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BE13CBD06D3FE0D005DAB04 = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.c.c;
-			path = iGoom.c;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13CBE06D3FE0D005DAB04 = {
-			fileRef = 3BE13CBD06D3FE0D005DAB04;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BE13CC706D3FE26005DAB04 = {
-			isa = PBXFileReference;
-			lastKnownFileType = wrapper.framework;
-			name = Carbon.framework;
-			path = /System/Library/Frameworks/Carbon.framework;
-			refType = 0;
-			sourceTree = "<absolute>";
-		};
-		3BE13CC806D3FE26005DAB04 = {
-			fileRef = 3BE13CC706D3FE26005DAB04;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		3BE13D6A06D3FF60005DAB04 = {
-			fileEncoding = 4;
-			isa = PBXFileReference;
-			lastKnownFileType = sourcecode.asm;
-			path = ppc_doubling.s;
-			refType = 4;
-			sourceTree = "<group>";
-		};
-		3BE13D6B06D3FF60005DAB04 = {
-			fileRef = 3BE13D6A06D3FF60005DAB04;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-//3B0
-//3B1
-//3B2
-//3B3
-//3B4
-//4A0
-//4A1
-//4A2
-//4A3
-//4A4
-		4A9504CCFFE6A4B311CA0CBA = {
-			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				ZERO_LINK = YES;
-			};
-			isa = PBXBuildStyle;
-			name = Development;
-		};
-		4A9504CDFFE6A4B311CA0CBA = {
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				GCC_ENABLE_FIX_AND_CONTINUE = NO;
-				ZERO_LINK = NO;
-			};
-			isa = PBXBuildStyle;
-			name = Deployment;
-		};
-//4A0
-//4A1
-//4A2
-//4A3
-//4A4
-//8D0
-//8D1
-//8D2
-//8D3
-//8D4
-		8D1107260486CEB800E47090 = {
-			buildPhases = (
-				8D1107290486CEB800E47090,
-				8D11072C0486CEB800E47090,
-				8D11072E0486CEB800E47090,
-				3B336E1206D3F5D2003DCDCB,
-			);
-			buildRules = (
-			);
-			buildSettings = {
-				GCC_DYNAMIC_NO_PIC = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = Standalone/iGoom_Prefix.pch;
-				HEADER_SEARCH_PATHS = "/usr/local/include/ ../";
-				INFOPLIST_FILE = "StandAlone/iGoom-StandAlone.plist";
-				INSTALL_PATH = "$(HOME)/Applications";
-				LIBRARY_SEARCH_PATHS = "$(SRCROOT)/StandAlone";
-				LIBRARY_STYLE = STATIC;
-				OTHER_LDFLAGS = "";
-				PRODUCT_NAME = iGoom;
-				WRAPPER_EXTENSION = app;
-			};
-			dependencies = (
-			);
-			isa = PBXNativeTarget;
-			name = "iGoom - StandAlone";
-			productInstallPath = "$(HOME)/Applications";
-			productName = iGoom;
-			productReference = 8D1107320486CEB800E47090;
-			productType = "com.apple.product-type.application";
-		};
-		8D1107290486CEB800E47090 = {
-			buildActionMask = 2147483647;
-			files = (
-				3B336DA106D3DE8E003DCDCB,
-				3B336DA506D3DE8E003DCDCB,
-				3B336DA606D3DE8E003DCDCB,
-				3B336DA706D3DE8E003DCDCB,
-				3B336DA906D3DE8E003DCDCB,
-				3B336DAB06D3DE8E003DCDCB,
-				3B336DAF06D3DE8E003DCDCB,
-				3B336DB106D3DE8E003DCDCB,
-				3B336DB306D3DE8E003DCDCB,
-				3B73A57F0798599C001B0B2B,
-				3B73A60407986421001B0B2B,
-				3B73A67307986CB2001B0B2B,
-				3BCD10A80798AF8300910E20,
-				3BCD18EA079A034800910E20,
-				3BA4F62007A1C93D00722D4D,
-			);
-			isa = PBXResourcesBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		8D11072C0486CEB800E47090 = {
-			buildActionMask = 2147483647;
-			files = (
-				3B336DA206D3DE8E003DCDCB,
-				3B336DA806D3DE8E003DCDCB,
-				3B336DAA06D3DE8E003DCDCB,
-				3B336DAC06D3DE8E003DCDCB,
-				3B336DAE06D3DE8E003DCDCB,
-				3B336DB006D3DE8E003DCDCB,
-				3B336DB206D3DE8E003DCDCB,
-				3B336DB406D3DE8E003DCDCB,
-				3B73A60507986421001B0B2B,
-				3B73A67407986CB2001B0B2B,
-			);
-			isa = PBXSourcesBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		8D11072E0486CEB800E47090 = {
-			buildActionMask = 2147483647;
-			files = (
-				8D11072F0486CEB800E47090,
-				3B336C0A06D1537B003DCDCB,
-				3B336CD706D159F9003DCDCB,
-				3BA696BE06D7FA9A007E5D2B,
-			);
-			isa = PBXFrameworksBuildPhase;
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		8D11072F0486CEB800E47090 = {
-			fileRef = 1058C7A1FEA54F0111CA2CBB;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
-		8D1107320486CEB800E47090 = {
-			explicitFileType = wrapper.application;
-			includeInIndex = 0;
-			isa = PBXFileReference;
-			path = iGoom.app;
-			refType = 3;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-	};
-	rootObject = 29B97313FDCFA39411CA2CEA;
-}
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/About.strings b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/About.strings
deleted file mode 100755
index da13a7f..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/About.strings
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Localized versions of about strings */
-
-"AboutString" = "Made by Jeko, Gyom and Fred\n \nKeys :\nQ to switch Quality (Pixel Doubling)\nF to toggle frame rate display\nT to disable this display\n< and > to change sensitivity\n \nContact : Gyom (gyom at ios-software.com)";
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/InfoPlist.strings b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/InfoPlist.strings
deleted file mode 100755
index a782e35..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Localized versions of Info.plist keys */
-
-CFBundleName = "iGoom";
-CFBundleShortVersionString = "2.0";
-CFBundleGetInfoString = "iGoom version 2.0, Copyright 2001/2003, iOS.";
-NSHumanReadableCopyright = "Copyright 2001/2003, iOS.";
-CFBundleVersion = "2.0";
\ No newline at end of file
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/SettingsDialog.nib/classes.nib b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/SettingsDialog.nib/classes.nib
deleted file mode 100755
index ea58db1..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/SettingsDialog.nib/classes.nib
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-IBClasses = ();
-IBVersion = 1;
-}
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/SettingsDialog.nib/info.nib b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/SettingsDialog.nib/info.nib
deleted file mode 100755
index af29c6e..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/SettingsDialog.nib/info.nib
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>IBDocumentLocation</key>
-	<string>123 115 356 240 0 0 1280 1002 </string>
-	<key>IBFramework Version</key>
-	<string>364.0</string>
-	<key>IBOpenObjects</key>
-	<array>
-		<integer>166</integer>
-	</array>
-	<key>IBSystem Version</key>
-	<string>7M34</string>
-	<key>targetFramework</key>
-	<string>IBCarbonFramework</string>
-</dict>
-</plist>
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/SettingsDialog.nib/objects.xib b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/SettingsDialog.nib/objects.xib
deleted file mode 100755
index a1bd3ab..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/English.lproj/SettingsDialog.nib/objects.xib
+++ /dev/null
@@ -1,138 +0,0 @@
-<?xml version="1.0" standalone="yes"?>
-<object class="NSIBObjectData">
-  <string name="targetFramework">IBCarbonFramework</string>
-  <object name="rootObject" class="NSCustomObject" id="1">
-    <string name="customClass">NSApplication</string>
-  </object>
-  <array count="12" name="allObjects">
-    <object class="IBCarbonWindow" id="166">
-      <string name="windowRect">226 360 483 751 </string>
-      <string name="title">Settings</string>
-      <object name="rootControl" class="IBCarbonRootControl" id="167">
-        <string name="bounds">0 0 257 391 </string>
-        <string name="viewFrame">0 0 391 257 </string>
-        <array count="10" name="subviews">
-          <object class="IBCarbonGroupBox" id="208">
-            <string name="bounds">20 20 143 170 </string>
-            <string name="viewFrame">20 20 150 123 </string>
-            <boolean name="primary">FALSE</boolean>
-          </object>
-          <object class="IBCarbonCheckBox" id="180">
-            <string name="bounds">20 194 38 351 </string>
-            <string name="viewFrame">194 20 157 18 </string>
-            <ostype name="controlSignature">cbox</ostype>
-            <int name="controlID">2</int>
-            <string name="title">Pixel doubling (Q)</string>
-          </object>
-          <object class="IBCarbonButton" id="184">
-            <string name="bounds">217 163 237 233 </string>
-            <string name="viewFrame">163 217 70 20 </string>
-            <int name="controlID">1</int>
-            <string name="title">OK</string>
-            <ostype name="command">ok  </ostype>
-            <int name="buttonType">1</int>
-          </object>
-          <object class="IBCarbonStaticText" id="185">
-            <string name="bounds">72 20 86 170 </string>
-            <string name="viewFrame">20 72 150 14 </string>
-            <string name="title">iGoom 2k4</string>
-            <int name="justification">1</int>
-          </object>
-          <object class="IBCarbonStaticText" id="199">
-            <string name="bounds">189 30 205 361 </string>
-            <string name="viewFrame">30 189 331 16 </string>
-            <string name="title">http://www.ios-software.com/</string>
-            <int name="justification">1</int>
-          </object>
-          <object class="IBCarbonCheckBox" id="201">
-            <string name="bounds">46 194 60 351 </string>
-            <string name="viewFrame">194 46 157 14 </string>
-            <ostype name="controlSignature">cbox</ostype>
-            <int name="controlID">3</int>
-            <string name="title">Show frame rate (F)</string>
-          </object>
-          <object class="IBCarbonStaticText" id="203">
-            <string name="bounds">165 30 181 361 </string>
-            <string name="viewFrame">30 165 331 16 </string>
-            <string name="title">Support and bug report : gyom at ios-software.com</string>
-            <int name="justification">1</int>
-          </object>
-          <object class="IBCarbonSlider" id="204">
-            <string name="bounds">119 193 145 371 </string>
-            <string name="viewFrame">193 119 178 26 </string>
-            <ostype name="controlSignature">slid</ostype>
-            <int name="controlID">4</int>
-            <boolean name="isLive">TRUE</boolean>
-            <int name="numTickMarks">11</int>
-            <int name="initialValue">160</int>
-            <int name="minimumValue">70</int>
-            <int name="maximumValue">250</int>
-          </object>
-          <object class="IBCarbonStaticText" id="205">
-            <string name="bounds">99 194 115 371 </string>
-            <string name="viewFrame">194 99 177 16 </string>
-            <string name="title">Sensitivity (< and >) :</string>
-          </object>
-          <object class="IBCarbonCheckBox" id="209">
-            <string name="bounds">68 194 82 371 </string>
-            <string name="viewFrame">194 68 177 14 </string>
-            <ostype name="controlSignature">cbox</ostype>
-            <int name="controlID">5</int>
-            <string name="title">Show infos when idle (T)</string>
-          </object>
-        </array>
-      </object>
-      <boolean name="receiveActivates">FALSE</boolean>
-      <boolean name="receiveUpdates">FALSE</boolean>
-      <boolean name="hasCollapseBox">FALSE</boolean>
-      <boolean name="hasHorizontalZoom">FALSE</boolean>
-      <boolean name="isResizable">FALSE</boolean>
-      <boolean name="hasVerticalZoom">FALSE</boolean>
-      <boolean name="compositing">TRUE</boolean>
-      <int name="carbonWindowClass">4</int>
-      <int name="windowPosition">1</int>
-    </object>
-    <reference idRef="167"/>
-    <reference idRef="180"/>
-    <reference idRef="184"/>
-    <reference idRef="185"/>
-    <reference idRef="199"/>
-    <reference idRef="201"/>
-    <reference idRef="203"/>
-    <reference idRef="204"/>
-    <reference idRef="205"/>
-    <reference idRef="208"/>
-    <reference idRef="209"/>
-  </array>
-  <array count="12" name="allParents">
-    <reference idRef="1"/>
-    <reference idRef="166"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-  </array>
-  <dictionary count="7" name="nameTable">
-    <string>File's Owner</string>
-    <reference idRef="1"/>
-    <string>IBCarbonButton</string>
-    <reference idRef="184"/>
-    <string>IBCarbonCheckBox</string>
-    <reference idRef="180"/>
-    <string>IBCarbonStaticText</string>
-    <reference idRef="185"/>
-    <string>IBCarbonStaticText21</string>
-    <reference idRef="199"/>
-    <string>IBCarbonStaticText211</string>
-    <reference idRef="203"/>
-    <string>PluginSettings</string>
-    <reference idRef="166"/>
-  </dictionary>
-  <unsigned_int name="nextObjectID">210</unsigned_int>
-</object>
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/About.strings b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/About.strings
deleted file mode 100755
index 04effbf..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/About.strings
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Localized versions of about strings */
-
-"AboutString" = "Ecrit par Jeko, Gyom et Fred\n \nTouches :\nQ pour changer de qualite\nF pour voir la frequence d'affichage\nT pour desactiver cet affichage\n< et > pour modifier la sensibilite\n \nContact : Gyom (gyom at ios-software.com)";
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/InfoPlist.strings b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/InfoPlist.strings
deleted file mode 100755
index a782e35..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Localized versions of Info.plist keys */
-
-CFBundleName = "iGoom";
-CFBundleShortVersionString = "2.0";
-CFBundleGetInfoString = "iGoom version 2.0, Copyright 2001/2003, iOS.";
-NSHumanReadableCopyright = "Copyright 2001/2003, iOS.";
-CFBundleVersion = "2.0";
\ No newline at end of file
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/SettingsDialog.nib/classes.nib b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/SettingsDialog.nib/classes.nib
deleted file mode 100755
index ea58db1..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/SettingsDialog.nib/classes.nib
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-IBClasses = ();
-IBVersion = 1;
-}
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/SettingsDialog.nib/info.nib b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/SettingsDialog.nib/info.nib
deleted file mode 100755
index af29c6e..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/SettingsDialog.nib/info.nib
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>IBDocumentLocation</key>
-	<string>123 115 356 240 0 0 1280 1002 </string>
-	<key>IBFramework Version</key>
-	<string>364.0</string>
-	<key>IBOpenObjects</key>
-	<array>
-		<integer>166</integer>
-	</array>
-	<key>IBSystem Version</key>
-	<string>7M34</string>
-	<key>targetFramework</key>
-	<string>IBCarbonFramework</string>
-</dict>
-</plist>
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/SettingsDialog.nib/objects.xib b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/SettingsDialog.nib/objects.xib
deleted file mode 100755
index b36e6fc..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/French.lproj/SettingsDialog.nib/objects.xib
+++ /dev/null
@@ -1,138 +0,0 @@
-<?xml version="1.0" standalone="yes"?>
-<object class="NSIBObjectData">
-  <string name="targetFramework">IBCarbonFramework</string>
-  <object name="rootObject" class="NSCustomObject" id="1">
-    <string name="customClass">NSApplication</string>
-  </object>
-  <array count="12" name="allObjects">
-    <object class="IBCarbonWindow" id="166">
-      <string name="windowRect">61 758 318 1149 </string>
-      <string name="title">Réglages</string>
-      <object name="rootControl" class="IBCarbonRootControl" id="167">
-        <string name="bounds">0 0 257 391 </string>
-        <string name="viewFrame">0 0 391 257 </string>
-        <array count="10" name="subviews">
-          <object class="IBCarbonGroupBox" id="208">
-            <string name="bounds">20 20 143 170 </string>
-            <string name="viewFrame">20 20 150 123 </string>
-            <boolean name="primary">FALSE</boolean>
-          </object>
-          <object class="IBCarbonCheckBox" id="180">
-            <string name="bounds">20 194 38 371 </string>
-            <string name="viewFrame">194 20 177 18 </string>
-            <ostype name="controlSignature">cbox</ostype>
-            <int name="controlID">2</int>
-            <string name="title">Pixels doublés (Q)</string>
-          </object>
-          <object class="IBCarbonButton" id="184">
-            <string name="bounds">217 163 237 233 </string>
-            <string name="viewFrame">163 217 70 20 </string>
-            <int name="controlID">1</int>
-            <string name="title">OK</string>
-            <ostype name="command">ok  </ostype>
-            <int name="buttonType">1</int>
-          </object>
-          <object class="IBCarbonStaticText" id="185">
-            <string name="bounds">72 20 86 170 </string>
-            <string name="viewFrame">20 72 150 14 </string>
-            <string name="title">iGoom 2k4</string>
-            <int name="justification">1</int>
-          </object>
-          <object class="IBCarbonStaticText" id="199">
-            <string name="bounds">189 30 205 361 </string>
-            <string name="viewFrame">30 189 331 16 </string>
-            <string name="title">http://www.ios-software.com/</string>
-            <int name="justification">1</int>
-          </object>
-          <object class="IBCarbonCheckBox" id="201">
-            <string name="bounds">46 194 60 371 </string>
-            <string name="viewFrame">194 46 177 14 </string>
-            <ostype name="controlSignature">cbox</ostype>
-            <int name="controlID">3</int>
-            <string name="title">Fréquence d'affichage (F)</string>
-          </object>
-          <object class="IBCarbonStaticText" id="203">
-            <string name="bounds">165 20 181 371 </string>
-            <string name="viewFrame">20 165 351 16 </string>
-            <string name="title">Support et retours de bugs : gyom at ios-software.com</string>
-            <int name="justification">1</int>
-          </object>
-          <object class="IBCarbonSlider" id="204">
-            <string name="bounds">119 193 145 371 </string>
-            <string name="viewFrame">193 119 178 26 </string>
-            <ostype name="controlSignature">slid</ostype>
-            <int name="controlID">4</int>
-            <boolean name="isLive">TRUE</boolean>
-            <int name="numTickMarks">11</int>
-            <int name="initialValue">160</int>
-            <int name="minimumValue">70</int>
-            <int name="maximumValue">250</int>
-          </object>
-          <object class="IBCarbonStaticText" id="205">
-            <string name="bounds">99 194 115 371 </string>
-            <string name="viewFrame">194 99 177 16 </string>
-            <string name="title">Sensibilité (< et >) :</string>
-          </object>
-          <object class="IBCarbonCheckBox" id="209">
-            <string name="bounds">68 194 82 371 </string>
-            <string name="viewFrame">194 68 177 14 </string>
-            <ostype name="controlSignature">cbox</ostype>
-            <int name="controlID">5</int>
-            <string name="title">Afficher les infos (T)</string>
-          </object>
-        </array>
-      </object>
-      <boolean name="receiveActivates">FALSE</boolean>
-      <boolean name="receiveUpdates">FALSE</boolean>
-      <boolean name="hasCollapseBox">FALSE</boolean>
-      <boolean name="hasHorizontalZoom">FALSE</boolean>
-      <boolean name="isResizable">FALSE</boolean>
-      <boolean name="hasVerticalZoom">FALSE</boolean>
-      <boolean name="compositing">TRUE</boolean>
-      <int name="carbonWindowClass">4</int>
-      <int name="windowPosition">1</int>
-    </object>
-    <reference idRef="167"/>
-    <reference idRef="180"/>
-    <reference idRef="184"/>
-    <reference idRef="185"/>
-    <reference idRef="199"/>
-    <reference idRef="201"/>
-    <reference idRef="203"/>
-    <reference idRef="204"/>
-    <reference idRef="205"/>
-    <reference idRef="208"/>
-    <reference idRef="209"/>
-  </array>
-  <array count="12" name="allParents">
-    <reference idRef="1"/>
-    <reference idRef="166"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-    <reference idRef="167"/>
-  </array>
-  <dictionary count="7" name="nameTable">
-    <string>File's Owner</string>
-    <reference idRef="1"/>
-    <string>IBCarbonButton</string>
-    <reference idRef="184"/>
-    <string>IBCarbonCheckBox</string>
-    <reference idRef="180"/>
-    <string>IBCarbonStaticText</string>
-    <reference idRef="185"/>
-    <string>IBCarbonStaticText21</string>
-    <reference idRef="199"/>
-    <string>IBCarbonStaticText211</string>
-    <reference idRef="203"/>
-    <string>PluginSettings</string>
-    <reference idRef="166"/>
-  </dictionary>
-  <unsigned_int name="nextObjectID">210</unsigned_int>
-</object>
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/Installer.applescript b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/Installer.applescript
deleted file mode 100644
index ca1af28..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/Installer.applescript
+++ /dev/null
@@ -1 +0,0 @@
-(* iTunes installer script for iGoom *)


(* If application is running, warn and quit it *)
set pid to do shell script "ps -U ${USER} | grep /Applications/iTunes.app/Contents/MacOS/iTunes | grep -v grep | cut -c1-5"
if pid is not "" then
	display dialog "iTunes must not be running while installing. Can I quit it?" with icon 2
	tell application "iTunes"
		quit
	end tell
end if

(* Install the new plugin *)
set cmd to "\\rm -rf ~/\"Library/iTunes/iTunes Plug-ins\"iGoom.bundle"
do shell script cmd

set r to "err"
set cmd to "\\cp -Rf /Volumes/iGoom/iGoom.bundle ~/\"Library/iTunes/iTunes Plug-ins\""
try
	do shell script cmd
	set r to ""
end try
if r is not "" then
	(* Troubleshooting *)
	display dialog "There was a problem during installation." buttons {"Open ReadMe", "Forum", "OK"} default button 1 with icon 0
	set dresult to button returned of result
	
	if dresult is "Open ReadMe" then
		do shell script "open /Volumes/iGoom/ReadMe.rtf"
	else
		if dresult is "Forum" then
			open location "http://www.ios-software.com/?page=forum&quoi=1"
		end if
	end if
else
	
	(* relaunch, but not too quickly ! *)
	set relaunched to false
	repeat until relaunched is true
		try
			tell application "iTunes"
				activate
			end tell
			set relaunched to true
		end try
	end repeat
	
	(* Select the new plugin et show it if possible *)
	tell application "iTunes"
		repeat with i in visuals
			if name of i is "iGoom" then
				set current visual to i
				try
					set full screen to false
					set visuals enabled to true
					play first item of library playlists
				end try
			end if
		end repeat
	end tell
	
	(* Tell the user the plugin was successfully installed *)
	activate
	display dialog "Installation was successful. If you like Goom, consider donating or buying some goodies !" buttons {"iOS Store", "Donate", "Use Goom"} default button "iOS Store" with icon 1
	set dresult to button returned of result
	
	if dresult is "iOS Store" then
		open location "http://www.cafepress.com/iossoftware"
	end if
	if dresult is "Donate" then
		open location "http://www.ios-software.com/?page=index&what=about"
	end if
	if dresult is "Use Goom" then
		tell application "iTunes"
			activate
		end tell
	end if
	
end if
\ No newline at end of file
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iGoom-Info.plist b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iGoom-Info.plist
deleted file mode 100755
index 9e57490..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iGoom-Info.plist
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>iGoom</string>
-	<key>CFBundleGetInfoString</key>
-	<string>2k4 iGoom for iTunes © gyom & jeko / iOS</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.ios.igoom</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>iGoom !</string>
-	<key>CFBundlePackageType</key>
-	<string>hvpl</string>
-	<key>CFBundleShortVersionString</key>
-	<string>2.4.1</string>
-	<key>CFBundleSignature</key>
-	<string>hook</string>
-	<key>CFBundleVersion</key>
-	<string>2.4.2</string>
-	<key>CFPlugInDynamicRegisterFunction</key>
-	<string></string>
-	<key>CFPlugInDynamicRegistration</key>
-	<string>NO</string>
-	<key>CFPlugInFactories</key>
-	<dict>
-		<key>00000000-0000-0000-0000-000000000000</key>
-		<string>MyFactoryFunction</string>
-	</dict>
-	<key>CFPlugInTypes</key>
-	<dict>
-		<key>00000000-0000-0000-0000-000000000000</key>
-		<array>
-			<string>00000000-0000-0000-0000-000000000000</string>
-		</array>
-	</dict>
-	<key>CFPlugInUnloadFunction</key>
-	<string></string>
-	<key>NSMainNibFile</key>
-	<string></string>
-</dict>
-</plist>
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iGoom.c b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iGoom.c
deleted file mode 100755
index 28deaa1..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iGoom.c
+++ /dev/null
@@ -1,896 +0,0 @@
-//	includes
-#include <stdio.h>
-#include "iTunesVisualAPI.h"
-#include "iTunesAPI.h"
-#include "src/goom.h"
-#include <CoreFoundation/CFBundle.h>
-#include <Carbon/Carbon.h>
-
-//*****************************************************
-#include <stdlib.h>
-#include <string.h>
-//*****************************************************
-
-CFStringRef CFBundleIdentifier;
-
-extern void ppc_doubling(unsigned int,UInt32 *,UInt32 *,UInt32 *,UInt32,UInt32);
-
-//	typedef's, struct's, enum's, etc.
-#define kTVisualPluginName		"\piGoom"
-#define	kTVisualPluginCreator		'gyom'
-#define	kTVisualPluginMajorVersion	2
-#define	kTVisualPluginMinorVersion	4
-#define	kTVisualPluginReleaseStage	betaStage
-#define	kTVisualPluginNonFinalRelease	1
-
-#define VERSION "2k4"
-
-#define kPixelDoublingPrefName		"PixelDoubling"
-#define kShowFPSPrefName		    "ShowFPS"
-#define kSensitivityPrefName		"Sensitivity"
-#define kShowAboutWhenIdlePrefName	"ShowAboutWhenIdle"
-
-//#define Timers
-
-enum
-{
-    kOKSettingID = 1,
-    kPixelDoublingSettingID = 2,
-    kFrameRateSettingID = 3,
-    kSensitivitySettingID = 4,
-    kShowAboutWhenIdleSettingID = 5
-};
-
-typedef struct VisualPluginData {
-    void *			appCookie;
-    ITAppProcPtr		appProc;
-    ITFileSpec			pluginFileSpec;
-
-    CGrafPtr			destPort;
-    Rect			destRect;
-    OptionBits			destOptions;
-    UInt32			destBitDepth;
-
-    ITTrackInfo			trackInfo;
-    ITStreamInfo		streamInfo;
-
-    Boolean			playing;
-
-    //	Plugin-specific data
-    GWorldPtr			offscreen;
-    signed short 		data[2][512];
-} VisualPluginData;
-
-
-//	local (static) globals
-//static unsigned int	useSpectrum = 0;
-static CGrafPtr		gSavePort;
-static GDHandle		gSaveDevice;
-static unsigned int	changeRes = FALSE;
-static unsigned int	oldx = 0, oldy = 0;
-static signed int	forced = 0;
-static unsigned int	showFPS = 0;
-static int		showTexte = 0, showTitle = 1;
-static Boolean		doublePixels = true;
-static int		sensitivity = 160;
-static int		ShowAboutWhenIdle = 0;
-static AbsoluteTime	backUpTime;
-static char *		aboutMessage;
-
-static PluginInfo  *    goomInfo;
-
-
-//	exported function prototypes
-extern OSStatus iTunesPluginMainMachO(OSType message,PluginMessageInfo *messageInfo,void *refCon);
-
-// Calcul de diff de temps
-#ifdef Timers
-static void HowLong(const char* text)
-{
-    AbsoluteTime absTime;
-    Nanoseconds nanosec;
-
-    absTime = SubAbsoluteFromAbsolute(UpTime(), backUpTime);
-    nanosec = AbsoluteToNanoseconds(absTime);
-    fprintf(stderr,"Time for %s:  %f\n", text, (float) UnsignedWideToUInt64( nanosec ) / 1000000.0);
-    backUpTime = UpTime();
-}
-#else
-#define  HowLong(a)
-#endif
-
-// ProcessRenderData --> preprocessing des donnees en entrŽe
-static void ProcessRenderData(VisualPluginData *visualPluginData,const RenderVisualData *renderData)
-{
-    SInt16		index;
-    SInt32		channel;
-
-    if (renderData == nil)
-    {
-        bzero(&visualPluginData->data,sizeof(visualPluginData->data));
-        return;
-    }
-    else
-    {
-        for (channel = 0;channel < 2;channel++)
-        {
-            for (index = 0; index < 512; index++)
-                visualPluginData->data[channel][index] = (renderData->waveformData[channel][index]-127)*sensitivity;
-        }
-    }
-}
-
-// GetPortCopyBitsBitMap
-//
-static BitMap* GetPortCopyBitsBitMap(CGrafPtr port)
-{
-    BitMap*		destBMap;
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-    destBMap = (BitMap*)GetPortBitMapForCopyBits(port);
-#else
-#if OPAQUE_TOOLBOX_STRUCTS
-    PixMapHandle	pixMap;
-
-    pixMap		= GetPortPixMap(port);
-    destBMap	= (BitMap*) (*pixMap);
-#else
-    destBMap	= (BitMap*) &((GrafPtr)port)->portBits;
-#endif
-#endif
-    return destBMap;
-}
-
-//	RenderVisualPort
-/*	OK, This is pretty weird : if we are not in pixel doubling mode, 
-the goom internal buffer is copied on destPort via CopyBits().
-Now, if we are in pixel doubling mode : if we are full screen,
-the goom internal buffer is copied on another buffer with ppc_doubling()
-and then to destPort with CopyBits().*/
-
-char * Str255ToC(Str255 source)
-{
-    static char dst[255];
-    char * cur = dst, * src = (char*)source;
-    int i;
-    int size = *src;
-    if (source == NULL) return "";
-    src++;
-    for (i=0; i<size; i++)
-    {
-        *cur = *src;
-        switch (*cur)
-        {
-            case 'Ë' :
-                *cur = 'A';
-                break;
-            case 'ˆ' :
-            case '‡' :
-            case 'Š' :
-            case '‰' :
-                *cur = 'a';
-                break;
-            case 'æ' :
-            case 'é' :
-            case 'ƒ' :
-                *cur = 'E';
-                break;
-            case 'Ž' :
-            case '' :
-            case '' :
-            case '‘' :
-                *cur = 'e';
-                break;
-            case '“' :
-            case '•' :
-            case '”' :
-            case '’' :
-                *cur = 'i';
-                break;
-            case '–' :
-                *cur = 'n';
-                break;
-            case '' :
-                *cur = 'c';
-                break;
-            case '˜' :
-            case '—' :
-            case 'š' :
-            case '™' :
-                *cur = 'o';
-                break;
-            case '' :
-            case 'œ' :
-            case 'ž' :
-            case 'Ÿ' :
-                *cur = 'u';
-                break;
-            default : break;
-        }
-        src++;
-        cur++;
-    }
-    *cur = 0;
-    return dst;
-}
-
-static void RenderVisualPort(VisualPluginData *visualPluginData,CGrafPtr destPort,const Rect *destRect,Boolean onlyUpdate)
-{
-    BitMap*		srcBitMap;
-    BitMap*		dstBitMap;
-    unsigned int 	right, bottom;
-    Rect		srcRect= *destRect;
-    Rect		dstRect = srcRect;
-    int	fullscreen;
-    static GWorldPtr	offscreen;
-    PixMapHandle	pixMapHdl = GetGWorldPixMap(visualPluginData->offscreen);
-    Point pt = {0,0};
-    static float	fpssampler = 0;
-    static char textBuffer[15];
-    static char titleBuffer[255];
-    unsigned char * str, * str2;
-
-    AbsoluteTime absTime;
-    Nanoseconds nanosec;
-
-    LocalToGlobal(&pt);
-    fullscreen = (pt.v == 0);
-
-    if ((NULL == destPort) || (NULL == destRect) || (NULL == visualPluginData->offscreen)) return;
-
-    absTime = SubAbsoluteFromAbsolute(UpTime(), backUpTime);
-    nanosec = AbsoluteToNanoseconds(absTime);
-    fpssampler = 1000000000.0 / (float) UnsignedWideToUInt64( nanosec );
-    if (fpssampler>35) return;
-    backUpTime = UpTime();
-
-
-    GetGWorld(&gSavePort,&gSaveDevice);
-    SetGWorld(destPort,nil);
-
-    srcBitMap	= GetPortCopyBitsBitMap(visualPluginData->offscreen);
-    dstBitMap	= GetPortCopyBitsBitMap(destPort);
-
-    OffsetRect(&srcRect,-srcRect.left,-srcRect.top);
-    if (!pixMapHdl || !*pixMapHdl) return;
-
-    right = srcRect.right;
-    bottom = srcRect.bottom;
-    if ((right<2) || (bottom<2)) return;
-
-    // Update our offscreen pixmap
-    if ((changeRes) || (oldx != right) || (oldy != bottom))
-    {
-        if (doublePixels)
-            goom_set_resolution (goomInfo,right%2 + right/2,  bottom/2 + bottom%2);
-        else
-            goom_set_resolution (goomInfo,right, bottom);
-        oldx = right;
-        oldy = bottom;
-        changeRes = FALSE;
-    }
-
-    str2 = NULL;
-    if (showTitle == 0)
-    {
-        strcpy(titleBuffer, Str255ToC(visualPluginData->trackInfo.name));
-        str2 = titleBuffer;
-        str = " ";
-        showTexte = 10000;
-    }
-    else
-    {
-        if (ShowAboutWhenIdle)
-        {
-            switch (showTexte)
-            {
-                case 0:
-                    str2 = " ";
-                    sprintf(textBuffer,"The iGoom %s",VERSION);
-                    str = textBuffer;
-                    break;
-                case 500:
-                    str = "http://www.ios-software.com/";
-                    break;
-                case 1000 :
-                    str = aboutMessage;
-                    break;
-                default :
-                    str = NULL;
-                    break;
-            }
-        }
-        else
-        {
-            str = " ";
-        }
-    }
-    
-    if (doublePixels)
-    {
-        UInt32 rowBytes = (GetPixRowBytes(pixMapHdl))>>2;
-        register UInt32 *myX = (UInt32*) GetPixBaseAddr(pixMapHdl);
-        register UInt32 inc = 2*rowBytes - right - right%2;
-        register UInt32 *myx = (UInt32*)  goom_update (goomInfo,visualPluginData->data,forced,(showFPS > 0)?fpssampler:-1,str2,str);
-
-        ppc_doubling(right/2 + right%2, myx, myX, myX + rowBytes, bottom/2,inc*4);
-        srcBitMap = GetPortCopyBitsBitMap(visualPluginData->offscreen);
-        CopyBits(srcBitMap,dstBitMap,&srcRect,&dstRect,srcCopy,nil);
-    }
-    else
-    {
-        NewGWorldFromPtr(&offscreen, k32ARGBPixelFormat,&srcRect, NULL, NULL, 0, (Ptr) goom_update (goomInfo,visualPluginData->data,forced, (showFPS > 0)?fpssampler:-1, str2, str), right*4);
-        HowLong("Goom");
-        srcBitMap = GetPortCopyBitsBitMap(offscreen);
-        CopyBits(srcBitMap,dstBitMap,&srcRect,&dstRect,srcCopy,nil);
-        DisposeGWorld(offscreen);
-    }
-    showTexte++;
-    if (showTexte>10000) showTexte = 10000;
-    showTitle = 1;
-    if (forced>0) forced = -1;
-
-    SetGWorld(gSavePort,gSaveDevice);
-}
-
-
-/*	AllocateVisualData is where you should allocate any information that depends
-on the port or rect changing (like offscreen GWorlds). */
-static OSStatus AllocateVisualData(VisualPluginData *visualPluginData,CGrafPtr destPort,const Rect *destRect)
-{
-    OSStatus		status;
-    Rect			allocateRect;
-
-    (void) destPort;
-
-    GetGWorld(&gSavePort,&gSaveDevice);
-
-    allocateRect = *destRect;
-    OffsetRect(&allocateRect,-allocateRect.left,-allocateRect.top);
-
-    status = NewGWorld(&visualPluginData->offscreen,32,&allocateRect,nil,nil,useTempMem);
-    if (status == noErr)
-    {
-        PixMapHandle	pix = GetGWorldPixMap(visualPluginData->offscreen);
-        LockPixels(pix);
-
-        // Offscreen starts out black
-        SetGWorld(visualPluginData->offscreen,nil);
-        ForeColor(blackColor);
-        PaintRect(&allocateRect);
-    }
-    SetGWorld(gSavePort,gSaveDevice);
-
-    return status;
-}
-
-//	DeallocateVisualData is where you should deallocate the .
-static void DeallocateVisualData(VisualPluginData *visualPluginData)
-{
-    CFPreferencesAppSynchronize(CFBundleIdentifier);
-
-    if (visualPluginData->offscreen != nil)
-    {
-        DisposeGWorld(visualPluginData->offscreen);
-        visualPluginData->offscreen = nil;
-    }
-}
-
-// ChangeVisualPort
-static OSStatus ChangeVisualPort(VisualPluginData *visualPluginData,CGrafPtr destPort,const Rect *destRect)
-{
-    OSStatus		status;
-    Boolean			doAllocate;
-    Boolean			doDeallocate;
-
-    status = noErr;
-
-    doAllocate	= false;
-    doDeallocate	= false;
-
-    if (destPort != nil)
-    {
-        if (visualPluginData->destPort != nil)
-        {
-            if (false == EqualRect(destRect,&visualPluginData->destRect))
-            {
-                doDeallocate	= true;
-                doAllocate	= true;
-            }
-        }
-        else
-        {
-            doAllocate = true;
-        }
-    }
-    else
-    {
-        doDeallocate = true;
-    }
-
-    if (doDeallocate)
-        DeallocateVisualData(visualPluginData);
-
-    if (doAllocate)
-        status = AllocateVisualData(visualPluginData,destPort,destRect);
-
-    if (status != noErr)
-        destPort = nil;
-
-    visualPluginData->destPort = destPort;
-    if (destRect != nil)
-        visualPluginData->destRect = *destRect;
-
-    return status;
-}
-
-//	ResetRenderData
-static void ResetRenderData(VisualPluginData *visualPluginData)
-{
-    bzero(&visualPluginData->data,sizeof(visualPluginData->data));
-}
-
-//	settingsControlHandler
-pascal OSStatus settingsControlHandler(EventHandlerCallRef inRef,EventRef inEvent, void* userData)
-{
-    WindowRef wind=NULL;
-    ControlID controlID;
-    ControlRef control=NULL;
-    //get control hit by event
-    GetEventParameter(inEvent,kEventParamDirectObject,typeControlRef,NULL,sizeof(ControlRef),NULL,&control);
-    wind=GetControlOwner(control);
-    GetControlID(control,&controlID);
-    switch(controlID.id){
-
-        case kShowAboutWhenIdleSettingID:
-            ShowAboutWhenIdle = GetControlValue(control);
-            CFPreferencesSetAppValue (CFSTR(kShowAboutWhenIdlePrefName),ShowAboutWhenIdle?CFSTR("YES"):CFSTR("NO"),CFBundleIdentifier);
-            break;
-
-        case kPixelDoublingSettingID:
-            doublePixels = GetControlValue(control);
-            CFPreferencesSetAppValue (CFSTR(kPixelDoublingPrefName),doublePixels?CFSTR("YES"):CFSTR("NO"),CFBundleIdentifier);
-            changeRes = TRUE;
-            break;
-
-        case kFrameRateSettingID:
-            showFPS = GetControlValue( control );
-            CFPreferencesSetAppValue (CFSTR(kShowFPSPrefName),showFPS?CFSTR("YES"):CFSTR("NO"),CFBundleIdentifier);
-            break;
-
-        case kSensitivitySettingID:
-            sensitivity = GetControlValue( control );
-            {
-                CFNumberRef value = CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &sensitivity);
-                CFPreferencesSetAppValue (CFSTR(kSensitivityPrefName), value, CFBundleIdentifier);
-                CFRelease(value);
-            }
-            break;
-
-        case kOKSettingID:
-            HideWindow(wind);
-            break;
-    }
-    return noErr;
-}
-
-//	VisualPluginHandler
-static OSStatus VisualPluginHandler(OSType message,VisualPluginMessageInfo *messageInfo,void *refCon)
-{
-    OSStatus		status;
-    VisualPluginData *	visualPluginData;
-
-    visualPluginData = (VisualPluginData*) refCon;
-
-    status = noErr;
-
-    switch (message)
-    {
-        //	Sent when the visual plugin is registered.  The plugin should do minimal
-        //	memory allocations here.  The resource fork of the plugin is still available.
-        case kVisualPluginInitMessage:
-        {
-            visualPluginData = (VisualPluginData*) NewPtrClear(sizeof(VisualPluginData));
-            if (visualPluginData == nil)
-            {
-                status = memFullErr;
-                break;
-            }
-            visualPluginData->appCookie = messageInfo->u.initMessage.appCookie;
-            visualPluginData->appProc   = messageInfo->u.initMessage.appProc;
-            // Remember the file spec of our plugin file.
-            // We need this so we can open our resource fork during
-            // the configuration message
-
-            status = PlayerGetPluginFileSpec(visualPluginData->appCookie, visualPluginData->appProc, &visualPluginData->pluginFileSpec);
-            messageInfo->u.initMessage.refCon	= (void*) visualPluginData;
-            goomInfo = goom_init(100,100);
-            
-            //fprintf(stderr,"Loc : %s\n", CFStringGetCStringPtr(CFCopyLocalizedStringFromTableInBundle(CFSTR("AboutString"), CFSTR("About"), CFBundleGetBundleWithIdentifier(CFBundleIdentifier), NULL),kCFStringEncodingMacRoman));
-
-            aboutMessage = (char*)CFStringGetCStringPtr(CFCopyLocalizedStringFromTableInBundle(CFSTR("AboutString"), CFSTR("About"), CFBundleGetBundleWithIdentifier(CFBundleIdentifier), NULL),kCFStringEncodingMacRoman);
-
-            break;
-        }
-
-            //	Sent when the visual plugin is unloaded
-        case kVisualPluginCleanupMessage:
-            if (visualPluginData != nil)
-                DisposePtr((Ptr)visualPluginData);
-
-            goom_close(goomInfo);
-            break;
-
-            //	Sent when the visual plugin is enabled.  iTunes currently enables all
-            //	loaded visual plugins.  The plugin should not do anything here.
-        case kVisualPluginEnableMessage:
-            if (true == visualPluginData->playing)
-            {
-                showTexte = 10000;
-                showTitle = 0;
-            }
-            else
-            {
-                showTexte = 0;
-                showTitle = 1;
-            }
-        case kVisualPluginDisableMessage:
-            break;
-
-            //	Sent if the plugin requests idle messages.  Do this by setting the kVisualWantsIdleMessages
-            //	option in the RegisterVisualMessage.options field.
-        case kVisualPluginIdleMessage:
-                RenderVisualPort(visualPluginData,visualPluginData->destPort,&visualPluginData->destRect,false);
-            break;
-
-            //	Sent if the plugin requests the ability for the user to configure it.  Do this by setting
-            //	the kVisualWantsConfigure option in the RegisterVisualMessage.options field.
-        case kVisualPluginConfigureMessage:
-        {
-            
-            // kOKSettingID = 1,
-             //kPixelDoublingSettingID = 2,
-             //kFrameRateSettingID = 3,
-             //kSensitivitySettingID = 4
-                        
-            static EventTypeSpec controlEvent={kEventClassControl,kEventControlHit};
-            static const ControlID kPixelDoublingSettingControlID={'cbox',kPixelDoublingSettingID};
-            static const ControlID kFrameRateSettingControlID={'cbox',kFrameRateSettingID};
-            static const ControlID kSensitivitySettingControlID={'slid',kSensitivitySettingID};
-            static const ControlID kShowAboutWhenIdleSettingControlID={'cbox',kShowAboutWhenIdleSettingID};
-            static WindowRef settingsDialog=NULL;
-            static ControlRef PixelDoublingCTRL=NULL;
-            static ControlRef FrameRateCTRL=NULL;
-            static ControlRef SensitivityCTRL=NULL;
-            static ControlRef ShowAboutWhenIdleCTRL=NULL;
-
-            if(settingsDialog==NULL){
-                IBNibRef 	nibRef;
-                CFBundleRef	iGoomPlugin;
-                //we have to find our bundle to load the nib inside of it
-                iGoomPlugin=CFBundleGetBundleWithIdentifier(CFBundleIdentifier);
-                CreateNibReferenceWithCFBundle(iGoomPlugin,CFSTR("SettingsDialog"), &nibRef);
-                CreateWindowFromNib(nibRef, CFSTR("PluginSettings"), &settingsDialog);
-                DisposeNibReference(nibRef);
-
-                      
-                //fprintf (stderr,"Picture @ %d\n", (PicHandle)GetPicture (12866));
-
-                InstallWindowEventHandler(settingsDialog,NewEventHandlerUPP(settingsControlHandler),
-                                          1,&controlEvent,0,NULL);
-                GetControlByID(settingsDialog,&kPixelDoublingSettingControlID,&PixelDoublingCTRL);
-                GetControlByID(settingsDialog,&kFrameRateSettingControlID,&FrameRateCTRL);
-                GetControlByID(settingsDialog,&kSensitivitySettingControlID,&SensitivityCTRL);
-                GetControlByID(settingsDialog,&kShowAboutWhenIdleSettingControlID,&ShowAboutWhenIdleCTRL);
-            }
-            SetControlValue(PixelDoublingCTRL,doublePixels);
-            SetControlValue(FrameRateCTRL,showFPS);
-            SetControlValue(SensitivityCTRL,sensitivity);
-            SetControlValue(ShowAboutWhenIdleCTRL,ShowAboutWhenIdle);
-
-            ShowWindow(settingsDialog);
-        }
-            break;
-
-            //	Sent when iTunes is going to show the visual plugin in a port.  At
-            //	this point,the plugin should allocate any large buffers it needs.
-        case kVisualPluginShowWindowMessage:
-            if (true == visualPluginData->playing)
-            {
-                showTexte = 10000;
-                showTitle = 0;
-            }
-            else
-            {
-                showTexte = 0;
-                showTitle = 1;
-            }
-            visualPluginData->destOptions = messageInfo->u.showWindowMessage.options;
-            status = ChangeVisualPort( visualPluginData, messageInfo->u.showWindowMessage.port,
-                                       &messageInfo->u.showWindowMessage.drawRect);
-            //FIXME setres here
-            break;
-            //	Sent when iTunes is no longer displayed.
-        case kVisualPluginHideWindowMessage:
-
-            (void) ChangeVisualPort(visualPluginData,nil,nil);
-
-            bzero(&visualPluginData->trackInfo,sizeof(visualPluginData->trackInfo));
-            bzero(&visualPluginData->streamInfo,sizeof(visualPluginData->streamInfo));
-            break;
-
-            //	Sent when iTunes needs to change the port or rectangle of the currently
-            //	displayed visual.
-        case kVisualPluginSetWindowMessage:
-            visualPluginData->destOptions = messageInfo->u.setWindowMessage.options;
-
-            status = ChangeVisualPort(	visualPluginData,
-                                       messageInfo->u.setWindowMessage.port,
-                                       &messageInfo->u.setWindowMessage.drawRect);
-            break;
-
-            //	Sent for the visual plugin to render a frame.
-        case kVisualPluginRenderMessage:
-            ProcessRenderData(visualPluginData,messageInfo->u.renderMessage.renderData);
-            RenderVisualPort(visualPluginData,visualPluginData->destPort,&visualPluginData->destRect,false);
-            break;
-
-            //	Sent in response to an update event.  The visual plugin should update
-            //	into its remembered port.  This will only be sent if the plugin has been
-            //	previously given a ShowWindow message.
-        case kVisualPluginUpdateMessage:
-            RenderVisualPort(visualPluginData,visualPluginData->destPort,&visualPluginData->destRect,true);
-            break;
-
-            //	Sent when the player starts.
-        case kVisualPluginPlayMessage:
-            if (messageInfo->u.playMessage.trackInfo != nil)
-                visualPluginData->trackInfo = *messageInfo->u.playMessage.trackInfo;
-            else
-                bzero(&visualPluginData->trackInfo,sizeof(visualPluginData->trackInfo));
-
-            if (messageInfo->u.playMessage.streamInfo != nil)
-                visualPluginData->streamInfo = *messageInfo->u.playMessage.streamInfo;
-            else
-                bzero(&visualPluginData->streamInfo,sizeof(visualPluginData->streamInfo));
-
-            visualPluginData->playing = true;
-            showTexte = 10000;
-            showTitle = 0;
-            break;
-
-            //	Sent when the player changes the current track information.  This
-            //	is used when the information about a track changes,or when the CD
-            //	moves onto the next track.  The visual plugin should update any displayed
-            //	information about the currently playing song.
-        case kVisualPluginChangeTrackMessage:
-            if (messageInfo->u.changeTrackMessage.trackInfo != nil)
-                visualPluginData->trackInfo = *messageInfo->u.changeTrackMessage.trackInfo;
-            else
-                bzero(&visualPluginData->trackInfo,sizeof(visualPluginData->trackInfo));
-
-            if (messageInfo->u.changeTrackMessage.streamInfo != nil)
-                visualPluginData->streamInfo = *messageInfo->u.changeTrackMessage.streamInfo;
-            else
-                bzero(&visualPluginData->streamInfo,sizeof(visualPluginData->streamInfo));
-            showTexte = 10000;
-            showTitle = 0;
-            break;
-
-            //	Sent when the player stops.
-        case kVisualPluginStopMessage:
-            visualPluginData->playing = false;
-            ResetRenderData(visualPluginData);
-            //RenderVisualPort(visualPluginData,visualPluginData->destPort,&visualPluginData->destRect,true);
-            showTexte = 0;
-            showTitle = 1;
-            break;
-
-            //	Sent when the player changes position.
-        case kVisualPluginSetPositionMessage:
-            break;
-
-            //	Sent when the player pauses.  iTunes does not currently use pause or unpause.
-            //	A pause in iTunes is handled by stopping and remembering the position.
-        case kVisualPluginPauseMessage:
-            visualPluginData->playing = false;
-            ResetRenderData(visualPluginData);
-            //RenderVisualPort(visualPluginData,visualPluginData->destPort,&visualPluginData->destRect,true);
-            break;
-
-            //	Sent when the player unpauses.  iTunes does not currently use pause or unpause.
-            //	A pause in iTunes is handled by stopping and remembering the position.
-        case kVisualPluginUnpauseMessage:
-            visualPluginData->playing = true;
-            break;
-
-            //	Sent to the plugin in response to a MacOS event.  The plugin should return noErr
-            //	for any event it handles completely,or an error (unimpErr) if iTunes should handle it.
-        case kVisualPluginEventMessage:
-        {
-            EventRecord* tEventPtr = messageInfo->u.eventMessage.event;
-            if ((tEventPtr->what == keyDown) || (tEventPtr->what == autoKey))
-            {    // charCodeMask,keyCodeMask;
-                char theChar = tEventPtr->message & charCodeMask;
-
-                switch (theChar) // Process keys here
-                {
-                    
-                    case	't':
-                    case	'T':
-                        ShowAboutWhenIdle = (ShowAboutWhenIdle==0)?1:0;
-                        CFPreferencesSetAppValue (CFSTR(kShowAboutWhenIdlePrefName),ShowAboutWhenIdle?CFSTR("YES"):CFSTR("NO"), CFBundleIdentifier);
-                        break;
-                    case	'q':
-                    case	'Q':
-                        doublePixels = (doublePixels==0)?1:0;
-                        CFPreferencesSetAppValue (CFSTR(kPixelDoublingPrefName),doublePixels?CFSTR("YES"):CFSTR("NO"), CFBundleIdentifier);
-                        changeRes = TRUE;
-                        break;
-                    case	'0':
-                        forced = (forced == 0) ? -1 : 0;
-                        break;
-                    case	'1':
-                    case	'2':
-                    case	'3':
-                    case	'4':
-                    case	'5':
-                    case	'6':
-                    case	'7':
-                    case	'8':
-                    case	'9':
-                        forced = theChar - '0';
-                        break;
-                    case	'f':
-                    case	'F':
-                        showFPS = (showFPS==0)?1:0;
-                        CFPreferencesSetAppValue (CFSTR(kShowFPSPrefName),showFPS?CFSTR("YES"):CFSTR("NO"),CFBundleIdentifier);
-                        break;
-                        
-                    case	'>':
-                        if (sensitivity <= 240) sensitivity += 10;
-                        {
-                            CFNumberRef value = CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &sensitivity);
-                            CFPreferencesSetAppValue (CFSTR(kSensitivityPrefName), value, CFBundleIdentifier);
-                            CFRelease(value);
-                        }
-                            break;
-                    case	'<':
-                        if (sensitivity >= 80) sensitivity -= 10;
-                        {
-                            CFNumberRef value = CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &sensitivity);
-                            CFPreferencesSetAppValue (CFSTR(kSensitivityPrefName), value, CFBundleIdentifier);
-                            CFRelease(value);
-                        }
-                            break;
-                        
-                    case	'\r':
-                    case	'\n':
-                        break;
-                    default:
-                        status = unimpErr;
-                        break;
-                }
-            }
-            else
-                status = unimpErr;
-        }
-            break;
-
-        default:
-            status = unimpErr;
-            break;
-    }
-    return status;
-}
-
-//	RegisterVisualPlugin
-static OSStatus RegisterVisualPlugin(PluginMessageInfo *messageInfo)
-{
-    OSStatus		status;
-    PlayerMessageInfo	playerMessageInfo;
-    Str255		pluginName = kTVisualPluginName;
-#ifdef Timers
-    backUpTime = UpTime();
-#endif
-
-    CFStringRef aString;
-    CFNumberRef aNumber;
-    CFComparisonResult result;
-
-    CFBundleIdentifier = CFSTR("com.ios.igoom");
-
-    // Read the preferences
-    aString = CFPreferencesCopyAppValue(CFSTR(kPixelDoublingPrefName),CFBundleIdentifier);
-    if (aString != NULL)
-    {
-        result = CFStringCompareWithOptions(aString, CFSTR("YES"), CFRangeMake(0,CFStringGetLength(aString)), kCFCompareCaseInsensitive);
-        if (result ==  kCFCompareEqualTo) {
-            doublePixels = true;
-        }
-        else doublePixels = false;
-    }
-
-    aString = CFPreferencesCopyAppValue(CFSTR(kShowFPSPrefName),CFBundleIdentifier);
-    if (aString != NULL)
-    {
-        result = CFStringCompareWithOptions(aString, CFSTR("YES"), CFRangeMake(0,CFStringGetLength(aString)), kCFCompareCaseInsensitive);
-        if (result ==  kCFCompareEqualTo) {
-            showFPS = true;
-        }
-        else showFPS = false;
-    }
-    
-    aString = CFPreferencesCopyAppValue(CFSTR(kShowAboutWhenIdlePrefName),CFBundleIdentifier);
-    if (aString != NULL)
-    {
-        result = CFStringCompareWithOptions(aString, CFSTR("YES"), CFRangeMake(0,CFStringGetLength(aString)), kCFCompareCaseInsensitive);
-        if (result ==  kCFCompareEqualTo) {
-            ShowAboutWhenIdle = true;
-        }
-        else ShowAboutWhenIdle = false;
-    }
-    
-    aNumber = CFPreferencesCopyAppValue(CFSTR(kSensitivityPrefName),CFBundleIdentifier);
-    if (aNumber != NULL)
-    {
-        CFNumberGetValue(aNumber,kCFNumberIntType,&sensitivity);
-    }
-    
-
-
-    
-    bzero(&playerMessageInfo.u.registerVisualPluginMessage,sizeof(playerMessageInfo.u.registerVisualPluginMessage));
-    BlockMoveData((Ptr)&pluginName[0],(Ptr)&playerMessageInfo.u.registerVisualPluginMessage.name[0],pluginName[0] + 1);
-
-    SetNumVersion(&playerMessageInfo.u.registerVisualPluginMessage.pluginVersion, kTVisualPluginMajorVersion, kTVisualPluginMinorVersion, kTVisualPluginReleaseStage, kTVisualPluginNonFinalRelease);
-
-    playerMessageInfo.u.registerVisualPluginMessage.options			= kVisualWantsIdleMessages | kVisualWantsConfigure;
-    playerMessageInfo.u.registerVisualPluginMessage.handler			= (VisualPluginProcPtr)VisualPluginHandler;
-    playerMessageInfo.u.registerVisualPluginMessage.registerRefCon		= 0;
-    playerMessageInfo.u.registerVisualPluginMessage.creator			= kTVisualPluginCreator;
-
-    playerMessageInfo.u.registerVisualPluginMessage.timeBetweenDataInMS	= 0xFFFFFFFF; // 16 milliseconds = 1 Tick, 0xFFFFFFFF = Often as possible.
-    playerMessageInfo.u.registerVisualPluginMessage.numWaveformChannels	= 2;
-    playerMessageInfo.u.registerVisualPluginMessage.numSpectrumChannels	= 0;
-
-    playerMessageInfo.u.registerVisualPluginMessage.minWidth		= 100;
-    playerMessageInfo.u.registerVisualPluginMessage.minHeight		= 100;
-    playerMessageInfo.u.registerVisualPluginMessage.maxWidth		= 2000;
-    playerMessageInfo.u.registerVisualPluginMessage.maxHeight		= 2000;
-    playerMessageInfo.u.registerVisualPluginMessage.minFullScreenBitDepth	= 32;
-    playerMessageInfo.u.registerVisualPluginMessage.maxFullScreenBitDepth	= 32;
-    playerMessageInfo.u.registerVisualPluginMessage.windowAlignmentInBytes	= 0;
-
-    status = PlayerRegisterVisualPlugin(messageInfo->u.initMessage.appCookie,messageInfo->u.initMessage.appProc,&playerMessageInfo);
-/*
-    Gestalt(gestaltPowerPCProcessorFeatures,&CPU);
-    if (1 & (CPU >> gestaltPowerPCHasVectorInstructions)) CPU_FLAVOUR = 1;
-    else CPU_FLAVOUR = 0;
-*/
-    
-    return status;
-}
-
-//	main entrypoint
-OSStatus iTunesPluginMainMachO(OSType message,PluginMessageInfo *messageInfo,void *refCon)
-{
-    OSStatus		status;
-
-    (void) refCon;
-
-    switch (message)
-    {
-        case kPluginInitMessage:
-            status = RegisterVisualPlugin(messageInfo);
-            break;
-        case kPluginCleanupMessage:
-            status = noErr;
-            break;
-        default:
-            status = unimpErr;
-            break;
-    }
-
-    return status;
-}
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iTuneVisualAPI/iTunesAPI.c b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iTuneVisualAPI/iTunesAPI.c
deleted file mode 100755
index ef68202..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iTuneVisualAPI/iTunesAPI.c
+++ /dev/null
@@ -1 +0,0 @@
-/*
     File:       iTunesAPI.c
 
     Contains:   iTunes Plug-ins interfaces
 
     Version:    Technology: iTunes
                 Release:    1.1
 
     Copyright:  © 2001 by Apple Computer, Inc., all rights reserved.
 
     Bugs?:      For bug reports, consult the following page on
                 the World Wide Web:
 
                     http://developer.apple.com/bugreporter/
 
*/
#include "iTunesAPI.h"
#include "iTunesVisualAPI.h"

// MemClear
//
static void MemClear (LogicalAddress dest, SInt32 length)
{
	register unsigned char	*ptr;

	ptr = (unsigned char *) dest;
	
	if( length > 16 )
	{
		register unsigned long	*longPtr;
		
		while( ((unsigned long) ptr & 3) != 0 )
		{
			*ptr++ = 0;
			--length;
		}
		
		longPtr = (unsigned long *) ptr;
		
		while( length >= 4 )
		{
			*longPtr++ 	= 0;
			length		-= 4;
		}
		
		ptr = (unsigned char *) longPtr;
	}
	
	while( --length >= 0 )
	{
		*ptr++ = 0;
	}
}


// SetNumVersion
//
void SetNumVersion (NumVersion *numVersion, UInt8 majorRev, UInt8 minorAndBugRev, UInt8 stage, UInt8 nonRelRev)
{
	numVersion->majorRev		= majorRev;
	numVersion->minorAndBugRev	= minorAndBugRev;
	numVersion->stage			= stage;
	numVersion->nonRelRev		= nonRelRev;
}


// ITCallApplication
//
OSStatus ITCallApplication (void *appCookie, ITAppProcPtr handler, OSType message, PlayerMessageInfo *messageInfo)
{
	PlayerMessageInfo	localMessageInfo;
	
	if (messageInfo == nil)
	{
		MemClear(&localMessageInfo, sizeof(localMessageInfo));
		
		messageInfo = &localMessageInfo;
	}
        
	messageInfo->messageMajorVersion = kITCurrentPluginMajorMessageVersion;
	messageInfo->messageMinorVersion = kITCurrentPluginMinorMessageVersion;
	messageInfo->messageInfoSize	 = sizeof(PlayerMessageInfo);
	
	return handler(appCookie, message, messageInfo);
}


// PlayerSetFullScreen
//
OSStatus PlayerSetFullScreen (void *appCookie, ITAppProcPtr appProc, Boolean fullScreen)
{
	PlayerMessageInfo	messageInfo;
	
	MemClear(&messageInfo, sizeof(messageInfo));
	
	messageInfo.u.setFullScreenMessage.fullScreen = fullScreen;

	return ITCallApplication(appCookie, appProc, kPlayerSetFullScreenMessage, &messageInfo);
}


// PlayerSetFullScreenOptions
//
OSStatus PlayerSetFullScreenOptions (void *appCookie, ITAppProcPtr appProc, SInt16 minBitDepth, SInt16 maxBitDepth, SInt16 preferredBitDepth, SInt16 desiredWidth, SInt16 desiredHeight)
{
	PlayerMessageInfo	messageInfo;
	
	MemClear(&messageInfo, sizeof(messageInfo));
	
	messageInfo.u.setFullScreenOptionsMessage.minBitDepth		= minBitDepth;
	messageInfo.u.setFullScreenOptionsMessage.maxBitDepth		= maxBitDepth;
	messageInfo.u.setFullScreenOptionsMessage.preferredBitDepth = preferredBitDepth;
	messageInfo.u.setFullScreenOptionsMessage.desiredWidth		= desiredWidth;
	messageInfo.u.setFullScreenOptionsMessage.desiredHeight		= desiredHeight;

	return ITCallApplication(appCookie, appProc, kPlayerSetFullScreenOptionsMessage, &messageInfo);
}


// PlayerGetPluginData
//
OSStatus PlayerGetPluginData (void *appCookie, ITAppProcPtr appProc, void *dataPtr, UInt32 dataBufferSize, UInt32 *dataSize)
{
	OSStatus			status;
	PlayerMessageInfo	messageInfo;
	
	MemClear(&messageInfo, sizeof(messageInfo));
	
	messageInfo.u.getPluginDataMessage.dataPtr			= dataPtr;
	messageInfo.u.getPluginDataMessage.dataBufferSize	= dataBufferSize;
	
	status = ITCallApplication(appCookie, appProc, kPlayerGetPluginDataMessage, &messageInfo);
	
	if (dataSize != nil)
		*dataSize = messageInfo.u.getPluginDataMessage.dataSize;
	
	return status;
}


// PlayerSetPluginData
//
OSStatus PlayerSetPluginData (void *appCookie, ITAppProcPtr appProc, void *dataPtr, UInt32 dataSize)
{
	PlayerMessageInfo	messageInfo;
	
	MemClear(&messageInfo, sizeof(messageInfo));
	
	messageInfo.u.setPluginDataMessage.dataPtr	= dataPtr;
	messageInfo.u.setPluginDataMessage.dataSize	= dataSize;
	
	return ITCallApplication(appCookie, appProc, kPlayerSetPluginDataMessage, &messageInfo);
}


// PlayerGetPluginNamedData
//
OSStatus PlayerGetPluginNamedData (void *appCookie, ITAppProcPtr appProc, ConstStringPtr dataName, void *dataPtr, UInt32 dataBufferSize, UInt32 *dataSize)
{
	OSStatus			status;
	PlayerMessageInfo	messageInfo;
	
	MemClear(&messageInfo, sizeof(messageInfo));
	
	messageInfo.u.getPluginNamedDataMessage.dataName		= dataName;
	messageInfo.u.getPluginNamedDataMessage.dataPtr			= dataPtr;
	messageInfo.u.getPluginNamedDataMessage.dataBufferSize	= dataBufferSize;
	
	status = ITCallApplication(appCookie, appProc, kPlayerGetPluginNamedDataMessage, &messageInfo);
	
	if (dataSize != nil)
		*dataSize = messageInfo.u.getPluginNamedDataMessage.dataSize;
	
	return status;
}


// PlayerSetPluginNamedData
//
OSStatus PlayerSetPluginNamedData (void *appCookie, ITAppProcPtr appProc, ConstStringPtr dataName, void *dataPtr, UInt32 dataSize)
{
	PlayerMessageInfo	messageInfo;
	
	MemClear(&messageInfo, sizeof(messageInfo));
	
	messageInfo.u.setPluginNamedDataMessage.dataName	= dataName;
	messageInfo.u.setPluginNamedDataMessage.dataPtr		= dataPtr;
	messageInfo.u.setPluginNamedDataMessage.dataSize	= dataSize;
	
	return ITCallApplication(appCookie, appProc, kPlayerSetPluginNamedDataMessage, &messageInfo);
}


// PlayerIdle
//
OSStatus PlayerIdle (void *appCookie, ITAppProcPtr appProc)
{
	return ITCallApplication(appCookie, appProc, kPlayerIdleMessage, nil);
}


// PlayerShowAbout
//
void PlayerShowAbout (void *appCookie, ITAppProcPtr appProc)
{
	ITCallApplication(appCookie, appProc, kPlayerShowAboutMessage, nil);
}


// PlayerOpenURL
//
void PlayerOpenURL (void *appCookie, ITAppProcPtr appProc, SInt8 *string, UInt32 length)
{
	PlayerMessageInfo	messageInfo;
	
	MemClear(&messageInfo, sizeof(messageInfo));
	
	messageInfo.u.openURLMessage.url	= string;
	messageInfo.u.openURLMessage.length	= length;

	ITCallApplication(appCookie, appProc, kPlayerOpenURLMessage, &messageInfo);
}

// PlayerUnregisterPlugin
//
OSStatus PlayerUnregisterPlugin (void *appCookie, ITAppProcPtr appProc, PlayerMessageInfo *messageInfo)
{
	return ITCallApplication(appCookie, appProc, kPlayerUnregisterPluginMessage, messageInfo);
}


// PlayerRegisterVisualPlugin
//
OSStatus PlayerRegisterVisualPlugin (void *appCookie, ITAppProcPtr appProc, PlayerMessageInfo *messageInfo)
{			
	return ITCallApplication(appCookie, appProc, kPlayerRegisterVisualPluginMessage, messageInfo);
}

// PlayerRegisterDevicePlugin
//
OSStatus PlayerRegisterDevicePlugin (void *appCookie, ITAppProcPtr appProc, PlayerMessageInfo *messageInfo)
{			
	return ITCallApplication(appCookie, appProc, kPlayerRegisterDevicePluginMessage, messageInfo);
}


// PlayerSetDeviceSerialNumber
//
OSStatus PlayerSetDeviceSerialNumber (void *appCookie, ITAppProcPtr appProc, ConstStringPtr serialNumber)
{
	PlayerMessageInfo	messageInfo;
	
	MemClear(&messageInfo, sizeof(messageInfo));
	
	messageInfo.u.setDeviceSerialNumberMessage.serialNumber = serialNumber;
	
	return ITCallApplication(appCookie, appProc, kPlayerSetDeviceSerialNumberMessage, &messageInfo);
}




// PlayerHandleMacOSEvent
//
OSStatus PlayerHandleMacOSEvent (void *appCookie, ITAppProcPtr appProc, const EventRecord *theEvent, Boolean *eventHandled)
{
	PlayerMessageInfo	messageInfo;
	OSStatus			status;
	
	MemClear(&messageInfo, sizeof(messageInfo));
	
	messageInfo.u.handleMacOSEventMessage.theEvent = theEvent;
		
	status = ITCallApplication(appCookie, appProc, kPlayerHandleMacOSEventMessage, &messageInfo);
	
	if( eventHandled != nil )
		*eventHandled = messageInfo.u.handleMacOSEventMessage.handled;
	
	return status;
}


// PlayerGetPluginFileSpec
//
OSStatus PlayerGetPluginFileSpec (void *appCookie, ITAppProcPtr appProc, FSSpec *pluginFileSpec)
{
	PlayerMessageInfo	messageInfo;
	
	MemClear(&messageInfo, sizeof(messageInfo));
	
	messageInfo.u.getPluginFileSpecMessage.fileSpec = pluginFileSpec;
	
	return ITCallApplication(appCookie, appProc, kPlayerGetPluginFileSpecMessage, &messageInfo);
}
\ No newline at end of file
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iTuneVisualAPI/iTunesAPI.h b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iTuneVisualAPI/iTunesAPI.h
deleted file mode 100755
index 69e651d..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iTuneVisualAPI/iTunesAPI.h
+++ /dev/null
@@ -1 +0,0 @@
-/*
     File:       iTunesAPI.h
 
     Contains:   iTunes Plug-ins interfaces
 
     Version:    Technology: iTunes
                 Release:    1.1
 
     Copyright:  � 2001 by Apple Computer, Inc., all rights reserved.
 
     Bugs?:      For bug reports, consult the following page on
                 the World Wide Web:
 
                     http://developer.apple.com/bugreporter/
 
*/
#ifndef __ITUNESAPI__
#define __ITUNESAPI__

#include <Carbon/Carbon.h>
/*
#if PRAGMA_ONCE
#pragma once
#endif
*/
#ifdef __cplusplus
extern "C" {
#endif
/*
#if PRAGMA_STRUCT_ALIGN
    #pragma options align=power
#elif PRAGMA_STRUCT_PACKPUSH
    #pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
    #pragma pack(2)
#endif
*/
enum {
	kITCurrentPluginMajorMessageVersion = 10,
	kITCurrentPluginMinorMessageVersion = 1
};

enum {
	kTrackSupportsID3Tags		= (1L << 0),
	kTrackHasVariableBitRate	= (1L << 1),
	kTrackIsFolder				= (1L << 2),			/* Device tracks only. Information returned is for a folder */
	kTrackIsLocked				= (1L << 3),			/* Device tracks only. Track cannot be deleted or renamed */
	kTrackCanBeDownloaded		= (1L << 4),			/* Device tracks only. Track can be copied from device to desktop. */
	kTrackIsHidden				= (1L << 5)				/* Device tracks only. Track should not be displayed in the device window. */
};
typedef OptionBits	ITTrackAttributes;

enum {
	/*
		These mask values are specified in ITTrackInfo.validFields
		to indicate which fields contain valid data
	*/
	
	kITTINameFieldMask			= (1L << 0),
	kITTIFileNameFieldMask		= (1L << 1),
	kITTIArtistFieldMask		= (1L << 2),
	kITTIAlbumFieldMask			= (1L << 3),
	kITTIGenreFieldMask			= (1L << 4),
	kITTIKindFieldMask			= (1L << 5),
	kITTITrackNumberFieldsMask	= (1L << 6),
	kITTIYearFieldMask			= (1L << 7),
	kITTISoundVolumeFieldMask	= (1L << 8),
	kITTICommentsFieldMask		= (1L << 10),
	kITTITotalTimeFieldMask		= (1L << 11),			
	kITTIStartTimeFieldMask		= (1L << 12),
	kITTIStopTimeFieldMask		= (1L << 13),
	kITTISizeFieldMask			= (1L << 14),
	kITTIBitRateFieldMask		= (1L << 15),
	kITTISampleRateFieldMask	= (1L << 16),
	kITTIAttributesFieldMask	= (1L << 17),
	kITTIFileTypeFieldMask		= (1L << 18),
	kITTIDateFieldMask			= (1L << 19)
};
typedef OptionBits	ITTIFieldMask;

struct ITTrackInfo {
	ITTIFieldMask		validFields;
	UInt32				reserved;						/* Must be zero */
	
	Str255				name;	
	Str255				fileName;
	Str255				artist;
	Str255				album;
		
	Str255				genre;
	Str255				kind;
	
	UInt32				trackNumber;
	UInt32				numTracks;
		
	UInt16				year;
	SInt16				soundVolumeAdjustment;			/* Valid range is -255 to +255 */
	
	Str255				unusedReserved1;				/* Must be empty string */			
	Str255				comments;
	
	UInt32				totalTimeInMS;
	UInt32				startTimeInMS;
	UInt32				stopTimeInMS;

	UInt32				sizeInBytes;

	UInt32				bitRate;
	UInt32				sampleRateFixed;

	OSType				fileType;
	
	UInt32				date;
	UInt32				unusedReserved2;				/* Must be zero */
	
	ITTrackAttributes	attributes;
	ITTrackAttributes	validAttributes;				/* Mask indicating which attributes are applicable */
};
typedef struct ITTrackInfo ITTrackInfo;

enum {
	kCurrentITStreamInfoVersion = 1
};

typedef FSSpec	ITFileSpec;

struct ITFileLocation {
	ITFileSpec			spec;
	FInfo				fInfo;
};
typedef struct ITFileLocation ITFileLocation;


struct ITStreamInfo {
	SInt32				version;
	Str255				streamTitle;
	Str255				streamURL;
	Str255				streamMessage;
};
typedef struct ITStreamInfo ITStreamInfo;

enum {
	/* messages sent to plugin main */
	
	kPluginInitMessage					= 'init',
	kPluginCleanupMessage				= 'clr ',
	
	kPluginIdleMessage					= 'idle'
};


enum {
	/* PluginInitMessage.options */
	
	kPluginWantsIdleMessages	= (1L << 1),	/* Send idle messages to plugin main */
	kPluginWantsToBeLeftOpen	= (1L << 2)		/* Don't close this plugin just because */
												/* it didn't register anyone */
};


enum {
	/* iTunes API messages */

	kPlayerRegisterVisualPluginMessage	= 'rvis',	/* Register a visual plugin */
	kPlayerRegisterDevicePluginMessage	= 'rdev',	/* Register a device plugin */
	
	/* Available for all plugins */

	kPlayerIdleMessage					= 'idle',	/* Give iTunes some time */
	
	kPlayerShowAboutMessage				= 'abou',	/* Show the about box. */
	kPlayerOpenURLMessage				= 'url ',	/* Open a URL */

	kPlayerSetPluginDataMessage			= 'sprf',	/* Set plugin preferences */
	kPlayerGetPluginDataMessage			= 'gprf',	/* Get plugin preferences */
	
	kPlayerSetPluginNamedDataMessage	= 'snpr',	/* Set plugin named preferenes */
	kPlayerGetPluginNamedDataMessage	= 'gnpr',	/* Get plugin named preferenes */
	
	kPlayerHandleMacOSEventMessage		= 'evnt',	/* Tell player to handle unhandled event */
		
	kPlayerGetPluginFileSpecMessage		= 'pspc',	/* Get the location of the plugin executable */

	/* Available for visual plugins */

	kPlayerSetFullScreenMessage			= 'sful',	/* Set full screen mode */
	kPlayerSetFullScreenOptionsMessage	= 'sfop',	/* Set full screen options */
	
	/* Available for device plugins */

	kPlayerSetDeviceSerialNumberMessage = 'dvsn',	/* Set a serial number string for a device. Needed for per-device prefs */
	kPlayerUnregisterPluginMessage		= 'unrg'	/* Unregister the plugin this comes from */
};

typedef OSStatus (*ITAppProcPtr)(void *appCookie, OSType message,void *messageInfo);


/*
	Plugin main Messages
*/

struct PluginInitMessage {
	UInt32							majorVersion;			/* Input */
	UInt32							minorVersion;			/* Input */

	void *							appCookie;				/* Input */
	ITAppProcPtr					appProc;				/* Input */
	
	OptionBits						options;				/* Output, see above for values */
	void *							refCon;					/* Output */
};
typedef struct PluginInitMessage PluginInitMessage;

struct PluginMessageInfo {
	union {
		PluginInitMessage			initMessage;
	} u;
};
typedef struct PluginMessageInfo PluginMessageInfo;



/* Plugin main entry point message handler */
typedef OSStatus (*PluginProcPtr)(OSType message, PluginMessageInfo *messageInfo, void *refCon);

/* Visual plugin message handler */
typedef OSStatus (*VisualPluginProcPtr)(OSType message,void *messageInfo, void *refCon);

/* Device plugin message handler */
typedef OSStatus (*DevicePluginProcPtr)(OSType message,void *messageInfo, void *refCon);



/*
	Callbacks to iTunes
*/

enum {
	/* PlayerRegisterVisualPluginMessage.options */
	
	kVisualWantsIdleMessages			= (1L << 3),
	kVisualWantsConfigure				= (1L << 5)
};

struct PlayerRegisterVisualPluginMessage {
	/* Input from plugin */
	
	Str63							name;						/* Displayed in the Visual menu */
	OptionBits						options;					/* See above */
	
	OSType							creator;					/* Identifies the plugin */
	
	NumVersion						pluginVersion;				/* Version number of the plugin */

	VisualPluginProcPtr				handler;					/* Handler for the plugin's messages */
	void *							registerRefCon;				/* RefCon for the plugin's handler */

	UInt32							timeBetweenDataInMS;		/* How often to call the plugin (0xFFFFFFFF = as often as possible) */
	UInt32							numWaveformChannels;		/* 0-2 waveforms requested */
	UInt32							numSpectrumChannels;		/* 0-2 spectrums requested */
	
	SInt16							minWidth;					/* Minimum resizeable width */
	SInt16							minHeight;					/* Minimum resizeable height */
	
	SInt16							maxWidth;					/* Maximum resizeable width */
	SInt16							maxHeight;					/* Maximum resizeable height */
		
	UInt16							minFullScreenBitDepth;		/* 0 = Any */
	UInt16							maxFullScreenBitDepth;		/* 0 = Any */
	
	UInt16							windowAlignmentInBytes;		/* Reserved (should be zero) */
};
typedef struct PlayerRegisterVisualPluginMessage PlayerRegisterVisualPluginMessage;

enum {
	/* PlayerRegisterDevicePluginMessage.options */
	
	kDeviceWantsIdleMessages			= (1L << 0)
};

struct PlayerRegisterDevicePluginMessage {
	/* Input from plugin */
	
	Str63							name;						/* Used internally. Not currently displayed */
	OptionBits						options;					/* See above */
	
	NumVersion						pluginVersion;				/* Version number of the plugin */

	DevicePluginProcPtr				handler;					/* Handler for the plugin's messages */
	void *							registerRefCon;				/* RefCon for the plugin's handler */
	
	UInt32							reserved[2];				/* Must be zero */
};
typedef struct PlayerRegisterDevicePluginMessage PlayerRegisterDevicePluginMessage;

struct PlayerSetFullScreenMessage {
	Boolean							fullScreen;
};
typedef struct PlayerSetFullScreenMessage PlayerSetFullScreenMessage;

struct PlayerSetFullScreenOptionsMessage {
	SInt16							minBitDepth;				/* 0 = Any */
	SInt16							maxBitDepth;				/* 0 = Any */
	SInt16							preferredBitDepth;			/* 0 = Current */
	
	SInt16							desiredWidth;				/* Must be within minWidth & maxWidth */
	SInt16							desiredHeight;				/* Must be within minHeight & maxHeight */
};
typedef struct PlayerSetFullScreenOptionsMessage PlayerSetFullScreenOptionsMessage;

struct PlayerOpenURLMessage {
	SInt8 *							url;
	UInt32							length;
};
typedef struct PlayerOpenURLMessage PlayerOpenURLMessage;

struct PlayerSetPluginDataMessage {
	void *							dataPtr;		/* Input */
	UInt32							dataSize;		/* Input */
};
typedef struct PlayerSetPluginDataMessage PlayerSetPluginDataMessage;

struct PlayerGetPluginDataMessage {
	void *							dataPtr;		/* Input */
	UInt32							dataBufferSize;	/* Input */
	
	UInt32							dataSize;		/* Output */
};
typedef struct PlayerGetPluginDataMessage PlayerGetPluginDataMessage;

struct PlayerSetPluginNamedDataMessage {
	ConstStringPtr					dataName;		/* Input */

	void *							dataPtr;		/* Input */
	UInt32							dataSize;		/* Input */
};
typedef struct PlayerSetPluginNamedDataMessage PlayerSetPluginNamedDataMessage;

struct PlayerGetPluginNamedDataMessage {
	ConstStringPtr					dataName;		/* Input */

	void *							dataPtr;		/* Input */
	UInt32							dataBufferSize;	/* Input */
	
	UInt32							dataSize;		/* Output */
};
typedef struct PlayerGetPluginNamedDataMessage PlayerGetPluginNamedDataMessage;

struct PlayerHandleMacOSEventMessage {
	const EventRecord *				theEvent;		/* Input */
	
	Boolean							handled;		/* Output */
};
typedef struct PlayerHandleMacOSEventMessage PlayerHandleMacOSEventMessage;

struct PlayerGetPluginFileSpecMessage {
	FSSpec *						fileSpec;		/* Output */
};
typedef struct PlayerGetPluginFileSpecMessage PlayerGetPluginFileSpecMessage;

struct PlayerSetDeviceSerialNumberMessage {
	ConstStringPtr					serialNumber;	/* Input */
};
typedef struct PlayerSetDeviceSerialNumberMessage PlayerSetDeviceSerialNumberMessage;

struct PlayerMessageInfo {
	UInt32									messageMajorVersion;		/* Should be kITCurrentPluginMajorMessageVersion */
	UInt32									messageMinorVersion;		/* Should be kITCurrentPluginMinorMessageVersion */
	UInt32									messageInfoSize;			/* Should be sizeof(PlayerMessageInfo) */
	
	union {
		PlayerRegisterVisualPluginMessage	registerVisualPluginMessage;
		PlayerRegisterDevicePluginMessage	registerDevicePluginMessage;

		PlayerOpenURLMessage				openURLMessage;
		
		PlayerSetPluginDataMessage			setPluginDataMessage;
		PlayerGetPluginDataMessage			getPluginDataMessage;
		
		PlayerSetPluginNamedDataMessage		setPluginNamedDataMessage;
		PlayerGetPluginNamedDataMessage		getPluginNamedDataMessage;
		
		PlayerHandleMacOSEventMessage		handleMacOSEventMessage;
		
		PlayerGetPluginFileSpecMessage		getPluginFileSpecMessage;

		PlayerSetFullScreenMessage			setFullScreenMessage;
		PlayerSetFullScreenOptionsMessage	setFullScreenOptionsMessage;

		PlayerSetDeviceSerialNumberMessage	setDeviceSerialNumberMessage;
	} u;
};
typedef struct PlayerMessageInfo PlayerMessageInfo;

extern OSStatus ITCallApplication (void *appCookie, ITAppProcPtr appProc, OSType message, PlayerMessageInfo *messageInfo);
extern void		SetNumVersion (NumVersion *numVersion, UInt8 majorRev, UInt8 minorAndBugRev, UInt8 stage, UInt8 nonRelRev);


/* for use from plugin main */

extern OSStatus PlayerRegisterVisualPlugin (void *appCookie, ITAppProcPtr appProc, PlayerMessageInfo *messageInfo);
extern OSStatus PlayerRegisterDevicePlugin (void *appCookie, ITAppProcPtr appProc, PlayerMessageInfo *messageInfo);

/* For all plugins */

extern OSStatus PlayerIdle (void *appCookie, ITAppProcPtr appProc);

extern void		PlayerShowAbout (void *appCookie, ITAppProcPtr appProc);
extern void		PlayerOpenURL (void *appCookie, ITAppProcPtr appProc, SInt8 *string, UInt32 length);

extern OSStatus	PlayerGetPluginData (void *appCookie, ITAppProcPtr appProc, void *dataPtr, UInt32 dataBufferSize, UInt32 *dataSize);
extern OSStatus	PlayerSetPluginData (void *appCookie, ITAppProcPtr appProc, void *dataPtr, UInt32 dataSize);

extern OSStatus	PlayerGetPluginNamedData (void *appCookie, ITAppProcPtr appProc, ConstStringPtr dataName, void *dataPtr, UInt32 dataBufferSize, UInt32 *dataSize);
extern OSStatus	PlayerSetPluginNamedData (void *appCookie, ITAppProcPtr appProc, ConstStringPtr dataName, void *dataPtr, UInt32 dataSize);

extern OSStatus PlayerHandleMacOSEvent (void *appCookie, ITAppProcPtr appProc, const EventRecord *theEvent, Boolean *eventHandled);

extern OSStatus	PlayerGetPluginFileSpec (void *appCookie, ITAppProcPtr appProc, FSSpec *pluginFileSpec);

/* For visual plugins */

extern OSStatus PlayerSetFullScreen (void *appCookie, ITAppProcPtr appProc, Boolean fullScreen);
extern OSStatus PlayerSetFullScreenOptions (void *appCookie, ITAppProcPtr appProc, SInt16 minBitDepth, SInt16 maxBitDepth, SInt16 preferredBitDepth, SInt16 desiredWidth, SInt16 desiredHeight);

/* For device plugins */

extern OSStatus	PlayerSetDeviceSerialNumber (void *appCookie, ITAppProcPtr appProc, ConstStringPtr serialNumber);
extern OSStatus	PlayerUnregisterPlugin (void *appCookie, ITAppProcPtr appProc, PlayerMessageInfo *messageInfo);
/*
#if PRAGMA_STRUCT_ALIGN
    #pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
    #pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
    #pragma pack()
#endif
*/
#ifdef __cplusplus
}
#endif

#endif /* __ITUNESAPI__ */
\ No newline at end of file
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iTuneVisualAPI/iTunesVisualAPI.h b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iTuneVisualAPI/iTunesVisualAPI.h
deleted file mode 100755
index a63f977..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/iTuneVisualAPI/iTunesVisualAPI.h
+++ /dev/null
@@ -1 +0,0 @@
-/*
     File:       iTunesVisualAPI.h
 
     Contains:   iTunes Visual Plug-ins interfaces
 
     Version:    Technology: iTunes
                 Release:    1.1
 
     Copyright:  � 2001 by Apple Computer, Inc., all rights reserved.
 
     Bugs?:      For bug reports, consult the following page on
                 the World Wide Web:
 
                     http://developer.apple.com/bugreporter/
 
*/
#ifndef __ITUNESVISUALAPI__
#define __ITUNESVISUALAPI__

#include "iTunesAPI.h"
/*
#if PRAGMA_ONCE
#pragma once
#endif
*/
#ifdef __cplusplus
extern "C" {
#endif
/*
#if PRAGMA_STRUCT_ALIGN
    #pragma options align=power
#elif PRAGMA_STRUCT_PACKPUSH
    #pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
    #pragma pack(2)
#endif
*/
enum {
	/* VisualPlugin messages */
	
	kVisualPluginIdleMessage			= 'null',

	kVisualPluginInitMessage			= 'init',
	kVisualPluginCleanupMessage			= 'clr ',
	
	kVisualPluginConfigureMessage		= 'cnfg',	/* Configure the plugin (may not be enabled) */
	
	kVisualPluginEnableMessage			= 'von ',	/* Turn on the module (automatic)*/
	kVisualPluginDisableMessage			= 'voff',	/* Turn off the module */
	
	kVisualPluginShowWindowMessage		= 'show',	/* Show the plugin window (allocate large memory here!) */
	kVisualPluginHideWindowMessage		= 'hide',	/* Hide the plugin window (deallocate large memory here!) */
		
	kVisualPluginSetWindowMessage		= 'swin',	/* Change the window parameters */

	kVisualPluginRenderMessage			= 'vrnd',	/* Render to window */
	
	kVisualPluginUpdateMessage			= 'vupd',	/* Update the window */
	
	kVisualPluginPlayMessage			= 'vply',	/* Playing a track */
	kVisualPluginChangeTrackMessage		= 'ctrk',	/* Change track (for CD continuous play) */
	kVisualPluginStopMessage			= 'vstp',	/* Stopping a track */
	kVisualPluginSetPositionMessage		= 'setp',	/* Setting the position of a track */
	
	kVisualPluginPauseMessage			= 'vpau',	/* Pausing a track (unused - Pause is stop) */
	kVisualPluginUnpauseMessage			= 'vunp',	/* Unpausing a track (unused - Pause is stop) */
	
	kVisualPluginEventMessage			= 'vevt'	/* Mac-event. */
};

/*
	VisualPlugin messages
*/

enum {
	kVisualMaxDataChannels		= 2,

	kVisualNumWaveformEntries	= 512,
	kVisualNumSpectrumEntries	= 512
};

enum {
	/* ShowWindow options */
	
	kWindowIsFullScreen = (1L << 0)
};

struct RenderVisualData {
	UInt8							numWaveformChannels;
	UInt8							waveformData[kVisualMaxDataChannels][kVisualNumWaveformEntries];
	
	UInt8							numSpectrumChannels;
	UInt8							spectrumData[kVisualMaxDataChannels][kVisualNumSpectrumEntries];
};
typedef struct RenderVisualData RenderVisualData;

struct VisualPluginInitMessage {
	UInt32							messageMajorVersion;	/* Input */
	UInt32							messageMinorVersion;	/* Input */
	NumVersion						appVersion;				/* Input */

	void *							appCookie;				/* Input */
	ITAppProcPtr					appProc;				/* Input */

	OptionBits						options;				/* Output */
	void *							refCon;					/* Output */
};
typedef struct VisualPluginInitMessage VisualPluginInitMessage;

struct VisualPluginShowWindowMessage {
	CGrafPtr						port;					/* Input */
	Rect							drawRect;				/* Input */
	OptionBits						options;				/* Input */
};
typedef struct VisualPluginShowWindowMessage VisualPluginShowWindowMessage;

struct VisualPluginSetWindowMessage {
	CGrafPtr						port;					/* Input */
	Rect							drawRect;				/* Input */
	OptionBits						options;				/* Input */
};
typedef struct VisualPluginSetWindowMessage VisualPluginSetWindowMessage;

struct VisualPluginPlayMessage {
	ITTrackInfo *					trackInfo;				/* Input */
	ITStreamInfo *					streamInfo;				/* Input */
	SInt32							volume;					/* Input */
	
	UInt32							bitRate;				/* Input */
	
	SoundComponentData				soundFormat;			/* Input */
};
typedef struct VisualPluginPlayMessage VisualPluginPlayMessage;

struct VisualPluginChangeTrackMessage {
	ITTrackInfo *					trackInfo;				/* Input */
	ITStreamInfo *					streamInfo;				/* Input */
};
typedef struct VisualPluginChangeTrackMessage VisualPluginChangeTrackMessage;

struct VisualPluginRenderMessage {
	RenderVisualData *				renderData;				/* Input */
	UInt32							timeStampID;			/* Input */
};
typedef struct VisualPluginRenderMessage VisualPluginRenderMessage;

struct VisualPluginSetPositionMessage {
	UInt32							positionTimeInMS;		/* Input */
};
typedef struct VisualPluginSetPositionMessage VisualPluginSetPositionMessage;

struct VisualPluginEventMessage {
	EventRecord *					event;					/* Input */
};
typedef struct VisualPluginEventMessage VisualPluginEventMessage;

struct VisualPluginMessageInfo {
	union {
		VisualPluginInitMessage				initMessage;
		VisualPluginShowWindowMessage		showWindowMessage;
		VisualPluginSetWindowMessage		setWindowMessage;
		VisualPluginPlayMessage				playMessage;
		VisualPluginChangeTrackMessage		changeTrackMessage;
		VisualPluginRenderMessage			renderMessage;
		VisualPluginSetPositionMessage		setPositionMessage;
		VisualPluginEventMessage			eventMessage;
	} u;
};
typedef struct VisualPluginMessageInfo VisualPluginMessageInfo;
/*
#if PRAGMA_STRUCT_ALIGN
    #pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
    #pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
    #pragma pack()
#endif
*/
#ifdef __cplusplus
}
#endif

#endif /* __ITUNESVISUALAPI__ */
\ No newline at end of file
diff --git a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/ppc_doubling.s b/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/ppc_doubling.s
deleted file mode 100755
index 1613261..0000000
--- a/xbmc/visualizations/Goom/goom2k4-0/mac/iTunes/ppc_doubling.s
+++ /dev/null
@@ -1,50 +0,0 @@
-.section regular,__TEXT
-.globl _ppc_doubling	; name of the function to call by C program
-
-; width (src width)->r3
-; myx (src) ->r4
-; myX (dest) ->r5
-; myX2 (dest + 1 complete line)->r6
-; heigth (src height)->r7
-; inc (increment for next line in dest) ->r8
-
-_ppc_doubling:
-
-mtspr	ctr,r3
-
-addi r4,r4,-4
-addi r5,r5,-4
-addi r6,r6,-4
-
-1:;boucle:
-
-lwzu	r10,4(r4)
-stwu	r10,4(r5)
-stwu	r10,4(r5)
-stwu	r10,4(r6)
-stwu	r10,4(r6)
-
-bdnz	1boucle
-
-subi	r7,r7,1
-add	r5,r5,r8
-cmpwi 	cr1,r7,0
-add	r6,r6,r8
-mtspr	ctr,r3
-bgt	cr1,1boucle
-
-blr
-
-;backup
-
-lwzu	r10,4(r4)
-stwu	r10,4(r5)
-stwu	r10,4(r6)
-stwu	r10,4(r5)
-stwu	r10,4(r6)
-
-lwzu	r10,4(r4)
-stwu	r10,4(r5)
-stwu	r10,4(r6)
-stwu	r10,4(r5)
-stwu	r10,4(r6)
diff --git a/xbmc/visualizations/XBMCProjectM/libprojectM/win32-dirent.h b/xbmc/visualizations/XBMCProjectM/libprojectM/win32-dirent.h
deleted file mode 100644
index 5b3ae0f..0000000
--- a/xbmc/visualizations/XBMCProjectM/libprojectM/win32-dirent.h
+++ /dev/null
@@ -1,61 +0,0 @@
-
-#ifndef DIRENT_INCLUDED
-#define DIRENT_INCLUDED
-
-/*
-
-    Declaration of POSIX directory browsing functions and types for Win32.
-
-    Author:  Kevlin Henney (kevlin at acm.org, kevlin at curbralan.com)
-    History: Created March 1997. Updated June 2003.
-    Rights:  See end of file.
-    
-*/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-typedef struct DIR DIR;
-
-#ifndef WIN32
-static int errno;
-#endif
-
-struct dirent
-{
-    char *d_name;
-};
-
-DIR           *opendir(const char *);
-int           closedir(DIR *);
-struct dirent *readdir(DIR *);
-void          rewinddir(DIR *);
-int scandir(
-	const char* dir, 
-	struct dirent*** namelist, 
-	int(*filter)(const struct dirent*),
-	int(*compar)(const void*, const void*) );
-int alphasort(const void* lhs, const void* rhs);
-
-/*
-
-    Copyright Kevlin Henney, 1997, 2003. All rights reserved.
-
-    Permission to use, copy, modify, and distribute this software and its
-    documentation for any purpose is hereby granted without fee, provided
-    that this copyright and permissions notice appear in all copies and
-    derivatives.
-    
-    This software is supplied "as is" without express or implied warranty.
-
-    But that said, if there are any problems please get in touch.
-
-*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/xbmc/visualizations/XBMCProjectM/win32/glew/ReadMe.txt b/xbmc/visualizations/XBMCProjectM/win32/glew/ReadMe.txt
deleted file mode 100644
index 0a335c3..0000000
--- a/xbmc/visualizations/XBMCProjectM/win32/glew/ReadMe.txt
+++ /dev/null
@@ -1 +0,0 @@
-Downloaded from http://glew.sourceforge.net/index.html and compiled in our mingw environment.
\ No newline at end of file
diff --git a/xbmc/visualizations/XBMCProjectM/win32/pthreads/pthread.h b/xbmc/visualizations/XBMCProjectM/win32/pthreads/pthread.h
deleted file mode 100644
index ab76243..0000000
--- a/xbmc/visualizations/XBMCProjectM/win32/pthreads/pthread.h
+++ /dev/null
@@ -1,1077 +0,0 @@
-/* This is the POSIX thread API (POSIX 1003).
- * 
- * Pthreads-win32 - POSIX Threads Library for Win32
- * Copyright (C) 1998 John E. Bossom
- *
- * 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., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA
- */
-
-#if !defined( PTHREAD_H )
-#define PTHREAD_H
-
-#ifdef _UWIN
-#   define HAVE_STRUCT_TIMESPEC 1
-#   define HAVE_SIGNAL_H        1
-#   undef HAVE_CONFIG_H
-#   pragma comment(lib, "pthread")
-#endif
-
-/*
- * -------------------------------------------------------------
- *
- *
- * Module: pthread.h
- *
- * Purpose:
- *      Provides an implementation of PThreads based upon the
- *      standard:
- *
- *              POSIX 1003.1c-1995      (POSIX.1c)
- *
- *	Parts of the implementation also comply with the
- *	Open Group Unix 98 specification in order to enhance
- *	code portability between Windows, various commercial
- *	Unix implementations, and Linux.
- *
- * Authors:
- *	There have been many contributors to this library.
- *	The initial implementation was contributed by
- *	John Bossom, and several others have provided major
- *	sections or revisions of parts of the implementation.
- *	Often significant effort has been contributed to
- *	find and fix important bugs and other problems to
- *	improve the reliability of the library, which sometimes
- *	is not reflected in the amount of code which changed as
- *	result.
- *	As much as possible, the contributors are acknowledged
- *	in the ChangeLog file in the source code distribution
- *	where their changes are noted in detail.
- *
- *      Contributors are listed in the MAINTAINERS file.
- *
- *	As usual, all bouquets go to the contributors, and all
- *	brickbats go to the project maintainer.
- *
- * Maintainer:
- *	The code base for this project is coordinated and
- *	eventually pre-tested, packaged, and made available by
- *
- *		Ross Johnson <rpj at ise.canberra.edu.au>
- *
- * QA Testers:
- *	Ultimately, the library is tested in the real world by
- *	a host of competent and demanding scientists and
- *	engineers who report bugs and/or provide solutions
- *	which are then fixed or incorporated into subsequent
- *	versions of the library. Each time a bug is fixed, a
- *	test case is written to prove the fix and ensure
- *	that later changes to the code don't reintroduce the
- *	same error. The number of test cases is slowly growing
- *	and therefore so is the code reliability.
- *
- * Compliance:
- *	See the file ANNOUNCE for the list of implemented
- *	and not-implemented routines and defined options.
- *	Of course, these are all defined is this file as well.
- *
- * Web site:
- *	The source code and other information about this library
- *	are available from
- *
- *		http://sources.redhat.com/pthreads-win32/
- *
- * -------------------------------------------------------------
- */
-
-/*
- * -----------------
- * autoconf switches
- * -----------------
- */
-
-#if HAVE_CONFIG_H
-#include "config.h"
-#endif /* HAVE_CONFIG_H */
-
-#include <windows.h>
-
-#ifndef NEED_FTIME
-#include <time.h>
-#else /* NEED_FTIME */
-/* use native WIN32 time API */
-#endif /* NEED_FTIME */
-
-#if HAVE_SIGNAL_H
-#include <signal.h>
-#endif /* HAVE_SIGNAL_H */
-
-#include <setjmp.h>
-
-#ifndef HAVE_STRUCT_TIMESPEC
-struct timespec {
-	long tv_sec;
-	long tv_nsec;
-};
-#endif /* HAVE_STRUCT_TIMESPEC */
-
-#ifndef SIG_BLOCK
-#define SIG_BLOCK 0
-#endif /* SIG_BLOCK */
-
-#ifndef SIG_UNBLOCK 
-#define SIG_UNBLOCK 1
-#endif /* SIG_UNBLOCK */
-
-#ifndef SIG_SETMASK
-#define SIG_SETMASK 2
-#endif /* SIG_SETMASK */
-
-/*
- * note: ETIMEDOUT is correctly defined in winsock.h
- */
-#include <winsock.h>
-
-#ifdef NEED_ERRNO
-#  include "need_errno.h"
-#else
-#  include <errno.h>
-#endif
-
-#include <sched.h>
-
-/*
- * In case ETIMEDOUT hasn't been defined above somehow.
- */
-#ifndef ETIMEDOUT
-#  define ETIMEDOUT 10060     /* This is the value in winsock.h. */
-#endif
-
-/*
- * Several systems don't define ENOTSUP. If not, we use
- * the same value as Solaris.
- */
-#ifndef ENOTSUP
-#  define ENOTSUP 48
-#endif
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif				/* __cplusplus */
-
-/*
- * -------------------------------------------------------------
- *
- * POSIX 1003.1c-1995 Options
- * ===========================
- *
- * _POSIX_THREADS (set)
- *                      If set, you can use threads
- *
- * _POSIX_THREAD_ATTR_STACKSIZE (set)
- *                      If set, you can control the size of a thread's
- *                      stack
- *                              pthread_attr_getstacksize
- *                              pthread_attr_setstacksize
- *
- * _POSIX_THREAD_ATTR_STACKADDR (not set)
- *                      If set, you can allocate and control a thread's
- *                      stack. If not supported, the following functions
- *                      will return ENOSYS, indicating they are not
- *                      supported:
- *                              pthread_attr_getstackaddr
- *                              pthread_attr_setstackaddr
- *
- * _POSIX_THREAD_PRIORITY_SCHEDULING (set)
- *                      If set, you can use realtime scheduling.
- *                      Indicates the availability of:
- *                              pthread_attr_getinheritsched
- *                              pthread_attr_getschedparam
- *                              pthread_attr_getschedpolicy
- *                              pthread_attr_getscope
- *                              pthread_attr_setinheritsched
- *                              pthread_attr_setschedparam
- *                              pthread_attr_setschedpolicy
- *                              pthread_attr_setscope
- *                              pthread_getschedparam
- *                              pthread_setschedparam
- *                              sched_get_priority_max
- *                              sched_get_priority_min
- *                              sched_rr_set_interval
- *
- * _POSIX_THREAD_PRIO_INHERIT (not set)
- *                      If set, you can create priority inheritance
- *                      mutexes.
- *                              pthread_mutexattr_getprotocol +
- *                              pthread_mutexattr_setprotocol +
- *
- * _POSIX_THREAD_PRIO_PROTECT (not set)
- *                      If set, you can create priority ceiling mutexes
- *                      Indicates the availability of:
- *                              pthread_mutex_getprioceiling
- *                              pthread_mutex_setprioceiling
- *                              pthread_mutexattr_getprioceiling
- *                              pthread_mutexattr_getprotocol     +
- *                              pthread_mutexattr_setprioceiling
- *                              pthread_mutexattr_setprotocol     +
- *
- * _POSIX_THREAD_PROCESS_SHARED (not set)
- *                      If set, you can create mutexes and condition
- *                      variables that can be shared with another
- *                      process.If set, indicates the availability
- *                      of:
- *                              pthread_mutexattr_getpshared
- *                              pthread_mutexattr_setpshared
- *                              pthread_condattr_getpshared
- *                              pthread_condattr_setpshared
- *
- * _POSIX_THREAD_SAFE_FUNCTIONS (set)
- *                      If set you can use the special *_r library
- *                      functions that provide thread-safe behaviour
- *
- *      + These functions provide both 'inherit' and/or
- *        'protect' protocol, based upon these macro
- *        settings.
- *
- * POSIX 1003.1c-1995 Limits
- * ===========================
- *
- * PTHREAD_DESTRUCTOR_ITERATIONS
- *                      Maximum number of attempts to destroy
- *                      a thread's thread-specific data on
- *                      termination (must be at least 4)
- *
- * PTHREAD_KEYS_MAX
- *                      Maximum number of thread-specific data keys
- *                      available per process (must be at least 128)
- *
- * PTHREAD_STACK_MIN
- *                      Minimum supported stack size for a thread
- *
- * PTHREAD_THREADS_MAX
- *                      Maximum number of threads supported per
- *                      process (must be at least 64).
- *
- *
- * POSIX 1003.1j/D10-1999 Options
- * ==============================
- *
- * _POSIX_READER_WRITER_LOCKS (set)
- *                      If set, you can use read/write locks
- *
- * _POSIX_SPIN_LOCKS (set)
- *                      If set, you can use spin locks
- *
- * _POSIX_BARRIERS (set)
- *                      If set, you can use barriers
- *
- * -------------------------------------------------------------
- */
-
-/*
- * POSIX Options
- */
-#ifndef _POSIX_THREADS
-#define _POSIX_THREADS
-#endif
-
-#ifndef _POSIX_READER_WRITER_LOCKS
-#define _POSIX_READER_WRITER_LOCKS
-#endif
-
-#ifndef _POSIX_SPIN_LOCKS
-#define _POSIX_SPIN_LOCKS
-#endif
-
-#ifndef _POSIX_BARRIERS
-#define _POSIX_BARRIERS
-#endif
-
-#define _POSIX_THREAD_SAFE_FUNCTIONS
-#define _POSIX_THREAD_ATTR_STACKSIZE
-#define _POSIX_THREAD_PRIORITY_SCHEDULING
-
-#if defined( KLUDGE )
-/*
- * The following are not supported
- */
-#define _POSIX_THREAD_ATTR_STACKADDR
-#define _POSIX_THREAD_PRIO_INHERIT
-#define _POSIX_THREAD_PRIO_PROTECT
-#define _POSIX_THREAD_PROCESS_SHARED
-
-#endif				/* KLUDGE */
-
-/*
- * POSIX Limits
- *
- *      PTHREAD_DESTRUCTOR_ITERATIONS
- *              Standard states this must be at least
- *              4.
- *
- *      PTHREAD_KEYS_MAX
- *              WIN32 permits only 64 TLS keys per process.
- *              This limitation could be worked around by
- *              simply simulating keys.
- *
- *      PTHREADS_STACK_MIN
- *              POSIX specifies 0 which is also the value WIN32
- *              interprets as allowing the system to
- *              set the size to that of the main thread. The
- *              maximum stack size in Win32 is 1Meg. WIN32
- *              allocates more stack as required up to the 1Meg
- *              limit.
- *
- *      PTHREAD_THREADS_MAX
- *              Not documented by WIN32. Wrote a test program
- *              that kept creating threads until it failed
- *              revealed this approximate number.
- *
- */
-#define PTHREAD_DESTRUCTOR_ITERATIONS	                   4
-#define PTHREAD_KEYS_MAX				  64
-#define PTHREAD_STACK_MIN				   0
-#define PTHREAD_THREADS_MAX				2019
-
-
-#ifdef _UWIN
-#   include	<sys/types.h>
-#else
-typedef struct pthread_t_ *pthread_t;
-typedef struct pthread_attr_t_ *pthread_attr_t;
-typedef struct pthread_once_t_ pthread_once_t;
-typedef struct pthread_key_t_ *pthread_key_t;
-typedef struct pthread_mutex_t_ *pthread_mutex_t;
-typedef struct pthread_mutexattr_t_ *pthread_mutexattr_t;
-typedef struct pthread_cond_t_ *pthread_cond_t;
-typedef struct pthread_condattr_t_ *pthread_condattr_t;
-#endif
-typedef struct pthread_rwlock_t_ *pthread_rwlock_t;
-typedef struct pthread_rwlockattr_t_ *pthread_rwlockattr_t;
-typedef struct pthread_spinlock_t_ *pthread_spinlock_t;
-typedef struct pthread_barrier_t_ *pthread_barrier_t;
-typedef struct pthread_barrierattr_t_ *pthread_barrierattr_t;
-
-/*
- * ====================
- * ====================
- * POSIX Threads
- * ====================
- * ====================
- */
-
-enum {
-/*
- * pthread_attr_{get,set}detachstate
- */
-  PTHREAD_CREATE_JOINABLE	= 0,  /* Default */
-  PTHREAD_CREATE_DETACHED	= 1,
-
-/*
- * pthread_attr_{get,set}inheritsched
- */
-  PTHREAD_INHERIT_SCHED		= 0,
-  PTHREAD_EXPLICIT_SCHED	= 1,  /* Default */
-
-/*
- * pthread_{get,set}scope
- */
-  PTHREAD_SCOPE_PROCESS		= 0,
-  PTHREAD_SCOPE_SYSTEM		= 1,  /* Default */
-
-/*
- * pthread_setcancelstate paramters
- */
-  PTHREAD_CANCEL_ENABLE		= 0,  /* Default */
-  PTHREAD_CANCEL_DISABLE	= 1,
-
-/*
- * pthread_setcanceltype parameters
- */
-  PTHREAD_CANCEL_ASYNCHRONOUS	= 0,
-  PTHREAD_CANCEL_DEFERRED	= 1,  /* Default */
-
-/*
- * pthread_mutexattr_{get,set}pshared
- * pthread_condattr_{get,set}pshared
- */
-  PTHREAD_PROCESS_PRIVATE	= 0,
-  PTHREAD_PROCESS_SHARED	= 1,
-
-/*
- * pthread_barrier_wait
- */
-  PTHREAD_BARRIER_SERIAL_THREAD = -1
-};
-
-/*
- * ====================
- * ====================
- * Cancelation
- * ====================
- * ====================
- */
-#define PTHREAD_CANCELED       ((void *) -1)
-
-
-/*
- * ====================
- * ====================
- * Once Key
- * ====================
- * ====================
- */
-#define PTHREAD_ONCE_INIT       { FALSE, -1 }
-
-struct pthread_once_t_
-{
-  int done;                 /* indicates if user function executed  */
-  long started;             /* First thread to increment this value */
-                            /* to zero executes the user function   */
-};
-
-
-/*
- * ====================
- * ====================
- * Object initialisers
- * ====================
- * ====================
- */
-#define PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) -1)
-
-#define PTHREAD_COND_INITIALIZER ((pthread_cond_t) -1)
-
-#define PTHREAD_RWLOCK_INITIALIZER ((pthread_rwlock_t) -1)
-
-#define PTHREAD_SPINLOCK_INITIALIZER ((pthread_spinlock_t) -1)
-
-enum
-{
-  PTHREAD_MUTEX_FAST_NP,
-  PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_FAST_NP,
-  PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
-};
-
-
-/* There are three implementations of cancel cleanup.
- * Note that pthread.h is included in both application
- * compilation units and also internally for the library.
- * The code here and within the library aims to work
- * for all reasonable combinations of environments.
- *
- * The three implementations are:
- *
- *   WIN32 SEH
- *   C
- *   C++
- *
- * Please note that exiting a push/pop block via
- * "return", "exit", "break", or "continue" will
- * lead to different behaviour amongst applications
- * depending upon whether the library was built
- * using SEH, C++, or C. For example, a library built
- * with SEH will call the cleanup routine, while both
- * C++ and C built versions will not.
- */
-
-/* 
- * define defaults for cleanup code
- */
-#if !defined( __CLEANUP_SEH ) && !defined( __CLEANUP_CXX ) && !defined( __CLEANUP_C )
-
-#if defined(_MSC_VER)
-#define __CLEANUP_SEH
-#elif defined(__cplusplus)
-#define __CLEANUP_CXX
-#else
-#define __CLEANUP_C
-#endif
-
-#endif
-
-#if defined( __CLEANUP_SEH ) && defined(__GNUC__)
-#error ERROR [__FILE__, line __LINE__]: GNUC does not support SEH.
-#endif
-
-typedef struct ptw32_cleanup_t ptw32_cleanup_t;
-typedef void (__cdecl *ptw32_cleanup_callback_t)(void *);
-
-struct ptw32_cleanup_t
-{
-  ptw32_cleanup_callback_t routine;
-  void *arg;
-  struct ptw32_cleanup_t *prev;
-};
-
-#ifdef __CLEANUP_SEH
-	/*
-	 * WIN32 SEH version of cancel cleanup.
-	 */
-
-#define pthread_cleanup_push( _rout, _arg ) \
-	{ \
-	    ptw32_cleanup_t	_cleanup; \
-	    \
-        _cleanup.routine	= (ptw32_cleanup_callback_t)(_rout); \
-	    _cleanup.arg	= (_arg); \
-	    __try \
-	      { \
-
-#define pthread_cleanup_pop( _execute ) \
-	      } \
-	    __finally \
-		{ \
-		    if( _execute || AbnormalTermination()) \
-		      { \
-			  (*(_cleanup.routine))( _cleanup.arg ); \
-		      } \
-		} \
-	}
-
-#else /* __CLEANUP_SEH */
-
-#ifdef __CLEANUP_C
-
-	/*
-	 * C implementation of PThreads cancel cleanup
-	 */
-
-#define pthread_cleanup_push( _rout, _arg ) \
-	{ \
-	    ptw32_cleanup_t	_cleanup; \
-            \
-	    ptw32_push_cleanup( &_cleanup, (ptw32_cleanup_callback_t) (_rout), (_arg) ); \
-
-#define pthread_cleanup_pop( _execute ) \
-	    (void) ptw32_pop_cleanup( _execute ); \
-	}
-
-#else /* __CLEANUP_C */
-
-#ifdef __CLEANUP_CXX
-
-	/*
-	 * C++ version of cancel cleanup.
-	 * - John E. Bossom.
-	 */
-
-	class PThreadCleanup {
-	  /*
-	   * PThreadCleanup
-	   *
-	   * Purpose
-	   *      This class is a C++ helper class that is
-	   *      used to implement pthread_cleanup_push/
-	   *      pthread_cleanup_pop.
-	   *      The destructor of this class automatically
-	   *      pops the pushed cleanup routine regardless
-	   *      of how the code exits the scope
-	   *      (i.e. such as by an exception)
-	   */
-      ptw32_cleanup_callback_t cleanUpRout;
-	  void    *       obj;
-	  int             executeIt;
-
-	public:
-	  PThreadCleanup() :
-	    cleanUpRout( NULL ),
-	    obj( NULL ),
-	    executeIt( 0 )
-	    /*
-	     * No cleanup performed
-	     */
-	    {
-	    }
-
-	  PThreadCleanup(
-             ptw32_cleanup_callback_t routine,
-			 void    *       arg ) :
-	    cleanUpRout( routine ),
-	    obj( arg ),
-	    executeIt( 1 )
-	    /*
-             * Registers a cleanup routine for 'arg'
-             */
-	    {
-	    }
-
-	  ~PThreadCleanup()
-	    {
-	      if ( executeIt && ((void *) cleanUpRout != NULL) )
-		{
-                  (void) (*cleanUpRout)( obj );
-		}
-	    }
-
-	  void execute( int exec )
-	    {
-	      executeIt = exec;
-	    }
-	};
-
-	/*
-	 * C++ implementation of PThreads cancel cleanup;
-	 * This implementation takes advantage of a helper
-	 * class who's destructor automatically calls the
-	 * cleanup routine if we exit our scope weirdly
-	 */
-#define pthread_cleanup_push( _rout, _arg ) \
-        { \
-	    PThreadCleanup  cleanup((ptw32_cleanup_callback_t)(_rout), \
-				    (void *) (_arg) );
-
-#define pthread_cleanup_pop( _execute ) \
-	    cleanup.execute( _execute ); \
-	}
-
-#else
-
-#error ERROR [__FILE__, line __LINE__]: Cleanup type undefined.
-
-#endif /* __CLEANUP_CXX */
-
-#endif /* __CLEANUP_C */
-
-#endif /* __CLEANUP_SEH */
-
-/*
- * ===============
- * ===============
- * Methods
- * ===============
- * ===============
- */
-
-/*
- * PThread Attribute Functions
- */
-int pthread_attr_init (pthread_attr_t * attr);
-
-int pthread_attr_destroy (pthread_attr_t * attr);
-
-int pthread_attr_getdetachstate (const pthread_attr_t * attr,
-				 int *detachstate);
-
-int pthread_attr_getstackaddr (const pthread_attr_t * attr,
-			       void **stackaddr);
-
-int pthread_attr_getstacksize (const pthread_attr_t * attr,
-			       size_t * stacksize);
-
-int pthread_attr_setdetachstate (pthread_attr_t * attr,
-				 int detachstate);
-
-int pthread_attr_setstackaddr (pthread_attr_t * attr,
-			       void *stackaddr);
-
-int pthread_attr_setstacksize (pthread_attr_t * attr,
-			       size_t stacksize);
-
-int pthread_attr_getschedparam (const pthread_attr_t *attr,
-                                struct sched_param *param);
-
-int pthread_attr_setschedparam (pthread_attr_t *attr,
-                                const struct sched_param *param);
-
-int pthread_attr_setschedpolicy (pthread_attr_t *,
-                                 int);
-
-int pthread_attr_getschedpolicy (pthread_attr_t *,
-                                 int *);
-
-int pthread_attr_setinheritsched(pthread_attr_t * attr,
-                                 int inheritsched);
-
-int pthread_attr_getinheritsched(pthread_attr_t * attr,
-                                 int * inheritsched);
-
-int pthread_attr_setscope (pthread_attr_t *,
-                           int);
-
-int pthread_attr_getscope (const pthread_attr_t *,
-                           int *);
-
-/*
- * PThread Functions
- */
-int pthread_create (pthread_t * tid,
-		    const pthread_attr_t * attr,
-		    void *(*start) (void *),
-		    void *arg);
-
-int pthread_detach (pthread_t tid);
-
-int pthread_equal (pthread_t t1,
-		   pthread_t t2);
-
-void pthread_exit (void *value_ptr);
-
-int pthread_join (pthread_t thread,
-		  void **value_ptr);
-
-pthread_t pthread_self (void);
-
-int pthread_cancel (pthread_t thread);
-
-int pthread_setcancelstate (int state,
-			    int *oldstate);
-
-int pthread_setcanceltype (int type,
-			   int *oldtype);
-
-void pthread_testcancel (void);
-
-int pthread_once (pthread_once_t * once_control,
-		  void (*init_routine) (void));
-
-ptw32_cleanup_t *ptw32_pop_cleanup (int execute);
-
-void ptw32_push_cleanup (ptw32_cleanup_t * cleanup,
-			   void (*routine) (void *),
-			   void *arg);
-
-/*
- * Thread Specific Data Functions
- */
-int pthread_key_create (pthread_key_t * key,
-			void (*destructor) (void *));
-
-int pthread_key_delete (pthread_key_t key);
-
-int pthread_setspecific (pthread_key_t key,
-			 const void *value);
-
-void *pthread_getspecific (pthread_key_t key);
-
-
-/*
- * Mutex Attribute Functions
- */
-int pthread_mutexattr_init (pthread_mutexattr_t * attr);
-
-int pthread_mutexattr_destroy (pthread_mutexattr_t * attr);
-
-int pthread_mutexattr_getpshared (const pthread_mutexattr_t
-				  * attr,
-				  int *pshared);
-
-int pthread_mutexattr_setpshared (pthread_mutexattr_t * attr,
-				  int pshared);
-
-int pthread_mutexattr_settype (pthread_mutexattr_t * attr, int kind);
-int pthread_mutexattr_gettype (pthread_mutexattr_t * attr, int *kind);
-
-/*
- * Barrier Attribute Functions
- */
-int pthread_barrierattr_init (pthread_barrierattr_t * attr);
-
-int pthread_barrierattr_destroy (pthread_barrierattr_t * attr);
-
-int pthread_barrierattr_getpshared (const pthread_barrierattr_t
-				    * attr,
-				    int *pshared);
-
-int pthread_barrierattr_setpshared (pthread_barrierattr_t * attr,
-				    int pshared);
-
-/*
- * Mutex Functions
- */
-int pthread_mutex_init (pthread_mutex_t * mutex,
-			const pthread_mutexattr_t * attr);
-
-int pthread_mutex_destroy (pthread_mutex_t * mutex);
-
-int pthread_mutex_lock (pthread_mutex_t * mutex);
-
-int pthread_mutex_trylock (pthread_mutex_t * mutex);
-
-int pthread_mutex_unlock (pthread_mutex_t * mutex);
-
-/*
- * Spinlock Functions
- */
-int pthread_spin_init (pthread_spinlock_t * lock, int pshared);
-
-int pthread_spin_destroy (pthread_spinlock_t * lock);
-
-int pthread_spin_lock (pthread_spinlock_t * lock);
-
-int pthread_spin_trylock (pthread_spinlock_t * lock);
-
-int pthread_spin_unlock (pthread_spinlock_t * lock);
-
-/*
- * Barrier Functions
- */
-int pthread_barrier_init (pthread_barrier_t * barrier,
-			  const pthread_barrierattr_t * attr,
-                          unsigned int count);
-
-int pthread_barrier_destroy (pthread_barrier_t * barrier);
-
-int pthread_barrier_wait (pthread_barrier_t * barrier);
-
-/*
- * Condition Variable Attribute Functions
- */
-int pthread_condattr_init (pthread_condattr_t * attr);
-
-int pthread_condattr_destroy (pthread_condattr_t * attr);
-
-int pthread_condattr_getpshared (const pthread_condattr_t * attr,
-				 int *pshared);
-
-int pthread_condattr_setpshared (pthread_condattr_t * attr,
-				 int pshared);
-
-/*
- * Condition Variable Functions
- */
-int pthread_cond_init (pthread_cond_t * cond,
-		       const pthread_condattr_t * attr);
-
-int pthread_cond_destroy (pthread_cond_t * cond);
-
-int pthread_cond_wait (pthread_cond_t * cond,
-		       pthread_mutex_t * mutex);
-
-int pthread_cond_timedwait (pthread_cond_t * cond,
-			    pthread_mutex_t * mutex,
-			    const struct timespec *abstime);
-
-int pthread_cond_signal (pthread_cond_t * cond);
-
-int pthread_cond_broadcast (pthread_cond_t * cond);
-
-/*
- * Scheduling
- */
-int pthread_setschedparam (pthread_t thread,
-			   int policy,
-			   const struct sched_param *param);
-
-int pthread_getschedparam (pthread_t thread,
-			   int *policy,
-			   struct sched_param *param);
-
-int pthread_setconcurrency (int);
- 
-int pthread_getconcurrency (void);
-
-/*
- * Read-Write Lock Functions
- */
-int pthread_rwlock_init(pthread_rwlock_t *lock,
-                               const pthread_rwlockattr_t *attr);
-
-int pthread_rwlock_destroy(pthread_rwlock_t *lock);
-
-int pthread_rwlock_tryrdlock(pthread_rwlock_t *);
-
-int pthread_rwlock_trywrlock(pthread_rwlock_t *);
-
-int pthread_rwlock_rdlock(pthread_rwlock_t *lock);
-
-int pthread_rwlock_wrlock(pthread_rwlock_t *lock);
-
-int pthread_rwlock_unlock(pthread_rwlock_t *lock);
-
-
-/*
- * Non-portable functions
- */
-
-/*
- * Compatibility with Linux.
- */
-int pthread_mutexattr_setkind_np(pthread_mutexattr_t * attr, int kind);
-int pthread_mutexattr_getkind_np(pthread_mutexattr_t * attr, int *kind);
-
-/*
- * Possibly supported by other POSIX threads implementations
- */
-int pthread_delay_np (struct timespec * interval);
-
-/*
- * Returns the Win32 HANDLE for the POSIX thread.
- */
-HANDLE pthread_getw32threadhandle_np(pthread_t thread);
-
-/*
- * Returns the number of CPUs available to the process.
- */
-int pthread_getprocessors_np(int * count);
-
-/*
- * Useful if an application wants to statically link
- * the lib rather than load the DLL at run-time.
- */
-int pthread_win32_process_attach_np(void);
-int pthread_win32_process_detach_np(void);
-int pthread_win32_thread_attach_np(void);
-int pthread_win32_thread_detach_np(void);
-
-
-/*
- * Protected Methods
- *
- * This function blocks until the given WIN32 handle
- * is signaled or pthread_cancel had been called.
- * This function allows the caller to hook into the
- * PThreads cancel mechanism. It is implemented using
- *
- *              WaitForMultipleObjects
- *
- * on 'waitHandle' and a manually reset WIN32 Event
- * used to implement pthread_cancel. The 'timeout'
- * argument to TimedWait is simply passed to
- * WaitForMultipleObjects.
- */
-int pthreadCancelableWait (HANDLE waitHandle);
-int pthreadCancelableTimedWait (HANDLE waitHandle, DWORD timeout);
-
-/*
- * Thread-Safe C Runtime Library Mappings.
- */
-#ifndef _UWIN
-#if 1
-#if (! defined(HAVE_ERRNO)) && (! defined(_REENTRANT)) && (! defined(_MT))
-int * _errno( void );
-#endif
-#else
-#if (! defined(NEED_ERRNO)) || (! defined( _REENTRANT ) && (! defined( _MT ) || ! defined( _MD )))
-#if defined(PTW32_BUILD)
-__declspec( dllexport ) int * _errno( void );
-#else
-int * _errno( void );
-#endif
-#endif
-#endif
-#endif
-
-/*
- * WIN32 C runtime library had been made thread-safe
- * without affecting the user interface. Provide
- * mappings from the UNIX thread-safe versions to
- * the standard C runtime library calls.
- * Only provide function mappings for functions that
- * actually exist on WIN32.
- */
-
-#if !defined(__MINGW32__)
-#define strtok_r( _s, _sep, _lasts ) \
-	( *(_lasts) = strtok( (_s), (_sep) ) )
-#endif /* !__MINGW32__ */
-
-#define asctime_r( _tm, _buf ) \
-	( strcpy( (_buf), asctime( (_tm) ) ), \
-	  (_buf) )
-
-#define ctime_r( _clock, _buf ) \
-	( strcpy( (_buf), ctime( (_clock) ) ),  \
-          (_buf) )
-
-#define gmtime_r( _clock, _result ) \
-	( *(_result) = *gmtime( (_clock) ), \
-	  (_result) )
-
-#define localtime_r( _clock, _result ) \
-	( *(_result) = *localtime( (_clock) ), \
-	  (_result) )
-
-#define rand_r( _seed ) \
-	( _seed == _seed? rand() : rand() )
-
-
-#ifdef __cplusplus
-
-/*
- * Internal exceptions
- */
-class ptw32_exception {};
-class ptw32_exception_cancel : public ptw32_exception {};
-class ptw32_exception_exit   : public ptw32_exception {};
-
-#endif
-
-/* FIXME: This is only required if the library was built using SEH */
-/*
- * Get internal SEH tag
- */
-DWORD ptw32_get_exception_services_code(void);
-
-#ifndef PTW32_BUILD
-
-#ifdef __CLEANUP_SEH
-
-/*
- * Redefine the SEH __except keyword to ensure that applications
- * propagate our internal exceptions up to the library's internal handlers.
- */
-#define __except( E ) \
-        __except( ( GetExceptionCode() == ptw32_get_exception_services_code() ) \
-		 ? EXCEPTION_CONTINUE_SEARCH : ( E ) )
-
-#endif /* __CLEANUP_SEH */
-
-#ifdef __cplusplus
-
-/*
- * Redefine the C++ catch keyword to ensure that applications
- * propagate our internal exceptions up to the library's internal handlers.
- */
-#ifdef _MSC_VER
-        /*
-         * WARNING: Replace any 'catch( ... )' with 'PtW32CatchAll'
-         * if you want Pthread-Win32 cancelation and pthread_exit to work.
-         */
-
-#ifndef PtW32NoCatchWarn
-
-#pragma message("When compiling applications with MSVC++ and C++ exception handling:")
-#pragma message("  Replace any 'catch( ... )' with 'PtW32CatchAll' in POSIX threads")
-#pragma message("  if you want POSIX thread cancelation and pthread_exit to work.")
-
-#endif
-
-#define PtW32CatchAll \
-        catch( ptw32_exception & ) { throw; } \
-        catch( ... )
-
-#else /* _MSC_VER */
-
-#define catch( E ) \
-        catch( ptw32_exception & ) { throw; } \
-        catch( E )
-
-#endif /* _MSC_VER */
-
-#endif /* __cplusplus */
-
-#endif /* ! PTW32_BUILD */
-
-#ifdef __cplusplus
-}				/* End of extern "C" */
-#endif				/* __cplusplus */
-
-#endif /* PTHREAD_H */
diff --git a/xbmc/visualizations/XBMCProjectM/win32/pthreads/sched.h b/xbmc/visualizations/XBMCProjectM/win32/pthreads/sched.h
deleted file mode 100644
index 5875a26..0000000
--- a/xbmc/visualizations/XBMCProjectM/win32/pthreads/sched.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Module: sched.h
- *
- * Purpose:
- *      Provides an implementation of POSIX realtime extensions
- *      as defined in 
- *
- *              POSIX 1003.1b-1993      (POSIX.1b)
- *
- * Pthreads-win32 - POSIX Threads Library for Win32
- * Copyright (C) 1998 John E. Bossom
- *
- * 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., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA
- */
-#ifndef _SCHED_H
-#define _SCHED_H
-
-#if defined(__MINGW32__) || defined(_UWIN)
-/* For pid_t */
-#  include <sys/types.h>
-/* Required by Unix 98 */
-#  include <time.h>
-#else
-typedef int pid_t;
-#endif
-
-/* Thread scheduling policies */
-
-enum {
-  SCHED_OTHER = 0,
-  SCHED_FIFO,
-  SCHED_RR,
-  SCHED_MIN   = SCHED_OTHER,
-  SCHED_MAX   = SCHED_RR
-};
-
-struct sched_param {
-  int sched_priority;
-};
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif                          /* __cplusplus */
-
-int sched_yield (void);
-
-int sched_get_priority_min (int policy);
-
-int sched_get_priority_max (int policy);
-
-int sched_setscheduler (pid_t pid, int policy);
-
-int sched_getscheduler (pid_t pid);
-
-/*
- * Note that this macro returns ENOTSUP rather than
- * ENOSYS as might be expected. However, returning ENOSYS
- * should mean that sched_get_priority_{min,max} are
- * not implemented as well as sched_rr_get_interval.
- * This is not the case, since we just don't support
- * round-robin scheduling. Therefore I have chosen to
- * return the same value as sched_setscheduler when
- * SCHED_RR is passed to it.
- */
-#define sched_rr_get_interval(_pid, _interval) \
-  ( errno = ENOTSUP, (int) -1 )
-
-
-#ifdef __cplusplus
-}                               /* End of extern "C" */
-#endif                          /* __cplusplus */
-
-
-#endif                          /* !_SCHED_H */
-
diff --git a/xbmc/win32/IMMNotificationClient.h b/xbmc/win32/IMMNotificationClient.h
deleted file mode 100644
index 95896f0..0000000
--- a/xbmc/win32/IMMNotificationClient.h
+++ /dev/null
@@ -1,174 +0,0 @@
-//#pragma once
-/*
- *      Copyright (C) 2014 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#include <Audioclient.h>
-#include <mmdeviceapi.h>
-#include "system.h" // for SAFE_RELEASE
-#include "utils/log.h"
-#include "cores/AudioEngine/AEFactory.h"
-#include "powermanagement/windows/Win32PowerSyscall.h"
-
-class CMMNotificationClient : public IMMNotificationClient
-{
-  LONG _cRef;
-  IMMDeviceEnumerator *_pEnumerator;
-
-
-public:
-  CMMNotificationClient() : _cRef(1), _pEnumerator(NULL)
-  {
-  }
-
-  ~CMMNotificationClient()
-  {
-    SAFE_RELEASE(_pEnumerator);
-  }
-
-  // IUnknown methods -- AddRef, Release, and QueryInterface
-
-  ULONG STDMETHODCALLTYPE AddRef()
-  {
-    return InterlockedIncrement(&_cRef);
-  }
-
-  ULONG STDMETHODCALLTYPE Release()
-  {
-    ULONG ulRef = InterlockedDecrement(&_cRef);
-    if (0 == ulRef)
-    {
-      delete this;
-    }
-    return ulRef;
-  }
-
-  HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, VOID **ppvInterface)
-  {
-    if (IID_IUnknown == riid)
-    {
-      AddRef();
-      *ppvInterface = (IUnknown*)this;
-    }
-    else if (__uuidof(IMMNotificationClient) == riid)
-    {
-      AddRef();
-      *ppvInterface = (IMMNotificationClient*)this;
-    }
-    else
-    {
-      *ppvInterface = NULL;
-      return E_NOINTERFACE;
-    }
-    return S_OK;
-  }
-
-  // Callback methods for device-event notifications.
-
-  HRESULT STDMETHODCALLTYPE OnDefaultDeviceChanged(EDataFlow flow, ERole role, LPCWSTR pwstrDeviceId)
-  {
-    // if the default device changes this function is called four times.
-    // therefore we call CAEFactory::DeviceChange() only for one role.
-    char  *pszFlow = "?????";
-    char  *pszRole = "?????";
-
-    switch (flow)
-    {
-    case eRender:
-      pszFlow = "eRender";
-      break;
-    case eCapture:
-      pszFlow = "eCapture";
-      break;
-    }
-
-    switch (role)
-    {
-    case eConsole:
-      pszRole = "eConsole";
-      break;
-    case eMultimedia:
-      pszRole = "eMultimedia";
-      break;
-    case eCommunications:
-      pszRole = "eCommunications";
-      NotifyAE();
-      break;
-    }
-
-    CLog::Log(LOGDEBUG, "%s: New default device: flow = %s, role = %s", __FUNCTION__, pszFlow, pszRole);
-    return S_OK;
-  }
-
-  HRESULT STDMETHODCALLTYPE OnDeviceAdded(LPCWSTR pwstrDeviceId)
-  {
-    CLog::Log(LOGDEBUG, "%s: Added device: %s", __FUNCTION__, pwstrDeviceId);
-    NotifyAE();
-    return S_OK;
-  }
-
-  HRESULT STDMETHODCALLTYPE OnDeviceRemoved(LPCWSTR pwstrDeviceId)
-  {
-    CLog::Log(LOGDEBUG, "%s: Removed device: %s", __FUNCTION__, pwstrDeviceId);
-    NotifyAE();
-    return S_OK;
-  }
-
-  HRESULT STDMETHODCALLTYPE OnDeviceStateChanged(LPCWSTR pwstrDeviceId, DWORD dwNewState)
-  {
-    char  *pszState = "?????";
-
-    switch (dwNewState)
-    {
-    case DEVICE_STATE_ACTIVE:
-      pszState = "ACTIVE";
-      break;
-    case DEVICE_STATE_DISABLED:
-      pszState = "DISABLED";
-      break;
-    case DEVICE_STATE_NOTPRESENT:
-      pszState = "NOTPRESENT";
-      break;
-    case DEVICE_STATE_UNPLUGGED:
-      pszState = "UNPLUGGED";
-      break;
-    }
-    CLog::Log(LOGDEBUG, "%s: New device state is DEVICE_STATE_%s", __FUNCTION__, pszState);
-    NotifyAE();
-    return S_OK;
-  }
-
-  HRESULT STDMETHODCALLTYPE OnPropertyValueChanged(LPCWSTR pwstrDeviceId, const PROPERTYKEY key)
-  {
-    CLog::Log(LOGDEBUG, "%s: Changed device property of %S is {%8.8x-%4.4x-%4.4x-%2.2x%2.2x-%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x}#%d", 
-              __FUNCTION__, pwstrDeviceId, key.fmtid.Data1, key.fmtid.Data2, key.fmtid.Data3,
-                                           key.fmtid.Data4[0], key.fmtid.Data4[1],
-                                           key.fmtid.Data4[2], key.fmtid.Data4[3],
-                                           key.fmtid.Data4[4], key.fmtid.Data4[5],
-                                           key.fmtid.Data4[6], key.fmtid.Data4[7],
-                                           key.pid);
-    return S_OK;
-  }
-
-  void STDMETHODCALLTYPE NotifyAE()
-  {
-    if(!CWin32PowerSyscall::IsSuspending())
-      CAEFactory::DeviceChange();
-  }
-};
\ No newline at end of file
diff --git a/xbmc/win32/PlatformDefs.h b/xbmc/win32/PlatformDefs.h
deleted file mode 100644
index 162d168..0000000
--- a/xbmc/win32/PlatformDefs.h
+++ /dev/null
@@ -1,101 +0,0 @@
-#ifndef __PLATFORM_DEFS_H__
-#define __PLATFORM_DEFS_H__
-
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#ifdef TARGET_WINDOWS
-
-#define LINE_ENDING "\r\n"
-
-#define __STDC_FORMAT_MACROS
-#include <inttypes.h>
-
-typedef __int64       off64_t;
-typedef __int64       fpos64_t;
-typedef __int64       __off64_t;
-typedef long          __off_t;
-
-#if !defined(_SSIZE_T_DEFINED) && !defined(HAVE_SSIZE_T)
-typedef intptr_t      ssize_t;
-#define _SSIZE_T_DEFINED
-#endif // !_SSIZE_T_DEFINED
-#ifndef SSIZE_MAX
-#define SSIZE_MAX INTPTR_MAX
-#endif // !SSIZE_MAX
-
-#define snprintf _snprintf
-#define ftello64 _ftelli64
-#define fseeko64 _fseeki64
-#ifndef strcasecmp
-#define strcasecmp strcmpi
-#endif
-#ifndef strncasecmp
-#define strncasecmp strnicmp
-#endif
-
-#define popen   _popen
-#define pclose  _pclose
-
-#if 0
-// big endian
-#define PIXEL_ASHIFT 0
-#define PIXEL_RSHIFT 8
-#define PIXEL_GSHIFT 16
-#define PIXEL_BSHIFT 24
-#define AMASK 0x000000ff
-#define RMASK 0x0000ff00
-#define GMASK 0x00ff0000
-#define BMASK 0xff000000
-#else
-// little endian
-#define PIXEL_ASHIFT 24
-#define PIXEL_RSHIFT 16
-#define PIXEL_GSHIFT 8
-#define PIXEL_BSHIFT 0
-#define AMASK 0xff000000
-#define RMASK 0x00ff0000
-#define GMASK 0x0000ff00
-#define BMASK 0x000000ff
-#endif
-
-#ifndef va_copy
-#define va_copy(dst, src) ((dst) = (src))
-#endif
-
-#if _MSC_VER < 1800
-#define lrint(x) ((x) >= 0 ? ((int)((x) + 0.5)) : ((int)((x) - 0.5)))
-#define llrint(x) ((x) >= 0 ? ((__int64)((x) + 0.5)) : ((__int64)((x) - 0.5)))
-#endif
-
-#define strtoll(p, e, b) _strtoi64(p, e, b)
-
-extern "C" char * strptime(const char *buf, const char *fmt, struct tm *tm);
-extern "C" int strverscmp (const char *s1, const char *s2);
-extern "C" char * strcasestr(const char* haystack, const char* needle);
-
-#if _MSC_VER >= 1800
-#define PRIdS       "Id"
-#define PRIuS       "Iu"
-#endif
-#endif // TARGET_WINDOWS
-
-#endif //__PLATFORM_DEFS_H__
-
diff --git a/xbmc/win32/PlatformInclude.h b/xbmc/win32/PlatformInclude.h
deleted file mode 100644
index 65ad0a5..0000000
--- a/xbmc/win32/PlatformInclude.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __PLATFORM_INCLUDE__H__
-#define __PLATFORM_INCLUDE__H__
-
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#include <errno.h> // for ENOENT and EINVAL
-#include "PlatformDefs.h"
-
-#endif
-
diff --git a/xbmc/win32/WIN32Util.cpp b/xbmc/win32/WIN32Util.cpp
deleted file mode 100644
index 9697fc7..0000000
--- a/xbmc/win32/WIN32Util.cpp
+++ /dev/null
@@ -1,1600 +0,0 @@
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "WIN32Util.h"
-#include "Util.h"
-#include "utils/URIUtils.h"
-#include "storage/cdioSupport.h"
-#include "PowrProf.h"
-#include "WindowHelper.h"
-#include "Application.h"
-#include <shlobj.h>
-#include "filesystem/SpecialProtocol.h"
-#include "my_ntddscsi.h"
-#include "Setupapi.h"
-#include "storage/MediaManager.h"
-#include "windowing/WindowingFactory.h"
-#include "guilib/LocalizeStrings.h"
-#include "utils/CharsetConverter.h"
-#include "utils/log.h"
-#include "DllPaths_win32.h"
-#include "FileSystem/File.h"
-#include "utils/URIUtils.h"
-#include "powermanagement\PowerManager.h"
-#include "utils/SystemInfo.h"
-#include "utils/Environment.h"
-#include "utils/URIUtils.h"
-#include "utils/StringUtils.h"
-
-#define DLL_ENV_PATH "special://xbmc/system/;" \
-                     "special://xbmc/system/players/dvdplayer/;" \
-                     "special://xbmc/system/players/paplayer/;" \
-                     "special://xbmc/system/cdrip/;" \
-                     "special://xbmc/system/python/;" \
-                     "special://xbmc/system/webserver/;" \
-                     "special://xbmc/"
-
-extern HWND g_hWnd;
-
-using namespace std;
-using namespace MEDIA_DETECT;
-
-CWIN32Util::CWIN32Util(void)
-{
-}
-
-CWIN32Util::~CWIN32Util(void)
-{
-}
-
-int CWIN32Util::GetDriveStatus(const std::string &strPath, bool bStatusEx)
-{
-  HANDLE hDevice;               // handle to the drive to be examined
-  int iResult;                  // results flag
-  ULONG ulChanges=0;
-  DWORD dwBytesReturned;
-  T_SPDT_SBUF sptd_sb;  //SCSI Pass Through Direct variable.
-  byte DataBuf[8];  //Buffer for holding data to/from drive.
-
-  CLog::Log(LOGDEBUG, __FUNCTION__": Requesting status for drive %s.", strPath.c_str());
-
-  hDevice = CreateFile( strPath.c_str(),                  // drive
-                        0,                                // no access to the drive
-                        FILE_SHARE_READ,                  // share mode
-                        NULL,                             // default security attributes
-                        OPEN_EXISTING,                    // disposition
-                        FILE_ATTRIBUTE_READONLY,          // file attributes
-                        NULL);
-
-  if (hDevice == INVALID_HANDLE_VALUE)                    // cannot open the drive
-  {
-    CLog::Log(LOGERROR, __FUNCTION__": Failed to CreateFile for %s.", strPath.c_str());
-    return -1;
-  }
-
-  CLog::Log(LOGDEBUG, __FUNCTION__": Requesting media status for drive %s.", strPath.c_str());
-  iResult = DeviceIoControl((HANDLE) hDevice,             // handle to device
-                             IOCTL_STORAGE_CHECK_VERIFY2, // dwIoControlCode
-                             NULL,                        // lpInBuffer
-                             0,                           // nInBufferSize
-                             &ulChanges,                  // lpOutBuffer
-                             sizeof(ULONG),               // nOutBufferSize
-                             &dwBytesReturned ,           // number of bytes returned
-                             NULL );                      // OVERLAPPED structure
-
-  CloseHandle(hDevice);
-
-  if(iResult == 1)
-    return 2;
-
-  // don't request the tray status as we often doesn't need it
-  if(!bStatusEx)
-    return 0;
-
-  hDevice = CreateFile( strPath.c_str(),
-                        GENERIC_READ | GENERIC_WRITE,
-                        FILE_SHARE_READ | FILE_SHARE_WRITE,
-                        NULL,
-                        OPEN_EXISTING,
-                        FILE_ATTRIBUTE_READONLY,
-                        NULL);
-
-  if (hDevice == INVALID_HANDLE_VALUE)
-  {
-    CLog::Log(LOGERROR, __FUNCTION__": Failed to CreateFile2 for %s.", strPath.c_str());
-    return -1;
-  }
-
-  sptd_sb.sptd.Length=sizeof(SCSI_PASS_THROUGH_DIRECT);
-  sptd_sb.sptd.PathId=0;
-  sptd_sb.sptd.TargetId=0;
-  sptd_sb.sptd.Lun=0;
-  sptd_sb.sptd.CdbLength=10;
-  sptd_sb.sptd.SenseInfoLength=MAX_SENSE_LEN;
-  sptd_sb.sptd.DataIn=SCSI_IOCTL_DATA_IN;
-  sptd_sb.sptd.DataTransferLength=sizeof(DataBuf);
-  sptd_sb.sptd.TimeOutValue=2;
-  sptd_sb.sptd.DataBuffer=(PVOID)&(DataBuf);
-  sptd_sb.sptd.SenseInfoOffset=sizeof(SCSI_PASS_THROUGH_DIRECT);
-
-  sptd_sb.sptd.Cdb[0]=0x4a;
-  sptd_sb.sptd.Cdb[1]=1;
-  sptd_sb.sptd.Cdb[2]=0;
-  sptd_sb.sptd.Cdb[3]=0;
-  sptd_sb.sptd.Cdb[4]=0x10;
-  sptd_sb.sptd.Cdb[5]=0;
-  sptd_sb.sptd.Cdb[6]=0;
-  sptd_sb.sptd.Cdb[7]=0;
-  sptd_sb.sptd.Cdb[8]=8;
-  sptd_sb.sptd.Cdb[9]=0;
-  sptd_sb.sptd.Cdb[10]=0;
-  sptd_sb.sptd.Cdb[11]=0;
-  sptd_sb.sptd.Cdb[12]=0;
-  sptd_sb.sptd.Cdb[13]=0;
-  sptd_sb.sptd.Cdb[14]=0;
-  sptd_sb.sptd.Cdb[15]=0;
-
-  ZeroMemory(DataBuf, 8);
-  ZeroMemory(sptd_sb.SenseBuf, MAX_SENSE_LEN);
-
-  //Send the command to drive
-  CLog::Log(LOGDEBUG, __FUNCTION__": Requesting tray status for drive %s.", strPath.c_str());
-  iResult = DeviceIoControl((HANDLE) hDevice,
-                            IOCTL_SCSI_PASS_THROUGH_DIRECT,
-                            (PVOID)&sptd_sb, (DWORD)sizeof(sptd_sb),
-                            (PVOID)&sptd_sb, (DWORD)sizeof(sptd_sb),
-                            &dwBytesReturned,
-                            NULL);
-
-  CloseHandle(hDevice);
-
-  if(iResult)
-  {
-
-    if(DataBuf[5] == 0) // tray close
-      return 0;
-    else if(DataBuf[5] == 1) // tray open
-      return 1;
-    else
-      return 2; // tray closed, media present
-  }
-  CLog::Log(LOGERROR, __FUNCTION__": Could not determine tray status %d", GetLastError());
-  return -1;
-}
-
-char CWIN32Util::FirstDriveFromMask (ULONG unitmask)
-{
-    char i;
-    for (i = 0; i < 26; ++i)
-    {
-        if (unitmask & 0x1) break;
-        unitmask = unitmask >> 1;
-    }
-    return (i + 'A');
-}
-
-bool CWIN32Util::PowerManagement(PowerState State)
-{
-  static bool gotShutdownPrivileges = false;
-  if (!gotShutdownPrivileges)
-  {
-    HANDLE hToken;
-    // Get a token for this process.
-    if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
-    {
-      // Get the LUID for the shutdown privilege.
-      TOKEN_PRIVILEGES tkp = {};
-      if (LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid))
-      {
-        tkp.PrivilegeCount = 1;  // one privilege to set
-        tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
-        // Get the shutdown privilege for this process.
-        if (AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0))
-          gotShutdownPrivileges = true;
-      }
-      CloseHandle(hToken);
-    }
-
-    if (!gotShutdownPrivileges)
-      return false;
-  }
-
-  // process OnSleep() events. This is called in main thread.
-  g_powerManager.ProcessEvents();
-
-  switch (State)
-  {
-  case POWERSTATE_HIBERNATE:
-    CLog::Log(LOGINFO, "Asking Windows to hibernate...");
-    return SetSuspendState(true,true,false) == TRUE;
-    break;
-  case POWERSTATE_SUSPEND:
-    CLog::Log(LOGINFO, "Asking Windows to suspend...");
-    return SetSuspendState(false,true,false) == TRUE;
-    break;
-  case POWERSTATE_SHUTDOWN:
-    CLog::Log(LOGINFO, "Shutdown Windows...");
-    if (g_sysinfo.IsWindowsVersionAtLeast(CSysInfo::WindowsVersionWin8))
-      return InitiateShutdownW(NULL, NULL, 0, SHUTDOWN_HYBRID | SHUTDOWN_INSTALL_UPDATES | SHUTDOWN_POWEROFF,
-                               SHTDN_REASON_MAJOR_APPLICATION | SHTDN_REASON_MINOR_OTHER | SHTDN_REASON_FLAG_PLANNED) == ERROR_SUCCESS;
-    return InitiateShutdownW(NULL, NULL, 0, SHUTDOWN_INSTALL_UPDATES | SHUTDOWN_POWEROFF,
-                             SHTDN_REASON_MAJOR_APPLICATION | SHTDN_REASON_MINOR_OTHER | SHTDN_REASON_FLAG_PLANNED) == ERROR_SUCCESS;
-    break;
-  case POWERSTATE_REBOOT:
-    CLog::Log(LOGINFO, "Rebooting Windows...");
-    if (g_sysinfo.IsWindowsVersionAtLeast(CSysInfo::WindowsVersionWin8))
-      return InitiateShutdownW(NULL, NULL, 0, SHUTDOWN_INSTALL_UPDATES | SHUTDOWN_RESTART,
-                               SHTDN_REASON_MAJOR_APPLICATION | SHTDN_REASON_MINOR_OTHER | SHTDN_REASON_FLAG_PLANNED) == ERROR_SUCCESS;
-    return InitiateShutdownW(NULL, NULL, 0, SHUTDOWN_INSTALL_UPDATES | SHUTDOWN_RESTART,
-                             SHTDN_REASON_MAJOR_APPLICATION | SHTDN_REASON_MINOR_OTHER | SHTDN_REASON_FLAG_PLANNED) == ERROR_SUCCESS;
-    break;
-  default:
-    CLog::Log(LOGERROR, "Unknown PowerState called.");
-    return false;
-    break;
-  }
-}
-
-int CWIN32Util::BatteryLevel()
-{
-  SYSTEM_POWER_STATUS SystemPowerStatus;
-
-  if (GetSystemPowerStatus(&SystemPowerStatus) && SystemPowerStatus.BatteryLifePercent != 255)
-      return SystemPowerStatus.BatteryLifePercent;
-
-  return 0;
-}
-
-bool CWIN32Util::XBMCShellExecute(const std::string &strPath, bool bWaitForScriptExit)
-{
-  std::string strCommand = strPath;
-  std::string strExe = strPath;
-  std::string strParams;
-  std::string strWorkingDir;
-
-  StringUtils::Trim(strCommand);
-  if (strCommand.empty())
-  {
-    return false;
-  }
-  size_t iIndex = std::string::npos;
-  char split = ' ';
-  if (strCommand[0] == '\"')
-  {
-    split = '\"';
-  }
-  iIndex = strCommand.find(split, 1);
-  if (iIndex != std::string::npos)
-  {
-    strExe = strCommand.substr(0, iIndex + 1);
-    strParams = strCommand.substr(iIndex + 1);
-  }
-
-  StringUtils::Replace(strExe, "\"", "");
-
-  strWorkingDir = strExe;
-  iIndex = strWorkingDir.rfind('\\');
-  if(iIndex != std::string::npos)
-  {
-    strWorkingDir[iIndex+1] = '\0';
-  }
-
-  std::wstring WstrExe, WstrParams, WstrWorkingDir;
-  g_charsetConverter.utf8ToW(strExe, WstrExe);
-  g_charsetConverter.utf8ToW(strParams, WstrParams);
-  g_charsetConverter.utf8ToW(strWorkingDir, WstrWorkingDir);
-
-  bool ret;
-  SHELLEXECUTEINFOW ShExecInfo = {0};
-  ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFOW);
-  ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
-  ShExecInfo.hwnd = NULL;
-  ShExecInfo.lpVerb = NULL;
-  ShExecInfo.lpFile = WstrExe.c_str();
-  ShExecInfo.lpParameters = WstrParams.c_str();
-  ShExecInfo.lpDirectory = WstrWorkingDir.c_str();
-  ShExecInfo.nShow = SW_SHOW;
-  ShExecInfo.hInstApp = NULL;
-
-  g_windowHelper.StopThread();
-
-  LockSetForegroundWindow(LSFW_UNLOCK);
-  ShowWindow(g_hWnd,SW_MINIMIZE);
-  ret = ShellExecuteExW(&ShExecInfo) == TRUE;
-  g_windowHelper.SetHANDLE(ShExecInfo.hProcess);
-
-  // ShellExecute doesn't return the window of the started process
-  // we need to gather it from somewhere to allow switch back to XBMC
-  // when a program is minimized instead of stopped.
-  //g_windowHelper.SetHWND(ShExecInfo.hwnd);
-  g_windowHelper.Create();
-
-  if(bWaitForScriptExit)
-  {
-    // Todo: Pause music and video playback
-    WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
-  }
-
-  return ret;
-}
-
-std::vector<std::string> CWIN32Util::GetDiskUsage()
-{
-  vector<std::string> result;
-  ULARGE_INTEGER ULTotal= { { 0 } };
-  ULARGE_INTEGER ULTotalFree= { { 0 } };
-
-  char* pcBuffer= NULL;
-  DWORD dwStrLength= GetLogicalDriveStrings( 0, pcBuffer );
-  if( dwStrLength != 0 )
-  {
-    std::string strRet;
-
-    dwStrLength+= 1;
-    pcBuffer= new char [dwStrLength];
-    GetLogicalDriveStrings( dwStrLength, pcBuffer );
-    int iPos= 0;
-    do
-    {
-      std::string strDrive = pcBuffer + iPos;
-      if( DRIVE_FIXED == GetDriveType( strDrive.c_str()  ) &&
-        GetDiskFreeSpaceEx( ( strDrive.c_str() ), NULL, &ULTotal, &ULTotalFree ) )
-      {
-        strRet = StringUtils::Format("%s %d MB %s",strDrive.c_str(), int(ULTotalFree.QuadPart/(1024*1024)),g_localizeStrings.Get(160).c_str());
-        result.push_back(strRet);
-      }
-      iPos += (strlen( pcBuffer + iPos) + 1 );
-    }while( strlen( pcBuffer + iPos ) > 0 );
-  }
-  delete[] pcBuffer;
-  return result;
-}
-
-std::string CWIN32Util::GetResInfoString()
-{
-  DEVMODE devmode;
-  ZeroMemory(&devmode, sizeof(devmode));
-  devmode.dmSize = sizeof(devmode);
-  EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devmode);
-  return StringUtils::Format("Desktop Resolution: %dx%d %dBit at %dHz",devmode.dmPelsWidth,devmode.dmPelsHeight,devmode.dmBitsPerPel,devmode.dmDisplayFrequency);
-}
-
-int CWIN32Util::GetDesktopColorDepth()
-{
-  DEVMODE devmode;
-  ZeroMemory(&devmode, sizeof(devmode));
-  devmode.dmSize = sizeof(devmode);
-  EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devmode);
-  return (int)devmode.dmBitsPerPel;
-}
-
-std::string CWIN32Util::GetSpecialFolder(int csidl)
-{
-  std::string strProfilePath;
-  static const int bufSize = MAX_PATH;
-  WCHAR* buf = new WCHAR[bufSize];
-
-  if(SUCCEEDED(SHGetFolderPathW(NULL, csidl, NULL, SHGFP_TYPE_CURRENT, buf)))
-  {
-    buf[bufSize-1] = 0;
-    g_charsetConverter.wToUTF8(buf, strProfilePath);
-    strProfilePath = UncToSmb(strProfilePath);
-  }
-  else
-    strProfilePath = "";
-  
-  delete[] buf;
-  return strProfilePath;
-}
-
-std::string CWIN32Util::GetSystemPath()
-{
-  return GetSpecialFolder(CSIDL_SYSTEM);
-}
-
-std::string CWIN32Util::GetProfilePath()
-{
-  std::string strProfilePath;
-  CStdString strHomePath;
-
-  CUtil::GetHomePath(strHomePath);
-
-  if(g_application.PlatformDirectoriesEnabled())
-    strProfilePath = URIUtils::AddFileToFolder(GetSpecialFolder(CSIDL_APPDATA|CSIDL_FLAG_CREATE), "Kodi");
-  else
-    strProfilePath = URIUtils::AddFileToFolder(strHomePath , "portable_data");
-
-  if (strProfilePath.length() == 0)
-    strProfilePath = strHomePath;
-
-  URIUtils::AddSlashAtEnd(strProfilePath);
-
-  return strProfilePath;
-}
-
-std::string CWIN32Util::UncToSmb(const std::string &strPath)
-{
-  std::string strRetPath(strPath);
-  if(StringUtils::StartsWith(strRetPath, "\\\\"))
-  {
-    strRetPath = "smb:" + strPath;
-    StringUtils::Replace(strRetPath, '\\', '/');
-  }
-  return strRetPath;
-}
-
-std::string CWIN32Util::SmbToUnc(const std::string &strPath)
-{
-  std::string strRetPath(strPath);
-  if(StringUtils::StartsWithNoCase(strRetPath, "smb://"))
-  {
-    StringUtils::Replace(strRetPath, "smb://", "\\\\");
-    StringUtils::Replace(strRetPath, '/', '\\');
-  }
-  return strRetPath;
-}
-
-bool CWIN32Util::AddExtraLongPathPrefix(std::wstring& path)
-{
-  const wchar_t* const str = path.c_str();
-  if (path.length() < 4 || str[0] != L'\\' || str[1] != L'\\' || str[3] != L'\\' || str[2] != L'?')
-  {
-    path.insert(0, L"\\\\?\\");
-    return true;
-  }
-  return false;
-}
-
-bool CWIN32Util::RemoveExtraLongPathPrefix(std::wstring& path)
-{
-  const wchar_t* const str = path.c_str();
-  if (path.length() >= 4 && str[0] == L'\\' && str[1] == L'\\' && str[3] == L'\\' && str[2] == L'?')
-  {
-    path.erase(0, 4);
-    return true;
-  }
-  return false;
-}
-
-std::wstring CWIN32Util::ConvertPathToWin32Form(const std::string& pathUtf8)
-{
-  std::wstring result;
-  if (pathUtf8.empty())
-    return result;
-
-  bool convertResult;
-
-  if (pathUtf8.compare(0, 2, "\\\\", 2) != 0) // pathUtf8 don't start from "\\"
-  { // assume local file path in form 'C:\Folder\File.ext'
-    std::string formedPath("\\\\?\\"); // insert "\\?\" prefix
-    formedPath += URIUtils::CanonicalizePath(URIUtils::FixSlashesAndDups(pathUtf8, '\\'), '\\'); // fix duplicated and forward slashes, resolve relative path
-    convertResult = g_charsetConverter.utf8ToW(formedPath, result, false, false, true);
-  }
-  else if (pathUtf8.compare(0, 8, "\\\\?\\UNC\\", 8) == 0) // pathUtf8 starts from "\\?\UNC\"
-  {
-    std::string formedPath("\\\\?\\UNC"); // start from "\\?\UNC" prefix
-    formedPath += URIUtils::CanonicalizePath(URIUtils::FixSlashesAndDups(pathUtf8.substr(7), '\\'), '\\'); // fix duplicated and forward slashes, resolve relative path, don't touch "\\?\UNC" prefix,
-    convertResult = g_charsetConverter.utf8ToW(formedPath, result, false, false, true); 
-  }
-  else if (pathUtf8.compare(0, 4, "\\\\?\\", 4) == 0) // pathUtf8 starts from "\\?\", but it's not UNC path
-  {
-    std::string formedPath("\\\\?"); // start from "\\?" prefix
-    formedPath += URIUtils::CanonicalizePath(URIUtils::FixSlashesAndDups(pathUtf8.substr(3), '\\'), '\\'); // fix duplicated and forward slashes, resolve relative path, don't touch "\\?" prefix,
-    convertResult = g_charsetConverter.utf8ToW(formedPath, result, false, false, true);
-  }
-  else // pathUtf8 starts from "\\", but not from "\\?\UNC\"
-  { // assume UNC path in form '\\server\share\folder\file.ext'
-    std::string formedPath("\\\\?\\UNC"); // append "\\?\UNC" prefix
-    formedPath += URIUtils::CanonicalizePath(URIUtils::FixSlashesAndDups(pathUtf8), '\\'); // fix duplicated and forward slashes, resolve relative path, transform "\\" prefix to single "\"
-    convertResult = g_charsetConverter.utf8ToW(formedPath, result, false, false, true);
-  }
-
-  if (!convertResult)
-  {
-    CLog::Log(LOGERROR, "Error converting path \"%s\" to Win32 wide string!", pathUtf8.c_str());
-    return L"";
-  }
-
-  return result;
-}
-
-std::wstring CWIN32Util::ConvertPathToWin32Form(const CURL& url)
-{
-  assert(url.GetProtocol().empty() || url.IsProtocol("smb"));
-
-  if (url.GetFileName().empty())
-    return std::wstring(); // empty string
-
-  if (url.GetProtocol().empty())
-  {
-    std::wstring result;
-    if (g_charsetConverter.utf8ToW("\\\\?\\" +
-          URIUtils::CanonicalizePath(URIUtils::FixSlashesAndDups(url.GetFileName(), '\\'), '\\'), result, false, false, true))
-      return result;
-  }
-  else if (url.IsProtocol("smb"))
-  {
-    if (url.GetHostName().empty())
-      return std::wstring(); // empty string
-    
-    std::wstring result;
-    if (g_charsetConverter.utf8ToW("\\\\?\\UNC\\" +
-          URIUtils::CanonicalizePath(URIUtils::FixSlashesAndDups(url.GetHostName() + '\\' + url.GetFileName(), '\\'), '\\'),
-          result, false, false, true))
-      return result;
-  }
-  else
-    return std::wstring(); // unsupported protocol, return empty string
-
-  CLog::Log(LOGERROR, "%s: Error converting path \"%s\" to Win32 form", __FUNCTION__, url.Get().c_str());
-  return std::wstring(); // empty string
-}
-
-__time64_t CWIN32Util::fileTimeToTimeT(const FILETIME& ftimeft)
-{
-  if (!ftimeft.dwHighDateTime && !ftimeft.dwLowDateTime)
-    return 0;
-
-  return fileTimeToTimeT((__int64(ftimeft.dwHighDateTime) << 32) + __int64(ftimeft.dwLowDateTime));
-}
-
-__time64_t CWIN32Util::fileTimeToTimeT(const LARGE_INTEGER& ftimeli)
-{
-  if (ftimeli.QuadPart == 0)
-    return 0;
-
-  return fileTimeToTimeT(__int64(ftimeli.QuadPart));
-}
-
-
-void CWIN32Util::ExtendDllPath()
-{
-  std::string strEnv;
-  std::vector<std::string> vecEnv;
-  strEnv = CEnvironment::getenv("PATH");
-  if (strEnv.empty())
-    CLog::Log(LOGWARNING, "Can get system env PATH or PATH is empty");
-
-  vecEnv = StringUtils::Split(DLL_ENV_PATH, ";");
-  for (int i=0; i<(int)vecEnv.size(); ++i)
-    strEnv.append(";" + CSpecialProtocol::TranslatePath(vecEnv[i]));
-
-  if (CEnvironment::setenv("PATH", strEnv) == 0)
-    CLog::Log(LOGDEBUG,"Setting system env PATH to %s",strEnv.c_str());
-  else
-    CLog::Log(LOGDEBUG,"Can't set system env PATH to %s",strEnv.c_str());
-
-}
-
-HRESULT CWIN32Util::ToggleTray(const char cDriveLetter)
-{
-  BOOL bRet= FALSE;
-  DWORD dwReq = 0;
-  char cDL = cDriveLetter;
-  if( !cDL )
-  {
-    std::string dvdDevice = g_mediaManager.TranslateDevicePath("");
-    if(dvdDevice == "")
-      return S_FALSE;
-    cDL = dvdDevice[0];
-  }
-
-  std::string strVolFormat = StringUtils::Format("\\\\.\\%c:", cDL);
-  HANDLE hDrive= CreateFile( strVolFormat.c_str(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,
-                             NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
-  std::string strRootFormat = StringUtils::Format("%c:\\", cDL);
-  if( ( hDrive != INVALID_HANDLE_VALUE || GetLastError() == NO_ERROR) &&
-    ( GetDriveType( strRootFormat.c_str() ) == DRIVE_CDROM ) )
-  {
-    DWORD dwDummy;
-    dwReq = (GetDriveStatus(strVolFormat, true) == 1) ? IOCTL_STORAGE_LOAD_MEDIA : IOCTL_STORAGE_EJECT_MEDIA;
-    bRet = DeviceIoControl( hDrive, dwReq, NULL, 0, NULL, 0, &dwDummy, NULL);
-    CloseHandle( hDrive );
-  }
-  // Windows doesn't seem to send always DBT_DEVICEREMOVECOMPLETE
-  // unmount it here too as it won't hurt
-  if(dwReq == IOCTL_STORAGE_EJECT_MEDIA && bRet == 1)
-  {
-    strRootFormat = StringUtils::Format("%c:", cDL);
-    CMediaSource share;
-    share.strPath = strRootFormat;
-    share.strName = share.strPath;
-    g_mediaManager.RemoveAutoSource(share);
-  }
-  return bRet? S_OK : S_FALSE;
-}
-
-HRESULT CWIN32Util::EjectTray(const char cDriveLetter)
-{
-  char cDL = cDriveLetter;
-  if( !cDL )
-  {
-    std::string dvdDevice = g_mediaManager.TranslateDevicePath("");
-    if(dvdDevice.empty())
-      return S_FALSE;
-    cDL = dvdDevice[0];
-  }
-
-  std::string strVolFormat = StringUtils::Format("\\\\.\\%c:", cDL);
-
-  if(GetDriveStatus(strVolFormat, true) != 1)
-    return ToggleTray(cDL);
-  else
-    return S_OK;
-}
-
-HRESULT CWIN32Util::CloseTray(const char cDriveLetter)
-{
-  char cDL = cDriveLetter;
-  if( !cDL )
-  {
-    std::string dvdDevice = g_mediaManager.TranslateDevicePath("");
-    if(dvdDevice.empty())
-      return S_FALSE;
-    cDL = dvdDevice[0];
-  }
-
-  std::string strVolFormat = StringUtils::Format( "\\\\.\\%c:", cDL);
-
-  if(GetDriveStatus(strVolFormat, true) == 1)
-    return ToggleTray(cDL);
-  else
-    return S_OK;
-}
-
-// safe removal of USB drives:
-// http://www.codeproject.com/KB/system/RemoveDriveByLetter.aspx
-// http://www.techtalkz.com/microsoft-device-drivers/250734-remove-usb-device-c-3.html
-
-DEVINST CWIN32Util::GetDrivesDevInstByDiskNumber(long DiskNumber)
-{
-
-  GUID* guid = (GUID*)(void*)&GUID_DEVINTERFACE_DISK;
-
-  // Get device interface info set handle for all devices attached to system
-  HDEVINFO hDevInfo = SetupDiGetClassDevs(guid, NULL, NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
-
-  if (hDevInfo == INVALID_HANDLE_VALUE)
-    return 0;
-
-  // Retrieve a context structure for a device interface of a device
-  // information set.
-  DWORD dwIndex = 0;
-  SP_DEVICE_INTERFACE_DATA devInterfaceData = {0};
-  devInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
-  BOOL bRet = FALSE;
-
-  PSP_DEVICE_INTERFACE_DETAIL_DATA pspdidd;
-  SP_DEVICE_INTERFACE_DATA spdid;
-  SP_DEVINFO_DATA spdd;
-  DWORD dwSize;
-
-  spdid.cbSize = sizeof(spdid);
-
-  while ( true )
-  {
-    bRet = SetupDiEnumDeviceInterfaces(hDevInfo, NULL, guid, dwIndex, &devInterfaceData);
-    if (!bRet)
-      break;
-
-    SetupDiEnumInterfaceDevice(hDevInfo, NULL, guid, dwIndex, &spdid);
-
-    dwSize = 0;
-    SetupDiGetDeviceInterfaceDetail(hDevInfo, &spdid, NULL, 0, &dwSize, NULL);
-
-    if ( dwSize )
-    {
-      pspdidd = (PSP_DEVICE_INTERFACE_DETAIL_DATA)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwSize);
-      if ( pspdidd == NULL )
-        continue;
-
-      pspdidd->cbSize = sizeof(*pspdidd);
-      ZeroMemory((PVOID)&spdd, sizeof(spdd));
-      spdd.cbSize = sizeof(spdd);
-
-      long res = SetupDiGetDeviceInterfaceDetail(hDevInfo, &spdid,
-      pspdidd, dwSize, &dwSize, &spdd);
-      if ( res )
-      {
-        HANDLE hDrive = CreateFile(pspdidd->DevicePath, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, NULL, NULL);
-        if ( hDrive != INVALID_HANDLE_VALUE )
-        {
-          STORAGE_DEVICE_NUMBER sdn;
-          DWORD dwBytesReturned = 0;
-          res = DeviceIoControl(hDrive, IOCTL_STORAGE_GET_DEVICE_NUMBER, NULL, 0, &sdn, sizeof(sdn), &dwBytesReturned, NULL);
-          if ( res )
-          {
-            if ( DiskNumber == (long)sdn.DeviceNumber )
-            {
-              CloseHandle(hDrive);
-              SetupDiDestroyDeviceInfoList(hDevInfo);
-              return spdd.DevInst;
-            }
-          }
-          CloseHandle(hDrive);
-        }
-      }
-      HeapFree(GetProcessHeap(), 0, pspdidd);
-    }
-    dwIndex++;
-  }
-  SetupDiDestroyDeviceInfoList(hDevInfo);
-  return 0;
-}
-
-bool CWIN32Util::EjectDrive(const char cDriveLetter)
-{
-  if( !cDriveLetter )
-    return false;
-
-  std::string strVolFormat = StringUtils::Format("\\\\.\\%c:", cDriveLetter);
-
-  long DiskNumber = -1;
-
-  HANDLE hVolume = CreateFile(strVolFormat.c_str(), 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, NULL, NULL);
-  if (hVolume == INVALID_HANDLE_VALUE)
-    return false;
-
-  STORAGE_DEVICE_NUMBER sdn;
-  DWORD dwBytesReturned = 0;
-  long res = DeviceIoControl(hVolume, IOCTL_STORAGE_GET_DEVICE_NUMBER,NULL, 0, &sdn, sizeof(sdn), &dwBytesReturned, NULL);
-  CloseHandle(hVolume);
-  if ( res )
-    DiskNumber = sdn.DeviceNumber;
-  else
-    return false;
-
-  DEVINST DevInst = GetDrivesDevInstByDiskNumber(DiskNumber);
-
-  if ( DevInst == 0 )
-    return false;
-
-  ULONG Status = 0;
-  ULONG ProblemNumber = 0;
-  PNP_VETO_TYPE VetoType = PNP_VetoTypeUnknown;
-  char VetoName[MAX_PATH];
-  bool bSuccess = false;
-
-  res = CM_Get_Parent(&DevInst, DevInst, 0); // disk's parent, e.g. the USB bridge, the SATA controller....
-  res = CM_Get_DevNode_Status(&Status, &ProblemNumber, DevInst, 0);
-
-  for(int i=0;i<3;i++)
-  {
-    res = CM_Request_Device_Eject(DevInst, &VetoType, VetoName, MAX_PATH, 0);
-    bSuccess = (res==CR_SUCCESS && VetoType==PNP_VetoTypeUnknown);
-   if ( bSuccess )
-    break;
-  }
-
-  return bSuccess;
-}
-
-#ifdef HAS_GL
-void CWIN32Util::CheckGLVersion()
-{
-  if(CWIN32Util::HasGLDefaultDrivers())
-  {
-    MessageBox(NULL, "MS default OpenGL drivers detected. Please get OpenGL drivers from your video card vendor", "XBMC: Fatal Error", MB_OK|MB_ICONERROR);
-    exit(1);
-  }
-
-  if(!CWIN32Util::HasReqGLVersion())
-  {
-    if(MessageBox(NULL, "Your OpenGL version doesn't meet the XBMC requirements", "XBMC: Warning", MB_OKCANCEL|MB_ICONWARNING) == IDCANCEL)
-    {
-      exit(1);
-    }
-  }
-}
-
-bool CWIN32Util::HasGLDefaultDrivers()
-{
-  unsigned int a=0,b=0;
-
-  CStdString strVendor = g_Windowing.GetRenderVendor();
-  g_Windowing.GetRenderVersion(a, b);
-
-  if(strVendor.find("Microsoft")!=strVendor.npos && a==1 && b==1)
-    return true;
-  else
-    return false;
-}
-
-bool CWIN32Util::HasReqGLVersion()
-{
-  unsigned int a=0,b=0;
-
-  g_Windowing.GetRenderVersion(a, b);
-  if((a>=2) || (a == 1 && b >= 3))
-    return true;
-  else
-    return false;
-}
-#endif
-
-BOOL CWIN32Util::IsCurrentUserLocalAdministrator()
-{
-  BOOL b;
-  SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
-  PSID AdministratorsGroup;
-  b = AllocateAndInitializeSid(
-      &NtAuthority,
-      2,
-      SECURITY_BUILTIN_DOMAIN_RID,
-      DOMAIN_ALIAS_RID_ADMINS,
-      0, 0, 0, 0, 0, 0,
-      &AdministratorsGroup);
-  if(b)
-  {
-    if (!CheckTokenMembership( NULL, AdministratorsGroup, &b))
-    {
-         b = FALSE;
-    }
-    FreeSid(AdministratorsGroup);
-  }
-
-  return(b);
-}
-
-void CWIN32Util::GetDrivesByType(VECSOURCES &localDrives, Drive_Types eDriveType, bool bonlywithmedia)
-{
-  WCHAR* pcBuffer= NULL;
-  DWORD dwStrLength= GetLogicalDriveStringsW( 0, pcBuffer );
-  if( dwStrLength != 0 )
-  {
-    CMediaSource share;
-
-    dwStrLength+= 1;
-    pcBuffer= new WCHAR [dwStrLength];
-    GetLogicalDriveStringsW( dwStrLength, pcBuffer );
-
-    int iPos= 0;
-    WCHAR cVolumeName[100];
-    do{
-      int nResult = 0;
-      cVolumeName[0]= L'\0';
-
-      std::wstring strWdrive = pcBuffer + iPos;
-
-      UINT uDriveType= GetDriveTypeW( strWdrive.c_str()  );
-      // don't use GetVolumeInformation on fdd's as the floppy controller may be enabled in Bios but
-      // no floppy HW is attached which causes huge delays.
-      if(strWdrive.size() >= 2 && strWdrive.substr(0,2) != L"A:" && strWdrive.substr(0,2) != L"B:")
-        nResult= GetVolumeInformationW( strWdrive.c_str() , cVolumeName, 100, 0, 0, 0, NULL, 25);
-      if(nResult == 0 && bonlywithmedia)
-      {
-        iPos += (wcslen( pcBuffer + iPos) + 1 );
-        continue;
-      }
-
-      // usb hard drives are reported as DRIVE_FIXED and won't be returned by queries with REMOVABLE_DRIVES set
-      // so test for usb hard drives
-      /*if(uDriveType == DRIVE_FIXED)
-      {
-        if(IsUsbDevice(strWdrive))
-          uDriveType = DRIVE_REMOVABLE;
-      }*/
-
-      share.strPath= share.strName= "";
-
-      bool bUseDCD= false;
-      if( uDriveType > DRIVE_UNKNOWN &&
-        (( eDriveType == ALL_DRIVES && (uDriveType == DRIVE_FIXED || uDriveType == DRIVE_REMOTE || uDriveType == DRIVE_CDROM || uDriveType == DRIVE_REMOVABLE )) ||
-         ( eDriveType == LOCAL_DRIVES && (uDriveType == DRIVE_FIXED || uDriveType == DRIVE_REMOTE)) ||
-         ( eDriveType == REMOVABLE_DRIVES && ( uDriveType == DRIVE_REMOVABLE )) ||
-         ( eDriveType == DVD_DRIVES && ( uDriveType == DRIVE_CDROM ))))
-      {
-        //share.strPath = strWdrive;
-        g_charsetConverter.wToUTF8(strWdrive, share.strPath);
-        if( cVolumeName[0] != L'\0' )
-          g_charsetConverter.wToUTF8(cVolumeName, share.strName);
-        if( uDriveType == DRIVE_CDROM && nResult)
-        {
-          // Has to be the same as auto mounted devices
-          share.strStatus = share.strName;
-          share.strName = share.strPath;
-          share.m_iDriveType= CMediaSource::SOURCE_TYPE_LOCAL;
-          bUseDCD= true;
-        }
-        else
-        {
-          // Lets show it, like Windows explorer do... TODO: sorting should depend on driver letter
-          switch(uDriveType)
-          {
-          case DRIVE_CDROM:
-            share.strName = StringUtils::Format( "%s (%s)", share.strPath.c_str(), g_localizeStrings.Get(218).c_str());
-            break;
-          case DRIVE_REMOVABLE:
-            if(share.strName.empty())
-              share.strName = StringUtils::Format( "%s (%s)", g_localizeStrings.Get(437).c_str(), share.strPath.c_str());
-            break;
-          case DRIVE_UNKNOWN:
-            share.strName = StringUtils::Format( "%s (%s)", share.strPath.c_str(), g_localizeStrings.Get(13205).c_str());
-            break;
-          default:
-            if(share.strName.empty())
-              share.strName = share.strPath;
-            else
-              share.strName = StringUtils::Format( "%s (%s)", share.strPath.c_str(), share.strName.c_str());
-            break;
-          }
-        }
-        StringUtils::Replace(share.strName, ":\\", ":");
-        StringUtils::Replace(share.strPath, ":\\", ":");
-        share.m_ignore= true;
-        if( !bUseDCD )
-        {
-          share.m_iDriveType= (
-           ( uDriveType == DRIVE_FIXED  )    ? CMediaSource::SOURCE_TYPE_LOCAL :
-           ( uDriveType == DRIVE_REMOTE )    ? CMediaSource::SOURCE_TYPE_REMOTE :
-           ( uDriveType == DRIVE_CDROM  )    ? CMediaSource::SOURCE_TYPE_DVD :
-           ( uDriveType == DRIVE_REMOVABLE ) ? CMediaSource::SOURCE_TYPE_REMOVABLE :
-             CMediaSource::SOURCE_TYPE_UNKNOWN );
-        }
-
-        AddOrReplace(localDrives, share);
-      }
-      iPos += (wcslen( pcBuffer + iPos) + 1 );
-    } while( wcslen( pcBuffer + iPos ) > 0 );
-    delete[] pcBuffer;
-  }
-}
-
-std::string CWIN32Util::GetFirstOpticalDrive()
-{
-  VECSOURCES vShare;
-  std::string strdevice = "\\\\.\\";
-  CWIN32Util::GetDrivesByType(vShare, DVD_DRIVES);
-  if(!vShare.empty())
-    return strdevice.append(vShare.front().strPath);
-  else
-    return "";
-}
-
-extern "C"
-{
-  FILE *fopen_utf8(const char *_Filename, const char *_Mode)
-  {
-    CStdStringW wfilename, wmode;
-    g_charsetConverter.utf8ToW(_Filename, wfilename, false);
-    wmode = _Mode;
-    return _wfopen(wfilename.c_str(), wmode.c_str());
-  }
-}
-
-extern "C" {
-  /*
-   * Ported from NetBSD to Windows by Ron Koenderink, 2007
-   */
-
-  /*  $NetBSD: strptime.c,v 1.25 2005/11/29 03:12:00 christos Exp $  */
-
-  /*-
-   * Copyright (c) 1997, 1998, 2005 The NetBSD Foundation, Inc.
-   * All rights reserved.
-   *
-   * This code was contributed to The NetBSD Foundation by Klaus Klein.
-   * Heavily optimised by David Laight
-   *
-   * 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. All advertising materials mentioning features or use of this software
-   *    must display the following acknowledgement:
-   *        This product includes software developed by the NetBSD
-   *        Foundation, Inc. and its contributors.
-   * 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
-   */
-
-  #if !defined(TARGET_WINDOWS)
-  #include <sys/cdefs.h>
-  #endif
-
-  #if defined(LIBC_SCCS) && !defined(lint)
-  __RCSID("$NetBSD: strptime.c,v 1.25 2005/11/29 03:12:00 christos Exp $");
-  #endif
-
-  #if !defined(TARGET_WINDOWS)
-  #include "namespace.h"
-  #include <sys/localedef.h>
-  #else
-  typedef unsigned char u_char;
-  typedef unsigned int uint;
-  #endif
-  #include <ctype.h>
-  #include <locale.h>
-  #include <string.h>
-  #include <time.h>
-  #if !defined(TARGET_WINDOWS)
-  #include <tzfile.h>
-  #endif
-
-  #ifdef __weak_alias
-  __weak_alias(strptime,_strptime)
-  #endif
-
-  #if !defined(TARGET_WINDOWS)
-  #define  _ctloc(x)    (_CurrentTimeLocale->x)
-  #else
-  #define _ctloc(x)   (x)
-  const char *abday[] = {
-    "Sun", "Mon", "Tue", "Wed",
-    "Thu", "Fri", "Sat"
-  };
-  const char *day[] = {
-    "Sunday", "Monday", "Tuesday", "Wednesday",
-    "Thursday", "Friday", "Saturday"
-  };
-  const char *abmon[] =  {
-    "Jan", "Feb", "Mar", "Apr", "May", "Jun",
-    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
-  };
-  const char *mon[] = {
-    "January", "February", "March", "April", "May", "June",
-    "July", "August", "September", "October", "November", "December"
-  };
-  const char *am_pm[] = {
-    "AM", "PM"
-  };
-  char *d_t_fmt = "%a %Ef %T %Y";
-  char *t_fmt_ampm = "%I:%M:%S %p";
-  char *t_fmt = "%H:%M:%S";
-  char *d_fmt = "%m/%d/%y";
-  #define TM_YEAR_BASE 1900
-  #define __UNCONST(x) ((char *)(((const char *)(x) - (const char *)0) + (char *)0))
-
-  #endif
-  /*
-   * We do not implement alternate representations. However, we always
-   * check whether a given modifier is allowed for a certain conversion.
-   */
-  #define ALT_E      0x01
-  #define ALT_O      0x02
-  #define  LEGAL_ALT(x)    { if (alt_format & ~(x)) return NULL; }
-
-
-  static const u_char *conv_num(const unsigned char *, int *, uint, uint);
-  static const u_char *find_string(const u_char *, int *, const char * const *,
-    const char * const *, int);
-
-
-  char *
-  strptime(const char *buf, const char *fmt, struct tm *tm)
-  {
-    unsigned char c;
-    const unsigned char *bp;
-    int alt_format, i, split_year = 0;
-    const char *new_fmt;
-
-    bp = (const u_char *)buf;
-
-    while (bp != NULL && (c = *fmt++) != '\0') {
-      /* Clear `alternate' modifier prior to new conversion. */
-      alt_format = 0;
-      i = 0;
-
-      /* Eat up white-space. */
-      if (isspace(c)) {
-        while (isspace(*bp))
-          bp++;
-        continue;
-      }
-
-      if (c != '%')
-        goto literal;
-
-
-  again:    switch (c = *fmt++) {
-      case '%':  /* "%%" is converted to "%". */
-  literal:
-        if (c != *bp++)
-          return NULL;
-        LEGAL_ALT(0);
-        continue;
-
-      /*
-       * "Alternative" modifiers. Just set the appropriate flag
-       * and start over again.
-       */
-      case 'E':  /* "%E?" alternative conversion modifier. */
-        LEGAL_ALT(0);
-        alt_format |= ALT_E;
-        goto again;
-
-      case 'O':  /* "%O?" alternative conversion modifier. */
-        LEGAL_ALT(0);
-        alt_format |= ALT_O;
-        goto again;
-
-      /*
-       * "Complex" conversion rules, implemented through recursion.
-       */
-      case 'c':  /* Date and time, using the locale's format. */
-        new_fmt = _ctloc(d_t_fmt);
-        goto recurse;
-
-      case 'D':  /* The date as "%m/%d/%y". */
-        new_fmt = "%m/%d/%y";
-        LEGAL_ALT(0);
-        goto recurse;
-
-      case 'R':  /* The time as "%H:%M". */
-        new_fmt = "%H:%M";
-        LEGAL_ALT(0);
-        goto recurse;
-
-      case 'r':  /* The time in 12-hour clock representation. */
-        new_fmt =_ctloc(t_fmt_ampm);
-        LEGAL_ALT(0);
-        goto recurse;
-
-      case 'T':  /* The time as "%H:%M:%S". */
-        new_fmt = "%H:%M:%S";
-        LEGAL_ALT(0);
-        goto recurse;
-
-      case 'X':  /* The time, using the locale's format. */
-        new_fmt =_ctloc(t_fmt);
-        goto recurse;
-
-      case 'x':  /* The date, using the locale's format. */
-        new_fmt =_ctloc(d_fmt);
-          recurse:
-        bp = (const u_char *)strptime((const char *)bp,
-                    new_fmt, tm);
-        LEGAL_ALT(ALT_E);
-        continue;
-
-      /*
-       * "Elementary" conversion rules.
-       */
-      case 'A':  /* The day of week, using the locale's form. */
-      case 'a':
-        bp = find_string(bp, &tm->tm_wday, _ctloc(day),
-            _ctloc(abday), 7);
-        LEGAL_ALT(0);
-        continue;
-
-      case 'B':  /* The month, using the locale's form. */
-      case 'b':
-      case 'h':
-        bp = find_string(bp, &tm->tm_mon, _ctloc(mon),
-            _ctloc(abmon), 12);
-        LEGAL_ALT(0);
-        continue;
-
-      case 'C':  /* The century number. */
-        i = 20;
-        bp = conv_num(bp, &i, 0, 99);
-
-        i = i * 100 - TM_YEAR_BASE;
-        if (split_year)
-          i += tm->tm_year % 100;
-        split_year = 1;
-        tm->tm_year = i;
-        LEGAL_ALT(ALT_E);
-        continue;
-
-      case 'd':  /* The day of month. */
-      case 'e':
-        bp = conv_num(bp, &tm->tm_mday, 1, 31);
-        LEGAL_ALT(ALT_O);
-        continue;
-
-      case 'k':  /* The hour (24-hour clock representation). */
-        LEGAL_ALT(0);
-        /* FALLTHROUGH */
-      case 'H':
-        bp = conv_num(bp, &tm->tm_hour, 0, 23);
-        LEGAL_ALT(ALT_O);
-        continue;
-
-      case 'l':  /* The hour (12-hour clock representation). */
-        LEGAL_ALT(0);
-        /* FALLTHROUGH */
-      case 'I':
-        bp = conv_num(bp, &tm->tm_hour, 1, 12);
-        if (tm->tm_hour == 12)
-          tm->tm_hour = 0;
-        LEGAL_ALT(ALT_O);
-        continue;
-
-      case 'j':  /* The day of year. */
-        i = 1;
-        bp = conv_num(bp, &i, 1, 366);
-        tm->tm_yday = i - 1;
-        LEGAL_ALT(0);
-        continue;
-
-      case 'M':  /* The minute. */
-        bp = conv_num(bp, &tm->tm_min, 0, 59);
-        LEGAL_ALT(ALT_O);
-        continue;
-
-      case 'm':  /* The month. */
-        i = 1;
-        bp = conv_num(bp, &i, 1, 12);
-        tm->tm_mon = i - 1;
-        LEGAL_ALT(ALT_O);
-        continue;
-
-      case 'p':  /* The locale's equivalent of AM/PM. */
-        bp = find_string(bp, &i, _ctloc(am_pm), NULL, 2);
-        if (tm->tm_hour > 11)
-          return NULL;
-        tm->tm_hour += i * 12;
-        LEGAL_ALT(0);
-        continue;
-
-      case 'S':  /* The seconds. */
-        bp = conv_num(bp, &tm->tm_sec, 0, 61);
-        LEGAL_ALT(ALT_O);
-        continue;
-
-      case 'U':  /* The week of year, beginning on sunday. */
-      case 'W':  /* The week of year, beginning on monday. */
-        /*
-         * XXX This is bogus, as we can not assume any valid
-         * information present in the tm structure at this
-         * point to calculate a real value, so just check the
-         * range for now.
-         */
-         bp = conv_num(bp, &i, 0, 53);
-         LEGAL_ALT(ALT_O);
-         continue;
-
-      case 'w':  /* The day of week, beginning on sunday. */
-        bp = conv_num(bp, &tm->tm_wday, 0, 6);
-        LEGAL_ALT(ALT_O);
-        continue;
-
-      case 'Y':  /* The year. */
-        i = TM_YEAR_BASE;  /* just for data sanity... */
-        bp = conv_num(bp, &i, 0, 9999);
-        tm->tm_year = i - TM_YEAR_BASE;
-        LEGAL_ALT(ALT_E);
-        continue;
-
-      case 'y':  /* The year within 100 years of the epoch. */
-        /* LEGAL_ALT(ALT_E | ALT_O); */
-        bp = conv_num(bp, &i, 0, 99);
-
-        if (split_year)
-          /* preserve century */
-          i += (tm->tm_year / 100) * 100;
-        else {
-          split_year = 1;
-          if (i <= 68)
-            i = i + 2000 - TM_YEAR_BASE;
-          else
-            i = i + 1900 - TM_YEAR_BASE;
-        }
-        tm->tm_year = i;
-        continue;
-
-      /*
-       * Miscellaneous conversions.
-       */
-      case 'n':  /* Any kind of white-space. */
-      case 't':
-        while (isspace(*bp))
-          bp++;
-        LEGAL_ALT(0);
-        continue;
-
-
-      default:  /* Unknown/unsupported conversion. */
-        return NULL;
-      }
-    }
-
-    return __UNCONST(bp);
-  }
-
-
-  static const u_char *
-  conv_num(const unsigned char *buf, int *dest, uint llim, uint ulim)
-  {
-    uint result = 0;
-    unsigned char ch;
-
-    /* The limit also determines the number of valid digits. */
-    uint rulim = ulim;
-
-    ch = *buf;
-    if (ch < '0' || ch > '9')
-      return NULL;
-
-    do {
-      result *= 10;
-      result += ch - '0';
-      rulim /= 10;
-      ch = *++buf;
-    } while ((result * 10 <= ulim) && rulim && ch >= '0' && ch <= '9');
-
-    if (result < llim || result > ulim)
-      return NULL;
-
-    *dest = result;
-    return buf;
-  }
-
-  static const u_char *
-  find_string(const u_char *bp, int *tgt, const char * const *n1,
-      const char * const *n2, int c)
-  {
-    int i;
-    unsigned int len;
-
-    /* check full name - then abbreviated ones */
-    for (; n1 != NULL; n1 = n2, n2 = NULL) {
-      for (i = 0; i < c; i++, n1++) {
-        len = strlen(*n1);
-        if (strnicmp(*n1, (const char *)bp, len) == 0) {
-          *tgt = i;
-          return bp + len;
-        }
-      }
-    }
-
-    /* Nothing matched */
-    return NULL;
-  }
-}
-
-
-LONG CWIN32Util::UtilRegGetValue( const HKEY hKey, const char *const pcKey, DWORD *const pdwType, char **const ppcBuffer, DWORD *const pdwSizeBuff, const DWORD dwSizeAdd )
-{
-  DWORD dwSize;
-  LONG lRet= RegQueryValueEx(hKey, pcKey, NULL, pdwType, NULL, &dwSize );
-  if (lRet == ERROR_SUCCESS)
-  {
-    if (ppcBuffer)
-    {
-      char *pcValue=*ppcBuffer;
-      if (!pcValue || !pdwSizeBuff || dwSize +dwSizeAdd > *pdwSizeBuff) pcValue= (char*)realloc(pcValue, dwSize +dwSizeAdd);
-      lRet= RegQueryValueEx(hKey,pcKey,NULL,NULL,(LPBYTE)pcValue,&dwSize);
-
-      if ( lRet == ERROR_SUCCESS || *ppcBuffer ) *ppcBuffer= pcValue;
-      else free( pcValue );
-    }
-    if (pdwSizeBuff) *pdwSizeBuff= dwSize +dwSizeAdd;
-  }
-  return lRet;
-}
-
-bool CWIN32Util::UtilRegOpenKeyEx( const HKEY hKeyParent, const char *const pcKey, const REGSAM rsAccessRights, HKEY *hKey, const bool bReadX64 )
-{
-  const REGSAM rsAccessRightsTmp= ( CSysInfo::GetKernelBitness() == 64 ? rsAccessRights | ( bReadX64 ? KEY_WOW64_64KEY : KEY_WOW64_32KEY ) : rsAccessRights );
-  bool bRet= ( ERROR_SUCCESS == RegOpenKeyEx(hKeyParent, pcKey, 0, rsAccessRightsTmp, hKey));
-  return bRet;
-}
-
-// Retrieve the filename of the process that currently has the focus.
-// Typically this will be some process using the system tray grabbing
-// the focus and causing XBMC to minimise. Logging the offending
-// process name can help the user fix the problem.
-bool CWIN32Util::GetFocussedProcess(std::string &strProcessFile)
-{
-  strProcessFile = "";
-
-  // Get the window that has the focus
-  HWND hfocus = GetForegroundWindow();
-  if (!hfocus)
-    return false;
-
-  // Get the process ID from the window handle
-  DWORD pid = 0;
-  GetWindowThreadProcessId(hfocus, &pid);
-
-  // Use OpenProcess to get the process handle from the process ID
-  HANDLE hproc = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0, pid);
-  if (!hproc)
-    return false;
-
-  // Load QueryFullProcessImageName dynamically because it isn't available
-  // in all versions of Windows.
-  char procfile[MAX_PATH+1];
-  DWORD procfilelen = MAX_PATH;
-
-  HINSTANCE hkernel32 = LoadLibrary("kernel32.dll");
-  if (hkernel32)
-  {
-    DWORD (WINAPI *pQueryFullProcessImageNameA)(HANDLE,DWORD,LPTSTR,PDWORD);
-    pQueryFullProcessImageNameA = (DWORD (WINAPI *)(HANDLE,DWORD,LPTSTR,PDWORD)) GetProcAddress(hkernel32, "QueryFullProcessImageNameA");
-    if (pQueryFullProcessImageNameA)
-      if (pQueryFullProcessImageNameA(hproc, 0, procfile, &procfilelen))
-        strProcessFile = procfile;
-    FreeLibrary(hkernel32);
-  }
-
-  // If QueryFullProcessImageName failed fall back to GetModuleFileNameEx.
-  // Note this does not work across x86-x64 boundaries.
-  if (strProcessFile == "")
-  {
-    HINSTANCE hpsapi = LoadLibrary("psapi.dll");
-    if (hpsapi)
-    {
-      DWORD (WINAPI *pGetModuleFileNameExA)(HANDLE,HMODULE,LPTSTR,DWORD);
-      pGetModuleFileNameExA = (DWORD (WINAPI*)(HANDLE,HMODULE,LPTSTR,DWORD)) GetProcAddress(hpsapi, "GetModuleFileNameExA");
-      if (pGetModuleFileNameExA)
-        if (pGetModuleFileNameExA(hproc, NULL, procfile, MAX_PATH))
-          strProcessFile = procfile;
-      FreeLibrary(hpsapi);
-    }
-  }
-
-  CloseHandle(hproc);
-
-  return true;
-}
-
-// Adjust the src rectangle so that the dst is always contained in the target rectangle.
-void CWIN32Util::CropSource(CRect& src, CRect& dst, CRect target)
-{
-  if(dst.x1 < target.x1)
-  {
-    src.x1 -= (dst.x1 - target.x1)
-            * (src.x2 - src.x1)
-            / (dst.x2 - dst.x1);
-    dst.x1  = target.x1;
-  }
-  if(dst.y1 < target.y1)
-  {
-    src.y1 -= (dst.y1 - target.y1)
-            * (src.y2 - src.y1)
-            / (dst.y2 - dst.y1);
-    dst.y1  = target.y1;
-  }
-  if(dst.x2 > target.x2)
-  {
-    src.x2 -= (dst.x2 - target.x2)
-            * (src.x2 - src.x1)
-            / (dst.x2 - dst.x1);
-    dst.x2  = target.x2;
-  }
-  if(dst.y2 > target.y2)
-  {
-    src.y2 -= (dst.y2 - target.y2)
-            * (src.y2 - src.y1)
-            / (dst.y2 - dst.y1);
-    dst.y2  = target.y2;
-  }
-  // Callers expect integer coordinates.
-  src.x1 = floor(src.x1);
-  src.y1 = floor(src.y1);
-  src.x2 = ceil(src.x2);
-  src.y2 = ceil(src.y2);
-  dst.x1 = floor(dst.x1);
-  dst.y1 = floor(dst.y1);
-  dst.x2 = ceil(dst.x2);
-  dst.y2 = ceil(dst.y2);
-}
-
-void CWinIdleTimer::StartZero()
-{
-  SetThreadExecutionState(ES_SYSTEM_REQUIRED|ES_DISPLAY_REQUIRED);
-  CStopWatch::StartZero();
-}
-
-extern "C"
-{
-  /* case-independent string matching, similar to strstr but
-  * matching */
-  char * strcasestr(const char* haystack, const char* needle)
-  {
-    int i;
-    int nlength = (int) strlen (needle);
-    int hlength = (int) strlen (haystack);
-
-    if (nlength > hlength) return NULL;
-    if (hlength <= 0) return NULL;
-    if (nlength <= 0) return (char *)haystack;
-    /* hlength and nlength > 0, nlength <= hlength */
-    for (i = 0; i <= (hlength - nlength); i++)
-    {
-      if (strncasecmp (haystack + i, needle, nlength) == 0)
-      {
-        return (char *)haystack + i;
-      }
-    }
-    /* substring not found */
-    return NULL;
-  }
-}
-
-// detect if a drive is a usb device
-// code taken from http://banderlogi.blogspot.com/2011/06/enum-drive-letters-attached-for-usb.html
-
-bool CWIN32Util::IsUsbDevice(const std::wstring &strWdrive)
-{
-  if (strWdrive.size() < 2)
-    return false;
-
-  std::wstring strWDevicePath = StringUtils::Format(L"\\\\.\\%s",strWdrive.substr(0, 2).c_str());
-
-  HANDLE deviceHandle = CreateFileW(
-    strWDevicePath.c_str(),
-   0,                // no access to the drive
-   FILE_SHARE_READ | // share mode
-   FILE_SHARE_WRITE,
-   NULL,             // default security attributes
-   OPEN_EXISTING,    // disposition
-   0,                // file attributes
-   NULL);            // do not copy file attributes
-
-  if(deviceHandle == INVALID_HANDLE_VALUE)
-    return false;
-
-  // setup query
-  STORAGE_PROPERTY_QUERY query;
-  memset(&query, 0, sizeof(query));
-  query.PropertyId = StorageDeviceProperty;
-  query.QueryType = PropertyStandardQuery;
-
-  // issue query
-  DWORD bytes;
-  STORAGE_DEVICE_DESCRIPTOR devd;
-  STORAGE_BUS_TYPE busType = BusTypeUnknown;
-
-  if (DeviceIoControl(deviceHandle,
-   IOCTL_STORAGE_QUERY_PROPERTY,
-   &query, sizeof(query),
-   &devd, sizeof(devd),
-   &bytes, NULL))
-  {
-   busType = devd.BusType;
-  }
-
-  CloseHandle(deviceHandle);
-
-  return BusTypeUsb == busType;
- }
-
-std::string CWIN32Util::WUSysMsg(DWORD dwError)
-{
-  #define SS_DEFLANGID MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT)
-  CHAR szBuf[512];
-
-  if ( 0 != ::FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwError,
-                             SS_DEFLANGID, szBuf, 511, NULL) )
-    return StringUtils::Format("%s (0x%X)", szBuf, dwError);
-  else
-    return StringUtils::Format("Unknown error (0x%X)", dwError);
-}
diff --git a/xbmc/win32/WIN32Util.h b/xbmc/win32/WIN32Util.h
deleted file mode 100644
index 572823b..0000000
--- a/xbmc/win32/WIN32Util.h
+++ /dev/null
@@ -1,106 +0,0 @@
-#pragma once
-
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "URL.h"
-#include "Cfgmgr32.h"
-#include "MediaSource.h"
-#include "guilib/Geometry.h"
-#include "powermanagement/PowerManager.h"
-#include "utils/Stopwatch.h"
-
-enum Drive_Types
-{
-  ALL_DRIVES = 0,
-  LOCAL_DRIVES,
-  REMOVABLE_DRIVES,
-  DVD_DRIVES
-};
-
-#define BONJOUR_EVENT             ( WM_USER + 0x100 )	// Message sent to the Window when a Bonjour event occurs.
-#define BONJOUR_BROWSER_EVENT     ( WM_USER + 0x110 )
-
-class CURL; // forward declaration
-
-class CWIN32Util
-{
-public:
-  CWIN32Util(void);
-  virtual ~CWIN32Util(void);
-
-  static char FirstDriveFromMask (ULONG unitmask);
-  static int GetDriveStatus(const std::string &strPath, bool bStatusEx=false);
-  static bool PowerManagement(PowerState State);
-  static int BatteryLevel();
-  static bool XBMCShellExecute(const std::string &strPath, bool bWaitForScriptExit=false);
-  static std::vector<std::string> GetDiskUsage();
-  static std::string GetResInfoString();
-  static int GetDesktopColorDepth();
-  static std::string GetSpecialFolder(int csidl);
-  static std::string GetSystemPath();
-  static std::string GetProfilePath();
-  static std::string UncToSmb(const std::string &strPath);
-  static std::string SmbToUnc(const std::string &strPath);
-  static bool AddExtraLongPathPrefix(std::wstring& path);
-  static bool RemoveExtraLongPathPrefix(std::wstring& path);
-  static std::wstring ConvertPathToWin32Form(const std::string& pathUtf8);
-  static std::wstring ConvertPathToWin32Form(const CURL& url);
-  static inline __time64_t fileTimeToTimeT(const __int64 ftimei64)
-  {
-    // FILETIME is 100-nanoseconds from 00:00:00 UTC 01 Jan 1601
-    // __time64_t is seconds from 00:00:00 UTC 01 Jan 1970
-    return (ftimei64 - 116444736000000000) / 10000000;
-  }
-  static __time64_t fileTimeToTimeT(const FILETIME& ftimeft);
-  static __time64_t fileTimeToTimeT(const LARGE_INTEGER& ftimeli);
-  static void ExtendDllPath();
-  static HRESULT ToggleTray(const char cDriveLetter='\0');
-  static HRESULT EjectTray(const char cDriveLetter='\0');
-  static HRESULT CloseTray(const char cDriveLetter='\0');
-  static bool EjectDrive(const char cDriveLetter='\0');
-#ifdef HAS_GL
-  static void CheckGLVersion();
-  static bool HasGLDefaultDrivers();
-  static bool HasReqGLVersion();
-#endif
-  static BOOL IsCurrentUserLocalAdministrator();
-  static void GetDrivesByType(VECSOURCES &localDrives, Drive_Types eDriveType=ALL_DRIVES, bool bonlywithmedia=false);
-  static std::string GetFirstOpticalDrive();
-
-  static LONG UtilRegGetValue( const HKEY hKey, const char *const pcKey, DWORD *const pdwType, char **const ppcBuffer, DWORD *const pdwSizeBuff, const DWORD dwSizeAdd );
-  static bool UtilRegOpenKeyEx( const HKEY hKeyParent, const char *const pcKey, const REGSAM rsAccessRights, HKEY *hKey, const bool bReadX64= false );
-
-  static bool GetFocussedProcess(std::string &strProcessFile);
-  static void CropSource(CRect& src, CRect& dst, CRect target);
-
-  static bool IsUsbDevice(const std::wstring &strWdrive);
-
-  static std::string WUSysMsg(DWORD dwError);
-private:
-  static DEVINST GetDrivesDevInstByDiskNumber(long DiskNumber);
-};
-
-
-class CWinIdleTimer : public CStopWatch
-{
-public:
-  void StartZero();
-};
diff --git a/xbmc/win32/WMIInterface.cpp b/xbmc/win32/WMIInterface.cpp
deleted file mode 100644
index 38072bf..0000000
--- a/xbmc/win32/WMIInterface.cpp
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "stdafx.h"
-#include "WMIInterface.h"
-#include "../Util.h"
-
-using namespace std;
-
-
-
-CWIN32Wmi::CWIN32Wmi(void)
-{
-  bconnected = false;
-  pclsObj = NULL;
-  Connect();
-}
-
-CWIN32Wmi::~CWIN32Wmi(void)
-{
-  Release();
-}
-
-bool CWIN32Wmi::Connect()
-{
-  // Initialize COM. ------------------------------------------
-
-  hres =  CoInitializeEx(0, COINIT_MULTITHREADED);
-  if (FAILED(hres))
-  {
-      return false;                  // Program has failed.
-  }
-
-	hres =  CoInitializeSecurity(
-        NULL,
-        -1,                          // COM authentication
-        NULL,                        // Authentication services
-        NULL,                        // Reserved
-        RPC_C_AUTHN_LEVEL_DEFAULT,   // Default authentication
-        RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation
-        NULL,                        // Authentication info
-        EOAC_NONE,                   // Additional capabilities
-        NULL                         // Reserved
-        );
-
-	if (FAILED(hres))
-  {
-      return false;                    // Program has failed.
-  }
-
-	pLoc = NULL;
-
-  hres = CoCreateInstance(
-      CLSID_WbemLocator,
-      0,
-      CLSCTX_INPROC_SERVER,
-      IID_IWbemLocator, (LPVOID *) &pLoc);
-
-  if (FAILED(hres))
-  {
-      return false;                 // Program has failed.
-  }
-
-	pSvc = NULL;
-
-  // Connect to the root\cimv2 namespace with
-  // the current user and obtain pointer pSvc
-  // to make IWbemServices calls.
-  hres = pLoc->ConnectServer(
-       _bstr_t(L"ROOT\\CIMV2"), // Object path of WMI namespace
-       NULL,                    // User name. NULL = current user
-       NULL,                    // User password. NULL = current
-       0,                       // Locale. NULL indicates current
-       NULL,                    // Security flags.
-       0,                       // Authority (e.g. Kerberos)
-       0,                       // Context object
-       &pSvc                    // pointer to IWbemServices proxy
-       );
-
-  if (FAILED(hres))
-  {
-      pLoc->Release();
-      CoUninitialize();
-      return false;                // Program has failed.
-  }
-
-	hres = CoSetProxyBlanket(
-       pSvc,                        // Indicates the proxy to set
-       RPC_C_AUTHN_WINNT,           // RPC_C_AUTHN_xxx
-       RPC_C_AUTHZ_NONE,            // RPC_C_AUTHZ_xxx
-       NULL,                        // Server principal name
-       RPC_C_AUTHN_LEVEL_CALL,      // RPC_C_AUTHN_LEVEL_xxx
-       RPC_C_IMP_LEVEL_IMPERSONATE, // RPC_C_IMP_LEVEL_xxx
-       NULL,                        // client identity
-       EOAC_NONE                    // proxy capabilities
-    );
-
-    if (FAILED(hres))
-    {
-        pSvc->Release();
-        pLoc->Release();
-        CoUninitialize();
-        return false;               // Program has failed.
-    }
-
-		pEnumerator = NULL;
-
-    bconnected = true;
-    return true;
-}
-
-void CWIN32Wmi::Release()
-{
-  if(pSvc != NULL)
-    pSvc->Release();
-  if(pLoc != NULL)
-    pLoc->Release();
-  if(pEnumerator != NULL)
-    pEnumerator->Release();
-  if(pclsObj != NULL)
-    pclsObj->Release();
-
-  CoUninitialize();
-
-  bconnected = false;
-  pSvc = NULL;
-  pLoc = NULL;
-  pEnumerator = NULL;
-  pclsObj = NULL;
-}
-
-void CWIN32Wmi::testquery()
-{
-  hres = pSvc->ExecQuery(
-      bstr_t("WQL"),
-      //bstr_t("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE"),
-      //bstr_t("SELECT * FROM Win32_NetworkAdapter WHERE PhysicalAdapter=TRUE"),
-      bstr_t("SELECT * FROM Win32_NetworkAdapter WHERE Description='Atheros AR5008X Wireless Network Adapter'"),
-      WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
-      NULL,
-      &pEnumerator);
-
-  if (FAILED(hres))
-  {
-      return;               // Program has failed.
-  }
-  ULONG uReturn = 0;
-
-  while (pEnumerator)
-  {
-      HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
-          &pclsObj, &uReturn);
-
-      if(0 == uReturn)
-      {
-          break;
-      }
-
-      VARIANT vtProp;
-      VariantInit(&vtProp);
-
-      // Get the value of the Name property
-      //hr = pclsObj->Get(L"Description", 0, &vtProp, 0, 0);
-
-      vtProp.bstrVal = bstr_t("192.168.1.209");
-      hr = pclsObj->Put(L"IPAddress",0,&vtProp,0);
-      VariantClear(&vtProp);
-			//iCpu++;
-  }
-	pclsObj->Release();
-  pclsObj = NULL;
-}
-
-std::vector<CStdString> CWIN32Wmi::GetWMIStrVector(CStdString& strQuery, CStdStringW& strProperty)
-{
-  std::vector<CStdString> strResult;
-  pEnumerator = NULL;
-  pclsObj = NULL;
-
-  if(!bconnected)
-    return strResult;
-
-  hres = pSvc->ExecQuery(
-      bstr_t("WQL"),
-      bstr_t(strQuery.c_str()),
-      WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
-      NULL,
-      &pEnumerator);
-
-  if (FAILED(hres))
-  {
-      return strResult;               // Program has failed.
-  }
-  ULONG uReturn = 0;
-
-  while (pEnumerator)
-  {
-      HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
-          &pclsObj, &uReturn);
-
-      if(0 == uReturn)
-      {
-          break;
-      }
-
-      VARIANT vtProp;
-      VariantInit(&vtProp);
-
-      hr = pclsObj->Get(strProperty.c_str(), 0, &vtProp, 0, 0);
-      strResult.push_back(vtProp.bstrVal);
-      VariantClear(&vtProp);
-  }
-  if(pEnumerator != NULL)
-    pEnumerator->Release();
-  pEnumerator = NULL;
-  if(pclsObj != NULL)
-	  pclsObj->Release();
-  pclsObj = NULL;
-  return strResult;
-}
-
-CStdString CWIN32Wmi::GetWMIString(CStdString& strQuery, CStdStringW& strProperty)
-{
-  return GetWMIStrVector(strQuery, strProperty)[0];
-}
diff --git a/xbmc/win32/WMIInterface.h b/xbmc/win32/WMIInterface.h
deleted file mode 100644
index c62c4d4..0000000
--- a/xbmc/win32/WMIInterface.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#pragma once
-
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#include <Wbemidl.h>
-#pragma comment(lib, "wbemuuid.lib")
-#pragma comment(lib, "comsuppw.lib")
-
-
-class CWIN32Wmi
-{
-public:
-  CWIN32Wmi(void);
-  virtual ~CWIN32Wmi(void);
-
-  bool Connect();
-  void Release();
-  void testquery();
-
-  std::vector<CStdString> GetWMIStrVector(CStdString& strQuery, CStdStringW& strProperty);
-  CStdString GetWMIString(CStdString& strQuery, CStdStringW& strProperty);
-
-
-
-private:
-
-  HRESULT hres;
-	IWbemLocator *pLoc;
-	IWbemServices *pSvc;
-	IEnumWbemClassObject	*pEnumerator;
-  IWbemClassObject *pclsObj;
-
-  bool bconnected;
-
-
-};
diff --git a/xbmc/win32/Win32DelayedDllLoad.cpp b/xbmc/win32/Win32DelayedDllLoad.cpp
deleted file mode 100644
index be3130f..0000000
--- a/xbmc/win32/Win32DelayedDllLoad.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#include <DelayImp.h>
-#include "DllPaths_win32.h"
-#include "filesystem/SpecialProtocol.h"
-#include "Application.h"
-#include "windowing/WindowingFactory.h"
-#include "utils/StringUtils.h"
-
-FARPROC WINAPI delayHookNotifyFunc (unsigned dliNotify, PDelayLoadInfo pdli)
-{
-  switch (dliNotify)
-  {
-    case dliNotePreLoadLibrary:
-      if (stricmp(pdli->szDll, "libmicrohttpd-5.dll") == 0)
-      {
-        std::string strDll = CSpecialProtocol::TranslatePath(DLL_PATH_LIBMICROHTTP);
-        HMODULE hMod = LoadLibraryEx(strDll.c_str(), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
-        return (FARPROC)hMod;
-      }
-      if (stricmp(pdli->szDll, "ssh.dll") == 0)
-      {
-        std::string strDll = CSpecialProtocol::TranslatePath("special://xbmcbin/system/ssh.dll");
-        HMODULE hMod = LoadLibraryEx(strDll.c_str(), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
-        return (FARPROC)hMod;
-      }
-      if (stricmp(pdli->szDll, "sqlite3.dll") == 0)
-      {
-        std::string strDll = CSpecialProtocol::TranslatePath("special://xbmcbin/system/sqlite3.dll");
-        HMODULE hMod = LoadLibraryEx(strDll.c_str(), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
-        return (FARPROC)hMod;
-      }
-      if (stricmp(pdli->szDll, "dnssd.dll") == 0)
-      {
-        std::string strDll = CSpecialProtocol::TranslatePath("special://xbmcbin/system/dnssd.dll");
-        HMODULE hMod = LoadLibraryEx(strDll.c_str(), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
-        return (FARPROC)hMod;
-      }
-      if (stricmp(pdli->szDll, "libxslt.dll") == 0)
-      {
-        CStdString strDll = CSpecialProtocol::TranslatePath("special://xbmcbin/system/libxslt.dll");
-        HMODULE hMod = LoadLibraryEx(strDll.c_str(), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
-        return (FARPROC)hMod;
-      }
-      if (stricmp(pdli->szDll, "avcodec-56.dll") == 0)
-      {
-        CStdString strDll = CSpecialProtocol::TranslatePath("special://xbmcbin/system/players/dvdplayer/avcodec-56.dll");
-        HMODULE hMod = LoadLibraryEx(strDll.c_str(), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
-        return (FARPROC)hMod;
-      }
-      if (stricmp(pdli->szDll, "avfilter-5.dll") == 0)
-      {
-        CStdString strDll = CSpecialProtocol::TranslatePath("special://xbmcbin/system/players/dvdplayer/avfilter-5.dll");
-        HMODULE hMod = LoadLibraryEx(strDll.c_str(), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
-        return (FARPROC)hMod;
-      }
-      if (stricmp(pdli->szDll, "avformat-56.dll") == 0)
-      {
-        CStdString strDll = CSpecialProtocol::TranslatePath("special://xbmcbin/system/players/dvdplayer/avformat-56.dll");
-        HMODULE hMod = LoadLibraryEx(strDll.c_str(), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
-        return (FARPROC)hMod;
-      }
-      if (stricmp(pdli->szDll, "avutil-54.dll") == 0)
-      {
-        CStdString strDll = CSpecialProtocol::TranslatePath("special://xbmcbin/system/players/dvdplayer/avutil-54.dll");
-        HMODULE hMod = LoadLibraryEx(strDll.c_str(), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
-        return (FARPROC)hMod;
-      }
-      if (stricmp(pdli->szDll, "postproc-53.dll") == 0)
-      {
-        CStdString strDll = CSpecialProtocol::TranslatePath("special://xbmcbin/system/players/dvdplayer/postproc-53.dll");
-        HMODULE hMod = LoadLibraryEx(strDll.c_str(), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
-        return (FARPROC)hMod;
-      }
-      if (stricmp(pdli->szDll, "swresample-1.dll") == 0)
-      {
-        CStdString strDll = CSpecialProtocol::TranslatePath("special://xbmcbin/system/players/dvdplayer/swresample-1.dll");
-        HMODULE hMod = LoadLibraryEx(strDll.c_str(), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
-        return (FARPROC)hMod;
-      }
-      if (stricmp(pdli->szDll, "swscale-3.dll") == 0)
-      {
-        CStdString strDll = CSpecialProtocol::TranslatePath("special://xbmcbin/system/players/dvdplayer/swscale-3.dll");
-        HMODULE hMod = LoadLibraryEx(strDll.c_str(), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
-        return (FARPROC)hMod;
-      }
-      break;
-  }
-  return NULL;
-}
-
-FARPROC WINAPI delayHookFailureFunc (unsigned dliNotify, PDelayLoadInfo pdli)
-{
-  switch (dliNotify)
-  {
-    case dliFailLoadLib:
-      g_application.Stop(1);
-      std::string strError = StringUtils::Format("Uh oh, can't load %s, exiting.", pdli->szDll);
-      MessageBox(NULL, strError.c_str(), "XBMC: Fatal Error", MB_OK|MB_ICONERROR);
-      exit(1);
-      break;
-  }
-  return NULL;
-}
-
-// assign hook functions
-PfnDliHook __pfnDliNotifyHook2 = delayHookNotifyFunc;
-PfnDliHook __pfnDliFailureHook2 = delayHookFailureFunc;
\ No newline at end of file
diff --git a/xbmc/win32/WindowHelper.cpp b/xbmc/win32/WindowHelper.cpp
deleted file mode 100644
index 1a39680..0000000
--- a/xbmc/win32/WindowHelper.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "WindowHelper.h"
-#include "../Util.h"
-
-extern HWND g_hWnd;
-
-using namespace std;
-
-CWHelper g_windowHelper;
-
-CWHelper::CWHelper(void) : CThread("WindowHelper")
-{
-  m_hwnd = NULL;
-  m_hProcess = NULL;
-}
-
-CWHelper::~CWHelper(void)
-{
-  StopThread();
-  m_hwnd = NULL;
-  if(m_hProcess != NULL)
-  {
-    CloseHandle(m_hProcess);
-    m_hProcess = NULL;
-  }
-}
-
-void CWHelper::OnStartup()
-{
-  if((m_hwnd == NULL) && (m_hProcess == NULL))
-    return;
-
-  // Minimize XBMC if not already
-  ShowWindow(g_hWnd,SW_MINIMIZE);
-  if(m_hwnd != NULL)
-    ShowWindow(m_hwnd,SW_RESTORE);
-
-  OutputDebugString("WindowHelper thread started\n");
-}
-
-void CWHelper::OnExit()
-{
-  // Bring back XBMC window
-  ShowWindow(g_hWnd,SW_RESTORE);
-  SetForegroundWindow(g_hWnd);
-  m_hwnd = NULL;
-  if(m_hProcess != NULL)
-  {
-    CloseHandle(m_hProcess);
-    m_hProcess = NULL;
-  }
-  LockSetForegroundWindow(LSFW_LOCK);
-  OutputDebugString("WindowHelper thread ended\n");
-}
-
-void CWHelper::Process()
-{
-  while (( !m_bStop ))
-  {
-    if(WaitForSingleObject(m_hProcess,500) != WAIT_TIMEOUT)
-      break;
-    /*if((m_hwnd != NULL) && (IsIconic(m_hwnd) == TRUE))
-      break;*/
-  }
-}
-
-void CWHelper::SetHWND(HWND hwnd)
-{
-  m_hwnd = hwnd;
-}
-
-void CWHelper::SetHANDLE(HANDLE hProcess)
-{
-  m_hProcess = hProcess;
-}
-
diff --git a/xbmc/win32/WindowHelper.h b/xbmc/win32/WindowHelper.h
deleted file mode 100644
index 6faafaf..0000000
--- a/xbmc/win32/WindowHelper.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#pragma once
-
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "threads/Thread.h"
-
-class CWHelper: public CThread
-{
-public:
-  CWHelper(void);
-  virtual ~CWHelper(void);
-
-  virtual void OnStartup();
-  virtual void OnExit();
-  virtual void Process();
-
-  void SetHWND(HWND hwnd);
-  void SetHANDLE(HANDLE hProcess);
-
-private:
-  HWND  m_hwnd;
-  HANDLE m_hProcess;
-
-};
-
-extern CWHelper g_windowHelper;
diff --git a/xbmc/win32/XBMC_PC.cpp b/xbmc/win32/XBMC_PC.cpp
deleted file mode 100644
index 41b1cca..0000000
--- a/xbmc/win32/XBMC_PC.cpp
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "AppParamParser.h"
-#include "settings/AdvancedSettings.h"
-#include "utils/CharsetConverter.h"
-#include "utils/log.h"
-#include "utils/SystemInfo.h"
-#include "threads/platform/win/Win32Exception.h"
-#include "shellapi.h"
-#include "dbghelp.h"
-#include "XBDateTime.h"
-#include "threads/Thread.h"
-#include "Application.h"
-#include "XbmcContext.h"
-#include "GUIInfoManager.h"
-#include "utils/StringUtils.h"
-#include "utils/CPUInfo.h"
-#include <mmdeviceapi.h>
-#include "win32/IMMNotificationClient.h"
-
-#ifndef _DEBUG
-#define XBMC_TRACK_EXCEPTIONS
-#endif
-
-// Minidump creation function
-LONG WINAPI CreateMiniDump( EXCEPTION_POINTERS* pEp )
-{
-  win32_exception::write_stacktrace(pEp);
-  win32_exception::write_minidump(pEp);
-  return pEp->ExceptionRecord->ExceptionCode;;
-}
-
-//-----------------------------------------------------------------------------
-// Name: WinMain()
-// Desc: The application's entry point
-//-----------------------------------------------------------------------------
-INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR commandLine, INT )
-{
-  // set up some xbmc specific relationships
-  XBMC::Context context;
-
-  //this can't be set from CAdvancedSettings::Initialize() because it will overwrite
-  //the loglevel set with the --debug flag
-#ifdef _DEBUG
-  g_advancedSettings.m_logLevel     = LOG_LEVEL_DEBUG;
-  g_advancedSettings.m_logLevelHint = LOG_LEVEL_DEBUG;
-#else
-  g_advancedSettings.m_logLevel     = LOG_LEVEL_NORMAL;
-  g_advancedSettings.m_logLevelHint = LOG_LEVEL_NORMAL;
-#endif
-  CLog::SetLogLevel(g_advancedSettings.m_logLevel);
-
-  // Initializes CreateMiniDump to handle exceptions.
-  win32_exception::set_version(g_infoManager.GetVersion());
-  SetUnhandledExceptionFilter( CreateMiniDump );
-
-  // check if Kodi is already running
-  std::string appName = CSysInfo::GetAppName();
-  CreateMutex(NULL, FALSE, (appName + " Media Center").c_str());
-  if(GetLastError() == ERROR_ALREADY_EXISTS)
-  {
-    HWND m_hwnd = FindWindow(appName.c_str(), appName.c_str());
-    if(m_hwnd != NULL)
-    {
-      // switch to the running instance
-      ShowWindow(m_hwnd,SW_RESTORE);
-      SetForegroundWindow(m_hwnd);
-    }
-    return 0;
-  }
-
-#ifndef HAS_DX
-  if(CWIN32Util::GetDesktopColorDepth() < 32)
-  {
-    //FIXME: replace it by a SDL window for all ports
-    MessageBox(NULL, "Desktop Color Depth isn't 32Bit", (appName + ": Fatal Error").c_str(), MB_OK|MB_ICONERROR);
-    return 0;
-  }
-#endif
-
-  if((g_cpuInfo.GetCPUFeatures() & CPU_FEATURE_SSE2) == 0)
-  {
-    MessageBox(NULL, "No SSE2 support detected", (appName + ": Fatal Error").c_str(), MB_OK|MB_ICONERROR);
-    return 0;
-  }
-
-  //Initialize COM
-  CoInitializeEx(NULL, COINIT_MULTITHREADED);
-
-  // Handle numeric values using the default/POSIX standard
-  setlocale(LC_NUMERIC, "C");
-
-  // If the command line passed to WinMain, commandLine, is not "" we need
-  // to process the command line arguments.
-  // Note that commandLine does not include the program name and can be
-  // equal to "" if no arguments were supplied. By contrast GetCommandLineW()
-  // does include the program name and is never equal to "".
-  g_advancedSettings.Initialize();
-  if (strlen(commandLine) != 0)
-  {
-    int argc;
-    LPWSTR* argvW = CommandLineToArgvW(GetCommandLineW(), &argc);
-
-    std::vector<std::string> strargvA;
-    strargvA.resize(argc);
-    const char** argv = (const char**) LocalAlloc(LMEM_FIXED, argc*sizeof(char*));
-    if (!argv)
-      return 20;
-    for (int i = 0; i < argc; i++)
-    {
-      g_charsetConverter.wToUTF8(argvW[i], strargvA[i]);
-      argv[i] = strargvA[i].c_str();
-    }
-
-    // Parse the arguments
-    CAppParamParser appParamParser;
-    appParamParser.Parse(argv, argc);
-
-    // Clean up the storage we've used
-    LocalFree(argvW);
-    LocalFree(argv);
-  }
-
-  // Initialise Winsock
-  WSADATA wd;
-  WSAStartup(MAKEWORD(2,2), &wd);
-
-  // use 1 ms timer precision - like SDL initialization used to do
-  timeBeginPeriod(1);
-
-#ifdef XBMC_TRACK_EXCEPTIONS
-  try
-  {
-#endif
-    // Create and run the app
-    if(!g_application.Create())
-    {
-      MessageBox(NULL, "ERROR: Unable to create application. Exiting.", (appName + ": Error").c_str(), MB_OK|MB_ICONERROR);
-      return 1;
-    }
-#ifdef XBMC_TRACK_EXCEPTIONS
-  }
-  catch (const XbmcCommons::UncheckedException &e)
-  {
-    e.LogThrowMessage("CApplication::Create()");
-    MessageBox(NULL, "ERROR: Unable to create application. Exiting.", (appName + ": Error").c_str(), MB_OK|MB_ICONERROR);
-    return 1;
-  }
-  catch (...)
-  {
-    CLog::Log(LOGERROR, "exception in CApplication::Create()");
-    MessageBox(NULL, "ERROR: Unable to create application. Exiting.", (appName + ": Error").c_str(), MB_OK|MB_ICONERROR);
-    return 1;
-  }
-#endif
-
-#ifndef _DEBUG
-  // we don't want to see the "no disc in drive" windows message box
-  SetErrorMode(SEM_FAILCRITICALERRORS|SEM_NOOPENFILEERRORBOX);
-#endif
-
-#ifdef XBMC_TRACK_EXCEPTIONS
-  try
-  {
-#endif
-    if (!g_application.CreateGUI())
-    {
-      MessageBox(NULL, "ERROR: Unable to create GUI. Exiting.", (appName + ": Error").c_str(), MB_OK|MB_ICONERROR);
-      return 1;
-    }
-#ifdef XBMC_TRACK_EXCEPTIONS
-  }
-  catch (const XbmcCommons::UncheckedException &e)
-  {
-    e.LogThrowMessage("CApplication::CreateGUI()");
-    MessageBox(NULL, "ERROR: Unable to create GUI. Exiting.", (appName + ": Error").c_str(), MB_OK|MB_ICONERROR);
-    return 1;
-  }
-  catch (...)
-  {
-    CLog::Log(LOGERROR, "exception in CApplication::CreateGUI()");
-    MessageBox(NULL, "ERROR: Unable to create GUI. Exiting.", (appName + ": Error").c_str(), MB_OK|MB_ICONERROR);
-    return 1;
-  }
-#endif
-
-#ifdef XBMC_TRACK_EXCEPTIONS
-  try
-  {
-#endif
-    if (!g_application.Initialize())
-    {
-      MessageBox(NULL, "ERROR: Unable to Initialize. Exiting.", (appName + ": Error").c_str(), MB_OK|MB_ICONERROR);
-      return 1;
-    }
-#ifdef XBMC_TRACK_EXCEPTIONS
-  }
-  catch (const XbmcCommons::UncheckedException &e)
-  {
-    e.LogThrowMessage("CApplication::Initialize()");
-    MessageBox(NULL, "ERROR: Unable to Initialize. Exiting.", (appName + ": Error").c_str(), MB_OK|MB_ICONERROR);
-    return 1;
-  }
-  catch (...)
-  {
-    CLog::Log(LOGERROR, "exception in CApplication::Initialize()");
-    MessageBox(NULL, "ERROR: Unable to Initialize. Exiting.", (appName + ": Error").c_str(), MB_OK|MB_ICONERROR);
-    return 1;
-  }
-#endif
-
-  HRESULT hr = E_FAIL;
-  IMMDeviceEnumerator *pEnumerator = NULL;
-  CMMNotificationClient cMMNC;
-  hr = CoCreateInstance(CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, IID_IMMDeviceEnumerator, (void**)&pEnumerator);
-  if(SUCCEEDED(hr))
-  {
-    pEnumerator->RegisterEndpointNotificationCallback(&cMMNC);
-    SAFE_RELEASE(pEnumerator);
-  }
-
-  g_application.Run();
-
-  // clear previously set timer resolution
-  timeEndPeriod(1);		
-
-  // the end
-  hr = CoCreateInstance(CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, IID_IMMDeviceEnumerator, (void**)&pEnumerator);
-  if(SUCCEEDED(hr))
-  {
-    pEnumerator->UnregisterEndpointNotificationCallback(&cMMNC);
-    SAFE_RELEASE(pEnumerator);
-  }
-  WSACleanup();
-  CoUninitialize();
-
-  return 0;
-}
diff --git a/xbmc/win32/XBMC_PC.rc.in b/xbmc/win32/XBMC_PC.rc.in
deleted file mode 100644
index b76f15d..0000000
--- a/xbmc/win32/XBMC_PC.rc.in
+++ /dev/null
@@ -1,112 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "windows.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE 
-BEGIN
-    "resource.h\0"
-END
-
-2 TEXTINCLUDE 
-BEGIN
-    "#include ""windows.h""\r\n"
-    "\0"
-END
-
-3 TEXTINCLUDE 
-BEGIN
-    "\r\n"
-    "\0"
-END
-
-#endif    // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION @FILE_VERSION@
- PRODUCTVERSION @FILE_VERSION@
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
-    BLOCK "StringFileInfo"
-    BEGIN
-        BLOCK "040904e4"
-        BEGIN
-            VALUE "CompanyName", "@COMPANY_NAME@"
-            VALUE "FileDescription", "@APP_NAME@"
-            VALUE "FileVersion", "@APP_VERSION@"
-            VALUE "InternalName", "@APP_NAME at .exe"
-            VALUE "LegalCopyright", "Copyright (c) @COMPANY_NAME at .  All rights reserved."
-            VALUE "OriginalFilename", "@APP_NAME at .exe"
-            VALUE "ProductName", "@APP_NAME@ for Windows"
-            VALUE "ProductVersion", "@APP_VERSION@"
-        END
-    END
-    BLOCK "VarFileInfo"
-    BEGIN
-        VALUE "Translation", 0x409, 1252
-    END
-END
-
-#endif    // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_MAIN_ICON           ICON                    "application.ico"
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif    // not APSTUDIO_INVOKED
-
diff --git a/xbmc/win32/arpa/inet.h b/xbmc/win32/arpa/inet.h
deleted file mode 100644
index c3c3b62..0000000
--- a/xbmc/win32/arpa/inet.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- *      Copyright (C) 2011-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-#pragma once
-#include <sys/socket.h>
diff --git a/xbmc/win32/dirent.h b/xbmc/win32/dirent.h
deleted file mode 100644
index cf3fe56..0000000
--- a/xbmc/win32/dirent.h
+++ /dev/null
@@ -1,889 +0,0 @@
-/*
- * dirent.h - dirent API for Microsoft Visual Studio
- *
- * Copyright (C) 2006-2012 Toni Ronkko
- *
- * 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 TONI RONKKO 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.
- *
- *
- * Version 1.13, Dec 12 2012, Toni Ronkko
- * Use traditional 8+3 file name if the name cannot be represented in the
- * default ANSI code page.  Now compiles again with MSVC 6.0.  Thanks to
- * Konstantin Khomoutov for testing.
- *
- * Version 1.12.1, Oct 1 2012, Toni Ronkko
- * Bug fix: renamed wide-character DIR structure _wDIR to _WDIR (with
- * capital W) in order to maintain compatibility with MingW.
- *
- * Version 1.12, Sep 30 2012, Toni Ronkko
- * Define PATH_MAX and NAME_MAX.  Added wide-character variants _wDIR, 
- * _wdirent, _wopendir(), _wreaddir(), _wclosedir() and _wrewinddir().
- * Thanks to Edgar Buerkle and Jan Nijtmans for ideas and code.
- *
- * Do not include windows.h.  This allows dirent.h to be integrated more
- * easily into programs using winsock.  Thanks to Fernando Azaldegui.
- *
- * Version 1.11, Mar 15, 2011, Toni Ronkko
- * Defined FILE_ATTRIBUTE_DEVICE for MSVC 6.0.
- *
- * Version 1.10, Aug 11, 2010, Toni Ronkko
- * Added d_type and d_namlen fields to dirent structure.  The former is
- * especially useful for determining whether directory entry represents a
- * file or a directory.  For more information, see
- * http://www.delorie.com/gnu/docs/glibc/libc_270.html
- *
- * Improved conformance to the standards.  For example, errno is now set
- * properly on failure and assert() is never used.  Thanks to Peter Brockam
- * for suggestions.
- *
- * Fixed a bug in rewinddir(): when using relative directory names, change
- * of working directory no longer causes rewinddir() to fail.
- *
- * Version 1.9, Dec 15, 2009, John Cunningham
- * Added rewinddir member function
- *
- * Version 1.8, Jan 18, 2008, Toni Ronkko
- * Using FindFirstFileA and WIN32_FIND_DATAA to avoid converting string
- * between multi-byte and unicode representations.  This makes the
- * code simpler and also allows the code to be compiled under MingW.  Thanks
- * to Azriel Fasten for the suggestion.
- *
- * Mar 4, 2007, Toni Ronkko
- * Bug fix: due to the strncpy_s() function this file only compiled in
- * Visual Studio 2005.  Using the new string functions only when the
- * compiler version allows.
- *
- * Nov  2, 2006, Toni Ronkko
- * Major update: removed support for Watcom C, MS-DOS and Turbo C to
- * simplify the file, updated the code to compile cleanly on Visual
- * Studio 2005 with both unicode and multi-byte character strings,
- * removed rewinddir() as it had a bug.
- *
- * Aug 20, 2006, Toni Ronkko
- * Removed all remarks about MSVC 1.0, which is antiqued now.  Simplified
- * comments by removing SGML tags.
- *
- * May 14 2002, Toni Ronkko
- * Embedded the function definitions directly to the header so that no
- * source modules need to be included in the Visual Studio project.  Removed
- * all the dependencies to other projects so that this header file can be
- * used independently.
- *
- * May 28 1998, Toni Ronkko
- * First version.
- *****************************************************************************/
-#ifndef DIRENT_H
-#define DIRENT_H
-
-#if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && defined(_M_IX86)
-#   define _X86_
-#endif
-#include <stdio.h>
-#include <stdarg.h>
-#include <windef.h>
-#include <winbase.h>
-#include <wchar.h>
-#include <string.h>
-#include <stdlib.h>
-#include <malloc.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <errno.h>
-
-/* Indicates that d_type field is available in dirent structure */
-#define _DIRENT_HAVE_D_TYPE
-
-/* Indicates that d_namlen field is available in dirent structure */
-#define _DIRENT_HAVE_D_NAMLEN
-
-/* Entries missing from MSVC 6.0 */
-#if !defined(FILE_ATTRIBUTE_DEVICE)
-#   define FILE_ATTRIBUTE_DEVICE 0x40
-#endif
-
-/* File type and permission flags for stat() */
-#if !defined(S_IFMT)
-#   define S_IFMT   _S_IFMT                     /* File type mask */
-#endif
-#if !defined(S_IFDIR)
-#   define S_IFDIR  _S_IFDIR                    /* Directory */
-#endif
-#if !defined(S_IFCHR)
-#   define S_IFCHR  _S_IFCHR                    /* Character device */
-#endif
-#if !defined(S_IFFIFO)
-#   define S_IFFIFO _S_IFFIFO                   /* Pipe */
-#endif
-#if !defined(S_IFREG)
-#   define S_IFREG  _S_IFREG                    /* Regular file */
-#endif
-#if !defined(S_IREAD)
-#   define S_IREAD  _S_IREAD                    /* Read permission */
-#endif
-#if !defined(S_IWRITE)
-#   define S_IWRITE _S_IWRITE                   /* Write permission */
-#endif
-#if !defined(S_IEXEC)
-#   define S_IEXEC  _S_IEXEC                    /* Execute permission */
-#endif
-#if !defined(S_IFIFO)
-#   define S_IFIFO _S_IFIFO                     /* Pipe */
-#endif
-#if !defined(S_IFBLK)
-#   define S_IFBLK   0                          /* Block device */
-#endif
-#if !defined(S_IFLNK)
-#   define S_IFLNK   0                          /* Link */
-#endif
-#if !defined(S_IFSOCK)
-#   define S_IFSOCK  0                          /* Socket */
-#endif
-
-#if defined(_MSC_VER)
-#   define S_IRUSR  S_IREAD                     /* Read user */
-#   define S_IWUSR  S_IWRITE                    /* Write user */
-#   define S_IXUSR  0                           /* Execute user */
-#   define S_IRGRP  0                           /* Read group */
-#   define S_IWGRP  0                           /* Write group */
-#   define S_IXGRP  0                           /* Execute group */
-#   define S_IROTH  0                           /* Read others */
-#   define S_IWOTH  0                           /* Write others */
-#   define S_IXOTH  0                           /* Execute others */
-#endif
-
-/* Maximum length of file name */
-#if !defined(PATH_MAX)
-#   define PATH_MAX MAX_PATH
-#endif
-#if !defined(FILENAME_MAX)
-#   define FILENAME_MAX MAX_PATH
-#endif
-#if !defined(NAME_MAX)
-#   define NAME_MAX FILENAME_MAX
-#endif
-
-/* File type flags for d_type */
-#define DT_UNKNOWN  0
-#define DT_REG      S_IFREG
-#define DT_DIR      S_IFDIR
-#define DT_FIFO     S_IFIFO
-#define DT_SOCK     S_IFSOCK
-#define DT_CHR      S_IFCHR
-#define DT_BLK      S_IFBLK
-
-/* Macros for converting between st_mode and d_type */
-#define IFTODT(mode) ((mode) & S_IFMT)
-#define DTTOIF(type) (type)
-
-/*
- * File type macros.  Note that block devices, sockets and links cannot be
- * distinguished on Windows and the macros S_ISBLK, S_ISSOCK and S_ISLNK are
- * only defined for compatibility.  These macros should always return false
- * on Windows.
- */
-#define	S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFIFO)
-#define	S_ISDIR(mode)  (((mode) & S_IFMT) == S_IFDIR)
-#define	S_ISREG(mode)  (((mode) & S_IFMT) == S_IFREG)
-#define	S_ISLNK(mode)  (((mode) & S_IFMT) == S_IFLNK)
-#define	S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK)
-#define	S_ISCHR(mode)  (((mode) & S_IFMT) == S_IFCHR)
-#define	S_ISBLK(mode)  (((mode) & S_IFMT) == S_IFBLK)
-
-/* Return the exact length of d_namlen without zero terminator */
-#define _D_EXACT_NAMLEN(p) ((p)->d_namlen)
-
-/* Return number of bytes needed to store d_namlen */
-#define _D_ALLOC_NAMLEN(p) (PATH_MAX + 1)
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Wide-character version */
-struct _wdirent {
-    long d_ino;                                 /* Always zero */
-    unsigned short d_reclen;                    /* Structure size */
-    size_t d_namlen;                            /* Length of name without \0 */
-    int d_type;                                 /* File type */
-    wchar_t d_name[PATH_MAX + 1];               /* File name */
-};
-typedef struct _wdirent _wdirent;
-
-struct _WDIR {
-    struct _wdirent ent;                        /* Current directory entry */
-    WIN32_FIND_DATAW data;                      /* Private file data */
-    int cached;                                 /* True if data is valid */
-    HANDLE handle;                              /* Win32 search handle */
-    wchar_t *patt;                              /* Initial directory name */
-};
-typedef struct _WDIR _WDIR;
-
-static _WDIR *_wopendir (const wchar_t *dirname);
-static struct _wdirent *_wreaddir (_WDIR *dirp);
-static int _wclosedir (_WDIR *dirp);
-static void _wrewinddir (_WDIR* dirp);
-
-
-/* For compatibility with Symbian */
-#define wdirent _wdirent
-#define WDIR _WDIR
-#define wopendir _wopendir
-#define wreaddir _wreaddir
-#define wclosedir _wclosedir
-#define wrewinddir _wrewinddir
-
-
-/* Multi-byte character versions */
-struct dirent {
-    long d_ino;                                 /* Always zero */
-    unsigned short d_reclen;                    /* Structure size */
-    size_t d_namlen;                            /* Length of name without \0 */
-    int d_type;                                 /* File type */
-    char d_name[PATH_MAX + 1];                  /* File name */
-};
-typedef struct dirent dirent;
-
-struct DIR {
-    struct dirent ent;
-    struct _WDIR *wdirp;
-};
-typedef struct DIR DIR;
-
-static DIR *opendir (const char *dirname);
-static struct dirent *readdir (DIR *dirp);
-static int closedir (DIR *dirp);
-static void rewinddir (DIR* dirp);
-
-
-/* Internal utility functions */
-static WIN32_FIND_DATAW *dirent_first (_WDIR *dirp);
-static WIN32_FIND_DATAW *dirent_next (_WDIR *dirp);
-
-static int dirent_mbstowcs_s(
-    size_t *pReturnValue,
-    wchar_t *wcstr,
-    size_t sizeInWords,
-    const char *mbstr,
-    size_t count);
-
-static int dirent_wcstombs_s(
-    size_t *pReturnValue,
-    char *mbstr,
-    size_t sizeInBytes,
-    const wchar_t *wcstr,
-    size_t count);
-
-static void dirent_set_errno (int error);
-
-/*
- * Open directory stream DIRNAME for read and return a pointer to the
- * internal working area that is used to retrieve individual directory
- * entries.
- */
-static _WDIR*
-_wopendir(
-    const wchar_t *dirname)
-{
-    _WDIR *dirp = NULL;
-    int error;
-
-    /* Must have directory name */
-    if (dirname == NULL  ||  dirname[0] == '\0') {
-        dirent_set_errno (ENOENT);
-        return NULL;
-    }
-
-    /* Allocate new _WDIR structure */
-    dirp = (_WDIR*) malloc (sizeof (struct _WDIR));
-    if (dirp != NULL) {
-        DWORD n;
-
-        /* Reset _WDIR structure */
-        dirp->handle = INVALID_HANDLE_VALUE;
-        dirp->patt = NULL;
-        dirp->cached = 0;
-
-        /* Compute the length of full path plus zero terminator */
-        n = GetFullPathNameW (dirname, 0, NULL, NULL);
-
-        /* Allocate room for absolute directory name and search pattern */
-        dirp->patt = (wchar_t*) malloc (sizeof (wchar_t) * n + 16);
-        if (dirp->patt) {
-
-            /*
-             * Convert relative directory name to an absolute one.  This
-             * allows rewinddir() to function correctly even when current
-             * working directory is changed between opendir() and rewinddir().
-             */
-            n = GetFullPathNameW (dirname, n, dirp->patt, NULL);
-            if (n > 0) {
-                wchar_t *p;
-
-                /* Append search pattern \* to the directory name */
-                p = dirp->patt + n;
-                if (dirp->patt < p) {
-                    switch (p[-1]) {
-                    case '\\':
-                    case '/':
-                    case ':':
-                        /* Directory ends in path separator, e.g. c:\temp\ */
-                        /*NOP*/;
-                        break;
-
-                    default:
-                        /* Directory name doesn't end in path separator */
-                        *p++ = '\\';
-                    }
-                }
-                *p++ = '*';
-                *p = '\0';
-
-                /* Open directory stream and retrieve the first entry */
-                if (dirent_first (dirp)) {
-                    /* Directory stream opened successfully */
-                    error = 0;
-                } else {
-                    /* Cannot retrieve first entry */
-                    error = 1;
-                    dirent_set_errno (ENOENT);
-                }
-
-            } else {
-                /* Cannot retrieve full path name */
-                dirent_set_errno (ENOENT);
-                error = 1;
-            }
-
-        } else {
-            /* Cannot allocate memory for search pattern */
-            error = 1;
-        }
-
-    } else {
-        /* Cannot allocate _WDIR structure */
-        error = 1;
-    }
-
-    /* Clean up in case of error */
-    if (error  &&  dirp) {
-        _wclosedir (dirp);
-        dirp = NULL;
-    }
-
-    return dirp;
-}
-
-/*
- * Read next directory entry.  The directory entry is returned in dirent
- * structure in the d_name field.  Individual directory entries returned by
- * this function include regular files, sub-directories, pseudo-directories
- * "." and ".." as well as volume labels, hidden files and system files.
- */
-static struct _wdirent*
-_wreaddir(
-    _WDIR *dirp)
-{
-    WIN32_FIND_DATAW *datap;
-    struct _wdirent *entp;
-
-    /* Read next directory entry */
-    datap = dirent_next (dirp);
-    if (datap) {
-        size_t n;
-        DWORD attr;
-        
-        /* Pointer to directory entry to return */
-        entp = &dirp->ent;
-
-        /* 
-         * Copy file name as wide-character string.  If the file name is too
-         * long to fit in to the destination buffer, then truncate file name
-         * to PATH_MAX characters and zero-terminate the buffer.
-         */
-        n = 0;
-        while (n < PATH_MAX  &&  datap->cFileName[n] != 0) {
-            entp->d_name[n] = datap->cFileName[n];
-            n++;
-        }
-        dirp->ent.d_name[n] = 0;
-
-        /* Length of file name excluding zero terminator */
-        entp->d_namlen = n;
-
-        /* File type */
-        attr = datap->dwFileAttributes;
-        if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) {
-            entp->d_type = DT_CHR;
-        } else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) {
-            entp->d_type = DT_DIR;
-        } else {
-            entp->d_type = DT_REG;
-        }
-
-        /* Reset dummy fields */
-        entp->d_ino = 0;
-        entp->d_reclen = sizeof (struct _wdirent);
-
-    } else {
-
-        /* Last directory entry read */
-        entp = NULL;
-
-    }
-
-    return entp;
-}
-
-/*
- * Close directory stream opened by opendir() function.  This invalidates the
- * DIR structure as well as any directory entry read previously by
- * _wreaddir().
- */
-static int
-_wclosedir(
-    _WDIR *dirp)
-{
-    int ok;
-    if (dirp) {
-
-        /* Release search handle */
-        if (dirp->handle != INVALID_HANDLE_VALUE) {
-            FindClose (dirp->handle);
-            dirp->handle = INVALID_HANDLE_VALUE;
-        }
-
-        /* Release search pattern */
-        if (dirp->patt) {
-            free (dirp->patt);
-            dirp->patt = NULL;
-        }
-
-        /* Release directory structure */
-        free (dirp);
-        ok = /*success*/0;
-
-    } else {
-        /* Invalid directory stream */
-        dirent_set_errno (EBADF);
-        ok = /*failure*/-1;
-    }
-    return ok;
-}
-
-/*
- * Rewind directory stream such that _wreaddir() returns the very first
- * file name again.
- */
-static void
-_wrewinddir(
-    _WDIR* dirp)
-{
-    if (dirp) {
-        /* Release existing search handle */
-        if (dirp->handle != INVALID_HANDLE_VALUE) {
-            FindClose (dirp->handle);
-        }
-
-        /* Open new search handle */
-        dirent_first (dirp);
-    }
-}
-
-/* Get first directory entry (internal) */
-static WIN32_FIND_DATAW*
-dirent_first(
-    _WDIR *dirp)
-{
-    WIN32_FIND_DATAW *datap;
-
-    /* Open directory and retrieve the first entry */
-    dirp->handle = FindFirstFileW (dirp->patt, &dirp->data);
-    if (dirp->handle != INVALID_HANDLE_VALUE) {
-
-        /* a directory entry is now waiting in memory */
-        datap = &dirp->data;
-        dirp->cached = 1;
-
-    } else {
-
-        /* Failed to re-open directory: no directory entry in memory */
-        dirp->cached = 0;
-        datap = NULL;
-
-    }
-    return datap;
-}
-
-/* Get next directory entry (internal) */
-static WIN32_FIND_DATAW*
-dirent_next(
-    _WDIR *dirp)
-{
-    WIN32_FIND_DATAW *p;
-
-    /* Get next directory entry */
-    if (dirp->cached != 0) {
-
-        /* A valid directory entry already in memory */
-        p = &dirp->data;
-        dirp->cached = 0;
-
-    } else if (dirp->handle != INVALID_HANDLE_VALUE) {
-
-        /* Get the next directory entry from stream */
-        if (FindNextFileW (dirp->handle, &dirp->data) != FALSE) {
-            /* Got a file */
-            p = &dirp->data;
-        } else {
-            /* The very last entry has been processed or an error occured */
-            FindClose (dirp->handle);
-            dirp->handle = INVALID_HANDLE_VALUE;
-            p = NULL;
-        }
-
-    } else {
-
-        /* End of directory stream reached */
-        p = NULL;
-
-    }
-
-    return p;
-}
-
-/* 
- * Open directory stream using plain old C-string.
- */
-static DIR*
-opendir(
-    const char *dirname) 
-{
-    struct DIR *dirp;
-    int error;
-
-    /* Must have directory name */
-    if (dirname == NULL  ||  dirname[0] == '\0') {
-        dirent_set_errno (ENOENT);
-        return NULL;
-    }
-
-    /* Allocate memory for DIR structure */
-    dirp = (DIR*) malloc (sizeof (struct DIR));
-    if (dirp) {
-        wchar_t wname[PATH_MAX + 1];
-        size_t n;
-
-        /* Convert directory name to wide-character string */
-        error = dirent_mbstowcs_s(
-            &n, wname, PATH_MAX + 1, dirname, PATH_MAX);
-        if (!error) {
-
-            /* Open directory stream using wide-character name */
-            dirp->wdirp = _wopendir (wname);
-            if (dirp->wdirp) {
-                /* Directory stream opened */
-                error = 0;
-            } else {
-                /* Failed to open directory stream */
-                error = 1;
-            }
-
-        } else {
-            /* 
-             * Cannot convert file name to wide-character string.  This
-             * occurs if the string contains invalid multi-byte sequences or
-             * the output buffer is too small to contain the resulting
-             * string.
-             */
-            error = 1;
-        }
-
-    } else {
-        /* Cannot allocate DIR structure */
-        error = 1;
-    }
-
-    /* Clean up in case of error */
-    if (error  &&  dirp) {
-        free (dirp);
-        dirp = NULL;
-    }
-
-    return dirp;
-}
-
-/*
- * Read next directory entry.
- *
- * When working with text consoles, please note that file names returned by
- * readdir() are represented in the default ANSI code page while any output to
- * console is typically formatted on another code page.  Thus, non-ASCII
- * characters in file names will not usually display correctly on console.  The
- * problem can be fixed in two ways: (1) change the character set of console
- * to 1252 using chcp utility and use Lucida Console font, or (2) use
- * _cprintf function when writing to console.  The _cprinf() will re-encode
- * ANSI strings to the console code page so many non-ASCII characters will
- * display correcly.
- */
-static struct dirent*
-readdir(
-    DIR *dirp) 
-{
-    WIN32_FIND_DATAW *datap;
-    struct dirent *entp;
-
-    /* Read next directory entry */
-    datap = dirent_next (dirp->wdirp);
-    if (datap) {
-        size_t n;
-        int error;
-
-        /* Attempt to convert file name to multi-byte string */
-        error = dirent_wcstombs_s(
-            &n, dirp->ent.d_name, MAX_PATH + 1, datap->cFileName, MAX_PATH);
-
-        /* 
-         * If the file name cannot be represented by a multi-byte string,
-         * then attempt to use old 8+3 file name.  This allows traditional
-         * Unix-code to access some file names despite of unicode
-         * characters, although file names may seem unfamiliar to the user.
-         *
-         * Be ware that the code below cannot come up with a short file
-         * name unless the file system provides one.  At least
-         * VirtualBox shared folders fail to do this.
-         */
-        if (error  &&  datap->cAlternateFileName[0] != '\0') {
-            error = dirent_wcstombs_s(
-                &n, dirp->ent.d_name, MAX_PATH + 1, datap->cAlternateFileName,
-                sizeof (datap->cAlternateFileName) / 
-                    sizeof (datap->cAlternateFileName[0]));
-        }
-
-        if (!error) {
-            DWORD attr;
-
-            /* Initialize directory entry for return */
-            entp = &dirp->ent;
-
-            /* Length of file name excluding zero terminator */
-            entp->d_namlen = n - 1;
-
-            /* File attributes */
-            attr = datap->dwFileAttributes;
-            if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) {
-                entp->d_type = DT_CHR;
-            } else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) {
-                entp->d_type = DT_DIR;
-            } else {
-                entp->d_type = DT_REG;
-            }
-
-            /* Reset dummy fields */
-            entp->d_ino = 0;
-            entp->d_reclen = sizeof (struct dirent);
-
-        } else {
-            /* 
-             * Cannot convert file name to multi-byte string so construct
-             * an errornous directory entry and return that.  Note that
-             * we cannot return NULL as that would stop the processing
-             * of directory entries completely.
-             */
-            entp = &dirp->ent;
-            entp->d_name[0] = '?';
-            entp->d_name[1] = '\0';
-            entp->d_namlen = 1;
-            entp->d_type = DT_UNKNOWN;
-            entp->d_ino = 0;
-            entp->d_reclen = 0;
-        }
-
-    } else {
-        /* No more directory entries */
-        entp = NULL;
-    }
-
-    return entp;
-}
-
-/*
- * Close directory stream.
- */
-static int
-closedir(
-    DIR *dirp) 
-{
-    int ok;
-    if (dirp) {
-
-        /* Close wide-character directory stream */
-        ok = _wclosedir (dirp->wdirp);
-        dirp->wdirp = NULL;
-
-        /* Release multi-byte character version */
-        free (dirp);
-
-    } else {
-
-        /* Invalid directory stream */
-        dirent_set_errno (EBADF);
-        ok = /*failure*/-1;
-
-    }
-    return ok;
-}
-
-/*
- * Rewind directory stream to beginning.
- */
-static void
-rewinddir(
-    DIR* dirp) 
-{
-    /* Rewind wide-character string directory stream */
-    _wrewinddir (dirp->wdirp);
-}
-
-/* Convert multi-byte string to wide character string */
-static int
-dirent_mbstowcs_s(
-    size_t *pReturnValue,
-    wchar_t *wcstr,
-    size_t sizeInWords,
-    const char *mbstr,
-    size_t count)
-{
-    int error;
-
-#if defined(_MSC_VER)  &&  _MSC_VER >= 1400
-
-    /* Microsoft Visual Studio 2005 or later */
-    error = mbstowcs_s (pReturnValue, wcstr, sizeInWords, mbstr, count);
-
-#else
-
-    /* Older Visual Studio or non-Microsoft compiler */
-    size_t n;
-
-    /* Convert to wide-character string */
-    n = mbstowcs (wcstr, mbstr, count);
-    if (n < sizeInWords) {
-
-        /* Zero-terminate output buffer */
-        if (wcstr) {
-            wcstr[n] = 0;
-        }
-
-        /* Length of resuting multi-byte string WITH zero terminator */
-        if (pReturnValue) {
-            *pReturnValue = n + 1;
-        }
-
-        /* Success */
-        error = 0;
-
-    } else {
-
-        /* Could not convert string */
-        error = 1;
-
-    }
-
-#endif
-
-    return error;
-}
-
-/* Convert wide-character string to multi-byte string */
-static int
-dirent_wcstombs_s(
-    size_t *pReturnValue,
-    char *mbstr,
-    size_t sizeInBytes,
-    const wchar_t *wcstr,
-    size_t count)
-{
-    int error;
-
-#if defined(_MSC_VER)  &&  _MSC_VER >= 1400
-
-    /* Microsoft Visual Studio 2005 or later */
-    error = wcstombs_s (pReturnValue, mbstr, sizeInBytes, wcstr, count);
-
-#else
-
-    /* Older Visual Studio or non-Microsoft compiler */
-    size_t n;
-
-    /* Convert to multi-byte string */
-    n = wcstombs (mbstr, wcstr, count);
-    if (n < sizeInBytes) {
-
-        /* Zero-terminate output buffer */
-        if (mbstr) {
-            mbstr[n] = '\0';
-        }
-
-        /* Lenght of resulting multi-bytes string WITH zero-terminator */
-        if (pReturnValue) {
-            *pReturnValue = n + 1;
-        }
-
-        /* Success */
-        error = 0;
-
-    } else {
-
-        /* Cannot convert string */
-        error = 1;
-
-    }
-
-#endif
-
-    return error;
-}
-
-/* Set errno variable */
-static void
-dirent_set_errno(
-    int error)
-{
-#if defined(_MSC_VER)
-
-    /* Microsoft Visual Studio */
-    _set_errno (error);
-
-#else
-
-    /* Non-Microsoft compiler */
-    errno = error;
-
-#endif
-}
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /*DIRENT_H*/
-
diff --git a/xbmc/win32/my_ntddcdrm.h b/xbmc/win32/my_ntddcdrm.h
deleted file mode 100644
index 45d876b..0000000
--- a/xbmc/win32/my_ntddcdrm.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef MY_NTDDCDRM_H
-#define MY_NTDDCDRM_H
-
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#define IOCTL_CDROM_BASE             FILE_DEVICE_CD_ROM
-#define IOCTL_CDROM_RAW_READ         CTL_CODE(IOCTL_CDROM_BASE, 0x000F, METHOD_OUT_DIRECT,  FILE_READ_ACCESS)
-
-typedef enum _TRACK_MODE_TYPE {
-  YellowMode2,
-  XAForm2,
-  CDDA
-} TRACK_MODE_TYPE, *PTRACK_MODE_TYPE;
-
-typedef struct __RAW_READ_INFO
-{
-  LARGE_INTEGER DiskOffset;
-  ULONG SectorCount;
-  TRACK_MODE_TYPE TrackMode;
-}
-RAW_READ_INFO, *PRAW_READ_INFO;
-
-#endif
\ No newline at end of file
diff --git a/xbmc/win32/my_ntddscsi.h b/xbmc/win32/my_ntddscsi.h
deleted file mode 100644
index f3a679b..0000000
--- a/xbmc/win32/my_ntddscsi.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef MY_NTDDSCSI_H
-#define MY_NTDDSCSI_H
-
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-//** Defines taken from ntddscsi.h in MS Windows DDK CD
-#define SCSI_IOCTL_DATA_OUT             0 //Give data to SCSI device (e.g. for writing)
-#define SCSI_IOCTL_DATA_IN              1 //Get data from SCSI device (e.g. for reading)
-#define SCSI_IOCTL_DATA_UNSPECIFIED     2 //No data (e.g. for ejecting)
-
-#define MAX_SENSE_LEN 18 //Sense data max length
-
-#define IOCTL_SCSI_PASS_THROUGH         0x4D004
-typedef struct _SCSI_PASS_THROUGH {
-    USHORT Length;
-    UCHAR ScsiStatus;
-    UCHAR PathId;
-    UCHAR TargetId;
-    UCHAR Lun;
-    UCHAR CdbLength;
-    UCHAR SenseInfoLength;
-    UCHAR DataIn;
-    ULONG DataTransferLength;
-    ULONG TimeOutValue;
-    ULONG_PTR DataBufferOffset;
-    ULONG SenseInfoOffset;
-    UCHAR Cdb[16];
-}SCSI_PASS_THROUGH, *PSCSI_PASS_THROUGH;
-
-#define IOCTL_SCSI_PASS_THROUGH_DIRECT  0x4D014
-typedef struct _SCSI_PASS_THROUGH_DIRECT {
-    USHORT Length;
-    UCHAR ScsiStatus;
-    UCHAR PathId;
-    UCHAR TargetId;
-    UCHAR Lun;
-    UCHAR CdbLength;
-    UCHAR SenseInfoLength;
-    UCHAR DataIn;
-    ULONG DataTransferLength;
-    ULONG TimeOutValue;
-    PVOID DataBuffer;
-    ULONG SenseInfoOffset;
-    UCHAR Cdb[16];
-}SCSI_PASS_THROUGH_DIRECT, *PSCSI_PASS_THROUGH_DIRECT;
-//** End of defines taken from ntddscsi.h from MS Windows DDK CD
-
-typedef struct _SCSI_PASS_THROUGH_AND_BUFFERS {
-    SCSI_PASS_THROUGH spt;
-    BYTE DataBuffer[64*1024];
-}T_SPT_BUFS;
-
-typedef struct _SCSI_PASS_THROUGH_DIRECT_AND_SENSE_BUFFER {
-    SCSI_PASS_THROUGH_DIRECT sptd;
-    UCHAR SenseBuf[MAX_SENSE_LEN];
-}T_SPDT_SBUF;
-#endif
\ No newline at end of file
diff --git a/xbmc/win32/netdb.h b/xbmc/win32/netdb.h
deleted file mode 100644
index c3c3b62..0000000
--- a/xbmc/win32/netdb.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- *      Copyright (C) 2011-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-#pragma once
-#include <sys/socket.h>
diff --git a/xbmc/win32/netinet/in.h b/xbmc/win32/netinet/in.h
deleted file mode 100644
index c3c3b62..0000000
--- a/xbmc/win32/netinet/in.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- *      Copyright (C) 2011-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-#pragma once
-#include <sys/socket.h>
diff --git a/xbmc/win32/netinet/tcp.h b/xbmc/win32/netinet/tcp.h
deleted file mode 100644
index c3c3b62..0000000
--- a/xbmc/win32/netinet/tcp.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- *      Copyright (C) 2011-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-#pragma once
-#include <sys/socket.h>
diff --git a/xbmc/win32/pch.cpp b/xbmc/win32/pch.cpp
deleted file mode 100644
index 743e07c..0000000
--- a/xbmc/win32/pch.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- *      Copyright (C) 2009-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-#include "pch.h"
\ No newline at end of file
diff --git a/xbmc/win32/pch.h b/xbmc/win32/pch.h
deleted file mode 100644
index 5ab70b5..0000000
--- a/xbmc/win32/pch.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *      Copyright (C) 2009-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-#pragma once
-#define _CRT_RAND_S
-#include <vector>
-#include <map>
-#include <string>
-#include <iostream>
-#include <fstream>
-#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H))
-#include <winsock2.h>
-#endif
-#include <windows.h>
-#include <mmsystem.h>
-#include <TCHAR.H>
-#include <locale>
-#include <comdef.h>
-#define DIRECTINPUT_VERSION 0x0800
-#include "DInput.h"
-#include "DSound.h"
-#ifdef HAS_DX
-#include "D3D9.h"
-#include "D3DX9.h"
-#else
-#include <d3d9types.h>
-#endif
-#include "boost/shared_ptr.hpp"
-// anything below here should be headers that very rarely (hopefully never)
-// change yet are included almost everywhere.
-/* empty */
diff --git a/xbmc/win32/resource.h b/xbmc/win32/resource.h
deleted file mode 100644
index b8390a5..0000000
--- a/xbmc/win32/resource.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#define IDI_MAIN_ICON                   100
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NO_MFC                     1
-#define _APS_NEXT_RESOURCE_VALUE        101
-#define _APS_NEXT_COMMAND_VALUE         40001
-#define _APS_NEXT_CONTROL_VALUE         1000
-#define _APS_NEXT_SYMED_VALUE           101
-#endif
-#endif
diff --git a/xbmc/win32/stat_utf8.cpp b/xbmc/win32/stat_utf8.cpp
deleted file mode 100644
index c7e5ed3..0000000
--- a/xbmc/win32/stat_utf8.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "stat_utf8.h"
-#include "utils/CharsetConverter.h"
-
-int stat64_utf8(const char* __file, struct stat64* __buf)
-{
-  std::wstring fileW;
-  g_charsetConverter.utf8ToW(__file, fileW, false);
-  return _wstat64(fileW.c_str(), __buf);
-}
-
diff --git a/xbmc/win32/stat_utf8.h b/xbmc/win32/stat_utf8.h
deleted file mode 100644
index c888921..0000000
--- a/xbmc/win32/stat_utf8.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#ifndef STAT_UTF8_H__
-#define STAT_UTF8_H__
-
-#define stat64 __stat64
-
-extern int stat64_utf8(const char* __file, struct stat64* __buf);
-
-#endif //STAT_UTF8_H__
-
diff --git a/xbmc/win32/stdio_utf8.cpp b/xbmc/win32/stdio_utf8.cpp
deleted file mode 100644
index 5ff46a1..0000000
--- a/xbmc/win32/stdio_utf8.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "stdio_utf8.h"
-#include "utils/CharsetConverter.h"
-
-int remove_utf8(const char* __filename)
-{
-  std::wstring filenameW;
-  g_charsetConverter.utf8ToW(__filename, filenameW, false);
-  return ::DeleteFileW(filenameW.c_str()) ? 0 : -1;
-}
-
-int rename_utf8(const char* __old, const char* __new)
-{
-  std::wstring oldW, newW;
-  g_charsetConverter.utf8ToW(__old, oldW, false);
-  g_charsetConverter.utf8ToW(__new, newW, false);
-  return ::MoveFileW(oldW.c_str(), newW.c_str()) ? 0 : -1;
-}
-
-FILE* fopen64_utf8(const char* __filename, const char* __modes)
-{
-  std::wstring filenameW, modesW;
-  g_charsetConverter.utf8ToW(__filename, filenameW, false);
-  g_charsetConverter.utf8ToW(__modes, modesW, false);
-  return _wfopen(filenameW.c_str(), modesW.c_str());
-}
-
diff --git a/xbmc/win32/stdio_utf8.h b/xbmc/win32/stdio_utf8.h
deleted file mode 100644
index 95d859e..0000000
--- a/xbmc/win32/stdio_utf8.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-
-#ifndef STDIO_UTF8_H__
-#define STDIO_UTF8_H__
-
-#include <cstdio>
-
-extern int   remove_utf8(const char* __filename);
-extern int   rename_utf8(const char* __old, const char* __new);
-extern FILE* fopen64_utf8(const char* __filename, const char* __modes);
-
-#endif // STDIO_UTF8_H__
-
diff --git a/xbmc/win32/strverscmp.cpp b/xbmc/win32/strverscmp.cpp
deleted file mode 100644
index 9ebbbb3..0000000
--- a/xbmc/win32/strverscmp.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-extern "C" {
-/* Compare strings while treating digits characters numerically.
-   Copyright (C) 1997, 2000 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jean-Franois Bignolles <bignolle at ecoledoc.ibp.fr>, 1997.
-
-   The GNU C 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.
-
-   The GNU C Library is distributed in the hope that 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 General Public License
-   along with XBMC; see the file COPYING.  If not, see
-   <http://www.gnu.org/licenses/>.
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <string.h>
-#include <ctype.h>
-
-/* states: S_N: normal, S_I: comparing integral part, S_F: comparing
-           fractional parts, S_Z: idem but with leading Zeroes only */
-#define S_N    0x0
-#define S_I    0x4
-#define S_F    0x8
-#define S_Z    0xC
-
-/* result_type: CMP: return diff; LEN: compare using len_diff/diff */
-#define CMP    2
-#define LEN    3
-
-
-/* ISDIGIT differs from isdigit, as follows:
-   - Its arg may be any int or unsigned int; it need not be an unsigned char.
-   - It's guaranteed to evaluate its argument exactly once.
-   - It's typically faster.
-   Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that
-   only '0' through '9' are digits.  Prefer ISDIGIT to isdigit unless
-   it's important to use the locale's definition of `digit' even when the
-   host does not conform to Posix.  */
-#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
-
-#undef __strverscmp
-#undef strverscmp
-
-#ifndef weak_alias
-# define __strverscmp strverscmp
-#endif
-
-/* Compare S1 and S2 as strings holding indices/version numbers,
-   returning less than, equal to or greater than zero if S1 is less than,
-   equal to or greater than S2 (for more info, see the texinfo doc).
-*/
-
-int
-__strverscmp (const char *s1, const char *s2)
-{
-  const unsigned char *p1 = (const unsigned char *) s1;
-  const unsigned char *p2 = (const unsigned char *) s2;
-  unsigned char c1, c2;
-  int state;
-  int diff;
-
-  /* Symbol(s)    0       [1-9]   others  (padding)
-     Transition   (10) 0  (01) d  (00) x  (11) -   */
-  static const unsigned int next_state[] =
-  {
-      /* state    x    d    0    - */
-      /* S_N */  S_N, S_I, S_Z, S_N,
-      /* S_I */  S_N, S_I, S_I, S_I,
-      /* S_F */  S_N, S_F, S_F, S_F,
-      /* S_Z */  S_N, S_F, S_Z, S_Z
-  };
-
-  static const int result_type[] =
-  {
-      /* state   x/x  x/d  x/0  x/-  d/x  d/d  d/0  d/-
-                 0/x  0/d  0/0  0/-  -/x  -/d  -/0  -/- */
-
-      /* S_N */  CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP,
-                 CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP,
-      /* S_I */  CMP, -1,  -1,  CMP,  1,  LEN, LEN, CMP,
-                  1,  LEN, LEN, CMP, CMP, CMP, CMP, CMP,
-      /* S_F */  CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP,
-                 CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP,
-      /* S_Z */  CMP,  1,   1,  CMP, -1,  CMP, CMP, CMP,
-                 -1,  CMP, CMP, CMP
-  };
-
-  if (p1 == p2)
-    return 0;
-
-  c1 = *p1++;
-  c2 = *p2++;
-  /* Hint: '0' is a digit too.  */
-  state = S_N | ((c1 == '0') + (ISDIGIT (c1) != 0));
-
-  while ((diff = c1 - c2) == 0 && c1 != '\0')
-    {
-      state = next_state[state];
-      c1 = *p1++;
-      c2 = *p2++;
-      state |= (c1 == '0') + (ISDIGIT (c1) != 0);
-    }
-
-  state = result_type[state << 2 | ((c2 == '0') + (ISDIGIT (c2) != 0))];
-
-  switch (state)
-    {
-    case CMP:
-      return diff;
-
-    case LEN:
-      while (ISDIGIT (*p1++))
-	if (!ISDIGIT (*p2++))
-	  return 1;
-
-      return ISDIGIT (*p2) ? -1 : diff;
-
-    default:
-      return state;
-    }
-}
-#ifdef weak_alias
-weak_alias (__strverscmp, strverscmp)
-#endif
-}
diff --git a/xbmc/win32/sys/select.h b/xbmc/win32/sys/select.h
deleted file mode 100644
index 4d6cbf1..0000000
--- a/xbmc/win32/sys/select.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma once
-/*
- *      Copyright (C) 2011-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-#include <sys/socket.h>
diff --git a/xbmc/win32/sys/socket.h b/xbmc/win32/sys/socket.h
deleted file mode 100644
index c97170b..0000000
--- a/xbmc/win32/sys/socket.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- *      Copyright (C) 2011-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-#pragma once
-
-#include <Winsock2.h>
-#include <WS2tcpip.h>
-#include <ws2bth.h>
-
-#ifndef SHUT_RDWR
-#define SHUT_RDWR SD_BOTH
-#endif
-
-#ifndef SHUT_RD
-#define SHUT_RD SD_RECEIVE
-#endif
-
-#ifndef SHUT_WR
-#define SHUT_WR SD_SEND
-#endif
-
-
-#ifndef AF_BTH
-#define AF_BTH          32
-#endif
-
-#ifndef BTHPROTO_RFCOMM
-#define BTHPROTO_RFCOMM 3
-#endif
-
-#ifndef AF_BLUETOOTH
-#define AF_BLUETOOTH AF_BTH
-#endif
-
-#ifndef BTPROTO_RFCOMM
-#define BTPROTO_RFCOMM BTHPROTO_RFCOMM
-#endif
-
-typedef int socklen_t;
-
diff --git a/xbmc/win32/sys/time.h b/xbmc/win32/sys/time.h
deleted file mode 100644
index e6c159d..0000000
--- a/xbmc/win32/sys/time.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma once
-/*
- *      Copyright (C) 2011-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-#include <Windows.h>
\ No newline at end of file
diff --git a/xbmc/win32/unistd.h b/xbmc/win32/unistd.h
deleted file mode 100644
index 5f26439..0000000
--- a/xbmc/win32/unistd.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#pragma once
-/*
- *      Copyright (C) 2005-2013 Team XBMC
- *      http://xbmc.org
- *
- *  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 XBMC; see the file COPYING.  If not, see
- *  <http://www.gnu.org/licenses/>.
- *
- */
-#include <inttypes.h>
-#include <io.h>
diff --git a/xbmc/windowing/WinEventsSDL.cpp b/xbmc/windowing/WinEventsSDL.cpp
index 13bb2c3..5c03152 100644
--- a/xbmc/windowing/WinEventsSDL.cpp
+++ b/xbmc/windowing/WinEventsSDL.cpp
@@ -457,19 +457,6 @@ bool CWinEventsSDL::ProcessOSXShortcuts(SDL_Event& event)
       CApplicationMessenger::Get().Minimize();
       return true;
 
-    case SDLK_v: // CMD-v to paste clipboard text
-      if (g_Windowing.IsTextInputEnabled())
-      {
-        const char *szStr = Cocoa_Paste();
-        if (szStr)
-        {
-          CGUIMessage msg(GUI_MSG_INPUT_TEXT, 0, 0);
-          msg.SetLabel(szStr);
-          g_windowManager.SendMessage(msg, g_windowManager.GetFocusedWindow());
-        }
-      }
-      return true;
-
     default:
       return false;
     }
diff --git a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
index c19124c..7064836 100644
--- a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
+++ b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
@@ -216,18 +216,33 @@ bool CEGLNativeTypeAmlogic::ShowWindow(bool show)
 
 bool CEGLNativeTypeAmlogic::SetDisplayResolution(const char *resolution)
 {
-  CStdString modestr = resolution;
+  CStdString mode = resolution;
   // switch display resolution
-  aml_set_sysfs_str("/sys/class/display/mode", modestr.c_str());
+  aml_set_sysfs_str("/sys/class/display/mode", mode.c_str());
+  SetupVideoScaling(mode.c_str());
 
-  // setup gui freescale depending on display resolution
-  DisableFreeScale();
-  if (StringUtils::StartsWith(modestr, "1080"))
+  return true;
+}
+
+void CEGLNativeTypeAmlogic::SetupVideoScaling(const char *mode)
+{
+  aml_set_sysfs_int("/sys/class/graphics/fb0/blank",      1);
+  aml_set_sysfs_int("/sys/class/graphics/fb0/free_scale", 0);
+  aml_set_sysfs_int("/sys/class/graphics/fb1/free_scale", 0);
+  aml_set_sysfs_int("/sys/class/ppmgr/ppscaler",          0);
+
+  if (strstr(mode, "1080"))
   {
-    EnableFreeScale();
+    aml_set_sysfs_str("/sys/class/graphics/fb0/request2XScale", "8");
+    aml_set_sysfs_str("/sys/class/graphics/fb1/scale_axis",     "1280 720 1920 1080");
+    aml_set_sysfs_str("/sys/class/graphics/fb1/scale",          "0x10001");
+  }
+  else
+  {
+    aml_set_sysfs_str("/sys/class/graphics/fb0/request2XScale", "16 1280 720");
   }
 
-  return true;
+  aml_set_sysfs_int("/sys/class/graphics/fb0/blank", 0);
 }
 
 void CEGLNativeTypeAmlogic::EnableFreeScale()
diff --git a/xbmc/windowing/egl/EGLNativeTypeAmlogic.h b/xbmc/windowing/egl/EGLNativeTypeAmlogic.h
index 87be029..cc34ff7 100644
--- a/xbmc/windowing/egl/EGLNativeTypeAmlogic.h
+++ b/xbmc/windowing/egl/EGLNativeTypeAmlogic.h
@@ -49,6 +49,7 @@ public:
 
 protected:
   bool SetDisplayResolution(const char *resolution);
+  void SetupVideoScaling(const char *mode);
   void EnableFreeScale();
   void DisableFreeScale();
 
diff --git a/xbmc/windows/GUIMediaWindow.cpp b/xbmc/windows/GUIMediaWindow.cpp
index fb004ef..9216479 100644
--- a/xbmc/windows/GUIMediaWindow.cpp
+++ b/xbmc/windows/GUIMediaWindow.cpp
@@ -218,7 +218,7 @@ bool CGUIMediaWindow::OnBack(int actionID)
 {
   CURL filterUrl(m_strFilterPath);
   if (actionID == ACTION_NAV_BACK && !m_vecItems->IsVirtualDirectoryRoot() &&
-     (m_vecItems->GetPath() != m_startDirectory || (m_canFilterAdvanced && filterUrl.HasOption("filter"))))
+     (!URIUtils::PathEquals(m_vecItems->GetPath(), m_startDirectory, true) || (m_canFilterAdvanced && filterUrl.HasOption("filter"))))
   {
     GoParentFolder();
     return true;
@@ -1287,7 +1287,12 @@ void CGUIMediaWindow::SetHistoryForPath(const std::string& strDirectory)
         strParentPath = url.Get();
       }
 
-      URIUtils::AddSlashAtEnd(strPath);
+      // set the original path exactly as it was passed in
+      if (URIUtils::PathEquals(strPath, strDirectory, true))
+        strPath = strDirectory;
+      else
+        URIUtils::AddSlashAtEnd(strPath);
+
       m_history.AddPathFront(strPath);
       m_history.SetSelectedItem(strPath, strParentPath);
       strPath = strParentPath;
@@ -1469,11 +1474,17 @@ void CGUIMediaWindow::OnInitWindow()
   m_rootDir.SetAllowThreads(false);
 
   // the start directory may change during Refresh
-  bool updateStartDirectory = (m_startDirectory == m_vecItems->GetPath());
+  bool updateStartDirectory = URIUtils::PathEquals(m_vecItems->GetPath(), m_startDirectory, true);
   Refresh();
   if (updateStartDirectory)
+  {
+    // reset the start directory to the path of the items
     m_startDirectory = m_vecItems->GetPath();
 
+    // reset the history based on the path of the items
+    SetHistoryForPath(m_startDirectory);
+  }
+
   m_rootDir.SetAllowThreads(true);
 
   if (m_iSelectedItem > -1)

-- 
kodi packaging



More information about the pkg-multimedia-commits mailing list